Add rustix 1.0.8 with patch
This is for https://crrev.com/c/6786348/ and https://crrev.com/c/6786349/,
where rustix is added to mesa3d's dependency.
This also includes a patch for rustix's build.rs to avoid sandboxing violation.
BUG=b:422493568
BUG=b:436687239
TEST=python ./vendor.py
TEST=cros build-packages --board=brya third-party-crates-src
TEST=build crosvm with crrev.com/c/6786349 after building third-party-crates-src
TEST=cq
Change-Id: I943e2fba2c636594016f87562b8a6e9120994e0e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rust_crates/+/6688267
Reviewed-by: George Burgess <[email protected]>
Tested-by: Gurchetan Singh <[email protected]>
Commit-Queue: Gurchetan Singh <[email protected]>
diff --git a/patches/rustix-1.0.8/0001-build-Use-temporary-file-for-can_compile.patch b/patches/rustix-1.0.8/0001-build-Use-temporary-file-for-can_compile.patch
new file mode 100644
index 0000000..89d7529
--- /dev/null
+++ b/patches/rustix-1.0.8/0001-build-Use-temporary-file-for-can_compile.patch
@@ -0,0 +1,36 @@
+From 0f73e2afd916d6fa80ebd51f7ca34dbe295a9142 Mon Sep 17 00:00:00 2001
+From: Keiichi Watanabe <[email protected]>
+Date: Wed, 6 Aug 2025 13:20:34 +0900
+Subject: [PATCH] build: Use temporary file for can_compile
+
+The can_compile function in build.rs previously invoked rustc with
+-o -, which causes rustc to attempt to create a temporary metadata
+directory in the current working directory.
+
+When building with Portage for ChromeOS, this happens in a sandbox where
+the current working directory is not writeable, resulting in a sandbox
+access violation.
+
+This change modifies the can_compile function to use a temporary
+directory for the output file. This forces rustc to create the temporary
+file in a writeable location, avoiding the sandbox issue.
+---
+ build.rs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build.rs b/build.rs
+index 5440b603..15514195 100644
+--- a/build.rs
++++ b/build.rs
+@@ -258,7 +258,7 @@ fn can_compile<T: AsRef<str>>(test: T) -> bool {
+ .arg("--target")
+ .arg(target)
+ .arg("-o")
+- .arg("-")
++ .arg(std::env::temp_dir().join("rustix_test_can_compile"))
+ .stdout(Stdio::null()); // We don't care about the output (only whether it builds or not)
+
+ // If Cargo wants to set RUSTFLAGS, use that.
+--
+2.50.1.565.gc32cd1483b-goog
+
diff --git a/projects/Cargo.lock b/projects/Cargo.lock
index 9ad7c35..1c573f2 100644
--- a/projects/Cargo.lock
+++ b/projects/Cargo.lock
@@ -1702,6 +1702,7 @@
"rayon 1.5.3",
"regex",
"remain",
+ "rustix 1.0.8",
"scudo",
"serde",
"serde_json",
@@ -2305,9 +2306,9 @@
[[package]]
name = "errno"
-version = "0.3.8"
+version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad"
dependencies = [
"libc",
"windows-sys 0.52.0",
@@ -4128,6 +4129,12 @@
checksum = "2a385b1be4e5c3e362ad2ffa73c392e53f031eaa5b7d648e64cd87f27f6063d7"
[[package]]
+name = "linux-raw-sys"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"
+
+[[package]]
name = "litemap"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6284,13 +6291,26 @@
checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
dependencies = [
"bitflags 2.9.1",
- "errno 0.3.8",
+ "errno 0.3.13",
"libc",
"linux-raw-sys 0.4.13",
"windows-sys 0.52.0",
]
[[package]]
+name = "rustix"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
+dependencies = [
+ "bitflags 2.9.1",
+ "errno 0.3.13",
+ "libc",
+ "linux-raw-sys 0.9.4",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
name = "rustversion"
version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/projects/platform/crosvm/Cargo.toml b/projects/platform/crosvm/Cargo.toml
index ca0de29..5aa961d 100644
--- a/projects/platform/crosvm/Cargo.toml
+++ b/projects/platform/crosvm/Cargo.toml
@@ -71,6 +71,7 @@
rayon = "1"
regex = "1"
remain = "0.2"
+rustix = { version = "1.0.7", features = ["event", "fs", "mm", "net", "param", "pipe", "use-libc", "use-libc-auxv", "libc_errno"] }
scudo = "0.1.2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
diff --git a/vendor/errno-0.3.13/.cargo-checksum.json b/vendor/errno-0.3.13/.cargo-checksum.json
new file mode 100644
index 0000000..5ca5df6
--- /dev/null
+++ b/vendor/errno-0.3.13/.cargo-checksum.json
@@ -0,0 +1 @@
+{"files":{"CHANGELOG.md":"0eb9276c107eff1e18401cceca0f96a141381b3f46f4663440be20e9405f1f03","Cargo.lock":"3b76f5ec3fec76b852d0e12ef53812a3f5f825c1b6cd9969f6fea741fe1e945e","Cargo.toml":"c8c67fd786c13125a86fac40d6424075f9b21e770aa5e27f5581495f5974397f","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"8764a597675778ddfd4e25f81b08a05dbcf089ac05662df7613fe67f150e3aa2","README.md":"a1817eb8a0b2208d3f3989202b6af03c8261747b281039d4c7790649b587fd0b","clippy.toml":"6409bb805741d8bedfb1e58eb0ce4b63bd1d384ad5e29b7a3c0997a872f31206","src/hermit.rs":"ad03355bc4d79c180ab3210e1d3edd538eccaaea8d4f9a9b7eb8a0dc2d39b5df","src/lib.rs":"abcf06f19da51626d557d8f53955b3361a3f2a86a89227600d01f2d5c2f5562f","src/sys.rs":"eb065c9f20decbcd4afe2191b0aaf3a7c5808527e7f9132731fd555044c9337b","src/unix.rs":"66c64603798cf7d8701de5be077b814b09a324b42ff460e9448686b4d8a330a7","src/wasi.rs":"c83052e5c45c31e2a4630c00a4d0b92f39205774a4d419b4aa5c06dc5992280c","src/windows.rs":"7cbcdb8e74582f357fa945bb1c44c4d19c1a10bec958da1223305bf68ec35baf"},"package":"778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad"}
\ No newline at end of file
diff --git a/vendor/errno-0.3.13/CHANGELOG.md b/vendor/errno-0.3.13/CHANGELOG.md
new file mode 100644
index 0000000..3e7c09f
--- /dev/null
+++ b/vendor/errno-0.3.13/CHANGELOG.md
@@ -0,0 +1,132 @@
+# [Unreleased]
+
+# [0.3.13] - 2025-06-19
+
+- Update windows-sys requirement from >=0.52, <=0.59 to >=0.52, <=0.60
+ [#113](https://github.com/lambda-fairy/rust-errno/pull/113)
+
+# [0.3.12] - 2025-05-12
+
+- Issue a better error message if the target is unsupported.
+ [#110](https://github.com/lambda-fairy/rust-errno/pull/110)
+
+# [0.3.11] - 2025-04-04
+
+- Add VxWorks support
+ [#105](https://github.com/lambda-fairy/rust-errno/pull/105)
+
+- Add cygwin support
+ [#106](https://github.com/lambda-fairy/rust-errno/pull/106)
+
+# [0.3.10] - 2024-11-29
+
+- Update to windows-sys 0.59
+ [#98](https://github.com/lambda-fairy/rust-errno/pull/98)
+
+- Support emscripten
+ [#100](https://github.com/lambda-fairy/rust-errno/pull/100)
+
+- Remove Bitrig support
+ [#99](https://github.com/lambda-fairy/rust-errno/pull/99)
+
+# [0.3.9] - 2024-05-07
+
+- Add visionOS support
+ [#95](https://github.com/lambda-fairy/rust-errno/pull/95)
+
+# [0.3.8] - 2023-11-27
+
+- Update to windows-sys 0.52.
+ [#91](https://github.com/lambda-fairy/rust-errno/pull/91)
+
+- Update minimum Rust version to 1.56
+ [#91](https://github.com/lambda-fairy/rust-errno/pull/91)
+
+# [0.3.7] - 2023-11-15
+
+- Fix `to_string()` handling for unknown error codes
+ [#88](https://github.com/lambda-fairy/rust-errno/pull/88)
+
+# [0.3.6] - 2023-11-07
+
+- Add support for tvOS and watchOS
+ [#84](https://github.com/lambda-fairy/rust-errno/pull/84)
+
+- Added support for vita target
+ [#86](https://github.com/lambda-fairy/rust-errno/pull/86)
+
+# [0.3.5] - 2023-10-08
+
+- Use __errno_location on DragonFly BSD
+ [#82](https://github.com/lambda-fairy/rust-errno/pull/82)
+
+# [0.3.4] - 2023-10-01
+
+- Add GNU/Hurd support
+ [#80](https://github.com/lambda-fairy/rust-errno/pull/80)
+
+# [0.3.3] - 2023-08-28
+
+- Disable "libc/std" in no-std configurations.
+ [#77](https://github.com/lambda-fairy/rust-errno/pull/77)
+
+- Bump errno-dragonfly to 0.1.2
+ [#75](https://github.com/lambda-fairy/rust-errno/pull/75)
+
+- Support for the ESP-IDF framework
+ [#74](https://github.com/lambda-fairy/rust-errno/pull/74)
+
+# [0.3.2] - 2023-07-30
+
+- Fix build on Hermit
+ [#73](https://github.com/lambda-fairy/rust-errno/pull/73)
+
+- Add support for QNX Neutrino
+ [#72](https://github.com/lambda-fairy/rust-errno/pull/72)
+
+# [0.3.1] - 2023-04-08
+
+- Correct link name on redox
+ [#69](https://github.com/lambda-fairy/rust-errno/pull/69)
+
+- Update windows-sys requirement from 0.45 to 0.48
+ [#70](https://github.com/lambda-fairy/rust-errno/pull/70)
+
+# [0.3.0] - 2023-02-12
+
+- Add haiku support
+ [#42](https://github.com/lambda-fairy/rust-errno/pull/42)
+
+- Add AIX support
+ [#54](https://github.com/lambda-fairy/rust-errno/pull/54)
+
+- Add formatting with `#![no_std]`
+ [#44](https://github.com/lambda-fairy/rust-errno/pull/44)
+
+- Switch from `winapi` to `windows-sys` [#55](https://github.com/lambda-fairy/rust-errno/pull/55)
+
+- Update minimum Rust version to 1.48
+ [#48](https://github.com/lambda-fairy/rust-errno/pull/48) [#55](https://github.com/lambda-fairy/rust-errno/pull/55)
+
+- Upgrade to Rust 2018 edition [#59](https://github.com/lambda-fairy/rust-errno/pull/59)
+
+- wasm32-wasi: Use `__errno_location` instead of `feature(thread_local)`. [#66](https://github.com/lambda-fairy/rust-errno/pull/66)
+
+# [0.2.8] - 2021-10-27
+
+- Optionally support no_std
+ [#31](https://github.com/lambda-fairy/rust-errno/pull/31)
+
+[Unreleased]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.10...HEAD
+[0.3.10]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.9...v0.3.10
+[0.3.9]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.8...v0.3.9
+[0.3.8]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.7...v0.3.8
+[0.3.7]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.6...v0.3.7
+[0.3.6]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.5...v0.3.6
+[0.3.5]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.4...v0.3.5
+[0.3.4]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.3...v0.3.4
+[0.3.3]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.2...v0.3.3
+[0.3.2]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.1...v0.3.2
+[0.3.1]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.0...v0.3.1
+[0.3.0]: https://github.com/lambda-fairy/rust-errno/compare/v0.2.8...v0.3.0
+[0.2.8]: https://github.com/lambda-fairy/rust-errno/compare/v0.2.7...v0.2.8
diff --git a/vendor/errno-0.3.13/Cargo.lock b/vendor/errno-0.3.13/Cargo.lock
new file mode 100644
index 0000000..ffdb4de
--- /dev/null
+++ b/vendor/errno-0.3.13/Cargo.lock
@@ -0,0 +1,90 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "errno"
+version = "0.3.13"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.172"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
+
+[[package]]
+name = "windows-sys"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
diff --git a/vendor/errno-0.3.13/Cargo.toml b/vendor/errno-0.3.13/Cargo.toml
new file mode 100644
index 0000000..be936ff
--- /dev/null
+++ b/vendor/errno-0.3.13/Cargo.toml
@@ -0,0 +1,67 @@
+# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
+#
+# When uploading crates to the registry Cargo will automatically
+# "normalize" Cargo.toml files for maximal compatibility
+# with all versions of Cargo and also rewrite `path` dependencies
+# to registry (e.g., crates.io) dependencies.
+#
+# If you are reading this file be aware that the original Cargo.toml
+# will likely look very different (and much more reasonable).
+# See Cargo.toml.orig for the original contents.
+
+[package]
+edition = "2018"
+rust-version = "1.56"
+name = "errno"
+version = "0.3.13"
+authors = [
+ "Chris Wong <[email protected]>",
+ "Dan Gohman <[email protected]>",
+]
+build = false
+autolib = false
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
+description = "Cross-platform interface to the `errno` variable."
+documentation = "https://docs.rs/errno"
+readme = "README.md"
+categories = [
+ "no-std",
+ "os",
+]
+license = "MIT OR Apache-2.0"
+repository = "https://github.com/lambda-fairy/rust-errno"
+
+[features]
+default = ["std"]
+std = ["libc/std"]
+
+[lib]
+name = "errno"
+path = "src/lib.rs"
+
+[target.'cfg(target_os="hermit")'.dependencies.libc]
+version = "0.2"
+default-features = false
+
+[target.'cfg(target_os="wasi")'.dependencies.libc]
+version = "0.2"
+default-features = false
+
+[target."cfg(unix)".dependencies.libc]
+version = "0.2"
+default-features = false
+
+[target."cfg(windows)".dependencies.windows-sys]
+version = ">=0.52, <=0.60"
+features = [
+ "Win32_Foundation",
+ "Win32_System_Diagnostics_Debug",
+]
+
+[lints.rust.unexpected_cfgs]
+level = "warn"
+priority = 0
+check-cfg = ['cfg(target_os, values("cygwin"))']
diff --git a/vendor/errno-0.3.8/LICENSE-APACHE b/vendor/errno-0.3.13/LICENSE-APACHE
similarity index 100%
rename from vendor/errno-0.3.8/LICENSE-APACHE
rename to vendor/errno-0.3.13/LICENSE-APACHE
diff --git a/vendor/errno-0.3.8/LICENSE-MIT b/vendor/errno-0.3.13/LICENSE-MIT
similarity index 100%
rename from vendor/errno-0.3.8/LICENSE-MIT
rename to vendor/errno-0.3.13/LICENSE-MIT
diff --git a/vendor/errno-0.3.8/README.md b/vendor/errno-0.3.13/README.md
similarity index 100%
rename from vendor/errno-0.3.8/README.md
rename to vendor/errno-0.3.13/README.md
diff --git a/vendor/errno-0.3.8/clippy.toml b/vendor/errno-0.3.13/clippy.toml
similarity index 100%
rename from vendor/errno-0.3.8/clippy.toml
rename to vendor/errno-0.3.13/clippy.toml
diff --git a/vendor/errno-0.3.8/src/hermit.rs b/vendor/errno-0.3.13/src/hermit.rs
similarity index 100%
rename from vendor/errno-0.3.8/src/hermit.rs
rename to vendor/errno-0.3.13/src/hermit.rs
diff --git a/vendor/errno-0.3.13/src/lib.rs b/vendor/errno-0.3.13/src/lib.rs
new file mode 100644
index 0000000..4b2ea8e
--- /dev/null
+++ b/vendor/errno-0.3.13/src/lib.rs
@@ -0,0 +1,160 @@
+//! Cross-platform interface to the `errno` variable.
+//!
+//! # Examples
+//! ```
+//! use errno::{Errno, errno, set_errno};
+//!
+//! // Get the current value of errno
+//! let e = errno();
+//!
+//! // Set the current value of errno
+//! set_errno(e);
+//!
+//! // Extract the error code as an i32
+//! let code = e.0;
+//!
+//! // Display a human-friendly error message
+//! println!("Error {}: {}", code, e);
+//! ```
+
+#![cfg_attr(not(feature = "std"), no_std)]
+
+#[cfg_attr(unix, path = "unix.rs")]
+#[cfg_attr(windows, path = "windows.rs")]
+#[cfg_attr(target_os = "wasi", path = "wasi.rs")]
+#[cfg_attr(target_os = "hermit", path = "hermit.rs")]
+mod sys;
+
+use core::fmt;
+#[cfg(feature = "std")]
+use std::error::Error;
+#[cfg(feature = "std")]
+use std::io;
+
+/// Wraps a platform-specific error code.
+///
+/// The `Display` instance maps the code to a human-readable string. It
+/// calls [`strerror_r`][1] under POSIX, and [`FormatMessageW`][2] on
+/// Windows.
+///
+/// [1]: http://pubs.opengroup.org/onlinepubs/009695399/functions/strerror.html
+/// [2]: https://msdn.microsoft.com/en-us/library/windows/desktop/ms679351%28v=vs.85%29.aspx
+#[derive(Copy, Clone, Eq, Ord, PartialEq, PartialOrd, Hash)]
+pub struct Errno(pub i32);
+
+impl fmt::Debug for Errno {
+ fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
+ sys::with_description(*self, |desc| {
+ fmt.debug_struct("Errno")
+ .field("code", &self.0)
+ .field("description", &desc.ok())
+ .finish()
+ })
+ }
+}
+
+impl fmt::Display for Errno {
+ fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
+ sys::with_description(*self, |desc| match desc {
+ Ok(desc) => fmt.write_str(desc),
+ Err(fm_err) => write!(
+ fmt,
+ "OS error {} ({} returned error {})",
+ self.0,
+ sys::STRERROR_NAME,
+ fm_err.0
+ ),
+ })
+ }
+}
+
+impl From<Errno> for i32 {
+ fn from(e: Errno) -> Self {
+ e.0
+ }
+}
+
+#[cfg(feature = "std")]
+impl Error for Errno {
+ // TODO: Remove when MSRV >= 1.27
+ #[allow(deprecated)]
+ fn description(&self) -> &str {
+ "system error"
+ }
+}
+
+#[cfg(feature = "std")]
+impl From<Errno> for io::Error {
+ fn from(errno: Errno) -> Self {
+ io::Error::from_raw_os_error(errno.0)
+ }
+}
+
+/// Returns the platform-specific value of `errno`.
+pub fn errno() -> Errno {
+ sys::errno()
+}
+
+/// Sets the platform-specific value of `errno`.
+pub fn set_errno(err: Errno) {
+ sys::set_errno(err)
+}
+
+#[test]
+fn it_works() {
+ let x = errno();
+ set_errno(x);
+}
+
+#[cfg(feature = "std")]
+#[test]
+fn it_works_with_to_string() {
+ let x = errno();
+ let _ = x.to_string();
+}
+
+#[cfg(feature = "std")]
+#[test]
+fn check_description() {
+ let expect = if cfg!(windows) {
+ "Incorrect function."
+ } else if cfg!(target_os = "illumos") {
+ "Not owner"
+ } else if cfg!(target_os = "wasi") || cfg!(target_os = "emscripten") {
+ "Argument list too long"
+ } else if cfg!(target_os = "haiku") {
+ "Operation not allowed"
+ } else if cfg!(target_os = "vxworks") {
+ "operation not permitted"
+ } else {
+ "Operation not permitted"
+ };
+
+ let errno_code = if cfg!(target_os = "haiku") {
+ -2147483633
+ } else if cfg!(target_os = "hurd") {
+ 1073741825
+ } else {
+ 1
+ };
+ set_errno(Errno(errno_code));
+
+ assert_eq!(errno().to_string(), expect);
+ assert_eq!(
+ format!("{:?}", errno()),
+ format!(
+ "Errno {{ code: {}, description: Some({:?}) }}",
+ errno_code, expect
+ )
+ );
+}
+
+#[cfg(feature = "std")]
+#[test]
+fn check_error_into_errno() {
+ const ERROR_CODE: i32 = 1;
+
+ let error = io::Error::from_raw_os_error(ERROR_CODE);
+ let new_error: io::Error = Errno(ERROR_CODE).into();
+ assert_eq!(error.kind(), new_error.kind());
+}
diff --git a/vendor/errno-0.3.13/src/sys.rs b/vendor/errno-0.3.13/src/sys.rs
new file mode 100644
index 0000000..cc6fe8a
--- /dev/null
+++ b/vendor/errno-0.3.13/src/sys.rs
@@ -0,0 +1,35 @@
+//! A default sys.rs for unrecognized targets.
+//!
+//! If lib.rs doesn't recognize the target, it defaults to using this file,
+//! which issues an explanatory compile error.
+
+// If there is no OS, there's no `errno` or equivalent defined.
+#[cfg(any(target_os = "unknown", target_os = "none"))]
+compile_error!("The target OS is \"unknown\" or \"none\", so it's unsupported by the errno crate.");
+
+// If there is an OS, support may be added.
+#[cfg(not(any(target_os = "unknown", target_os = "none")))]
+compile_error!("The target OS is not yet supported in the errno crate.");
+
+// The following define the functions of the normal implementations
+// so that the user doesn't see uninteresting errors after the
+// errors above.
+
+use crate::Errno;
+
+pub fn with_description<F, T>(_err: Errno, _callback: F) -> T
+where
+ F: FnOnce(Result<&str, Errno>) -> T,
+{
+ unreachable!()
+}
+
+pub const STRERROR_NAME: &str = "";
+
+pub fn errno() -> Errno {
+ unreachable!()
+}
+
+pub fn set_errno(_: Errno) {
+ unreachable!()
+}
diff --git a/vendor/errno-0.3.13/src/unix.rs b/vendor/errno-0.3.13/src/unix.rs
new file mode 100644
index 0000000..5536eef
--- /dev/null
+++ b/vendor/errno-0.3.13/src/unix.rs
@@ -0,0 +1,104 @@
+//! Implementation of `errno` functionality for Unix systems.
+//!
+//! Adapted from `src/libstd/sys/unix/os.rs` in the Rust distribution.
+
+// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+use core::str;
+use libc::{self, c_int, size_t, strerror_r, strlen};
+
+use crate::Errno;
+
+fn from_utf8_lossy(input: &[u8]) -> &str {
+ match str::from_utf8(input) {
+ Ok(valid) => valid,
+ Err(error) => unsafe { str::from_utf8_unchecked(&input[..error.valid_up_to()]) },
+ }
+}
+
+pub fn with_description<F, T>(err: Errno, callback: F) -> T
+where
+ F: FnOnce(Result<&str, Errno>) -> T,
+{
+ let mut buf = [0u8; 1024];
+ let c_str = unsafe {
+ let rc = strerror_r(err.0, buf.as_mut_ptr() as *mut _, buf.len() as size_t);
+ if rc != 0 {
+ // Handle negative return codes for compatibility with glibc < 2.13
+ let fm_err = match rc < 0 {
+ true => errno(),
+ false => Errno(rc),
+ };
+ if fm_err != Errno(libc::ERANGE) {
+ return callback(Err(fm_err));
+ }
+ }
+ let c_str_len = strlen(buf.as_ptr() as *const _);
+ &buf[..c_str_len]
+ };
+ callback(Ok(from_utf8_lossy(c_str)))
+}
+
+pub const STRERROR_NAME: &str = "strerror_r";
+
+pub fn errno() -> Errno {
+ unsafe { Errno(*errno_location()) }
+}
+
+pub fn set_errno(Errno(errno): Errno) {
+ unsafe {
+ *errno_location() = errno;
+ }
+}
+
+extern "C" {
+ #[cfg_attr(
+ any(
+ target_os = "macos",
+ target_os = "ios",
+ target_os = "tvos",
+ target_os = "watchos",
+ target_os = "visionos",
+ target_os = "freebsd"
+ ),
+ link_name = "__error"
+ )]
+ #[cfg_attr(
+ any(
+ target_os = "openbsd",
+ target_os = "netbsd",
+ target_os = "android",
+ target_os = "espidf",
+ target_os = "vxworks",
+ target_os = "cygwin",
+ target_env = "newlib"
+ ),
+ link_name = "__errno"
+ )]
+ #[cfg_attr(
+ any(target_os = "solaris", target_os = "illumos"),
+ link_name = "___errno"
+ )]
+ #[cfg_attr(target_os = "haiku", link_name = "_errnop")]
+ #[cfg_attr(
+ any(
+ target_os = "linux",
+ target_os = "hurd",
+ target_os = "redox",
+ target_os = "dragonfly",
+ target_os = "emscripten",
+ ),
+ link_name = "__errno_location"
+ )]
+ #[cfg_attr(target_os = "aix", link_name = "_Errno")]
+ #[cfg_attr(target_os = "nto", link_name = "__get_errno_ptr")]
+ fn errno_location() -> *mut c_int;
+}
diff --git a/vendor/errno-0.3.8/src/wasi.rs b/vendor/errno-0.3.13/src/wasi.rs
similarity index 100%
rename from vendor/errno-0.3.8/src/wasi.rs
rename to vendor/errno-0.3.13/src/wasi.rs
diff --git a/vendor/errno-0.3.8/src/windows.rs b/vendor/errno-0.3.13/src/windows.rs
similarity index 100%
rename from vendor/errno-0.3.8/src/windows.rs
rename to vendor/errno-0.3.13/src/windows.rs
diff --git a/vendor/errno-0.3.8/.cargo-checksum.json b/vendor/errno-0.3.8/.cargo-checksum.json
deleted file mode 100644
index 8e3161f..0000000
--- a/vendor/errno-0.3.8/.cargo-checksum.json
+++ /dev/null
@@ -1 +0,0 @@
-{"files":{"CHANGELOG.md":"b640a4e74c65505290775558e36ede1968ed26a551edaf7574f661891920ff48","Cargo.toml":"329c6992879c5c2ac32dd09263f4d9cad0da477ac9c44e50e6ae503fd9616467","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"8764a597675778ddfd4e25f81b08a05dbcf089ac05662df7613fe67f150e3aa2","README.md":"a1817eb8a0b2208d3f3989202b6af03c8261747b281039d4c7790649b587fd0b","clippy.toml":"6409bb805741d8bedfb1e58eb0ce4b63bd1d384ad5e29b7a3c0997a872f31206","src/hermit.rs":"ad03355bc4d79c180ab3210e1d3edd538eccaaea8d4f9a9b7eb8a0dc2d39b5df","src/lib.rs":"318f864b8cb9296c85f70f9dfb855c552303630b3a9390f147bb4b581b8d8b5c","src/unix.rs":"6ee5c13893fa1114fa1782239f2539f1b0a9554e5ed45cf0ee78729145882032","src/wasi.rs":"c83052e5c45c31e2a4630c00a4d0b92f39205774a4d419b4aa5c06dc5992280c","src/windows.rs":"7cbcdb8e74582f357fa945bb1c44c4d19c1a10bec958da1223305bf68ec35baf"},"package":"a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"}
\ No newline at end of file
diff --git a/vendor/errno-0.3.8/CHANGELOG.md b/vendor/errno-0.3.8/CHANGELOG.md
deleted file mode 100644
index e3add31..0000000
--- a/vendor/errno-0.3.8/CHANGELOG.md
+++ /dev/null
@@ -1,96 +0,0 @@
-# [Unreleased]
-
-# [0.3.8] - 2023-11-27
-
-- Update to windows-sys 0.52.
- [#91](https://github.com/lambda-fairy/rust-errno/pull/91)
-
-- Update minimum Rust version to 1.56
- [#91](https://github.com/lambda-fairy/rust-errno/pull/91)
-
-# [0.3.7] - 2023-11-15
-
-- Fix `to_string()` handling for unknown error codes
- [#88](https://github.com/lambda-fairy/rust-errno/pull/88)
-
-# [0.3.6] - 2023-11-07
-
-- Add support for tvOS and watchOS
- [#84](https://github.com/lambda-fairy/rust-errno/pull/84)
-
-- Added support for vita target
- [#86](https://github.com/lambda-fairy/rust-errno/pull/86)
-
-# [0.3.5] - 2023-10-08
-
-- Use __errno_location on DragonFly BSD
- [#82](https://github.com/lambda-fairy/rust-errno/pull/82)
-
-# [0.3.4] - 2023-10-01
-
-- Add GNU/Hurd support
- [#80](https://github.com/lambda-fairy/rust-errno/pull/80)
-
-# [0.3.3] - 2023-08-28
-
-- Disable "libc/std" in no-std configurations.
- [#77](https://github.com/lambda-fairy/rust-errno/pull/77)
-
-- Bump errno-dragonfly to 0.1.2
- [#75](https://github.com/lambda-fairy/rust-errno/pull/75)
-
-- Support for the ESP-IDF framework
- [#74](https://github.com/lambda-fairy/rust-errno/pull/74)
-
-# [0.3.2] - 2023-07-30
-
-- Fix build on Hermit
- [#73](https://github.com/lambda-fairy/rust-errno/pull/73)
-
-- Add support for QNX Neutrino
- [#72](https://github.com/lambda-fairy/rust-errno/pull/72)
-
-# [0.3.1] - 2023-04-08
-
-- Correct link name on redox
- [#69](https://github.com/lambda-fairy/rust-errno/pull/69)
-
-- Update windows-sys requirement from 0.45 to 0.48
- [#70](https://github.com/lambda-fairy/rust-errno/pull/70)
-
-# [0.3.0] - 2023-02-12
-
-- Add haiku support
- [#42](https://github.com/lambda-fairy/rust-errno/pull/42)
-
-- Add AIX support
- [#54](https://github.com/lambda-fairy/rust-errno/pull/54)
-
-- Add formatting with `#![no_std]`
- [#44](https://github.com/lambda-fairy/rust-errno/pull/44)
-
-- Switch from `winapi` to `windows-sys` [#55](https://github.com/lambda-fairy/rust-errno/pull/55)
-
-- Update minimum Rust version to 1.48
- [#48](https://github.com/lambda-fairy/rust-errno/pull/48) [#55](https://github.com/lambda-fairy/rust-errno/pull/55)
-
-- Upgrade to Rust 2018 edition [#59](https://github.com/lambda-fairy/rust-errno/pull/59)
-
-- wasm32-wasi: Use `__errno_location` instead of `feature(thread_local)`. [#66](https://github.com/lambda-fairy/rust-errno/pull/66)
-
-# [0.2.8] - 2021-10-27
-
-- Optionally support no_std
- [#31](https://github.com/lambda-fairy/rust-errno/pull/31)
-
-[Unreleased]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.8...HEAD
-[0.3.8]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.7...v0.3.8
-[0.3.7]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.6...v0.3.7
-[0.3.6]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.5...v0.3.6
-[0.3.5]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.4...v0.3.5
-[0.3.4]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.3...v0.3.4
-[0.3.3]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.2...v0.3.3
-[0.3.2]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.1...v0.3.2
-[0.3.1]: https://github.com/lambda-fairy/rust-errno/compare/v0.3.0...v0.3.1
-[0.3.0]: https://github.com/lambda-fairy/rust-errno/compare/v0.2.8...v0.3.0
-[0.2.8]: https://github.com/lambda-fairy/rust-errno/compare/v0.2.7...v0.2.8
diff --git a/vendor/errno-0.3.8/Cargo.toml b/vendor/errno-0.3.8/Cargo.toml
deleted file mode 100644
index e1d0bf5..0000000
--- a/vendor/errno-0.3.8/Cargo.toml
+++ /dev/null
@@ -1,49 +0,0 @@
-# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
-#
-# When uploading crates to the registry Cargo will automatically
-# "normalize" Cargo.toml files for maximal compatibility
-# with all versions of Cargo and also rewrite `path` dependencies
-# to registry (e.g., crates.io) dependencies.
-#
-# If you are reading this file be aware that the original Cargo.toml
-# will likely look very different (and much more reasonable).
-# See Cargo.toml.orig for the original contents.
-
-[package]
-edition = "2018"
-rust-version = "1.56"
-name = "errno"
-version = "0.3.8"
-authors = ["Chris Wong <[email protected]>"]
-description = "Cross-platform interface to the `errno` variable."
-documentation = "https://docs.rs/errno"
-readme = "README.md"
-categories = [
- "no-std",
- "os",
-]
-license = "MIT OR Apache-2.0"
-repository = "https://github.com/lambda-fairy/rust-errno"
-
-[features]
-default = ["std"]
-std = ["libc/std"]
-
-[target."cfg(target_os=\"hermit\")".dependencies.libc]
-version = "0.2"
-default-features = false
-
-[target."cfg(target_os=\"wasi\")".dependencies.libc]
-version = "0.2"
-default-features = false
-
-[target."cfg(unix)".dependencies.libc]
-version = "0.2"
-default-features = false
-
-[target."cfg(windows)".dependencies.windows-sys]
-version = "0.52"
-features = [
- "Win32_Foundation",
- "Win32_System_Diagnostics_Debug",
-]
diff --git a/vendor/errno-0.3.8/src/lib.rs b/vendor/errno-0.3.8/src/lib.rs
deleted file mode 100644
index 20875b5..0000000
--- a/vendor/errno-0.3.8/src/lib.rs
+++ /dev/null
@@ -1,156 +0,0 @@
-//! Cross-platform interface to the `errno` variable.
-//!
-//! # Examples
-//! ```
-//! use errno::{Errno, errno, set_errno};
-//!
-//! // Get the current value of errno
-//! let e = errno();
-//!
-//! // Set the current value of errno
-//! set_errno(e);
-//!
-//! // Extract the error code as an i32
-//! let code = e.0;
-//!
-//! // Display a human-friendly error message
-//! println!("Error {}: {}", code, e);
-//! ```
-
-#![cfg_attr(not(feature = "std"), no_std)]
-
-#[cfg_attr(unix, path = "unix.rs")]
-#[cfg_attr(windows, path = "windows.rs")]
-#[cfg_attr(target_os = "wasi", path = "wasi.rs")]
-#[cfg_attr(target_os = "hermit", path = "hermit.rs")]
-mod sys;
-
-use core::fmt;
-#[cfg(feature = "std")]
-use std::error::Error;
-#[cfg(feature = "std")]
-use std::io;
-
-/// Wraps a platform-specific error code.
-///
-/// The `Display` instance maps the code to a human-readable string. It
-/// calls [`strerror_r`][1] under POSIX, and [`FormatMessageW`][2] on
-/// Windows.
-///
-/// [1]: http://pubs.opengroup.org/onlinepubs/009695399/functions/strerror.html
-/// [2]: https://msdn.microsoft.com/en-us/library/windows/desktop/ms679351%28v=vs.85%29.aspx
-#[derive(Copy, Clone, Eq, Ord, PartialEq, PartialOrd, Hash)]
-pub struct Errno(pub i32);
-
-impl fmt::Debug for Errno {
- fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
- sys::with_description(*self, |desc| {
- fmt.debug_struct("Errno")
- .field("code", &self.0)
- .field("description", &desc.ok())
- .finish()
- })
- }
-}
-
-impl fmt::Display for Errno {
- fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
- sys::with_description(*self, |desc| match desc {
- Ok(desc) => fmt.write_str(desc),
- Err(fm_err) => write!(
- fmt,
- "OS error {} ({} returned error {})",
- self.0,
- sys::STRERROR_NAME,
- fm_err.0
- ),
- })
- }
-}
-
-impl From<Errno> for i32 {
- fn from(e: Errno) -> Self {
- e.0
- }
-}
-
-#[cfg(feature = "std")]
-impl Error for Errno {
- // TODO: Remove when MSRV >= 1.27
- #[allow(deprecated)]
- fn description(&self) -> &str {
- "system error"
- }
-}
-
-#[cfg(feature = "std")]
-impl From<Errno> for io::Error {
- fn from(errno: Errno) -> Self {
- io::Error::from_raw_os_error(errno.0)
- }
-}
-
-/// Returns the platform-specific value of `errno`.
-pub fn errno() -> Errno {
- sys::errno()
-}
-
-/// Sets the platform-specific value of `errno`.
-pub fn set_errno(err: Errno) {
- sys::set_errno(err)
-}
-
-#[test]
-fn it_works() {
- let x = errno();
- set_errno(x);
-}
-
-#[cfg(feature = "std")]
-#[test]
-fn it_works_with_to_string() {
- let x = errno();
- let _ = x.to_string();
-}
-
-#[cfg(feature = "std")]
-#[test]
-fn check_description() {
- let expect = if cfg!(windows) {
- "Incorrect function."
- } else if cfg!(target_os = "illumos") {
- "Not owner"
- } else if cfg!(target_os = "wasi") {
- "Argument list too long"
- } else if cfg!(target_os = "haiku") {
- "Operation not allowed"
- } else {
- "Operation not permitted"
- };
-
- let errno_code = if cfg!(target_os = "haiku") {
- -2147483633
- } else {
- 1
- };
- set_errno(Errno(errno_code));
-
- assert_eq!(errno().to_string(), expect);
- assert_eq!(
- format!("{:?}", errno()),
- format!(
- "Errno {{ code: {}, description: Some({:?}) }}",
- errno_code, expect
- )
- );
-}
-
-#[cfg(feature = "std")]
-#[test]
-fn check_error_into_errno() {
- const ERROR_CODE: i32 = 1;
-
- let error = io::Error::from_raw_os_error(ERROR_CODE);
- let new_error: io::Error = Errno(ERROR_CODE).into();
- assert_eq!(error.kind(), new_error.kind());
-}
diff --git a/vendor/errno-0.3.8/src/unix.rs b/vendor/errno-0.3.8/src/unix.rs
deleted file mode 100644
index 18951e4..0000000
--- a/vendor/errno-0.3.8/src/unix.rs
+++ /dev/null
@@ -1,101 +0,0 @@
-//! Implementation of `errno` functionality for Unix systems.
-//!
-//! Adapted from `src/libstd/sys/unix/os.rs` in the Rust distribution.
-
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use core::str;
-use libc::{self, c_int, size_t, strerror_r, strlen};
-
-use crate::Errno;
-
-fn from_utf8_lossy(input: &[u8]) -> &str {
- match str::from_utf8(input) {
- Ok(valid) => valid,
- Err(error) => unsafe { str::from_utf8_unchecked(&input[..error.valid_up_to()]) },
- }
-}
-
-pub fn with_description<F, T>(err: Errno, callback: F) -> T
-where
- F: FnOnce(Result<&str, Errno>) -> T,
-{
- let mut buf = [0u8; 1024];
- let c_str = unsafe {
- let rc = strerror_r(err.0, buf.as_mut_ptr() as *mut _, buf.len() as size_t);
- if rc != 0 {
- // Handle negative return codes for compatibility with glibc < 2.13
- let fm_err = match rc < 0 {
- true => errno(),
- false => Errno(rc),
- };
- if fm_err != Errno(libc::ERANGE) {
- return callback(Err(fm_err));
- }
- }
- let c_str_len = strlen(buf.as_ptr() as *const _);
- &buf[..c_str_len]
- };
- callback(Ok(from_utf8_lossy(c_str)))
-}
-
-pub const STRERROR_NAME: &str = "strerror_r";
-
-pub fn errno() -> Errno {
- unsafe { Errno(*errno_location()) }
-}
-
-pub fn set_errno(Errno(errno): Errno) {
- unsafe {
- *errno_location() = errno;
- }
-}
-
-extern "C" {
- #[cfg_attr(
- any(
- target_os = "macos",
- target_os = "ios",
- target_os = "tvos",
- target_os = "watchos",
- target_os = "freebsd"
- ),
- link_name = "__error"
- )]
- #[cfg_attr(
- any(
- target_os = "openbsd",
- target_os = "netbsd",
- target_os = "bitrig",
- target_os = "android",
- target_os = "espidf",
- target_env = "newlib"
- ),
- link_name = "__errno"
- )]
- #[cfg_attr(
- any(target_os = "solaris", target_os = "illumos"),
- link_name = "___errno"
- )]
- #[cfg_attr(target_os = "haiku", link_name = "_errnop")]
- #[cfg_attr(
- any(
- target_os = "linux",
- target_os = "hurd",
- target_os = "redox",
- target_os = "dragonfly"
- ),
- link_name = "__errno_location"
- )]
- #[cfg_attr(target_os = "aix", link_name = "_Errno")]
- #[cfg_attr(target_os = "nto", link_name = "__get_errno_ptr")]
- fn errno_location() -> *mut c_int;
-}
diff --git a/vendor/linux-raw-sys-0.9.4/.cargo-checksum.json b/vendor/linux-raw-sys-0.9.4/.cargo-checksum.json
new file mode 100644
index 0000000..871c864
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/.cargo-checksum.json
@@ -0,0 +1 @@
+{"files":{"CODE_OF_CONDUCT.md":"ccd9e538ce44713a2486cc8e4c01b8c8b846d1ccff15de728d8d6fa9a7f846cd","COPYRIGHT":"3290ae0fbc9ddb77d2239121d710f0bb9d31b3b4744e6d97fe01e652b4c1870b","Cargo.lock":"fb00fed5ffab11da42df93d96c23667ec8fbe7e32afba3170b8196a4922175a1","Cargo.toml":"218ec145b7018b515ea6af196832bdf721764baad8488167781114f3f133e2c4","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-Apache-2.0_WITH_LLVM-exception":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","ORG_CODE_OF_CONDUCT.md":"a62b69bf86e605ee1bcbb2f0a12ba79e4cebb6983a7b6491949750aecc4f2178","README.md":"3d4ae2ec9429adfd329b4506f7ca6faa84dca30d1c3b416f8f4e6f57bdb3aa96","src/aarch64/bootparam.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/aarch64/btrfs.rs":"ed8c3cd5d698794eaa3de991baaed94f967c10a03fd29f60bf246409ad31058f","src/aarch64/elf_uapi.rs":"4135af390c75beee1649b77abddf2ef2cbef041ccafe6cc387db24341e96183f","src/aarch64/errno.rs":"e85f33ec329b3722e0973d2f61cb4ba9c4e751f261d4aa30fcde7812d8cf5b59","src/aarch64/general.rs":"0454c2d4120844d1674e27938d518808d45e19c653757ee9e3a513a1e8a51584","src/aarch64/if_arp.rs":"765d1d434cd0bc490d5fe9f31e95547037a35c3e5f7ab8b109f4175818ad53d2","src/aarch64/if_ether.rs":"929085a914175932d6e990bcc03cec5f77d5894ba2be40ab5afd7b14a5271823","src/aarch64/if_packet.rs":"9c623d34b46b42e25c71523c5452f9c32d7bf535376691160d3b699c978e0c00","src/aarch64/image.rs":"f05977bd69863b4cec23a806d3ee78fe586e3a0c36bde176b4267c0d72a5489c","src/aarch64/io_uring.rs":"1cdc9169a5424d18e81ee0bd2936353db78c51dee53cb9ed34ccf40ac808b6d9","src/aarch64/ioctl.rs":"23ae51c5f1a669c17f07c21348c96039e1415259c13fd15650d51dd231af80a5","src/aarch64/landlock.rs":"0c2bf5018ab1881bd9407eb03468e79f6d731b91e121d38849096f9040c61bc1","src/aarch64/loop_device.rs":"55c85e14ca45eadb9ecb5169390a5ddb4e9a5aceadd3a59fb5e8605e353c2ec9","src/aarch64/mempolicy.rs":"681f303e37dec8bd380839efbe128e2b598579cf51c1d701e350a09731dab597","src/aarch64/net.rs":"099551fc0ad3c49601bdd439cc8cc9d3c7ebf9e89662371001ede2006dbd788c","src/aarch64/netlink.rs":"9726aae5a1439464fb09c2c0070c9dd0e5cc6144a60bf6bd0313a33bca76b6e5","src/aarch64/prctl.rs":"55a01f9f3079973e55decb7784c026e5ba3d38f696a6c9ca01d55b59c4b497a5","src/aarch64/ptrace.rs":"b6598c52095c22614bbe32ff9e8615213c2bf11e79ccfcdc68332e25fec33103","src/aarch64/system.rs":"9911ec5e83ed6238635961ce8847c4ccb912b870b2aec62c7c0c49b3815edaea","src/aarch64/xdp.rs":"4b641b788572801f897d630d8cd7674f4317a788391377c653471a43eb9e2e41","src/arm/bootparam.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/arm/btrfs.rs":"e154a51572433b3ad63bc97c6b72bed4b5493f39340f535d9bf2914c9a114848","src/arm/elf_uapi.rs":"9f75471080cab8116c96e798ce99dbe84094a30470fac0bb99ec360e1a86d91c","src/arm/errno.rs":"e85f33ec329b3722e0973d2f61cb4ba9c4e751f261d4aa30fcde7812d8cf5b59","src/arm/general.rs":"7d4203553bd3025fd4071165c2bdb2d7c11aab17601fa77918f20d1b03a0e7e1","src/arm/if_arp.rs":"cbbf09532cead6f957db98b071cb495f3124b9f96451d1269abc870e7ec78aca","src/arm/if_ether.rs":"1cddb97b8046f9f9f975da2f2fc17719beeec62387ce1efff20420aa7dce6e47","src/arm/if_packet.rs":"0d38538d2bc6560dfa9afe295cc7df81cc08d36bec5a17037c18b11582802342","src/arm/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/arm/io_uring.rs":"97a62ab32c1638f92f142cdf34f54582afa5de48d3ffcb9b1d7704fb47e5d5fb","src/arm/ioctl.rs":"f1ffaa57f0064c101c03b7a460c1066a24e3c4cacb08f12e3110cfddad9839be","src/arm/landlock.rs":"63cf0beab0d7201cc1f9ba64bb88a1c0c1967a7569028e47f2b9a5adf6562d7b","src/arm/loop_device.rs":"8e2488bcd0cb17b1da7c80cf596e7a36da2f852a5c1aa99113c4ebfd99d8944e","src/arm/mempolicy.rs":"681f303e37dec8bd380839efbe128e2b598579cf51c1d701e350a09731dab597","src/arm/net.rs":"35dec69066101494d3a51550d4bc6d3b196762c4af6a45363b0d2c424c8c244e","src/arm/netlink.rs":"50136d96142218855bed2f07fcab8d3340421b6f5c41f0dadb540bcbd09c530b","src/arm/prctl.rs":"ae2a621ead96da1a4bda7f03a26be8c3995980bedae768f7ba4fbf2e421f11e6","src/arm/ptrace.rs":"f4ef5e831e9c4bbf888f900b4b32e878af9e6902eb25b0622fc8702eeb6c3a1d","src/arm/system.rs":"d12f5ce01869a644d6a2203ab4a6582224b91159971f6e1c508322771eee3fd9","src/arm/xdp.rs":"d49ad91c3d1e4210d4113616cd7a9fbc6144778adcf7a1c0aa24ec60438dd6a7","src/csky/bootparam.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/csky/btrfs.rs":"0cb7c87637281eadf5bce2850b960a77d31fae3a5cc9cc3f2d8a6686bbe93a55","src/csky/elf_uapi.rs":"f12edb1433ad3aa003b0871b49323ce62dbea2cf0fc10dcf5cc2edee2a32c61d","src/csky/errno.rs":"e85f33ec329b3722e0973d2f61cb4ba9c4e751f261d4aa30fcde7812d8cf5b59","src/csky/general.rs":"b8a836347b0c1189a1e10790c1727ac06c3744de62992b557435f5dd0d142ead","src/csky/if_arp.rs":"4a1d594324b850d720802dbbd2fa3be9a90020d537df26411398707407059051","src/csky/if_ether.rs":"1e82fb958b1af7cf0c8ed892992460f642c2b71fc1bc0a4a4d7ed5d554171b34","src/csky/if_packet.rs":"3ab8ae11f14cd052039deb82db5b0c56d98f725565cdb277b29a3157ab33d137","src/csky/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/csky/io_uring.rs":"a8722e2989ea70609351412ec88441fc59b3af5a0515ba1026f33713a782ca3f","src/csky/ioctl.rs":"32d4f29db28bd5bfd19cdcd80e40b48388f2fc63c9ecb0bc683479288f920727","src/csky/landlock.rs":"e81abc9653057eb320fa54689b3b74c823a5eed0983fdfb0bea5b696d37d6dec","src/csky/loop_device.rs":"33cac35e4ba00c6b25837da83aa39ac207d41f1aa114445cebb4d56d99095c38","src/csky/mempolicy.rs":"681f303e37dec8bd380839efbe128e2b598579cf51c1d701e350a09731dab597","src/csky/net.rs":"c6d4cb4e601e2d11e153af195f4e35304b49c4b793b34b8bf07ab2ec418934cd","src/csky/netlink.rs":"446added2448cc758ba79b806f771fdd11f61c63544d468a6888ccb5375e3d7b","src/csky/prctl.rs":"5f4c9fac68aa94761d2304abf2c60215f84f96ef610e7aa4ec37045331f228ee","src/csky/ptrace.rs":"bf70586bf59bc78fc822cf1117f30a51f12f0273c3ac63c8edd79daf7d939e72","src/csky/system.rs":"c2d59a91afb4818f159e75fdef77a64547d2f6efeb960b046472867c29ad8e0d","src/csky/xdp.rs":"d67bc7160dc9eff56b3abeeb8d2f33a44ad3ebbf7758ee71a34df0d00d8ee507","src/elf.rs":"cf52faaf1ef03f7fa807b2b32dc5af430df92d887adc36248eabd7de2acc722e","src/lib.rs":"95674b5f391503e57f1f50e8e60ade51ccbd2c73d0af5768206d138793bae914","src/loongarch64/bootparam.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/loongarch64/btrfs.rs":"d99253898cb7d740fd092e55d4aecab49085562f9cb6c7df02bcb6b7f92714c1","src/loongarch64/elf_uapi.rs":"0ef1d5d3e94f9d3ceb608b5c3acad4bc4c5c71faa76edc4788dab695c4bc6c3d","src/loongarch64/errno.rs":"e85f33ec329b3722e0973d2f61cb4ba9c4e751f261d4aa30fcde7812d8cf5b59","src/loongarch64/general.rs":"86a83d01eee247afbf0dce2aeea85b1fc09f10a548a2b56069c52fd3edcb2f33","src/loongarch64/if_arp.rs":"34488889e30d3d6b8276abfd353b979e04a191e84761c3e3a49afdcff9dbd490","src/loongarch64/if_ether.rs":"3ecc9554b8ee2dbd8cf3212c110bfc5f592c6d397b2c045eefd5dbf31d8f02fd","src/loongarch64/if_packet.rs":"46130fd167898897fd17dd01b273380c7ebf51b86393bc9a4c079e29ee65d095","src/loongarch64/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/loongarch64/io_uring.rs":"7f9d7f55e12e6aa26329ef2c6fd09998b8d1ff62e4f89860951a3504ec50b1d2","src/loongarch64/ioctl.rs":"e0feddeba42a4f09122367b151955068976e7b20727b562e65286927a80090cc","src/loongarch64/landlock.rs":"1f39c4353f5e94507741a6bf6320af927370ecb2964270b6a3c5eeacf56a697c","src/loongarch64/loop_device.rs":"59294477669c525b370dff7fa743320bf1f655a0f2683d8351f636a4bc14924a","src/loongarch64/mempolicy.rs":"681f303e37dec8bd380839efbe128e2b598579cf51c1d701e350a09731dab597","src/loongarch64/net.rs":"791220ad54034cb4583c227d14dfba2091658b1d108f53123155d73902b11a11","src/loongarch64/netlink.rs":"1282943ec6b4ab14e92dbfc1d656cb220ee23f897993c869050adeeed8a38344","src/loongarch64/prctl.rs":"0261308513b537af3eeb3f17170d909a8dae90d0bde9d6254701e1006459ff28","src/loongarch64/ptrace.rs":"c9b804d29ed15efd5e3be11b2a1fb9e117088add07e8d3b028faa00a0f946f23","src/loongarch64/system.rs":"13f2522779df5269c645c63c65a4ef1c770651420a6c7c0d7cb119056a0e53d6","src/loongarch64/xdp.rs":"f48b56741819f7eca8e6fb217e5932b755fc74c2d5f77b1e68eb56a5ce0345b3","src/mips/bootparam.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/mips/btrfs.rs":"025385c0440471ba597b2b0c413c005642e7d14821652288d6753be29d2647db","src/mips/elf_uapi.rs":"6aa0a5d77a993d3625635a1fc295d157f52330ea1d8b0af8fd4493566230cb61","src/mips/errno.rs":"30175e96f4b46338d3db6eb01b6eb13f53da73e9e7f1efc629940f7a516ec1dd","src/mips/general.rs":"c8c4b9beea461bbb20243b1d359b896d01171a284e9ea09e474535ad2b92f494","src/mips/if_arp.rs":"cfdcda04fe2fe7e62f8406140aeaf61ce4083e8cfa6a54b8876160d56f2eba59","src/mips/if_ether.rs":"5d795a84e91dbed93e45a33ca2bec008f3c2f7bfb64fd36127642e0e7b3ffd76","src/mips/if_packet.rs":"78f5a451113ebdf17b0b913b94204bde1b75b9ea74d41a68d14d7e124c928284","src/mips/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/mips/io_uring.rs":"eb70326f2e993808b23fd1fbffe8f77bd32f47fab730a415cf8c91bcf231e532","src/mips/ioctl.rs":"ce6d107937d6823f1306ca677496d5a49bcdaa531b1ef3ddd405da858522f079","src/mips/landlock.rs":"d625922449c7c56a3bea31f90e056418feee79468cfbe3de1125d72d790b3a33","src/mips/loop_device.rs":"a24e0a54b9c8876b3999789a4d1fac55a75c3776fbc1342e9c4b3f5dec1eface","src/mips/mempolicy.rs":"cab62fffa947d1ca5cce42b3d2a4091eba3c398bc505cd6b745ce630cb7b8d91","src/mips/net.rs":"879b5143ec6945cc6faeb225e96b81810d53487d89aae54eff779041481d1dd1","src/mips/netlink.rs":"c271002573eb6ca7e04f35642836ee68d237291a3eca8ddc8c58c5ff8fe2445c","src/mips/prctl.rs":"f22b247c9398e36a11f42b061a4743b11b5d266e08737174d145817745bbb6ed","src/mips/ptrace.rs":"c9cbe182ed8f3d3e5c4d7a49190a515bc143abdbc44f6d320ef8e05a6a58f960","src/mips/system.rs":"a5c32e55a8d64767eb5ddfca02c2f9144797499ef319d2f3f2737f78b73b3831","src/mips/xdp.rs":"b5681fc7128d53811a18cc299236eaf5d735f09faf555dd60cdb79900d20054e","src/mips32r6/bootparam.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/mips32r6/btrfs.rs":"025385c0440471ba597b2b0c413c005642e7d14821652288d6753be29d2647db","src/mips32r6/elf_uapi.rs":"6aa0a5d77a993d3625635a1fc295d157f52330ea1d8b0af8fd4493566230cb61","src/mips32r6/errno.rs":"30175e96f4b46338d3db6eb01b6eb13f53da73e9e7f1efc629940f7a516ec1dd","src/mips32r6/general.rs":"c8c4b9beea461bbb20243b1d359b896d01171a284e9ea09e474535ad2b92f494","src/mips32r6/if_arp.rs":"cfdcda04fe2fe7e62f8406140aeaf61ce4083e8cfa6a54b8876160d56f2eba59","src/mips32r6/if_ether.rs":"5d795a84e91dbed93e45a33ca2bec008f3c2f7bfb64fd36127642e0e7b3ffd76","src/mips32r6/if_packet.rs":"78f5a451113ebdf17b0b913b94204bde1b75b9ea74d41a68d14d7e124c928284","src/mips32r6/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/mips32r6/io_uring.rs":"eb70326f2e993808b23fd1fbffe8f77bd32f47fab730a415cf8c91bcf231e532","src/mips32r6/ioctl.rs":"ce6d107937d6823f1306ca677496d5a49bcdaa531b1ef3ddd405da858522f079","src/mips32r6/landlock.rs":"d625922449c7c56a3bea31f90e056418feee79468cfbe3de1125d72d790b3a33","src/mips32r6/loop_device.rs":"a24e0a54b9c8876b3999789a4d1fac55a75c3776fbc1342e9c4b3f5dec1eface","src/mips32r6/mempolicy.rs":"cab62fffa947d1ca5cce42b3d2a4091eba3c398bc505cd6b745ce630cb7b8d91","src/mips32r6/net.rs":"879b5143ec6945cc6faeb225e96b81810d53487d89aae54eff779041481d1dd1","src/mips32r6/netlink.rs":"c271002573eb6ca7e04f35642836ee68d237291a3eca8ddc8c58c5ff8fe2445c","src/mips32r6/prctl.rs":"f22b247c9398e36a11f42b061a4743b11b5d266e08737174d145817745bbb6ed","src/mips32r6/ptrace.rs":"c9cbe182ed8f3d3e5c4d7a49190a515bc143abdbc44f6d320ef8e05a6a58f960","src/mips32r6/system.rs":"a5c32e55a8d64767eb5ddfca02c2f9144797499ef319d2f3f2737f78b73b3831","src/mips32r6/xdp.rs":"b5681fc7128d53811a18cc299236eaf5d735f09faf555dd60cdb79900d20054e","src/mips64/bootparam.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/mips64/btrfs.rs":"7f1bdf07f0328dea1927d22f5740d51cd1073dca65ffc663020a50b3668b9629","src/mips64/elf_uapi.rs":"ad018867dc4cec39054354c8e9b4ae2ec7b4063fd2679f5a5b1b4120025efd5a","src/mips64/errno.rs":"30175e96f4b46338d3db6eb01b6eb13f53da73e9e7f1efc629940f7a516ec1dd","src/mips64/general.rs":"7baf5f81831f2a99a9a4c83f6842498a26dcaed561704eaf29fe458240373c74","src/mips64/if_arp.rs":"fda48d84f7b8ffb1a176846400da0f38cd2bda7316ddfe52bc9e3efb4d7ef24b","src/mips64/if_ether.rs":"9f58c7c93b1253c7d27c835eb6496873d71a8961bc8f182652fd9b746e2320db","src/mips64/if_packet.rs":"2179d4cf8d319b435b45e031f9ca00e7dc3ad8bd32afd3372aa295293348208c","src/mips64/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/mips64/io_uring.rs":"dd7aee5e30eba440b2931f6c93ae9ffec0e92256e2d070b97c53a459921024ba","src/mips64/ioctl.rs":"6b0886101826e458641e009e69840548ada009e61c1655d45213e74ad69bd187","src/mips64/landlock.rs":"c0c81b3f31ddb9d23cd6fa7d4d9401bb7cd0a042f773046012cdafc5126fbd1f","src/mips64/loop_device.rs":"12b315dc82add6a88482aec6a7b40ddd28981368809caaea6b1a2bd95514a317","src/mips64/mempolicy.rs":"cab62fffa947d1ca5cce42b3d2a4091eba3c398bc505cd6b745ce630cb7b8d91","src/mips64/net.rs":"d26f80b118c868057f15eb3437a391974aa42c94ceba6383347d73bdd7e29fa1","src/mips64/netlink.rs":"9c2258e14618bb8126a2cac3ea83507710df9c0548210ea4ca4a3624c99cea26","src/mips64/prctl.rs":"5fcebce5067478a5acea08af54a1ace510126cc36178b1987744f9696728e166","src/mips64/ptrace.rs":"2b9d6d7eb6ad36434de83921a7444d4e96dc1d29c0327119aaf4fd98af6dff77","src/mips64/system.rs":"383fc8ec567510574fe443f64e00ab305d4c623ec8e27ba377c5035045ae7271","src/mips64/xdp.rs":"2628901cf97aad2656308c50e636232f826ea80fb95dedc35e8fdd7528290fac","src/mips64r6/bootparam.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/mips64r6/btrfs.rs":"7f1bdf07f0328dea1927d22f5740d51cd1073dca65ffc663020a50b3668b9629","src/mips64r6/elf_uapi.rs":"ad018867dc4cec39054354c8e9b4ae2ec7b4063fd2679f5a5b1b4120025efd5a","src/mips64r6/errno.rs":"30175e96f4b46338d3db6eb01b6eb13f53da73e9e7f1efc629940f7a516ec1dd","src/mips64r6/general.rs":"7baf5f81831f2a99a9a4c83f6842498a26dcaed561704eaf29fe458240373c74","src/mips64r6/if_arp.rs":"fda48d84f7b8ffb1a176846400da0f38cd2bda7316ddfe52bc9e3efb4d7ef24b","src/mips64r6/if_ether.rs":"9f58c7c93b1253c7d27c835eb6496873d71a8961bc8f182652fd9b746e2320db","src/mips64r6/if_packet.rs":"2179d4cf8d319b435b45e031f9ca00e7dc3ad8bd32afd3372aa295293348208c","src/mips64r6/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/mips64r6/io_uring.rs":"dd7aee5e30eba440b2931f6c93ae9ffec0e92256e2d070b97c53a459921024ba","src/mips64r6/ioctl.rs":"6b0886101826e458641e009e69840548ada009e61c1655d45213e74ad69bd187","src/mips64r6/landlock.rs":"c0c81b3f31ddb9d23cd6fa7d4d9401bb7cd0a042f773046012cdafc5126fbd1f","src/mips64r6/loop_device.rs":"12b315dc82add6a88482aec6a7b40ddd28981368809caaea6b1a2bd95514a317","src/mips64r6/mempolicy.rs":"cab62fffa947d1ca5cce42b3d2a4091eba3c398bc505cd6b745ce630cb7b8d91","src/mips64r6/net.rs":"d26f80b118c868057f15eb3437a391974aa42c94ceba6383347d73bdd7e29fa1","src/mips64r6/netlink.rs":"9c2258e14618bb8126a2cac3ea83507710df9c0548210ea4ca4a3624c99cea26","src/mips64r6/prctl.rs":"5fcebce5067478a5acea08af54a1ace510126cc36178b1987744f9696728e166","src/mips64r6/ptrace.rs":"2b9d6d7eb6ad36434de83921a7444d4e96dc1d29c0327119aaf4fd98af6dff77","src/mips64r6/system.rs":"383fc8ec567510574fe443f64e00ab305d4c623ec8e27ba377c5035045ae7271","src/mips64r6/xdp.rs":"2628901cf97aad2656308c50e636232f826ea80fb95dedc35e8fdd7528290fac","src/powerpc/bootparam.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/powerpc/btrfs.rs":"f4d1a1df24ba4ff4ff89b4588112618cb150fb82b91c5f7ee74dddd767322f9e","src/powerpc/elf_uapi.rs":"1a163df7a8c9d5ab35dca7ce36d9fbf122bd56131758944b99e96ba2901a4c8f","src/powerpc/errno.rs":"e85f33ec329b3722e0973d2f61cb4ba9c4e751f261d4aa30fcde7812d8cf5b59","src/powerpc/general.rs":"6ef54df99a9e03e790e3779da7a825541b978c2e3bf793347bbc1e9088e54355","src/powerpc/if_arp.rs":"050604f8efd2db495ee9c6a142ff4a27a8ba20b124eb518da5d92cd44f833e9d","src/powerpc/if_ether.rs":"e993d54173f9bd0aa47d7a4aab80ab0ba9734fa5748b1ef1afbf07cb29c132b2","src/powerpc/if_packet.rs":"7e88ba0314895901741a469149422854a23e1797084d9e86972a79eaa0052bdb","src/powerpc/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/powerpc/io_uring.rs":"059414cb1a0658251374e80733b7341f21720860e2f010df43a06f420d7ccce4","src/powerpc/ioctl.rs":"1579cf75e6db2a9d58487358583fd6c6e48512877069b85105d2c38c99fe1c27","src/powerpc/landlock.rs":"46e01ee6117c5e861b6aadea15b3214d2f8e76664eed8e235dd2db4d6f2bbb14","src/powerpc/loop_device.rs":"84bea59e4b6a2a32f4e69e420a2bee74ca34cb529c733270e0c207fce56f6f85","src/powerpc/mempolicy.rs":"681f303e37dec8bd380839efbe128e2b598579cf51c1d701e350a09731dab597","src/powerpc/net.rs":"970bd31e27779d7f48e70a8779d3254be2963f33ce2bdd3a3f258a0ec6aeedf4","src/powerpc/netlink.rs":"7d1bfe3452216da75f8f053b66d21848b235702e510bf092a0ef0106b5658418","src/powerpc/prctl.rs":"c71eb326c392d0708e6ca46af24c8f7640470daf87cb56b75c45993f5a95c209","src/powerpc/ptrace.rs":"ca312405df0e96b134e009107180a7bde2c1d1c77d73f36537620513db85beca","src/powerpc/system.rs":"b29b32ab84ab159591fd6c7d20bcf4f70f5d9ba684dacdc71b78cc10bf4ac2e5","src/powerpc/xdp.rs":"4674fd5ca58b4f5252ca2b0cfb2d5e11fed27cdd298176a25566c33d9943d96f","src/powerpc64/bootparam.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/powerpc64/btrfs.rs":"52e8502f9dad3e4b6675b24b38837848cc668ecfaf77fa1b34f8fc65f52dc66e","src/powerpc64/elf_uapi.rs":"f0a8ae864f47313208ee22e3492d585d9ee73e3a48bce2a6e0782e5c5372400e","src/powerpc64/errno.rs":"e85f33ec329b3722e0973d2f61cb4ba9c4e751f261d4aa30fcde7812d8cf5b59","src/powerpc64/general.rs":"dc7a5e7e5338da76b4524a156b45a4cc48837b4fcab846ae495e0a4e3997f27f","src/powerpc64/if_arp.rs":"3accfaa1e93f50b50bfe124b425d3172fb090cf3b09194eb7ef053c4495abf28","src/powerpc64/if_ether.rs":"5b14b3814148aea11b8d3d50413eca4cd74e4c8f1615a6bf19f3277ff74d7fbc","src/powerpc64/if_packet.rs":"27fb97298bd9d8794bb911d0dbd8c28f77c328b24c484806f0fd83510239df91","src/powerpc64/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/powerpc64/io_uring.rs":"fa65acd84301da245133d1fed5c3f257c45cce2784afb9da97c8fe5a24d83d99","src/powerpc64/ioctl.rs":"0f76ad745a4ea8ee0a0e659052a5416ef2262fabb141d8bc96af9fbe0e9c2136","src/powerpc64/landlock.rs":"02259389dd06dda68657a5aae466d810ad01c09df4d0b3dee00f156f01d57f4d","src/powerpc64/loop_device.rs":"b315a48663847a62628263d203d957f948016456282bb0c12a57627c67244f38","src/powerpc64/mempolicy.rs":"681f303e37dec8bd380839efbe128e2b598579cf51c1d701e350a09731dab597","src/powerpc64/net.rs":"9dd68052d340d871c7a04e9fcbc56dddc9b140d96fadd861de9905bee77f0d12","src/powerpc64/netlink.rs":"2278a8b6da17658f75e5a9a2e8704372239bd52ccd166960a46572436f78a1be","src/powerpc64/prctl.rs":"ed918c1aeb48a02cd4c7e8d17d082d131a53295d155dc7e1fffb33cfeeb2b32f","src/powerpc64/ptrace.rs":"078d6e21246af26ddd6040d31c8c6c4b0977e8a5879d1f742862c08ea7929ef7","src/powerpc64/system.rs":"d80d9027f8e9df4f660c4896c22cc2b3ac21048dcca92dff009785dcd2ec7266","src/powerpc64/xdp.rs":"07b9fc7bde6bfa2940352f8b760767f538c88a0171e342718502c9b80625b195","src/riscv32/bootparam.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/riscv32/btrfs.rs":"0cb7c87637281eadf5bce2850b960a77d31fae3a5cc9cc3f2d8a6686bbe93a55","src/riscv32/elf_uapi.rs":"f12edb1433ad3aa003b0871b49323ce62dbea2cf0fc10dcf5cc2edee2a32c61d","src/riscv32/errno.rs":"e85f33ec329b3722e0973d2f61cb4ba9c4e751f261d4aa30fcde7812d8cf5b59","src/riscv32/general.rs":"a203c30e3354262678ddb99a0189e140208c5dad7ebc5e84c658c26e164d5f00","src/riscv32/if_arp.rs":"9b500e45fe05abb41f8ddc41da37c82898ec1314a2a2bfce8fe70266942ebb57","src/riscv32/if_ether.rs":"1e82fb958b1af7cf0c8ed892992460f642c2b71fc1bc0a4a4d7ed5d554171b34","src/riscv32/if_packet.rs":"a53ee253f061cdfa518921bac15229be02bcfb786c249cdedf2b2b1a3dc14b91","src/riscv32/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/riscv32/io_uring.rs":"b6d3caad6fa594e219d4b954f587ab45cbc3325edb3a1b0cd070b34507ad3199","src/riscv32/ioctl.rs":"a0fb4b593acc6f4d657804c0e2486f1a8be4b86be6aa913ce6e2c029faa5f355","src/riscv32/landlock.rs":"e81abc9653057eb320fa54689b3b74c823a5eed0983fdfb0bea5b696d37d6dec","src/riscv32/loop_device.rs":"33cac35e4ba00c6b25837da83aa39ac207d41f1aa114445cebb4d56d99095c38","src/riscv32/mempolicy.rs":"681f303e37dec8bd380839efbe128e2b598579cf51c1d701e350a09731dab597","src/riscv32/net.rs":"f4363f0d92ebf6df520ee5f054713b2ca6622a153196d6ec5cc64f2cf1913b45","src/riscv32/netlink.rs":"446added2448cc758ba79b806f771fdd11f61c63544d468a6888ccb5375e3d7b","src/riscv32/prctl.rs":"5f4c9fac68aa94761d2304abf2c60215f84f96ef610e7aa4ec37045331f228ee","src/riscv32/ptrace.rs":"55f5b9d22daa36e8e9e6041b47428dd216015163150223acaa0add4a90d31764","src/riscv32/system.rs":"c2d59a91afb4818f159e75fdef77a64547d2f6efeb960b046472867c29ad8e0d","src/riscv32/xdp.rs":"d67bc7160dc9eff56b3abeeb8d2f33a44ad3ebbf7758ee71a34df0d00d8ee507","src/riscv64/bootparam.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/riscv64/btrfs.rs":"d99253898cb7d740fd092e55d4aecab49085562f9cb6c7df02bcb6b7f92714c1","src/riscv64/elf_uapi.rs":"0ef1d5d3e94f9d3ceb608b5c3acad4bc4c5c71faa76edc4788dab695c4bc6c3d","src/riscv64/errno.rs":"e85f33ec329b3722e0973d2f61cb4ba9c4e751f261d4aa30fcde7812d8cf5b59","src/riscv64/general.rs":"f06a9467485d62bf15cd3477fe6b7b2c70e8a3c202334a9e6879ee1fb605c0ff","src/riscv64/if_arp.rs":"34488889e30d3d6b8276abfd353b979e04a191e84761c3e3a49afdcff9dbd490","src/riscv64/if_ether.rs":"3ecc9554b8ee2dbd8cf3212c110bfc5f592c6d397b2c045eefd5dbf31d8f02fd","src/riscv64/if_packet.rs":"46130fd167898897fd17dd01b273380c7ebf51b86393bc9a4c079e29ee65d095","src/riscv64/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/riscv64/io_uring.rs":"7f9d7f55e12e6aa26329ef2c6fd09998b8d1ff62e4f89860951a3504ec50b1d2","src/riscv64/ioctl.rs":"23ae51c5f1a669c17f07c21348c96039e1415259c13fd15650d51dd231af80a5","src/riscv64/landlock.rs":"1f39c4353f5e94507741a6bf6320af927370ecb2964270b6a3c5eeacf56a697c","src/riscv64/loop_device.rs":"59294477669c525b370dff7fa743320bf1f655a0f2683d8351f636a4bc14924a","src/riscv64/mempolicy.rs":"681f303e37dec8bd380839efbe128e2b598579cf51c1d701e350a09731dab597","src/riscv64/net.rs":"791220ad54034cb4583c227d14dfba2091658b1d108f53123155d73902b11a11","src/riscv64/netlink.rs":"1282943ec6b4ab14e92dbfc1d656cb220ee23f897993c869050adeeed8a38344","src/riscv64/prctl.rs":"0261308513b537af3eeb3f17170d909a8dae90d0bde9d6254701e1006459ff28","src/riscv64/ptrace.rs":"51c14c4cda66e593d23262bfeb33aec9f6c2561bc25c3a7688aedec243172824","src/riscv64/system.rs":"13f2522779df5269c645c63c65a4ef1c770651420a6c7c0d7cb119056a0e53d6","src/riscv64/xdp.rs":"f48b56741819f7eca8e6fb217e5932b755fc74c2d5f77b1e68eb56a5ce0345b3","src/s390x/bootparam.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/s390x/btrfs.rs":"92b98dfb21d68a054b240d4f7a50a61c8a0a8fbe88d6e39de66de9ef27210192","src/s390x/elf_uapi.rs":"c8bcc11f5862981995e7bd6d2e33a28bbd9839ae006ab51953524ac5cc0ef4ba","src/s390x/errno.rs":"e85f33ec329b3722e0973d2f61cb4ba9c4e751f261d4aa30fcde7812d8cf5b59","src/s390x/general.rs":"10ef2f568bd346493374b466d1a300bf2337f2d4f0f98c15034065619c29f5b0","src/s390x/if_arp.rs":"450ec37929cee36f20c95fd5b0e6bded5d8816311e762a643ec9fc8e4ca16794","src/s390x/if_ether.rs":"903a885103057fdc9f8bcc3724718fdc89da23498b9d4b5bb08035187add5576","src/s390x/if_packet.rs":"a51cd99da78bace43620f63318fc9bd8ece97b6afd7bcaa91f8882b93d5bbeef","src/s390x/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/s390x/io_uring.rs":"2137f0f2fbd338ee7c8ab574f6bfba780573171c533d3b23f04421b490a5c01d","src/s390x/ioctl.rs":"099b84195bbfa5f39b464444dd449ba9460f52db1ccbc91e435a6cdf6d6c6d13","src/s390x/landlock.rs":"bd1429983cf8e4502b3c15331fa1554c10f45df2792619aa43dc3be250d55f1b","src/s390x/loop_device.rs":"e80aa801d2adf90b3cf58b816c7bc08847b7a3fa06b219d264b08490fdc7ec52","src/s390x/mempolicy.rs":"681f303e37dec8bd380839efbe128e2b598579cf51c1d701e350a09731dab597","src/s390x/net.rs":"56530970bbef4b497b62fffd3f8717120c010b3aaf3d3971f0b8c483a959979f","src/s390x/netlink.rs":"e81702e95b2d9c9b325bd976a56ef07d2edd2d1ce9fe44de9117c58fc47f6341","src/s390x/prctl.rs":"dfc62e3cb815ef493a625680ae49e45a6e294b8a9e52b8edc69f692867cbe6e7","src/s390x/ptrace.rs":"840dfd20253590306252d3264e554a06af8088f812ff94a6b29eee42e3d8435d","src/s390x/system.rs":"2522503ae0e3d2ca7bfed2ae8401243151e01f44ffa79bd43bbd085eb6cd0879","src/s390x/xdp.rs":"69e248e3a694a343401b102936718a7e371e542ce5766dc303437439d4ed1dd9","src/sparc/bootparam.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/sparc/btrfs.rs":"af8bc35753267542b7a901efbc73de9c1f143e0523c9632d7072f268b438e167","src/sparc/elf_uapi.rs":"3966345c7eac4a5d3179e8b38f684a0182485830293e2d498b2079392f03b839","src/sparc/errno.rs":"096e752f58d157c07c96e54d342e04774ce30a6bde47f0393d0f963d0545c768","src/sparc/general.rs":"448352bf6630592e65683df1951282b05e10c4c52bf21956a0e3a772d292fb14","src/sparc/if_arp.rs":"ddcbd27a856b693fb7c4cfce2cd7c3d51b9aa4b415d4de394a266595f3f53888","src/sparc/if_ether.rs":"89281ed933522c4dcee67805213e25bef7020ccd6058e788b6ef6c0aac04a147","src/sparc/if_packet.rs":"a73379a4c3aa4f8f61a5dfba134ed18b9649c5c3e3b148cefa27de6cadbc5db4","src/sparc/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/sparc/io_uring.rs":"d61b44d5bf8720fa3d0beef08d7e301d14371b421e15779b9089c1445ddf0ab0","src/sparc/ioctl.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/sparc/landlock.rs":"80db1eaa25b7da32f527ce50bee52316bff52b9eb131c8c56268eb508417c9bc","src/sparc/loop_device.rs":"57b2c3d96993238dd94413142bd054cdd53e403fc778cbc3999d9b537311ada8","src/sparc/mempolicy.rs":"e396dcdd6111ca302a872298611e99f7b5380cea1152eedd6a49859161bf9dec","src/sparc/net.rs":"da943e80c9b0595a70f01df8fd124a5ea82ac295416d900adec844b399872de1","src/sparc/netlink.rs":"68d7b24cd489bda059164567312535376693db5a916f587c2d3a2407390c03d9","src/sparc/prctl.rs":"41eba7ef8c2ab8fc8821ac57addd16bc660cb415df09ca87c06b267af78174dc","src/sparc/ptrace.rs":"fa8f3f9517f739de1b0d700c3db2ade5a689890e009d6edf2972f379e459ce0b","src/sparc/system.rs":"b855be79334599f842178e7a7345d3eea45f2b8e920ecfbafdf7032ca7668c19","src/sparc/xdp.rs":"92610ba80723f05890f5d6c13ce76acab0d57746cc2f16de7509408542cab095","src/sparc64/bootparam.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/sparc64/btrfs.rs":"3d14710cd413b66561890926eb28903cc9dba8761eabe365a5949061ebe7c08d","src/sparc64/elf_uapi.rs":"a614f3f57cbc5d31ef257dfbaa8a82fdf0fa9487a1b8aa20d450971c28b4aeba","src/sparc64/errno.rs":"096e752f58d157c07c96e54d342e04774ce30a6bde47f0393d0f963d0545c768","src/sparc64/general.rs":"4ffb2935ef28e07659aaf396c2f515f8761adc66f76fedf16e5b909a61597419","src/sparc64/if_arp.rs":"6d425b3a8c7e77fd08134a1e56cc675e3401fc99842e39756fac20e206c08e20","src/sparc64/if_ether.rs":"c230acb6589d8b6c2a6a9a979c08bb4a527bfeef0841819ac4acdd727f734398","src/sparc64/if_packet.rs":"bb01cfd1062eb4fd766ac751d969525c1792b77fefb6f85558bc60ce428cb993","src/sparc64/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/sparc64/io_uring.rs":"ad05efa481bf66fefa03b4b072a8e4b0d7145303b8e0ecdcc15eb49e5ab39644","src/sparc64/ioctl.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/sparc64/landlock.rs":"3c91d8942951a0c0326e4fb47484d84019a9d2c71bd3949821cb1c1902250695","src/sparc64/loop_device.rs":"39f9f616a1fa1fdc07178ac36c358011aebb504121b78d20b5f5887cc80d0b80","src/sparc64/mempolicy.rs":"e396dcdd6111ca302a872298611e99f7b5380cea1152eedd6a49859161bf9dec","src/sparc64/net.rs":"cf56c8136c04972cdbce58017481819cbcb321099e310ba8bc37248baa328013","src/sparc64/netlink.rs":"ae654cd9d69ee3b355c0d0a7c8bf0c31670a2ee3aa223637378494768e123436","src/sparc64/prctl.rs":"aacefd1f9c51256ee27f1540352e8faace14ec7d83480a43117ea16ede997e0e","src/sparc64/ptrace.rs":"f4c3d69252eac0a9da6810bc62e21733ac4ed4f0ac2b84a44bd79d8a4c63eaa9","src/sparc64/system.rs":"76f10f72470a44d5250f1d97b7b5ce37f34818549b5b54566c8efb117a4a9523","src/sparc64/xdp.rs":"b073ceda161b64b8887ad021b59531e57bcee021ac5c0204da4486af425dfa6e","src/x32/bootparam.rs":"227476871b2eae249140fdd903fcf77bc56dead009811edd5d4b91b8d7c8cf32","src/x32/btrfs.rs":"868f2ce6f0535277d9bd0b59c9b4c57cb7ab2bfbd99c61c303dd4fbe71b7b7a8","src/x32/elf_uapi.rs":"ead0ad8a74febb5419aff057f0d37b030898fa527d584f3174465248dbb3d715","src/x32/errno.rs":"e85f33ec329b3722e0973d2f61cb4ba9c4e751f261d4aa30fcde7812d8cf5b59","src/x32/general.rs":"b8cb56abb724a066eec0333585ba0de93b64a454769697f92fd5b30fba58a170","src/x32/if_arp.rs":"f70b86e2082c129f6dfb6005bba867b4739500b86fbd1028f8e4eb57e0683824","src/x32/if_ether.rs":"949df0237bfa4405b496e0abd94be7730cbf70e064a85c71718499ed1a6d3213","src/x32/if_packet.rs":"d8198a108cdf466209e12adc5f0e09e494af952c23beea6c5e20b4888ee2e3db","src/x32/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/x32/io_uring.rs":"7b417c4f67cbb267b8dd3db496e4629d5adc96684968ae4e515bed585256f6dc","src/x32/ioctl.rs":"23ae51c5f1a669c17f07c21348c96039e1415259c13fd15650d51dd231af80a5","src/x32/landlock.rs":"dba202ea27d174c3dc99f150784683f6070d4098c8872e4e74cd74d80e0e2fe2","src/x32/loop_device.rs":"cfad2363b9463d6cd4eac9c3612eb465f20b0d358e5c1b63e135f287f29faf7b","src/x32/mempolicy.rs":"681f303e37dec8bd380839efbe128e2b598579cf51c1d701e350a09731dab597","src/x32/net.rs":"063b678334694f94a80dc42b3d39f4f883a4cd759343f9c9b53f77e433c7c631","src/x32/netlink.rs":"e01f1db2f81f400a9bf035fcb18754325b4f333bad83f84b274b646a277aac21","src/x32/prctl.rs":"71131e1ae5be2656b7c89c7106810cb6d0b00cdb715185417469193c18068e0b","src/x32/ptrace.rs":"e226f671054a35fec83a6d3d6cc6875cfbf27653c220c0b4371e50045e4de015","src/x32/system.rs":"04169b0cef4934645ee5408be893fc46ea803f1ee8d05e8cbd655419a9574606","src/x32/xdp.rs":"2dabb01ac4a79df87e24c8dde0d56cb1ce0902d34d23578537b8e3fbf2c29135","src/x86/bootparam.rs":"63434df7a9b6a30831c98a4503c6a5f66616357d95377dbb7880f85025f37e04","src/x86/btrfs.rs":"e154a51572433b3ad63bc97c6b72bed4b5493f39340f535d9bf2914c9a114848","src/x86/elf_uapi.rs":"9f75471080cab8116c96e798ce99dbe84094a30470fac0bb99ec360e1a86d91c","src/x86/errno.rs":"e85f33ec329b3722e0973d2f61cb4ba9c4e751f261d4aa30fcde7812d8cf5b59","src/x86/general.rs":"cb7dd1c9f5ac8e8d062cde3e2468db6555cd5b6edcfee6d33a475fc6ec7c343b","src/x86/if_arp.rs":"edbbe35d00b1bfc753c368b6c30ad6cab202a2fb0bd238c23f544cb6510cedcf","src/x86/if_ether.rs":"1cddb97b8046f9f9f975da2f2fc17719beeec62387ce1efff20420aa7dce6e47","src/x86/if_packet.rs":"fa928d7b774bf5dbf5540be83df9378ae49c12762e9360a9383c1e8d6632de85","src/x86/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/x86/io_uring.rs":"d7c166e1fbfb49037d6842fff2bb3e875ea2a3106e115e00f52ffb4fa919a528","src/x86/ioctl.rs":"32d4f29db28bd5bfd19cdcd80e40b48388f2fc63c9ecb0bc683479288f920727","src/x86/landlock.rs":"63cf0beab0d7201cc1f9ba64bb88a1c0c1967a7569028e47f2b9a5adf6562d7b","src/x86/loop_device.rs":"8e2488bcd0cb17b1da7c80cf596e7a36da2f852a5c1aa99113c4ebfd99d8944e","src/x86/mempolicy.rs":"681f303e37dec8bd380839efbe128e2b598579cf51c1d701e350a09731dab597","src/x86/net.rs":"2130961d94ee9ce4ddf3f9bbd2d32f81a2ebd2067896fa37502a3c4ce5af30dd","src/x86/netlink.rs":"50136d96142218855bed2f07fcab8d3340421b6f5c41f0dadb540bcbd09c530b","src/x86/prctl.rs":"ae2a621ead96da1a4bda7f03a26be8c3995980bedae768f7ba4fbf2e421f11e6","src/x86/ptrace.rs":"d71255222d7e118cf033fb6eca16057d9c05ddb6716e28314bee9ed136049999","src/x86/system.rs":"d12f5ce01869a644d6a2203ab4a6582224b91159971f6e1c508322771eee3fd9","src/x86/xdp.rs":"d49ad91c3d1e4210d4113616cd7a9fbc6144778adcf7a1c0aa24ec60438dd6a7","src/x86_64/bootparam.rs":"c784c2ed71ae00d3295d84e5507e110487a58f1f727b1182cfbe42d7c1457a19","src/x86_64/btrfs.rs":"c764181ff0cf8a4f205d3d750d883c98d20cd9c4fc5472d1767a70bba992d06b","src/x86_64/elf_uapi.rs":"400ace05eeb97631aebaaa58a8b2cea13f890b4724b0b7a6c6c9c988800b1176","src/x86_64/errno.rs":"e85f33ec329b3722e0973d2f61cb4ba9c4e751f261d4aa30fcde7812d8cf5b59","src/x86_64/general.rs":"39b0026076314763c78cb032312c7ede0798dbdb88634aff611d6f49b54d1a2b","src/x86_64/if_arp.rs":"2c52552eb652fabe7f4e2bf645fe45fc3f30856df2eb1f0897145e3fbf2253f0","src/x86_64/if_ether.rs":"72c3bca4ca67a0d2eb09cd7ba1d189795a967ac18f863202d2e20a06cfea5753","src/x86_64/if_packet.rs":"b88d82cf2c553f5b69a51d42cfbf19687224fbd1d224cc13fa91b449760fa46d","src/x86_64/image.rs":"3e0ae05955af47b78365fa7746a6ff8aa950280593e2a81d474e3b210ba10d10","src/x86_64/io_uring.rs":"971fc97b9e758965359355f8998756959e17a4becacf41782b545078b2782431","src/x86_64/ioctl.rs":"23ae51c5f1a669c17f07c21348c96039e1415259c13fd15650d51dd231af80a5","src/x86_64/landlock.rs":"c13f98d0052c068d960927a5d8697c32bec38482ae6ccf76e6a578ed3c683010","src/x86_64/loop_device.rs":"87d253e3798cb735fe7f06d8d5b69e418ae52f6647c2392212655dd9066ea48c","src/x86_64/mempolicy.rs":"681f303e37dec8bd380839efbe128e2b598579cf51c1d701e350a09731dab597","src/x86_64/net.rs":"4b3a25c940db8edcec1d90f6951ebe18af4f835e79f6534bc2ec810eb7c96846","src/x86_64/netlink.rs":"b72ad457da5c1e6236374a1046822670ac1f94b2a05c85296211d9ad71285efa","src/x86_64/prctl.rs":"b2385b40761a1bf03228a02e624694952feeb15bf737d36fc5baa572ada2ee57","src/x86_64/ptrace.rs":"e416975668f58066d04d76ff76d0145f08c076d245f37ae8ba3f5aee19156931","src/x86_64/system.rs":"aec28f9e629426e93adfaf146dc64469b552dd161d4ec542f6a7a8a0948bc286","src/x86_64/xdp.rs":"e0370607aab4205e5abeaaf2bae192f23ea0527a04bfd6e66a658b17bd125e10"},"package":"cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"}
\ No newline at end of file
diff --git a/vendor/linux-raw-sys-0.9.4/CODE_OF_CONDUCT.md b/vendor/linux-raw-sys-0.9.4/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..affbd3d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/CODE_OF_CONDUCT.md
@@ -0,0 +1,49 @@
+# Contributor Covenant Code of Conduct
+
+*Note*: this Code of Conduct pertains to individuals' behavior. Please also see the [Organizational Code of Conduct][OCoC].
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the Bytecode Alliance CoC team at [[email protected]](mailto:[email protected]). The CoC team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The CoC team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the Bytecode Alliance's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
+
+[OCoC]: https://github.com/sunfishcode/linux-raw-sys/blob/main/ORG_CODE_OF_CONDUCT.md
+[homepage]: https://www.contributor-covenant.org
+[version]: https://www.contributor-covenant.org/version/1/4/
diff --git a/vendor/linux-raw-sys-0.9.4/COPYRIGHT b/vendor/linux-raw-sys-0.9.4/COPYRIGHT
new file mode 100644
index 0000000..719e3db
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/COPYRIGHT
@@ -0,0 +1,29 @@
+Short version for non-lawyers:
+
+`linux-raw-sys` is triple-licensed under Apache 2.0 with the LLVM Exception,
+Apache 2.0, and MIT terms.
+
+
+Longer version:
+
+Copyrights in the `linux-raw-sys` project are retained by their contributors.
+No copyright assignment is required to contribute to the `linux-raw-sys`
+project.
+
+Some files include code derived from Rust's `libstd`; see the comments in
+the code for details.
+
+Except as otherwise noted (below and/or in individual files), `linux-raw-sys`
+is licensed under:
+
+ - the Apache License, Version 2.0, with the LLVM Exception
+ <LICENSE-Apache-2.0_WITH_LLVM-exception> or
+ <http://llvm.org/foundation/relicensing/LICENSE.txt>
+ - the Apache License, Version 2.0
+ <LICENSE-APACHE> or
+ <http://www.apache.org/licenses/LICENSE-2.0>,
+ - or the MIT license
+ <LICENSE-MIT> or
+ <http://opensource.org/licenses/MIT>,
+
+at your option.
diff --git a/vendor/linux-raw-sys-0.9.4/Cargo.lock b/vendor/linux-raw-sys-0.9.4/Cargo.lock
new file mode 100644
index 0000000..bd0b947
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/Cargo.lock
@@ -0,0 +1,37 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "compiler_builtins"
+version = "0.1.151"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abc30f1766d387c35f2405e586d3e7a88230dc728ff78cd1d0bc59ae0b63154b"
+
+[[package]]
+name = "libc"
+version = "0.2.170"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.9.4"
+dependencies = [
+ "compiler_builtins",
+ "libc",
+ "rustc-std-workspace-core",
+ "static_assertions",
+]
+
+[[package]]
+name = "rustc-std-workspace-core"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa9c45b374136f52f2d6311062c7146bff20fec063c3f5d46a410bd937746955"
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
diff --git a/vendor/linux-raw-sys-0.9.4/Cargo.toml b/vendor/linux-raw-sys-0.9.4/Cargo.toml
new file mode 100644
index 0000000..3e7b6b0
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/Cargo.toml
@@ -0,0 +1,125 @@
+# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
+#
+# When uploading crates to the registry Cargo will automatically
+# "normalize" Cargo.toml files for maximal compatibility
+# with all versions of Cargo and also rewrite `path` dependencies
+# to registry (e.g., crates.io) dependencies.
+#
+# If you are reading this file be aware that the original Cargo.toml
+# will likely look very different (and much more reasonable).
+# See Cargo.toml.orig for the original contents.
+
+[package]
+edition = "2021"
+rust-version = "1.63"
+name = "linux-raw-sys"
+version = "0.9.4"
+authors = ["Dan Gohman <[email protected]>"]
+build = false
+exclude = [
+ "/gen",
+ "/.*",
+]
+autolib = false
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
+description = "Generated bindings for Linux's userspace API"
+documentation = "https://docs.rs/linux-raw-sys"
+readme = "README.md"
+keywords = [
+ "linux",
+ "uapi",
+ "ffi",
+]
+categories = ["external-ffi-bindings"]
+license = "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT"
+repository = "https://github.com/sunfishcode/linux-raw-sys"
+
+[package.metadata.docs.rs]
+features = [
+ "default",
+ "bootparam",
+ "btrfs",
+ "elf_uapi",
+ "image",
+ "ioctl",
+ "landlock",
+ "netlink",
+ "io_uring",
+ "if_arp",
+ "if_ether",
+ "if_packet",
+ "net",
+ "ptrace",
+ "prctl",
+ "elf",
+ "xdp",
+ "mempolicy",
+ "system",
+ "loop_device",
+]
+targets = [
+ "x86_64-unknown-linux-gnu",
+ "i686-unknown-linux-gnu",
+]
+
+[features]
+bootparam = []
+btrfs = []
+default = [
+ "std",
+ "general",
+ "errno",
+]
+elf = []
+elf_uapi = []
+errno = []
+general = []
+if_arp = []
+if_ether = []
+if_packet = []
+image = []
+io_uring = []
+ioctl = []
+landlock = []
+loop_device = []
+mempolicy = []
+net = []
+netlink = []
+no_std = []
+prctl = []
+ptrace = []
+rustc-dep-of-std = [
+ "core",
+ "compiler_builtins",
+ "no_std",
+]
+std = []
+system = []
+xdp = []
+
+[lib]
+name = "linux_raw_sys"
+path = "src/lib.rs"
+
+[dependencies.compiler_builtins]
+version = "0.1.49"
+optional = true
+
+[dependencies.core]
+version = "1.0.0"
+optional = true
+package = "rustc-std-workspace-core"
+
+[dev-dependencies.libc]
+version = "0.2.100"
+
+[dev-dependencies.static_assertions]
+version = "1.1.0"
+
+[lints.rust.unexpected_cfgs]
+level = "warn"
+priority = 0
+check-cfg = ['cfg(target_arch, values("xtensa"))']
diff --git a/vendor/errno-0.3.8/LICENSE-APACHE b/vendor/linux-raw-sys-0.9.4/LICENSE-APACHE
similarity index 100%
copy from vendor/errno-0.3.8/LICENSE-APACHE
copy to vendor/linux-raw-sys-0.9.4/LICENSE-APACHE
diff --git a/vendor/linux-raw-sys-0.9.4/LICENSE-Apache-2.0_WITH_LLVM-exception b/vendor/linux-raw-sys-0.9.4/LICENSE-Apache-2.0_WITH_LLVM-exception
new file mode 100644
index 0000000..f9d8195
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/LICENSE-Apache-2.0_WITH_LLVM-exception
@@ -0,0 +1,220 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+--- LLVM Exceptions to the Apache 2.0 License ----
+
+As an exception, if, as a result of your compiling your source code, portions
+of this Software are embedded into an Object form of such source code, you
+may redistribute such embedded portions in such Object form without complying
+with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
+
+In addition, if you combine or link compiled forms of this Software with
+software that is licensed under the GPLv2 ("Combined Software") and if a
+court of competent jurisdiction determines that the patent provision (Section
+3), the indemnity provision (Section 9) or other Section of the License
+conflicts with the conditions of the GPLv2, you may retroactively and
+prospectively choose to deem waived or otherwise exclude such Section(s) of
+the License, but only in their entirety and only with respect to the Combined
+Software.
+
diff --git a/vendor/linux-raw-sys-0.9.4/LICENSE-MIT b/vendor/linux-raw-sys-0.9.4/LICENSE-MIT
new file mode 100644
index 0000000..31aa793
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/LICENSE-MIT
@@ -0,0 +1,23 @@
+Permission is hereby granted, free of charge, to any
+person obtaining a copy of this software and associated
+documentation files (the "Software"), to deal in the
+Software without restriction, including without
+limitation the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice
+shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
+TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
+SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
diff --git a/vendor/linux-raw-sys-0.9.4/ORG_CODE_OF_CONDUCT.md b/vendor/linux-raw-sys-0.9.4/ORG_CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..6f4fb3f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/ORG_CODE_OF_CONDUCT.md
@@ -0,0 +1,143 @@
+# Bytecode Alliance Organizational Code of Conduct (OCoC)
+
+*Note*: this Code of Conduct pertains to organizations' behavior. Please also see the [Individual Code of Conduct](CODE_OF_CONDUCT.md).
+
+## Preamble
+
+The Bytecode Alliance (BA) welcomes involvement from organizations,
+including commercial organizations. This document is an
+*organizational* code of conduct, intended particularly to provide
+guidance to commercial organizations. It is distinct from the
+[Individual Code of Conduct (ICoC)](CODE_OF_CONDUCT.md), and does not
+replace the ICoC. This OCoC applies to any group of people acting in
+concert as a BA member or as a participant in BA activities, whether
+or not that group is formally incorporated in some jurisdiction.
+
+The code of conduct described below is not a set of rigid rules, and
+we did not write it to encompass every conceivable scenario that might
+arise. For example, it is theoretically possible there would be times
+when asserting patents is in the best interest of the BA community as
+a whole. In such instances, consult with the BA, strive for
+consensus, and interpret these rules with an intent that is generous
+to the community the BA serves.
+
+While we may revise these guidelines from time to time based on
+real-world experience, overall they are based on a simple principle:
+
+*Bytecode Alliance members should observe the distinction between
+ public community functions and private functions — especially
+ commercial ones — and should ensure that the latter support, or at
+ least do not harm, the former.*
+
+## Guidelines
+
+ * **Do not cause confusion about Wasm standards or interoperability.**
+
+ Having an interoperable WebAssembly core is a high priority for
+ the BA, and members should strive to preserve that core. It is fine
+ to develop additional non-standard features or APIs, but they
+ should always be clearly distinguished from the core interoperable
+ Wasm.
+
+ Treat the WebAssembly name and any BA-associated names with
+ respect, and follow BA trademark and branding guidelines. If you
+ distribute a customized version of software originally produced by
+ the BA, or if you build a product or service using BA-derived
+ software, use names that clearly distinguish your work from the
+ original. (You should still provide proper attribution to the
+ original, of course, wherever such attribution would normally be
+ given.)
+
+ Further, do not use the WebAssembly name or BA-associated names in
+ other public namespaces in ways that could cause confusion, e.g.,
+ in company names, names of commercial service offerings, domain
+ names, publicly-visible social media accounts or online service
+ accounts, etc. It may sometimes be reasonable, however, to
+ register such a name in a new namespace and then immediately donate
+ control of that account to the BA, because that would help the project
+ maintain its identity.
+
+ For further guidance, see the BA Trademark and Branding Policy
+ [TODO: create policy, then insert link].
+
+ * **Do not restrict contributors.** If your company requires
+ employees or contractors to sign non-compete agreements, those
+ agreements must not prevent people from participating in the BA or
+ contributing to related projects.
+
+ This does not mean that all non-compete agreements are incompatible
+ with this code of conduct. For example, a company may restrict an
+ employee's ability to solicit the company's customers. However, an
+ agreement must not block any form of technical or social
+ participation in BA activities, including but not limited to the
+ implementation of particular features.
+
+ The accumulation of experience and expertise in individual persons,
+ who are ultimately free to direct their energy and attention as
+ they decide, is one of the most important drivers of progress in
+ open source projects. A company that limits this freedom may hinder
+ the success of the BA's efforts.
+
+ * **Do not use patents as offensive weapons.** If any BA participant
+ prevents the adoption or development of BA technologies by
+ asserting its patents, that undermines the purpose of the
+ coalition. The collaboration fostered by the BA cannot include
+ members who act to undermine its work.
+
+ * **Practice responsible disclosure** for security vulnerabilities.
+ Use designated, non-public reporting channels to disclose technical
+ vulnerabilities, and give the project a reasonable period to
+ respond, remediate, and patch. [TODO: optionally include the
+ security vulnerability reporting URL here.]
+
+ Vulnerability reporters may patch their company's own offerings, as
+ long as that patching does not significantly delay the reporting of
+ the vulnerability. Vulnerability information should never be used
+ for unilateral commercial advantage. Vendors may legitimately
+ compete on the speed and reliability with which they deploy
+ security fixes, but withholding vulnerability information damages
+ everyone in the long run by risking harm to the BA project's
+ reputation and to the security of all users.
+
+ * **Respect the letter and spirit of open source practice.** While
+ there is not space to list here all possible aspects of standard
+ open source practice, some examples will help show what we mean:
+
+ * Abide by all applicable open source license terms. Do not engage
+ in copyright violation or misattribution of any kind.
+
+ * Do not claim others' ideas or designs as your own.
+
+ * When others engage in publicly visible work (e.g., an upcoming
+ demo that is coordinated in a public issue tracker), do not
+ unilaterally announce early releases or early demonstrations of
+ that work ahead of their schedule in order to secure private
+ advantage (such as marketplace advantage) for yourself.
+
+ The BA reserves the right to determine what constitutes good open
+ source practices and to take action as it deems appropriate to
+ encourage, and if necessary enforce, such practices.
+
+## Enforcement
+
+Instances of organizational behavior in violation of the OCoC may
+be reported by contacting the Bytecode Alliance CoC team at
+[[email protected]](mailto:[email protected]). The
+CoC team will review and investigate all complaints, and will respond
+in a way that it deems appropriate to the circumstances. The CoC team
+is obligated to maintain confidentiality with regard to the reporter of
+an incident. Further details of specific enforcement policies may be
+posted separately.
+
+When the BA deems an organization in violation of this OCoC, the BA
+will, at its sole discretion, determine what action to take. The BA
+will decide what type, degree, and duration of corrective action is
+needed, if any, before a violating organization can be considered for
+membership (if it was not already a member) or can have its membership
+reinstated (if it was a member and the BA canceled its membership due
+to the violation).
+
+In practice, the BA's first approach will be to start a conversation,
+with punitive enforcement used only as a last resort. Violations
+often turn out to be unintentional and swiftly correctable with all
+parties acting in good faith.
diff --git a/vendor/linux-raw-sys-0.9.4/README.md b/vendor/linux-raw-sys-0.9.4/README.md
new file mode 100644
index 0000000..b44ef22
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/README.md
@@ -0,0 +1,44 @@
+<div align="center">
+ <h1><code>linux-raw-sys</code></h1>
+
+ <p>
+ <strong>Generated bindings for Linux's userspace API</strong>
+ </p>
+
+ <p>
+ <a href="https://github.com/sunfishcode/linux-raw-sys/actions?query=workflow%3ACI"><img src="https://github.com/sunfishcode/linux-raw-sys/workflows/CI/badge.svg" alt="Github Actions CI Status" /></a>
+ <a href="https://bytecodealliance.zulipchat.com/#narrow/stream/206238-general"><img src="https://img.shields.io/badge/zulip-join_chat-brightgreen.svg" alt="zulip chat" /></a>
+ <a href="https://crates.io/crates/linux-raw-sys"><img src="https://img.shields.io/crates/v/linux-raw-sys.svg" alt="crates.io page" /></a>
+ <a href="https://docs.rs/linux-raw-sys"><img src="https://docs.rs/linux-raw-sys/badge.svg" alt="docs.rs docs" /></a>
+ </p>
+</div>
+
+This crate contains bindgen-generated bindings for Linux's userspace API.
+
+This is primarily of interest if you want to make raw system calls directly,
+which is tedious and error prone and not necessary for most use cases. For a
+minimal type-safe, memory-safe, and I/O-safe API to the Linux system calls
+built on these bindings, see the [rustix crate].
+
+The full bindings are quite large, so they've been split up into modules and
+cargo features. By default, `general` and `errno` are enabled, which provide
+most things needed by general-purpose code.
+
+To regenerate the generated bindings, run `cargo update && cd gen && cargo run --release`.
+
+## Similar crates
+
+This is similar to [linux-sys], except the bindings are generated offline,
+rather than in a build.rs, making downstream builds simpler. And, this crate
+has bindings for more headers, as well as supplementary definitions not
+exported by Linux's headers but nonetheless needed by userspace.
+
+# Minimum Supported Rust Version (MSRV)
+
+This crate currently works on the version of [Rust on Debian stable], which is
+currently Rust 1.63. This policy may change in the future, in minor version
+releases, so users using a fixed version of Rust should pin to a specific
+version of this crate.
+
+[linux-sys]: https://crates.io/crates/linux-sys
+[rustix crate]: https://github.com/bytecodealliance/rustix#linux-raw-syscall-support
diff --git a/vendor/linux-raw-sys-0.9.4/src/aarch64/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/bootparam.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/bootparam.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/aarch64/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/btrfs.rs
new file mode 100644
index 0000000..7c0ee93
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/btrfs.rs
@@ -0,0 +1,1868 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const _IOC_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/aarch64/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/elf_uapi.rs
new file mode 100644
index 0000000..bc3262c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/elf_uapi.rs
@@ -0,0 +1,524 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/aarch64/errno.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/errno.rs
new file mode 100644
index 0000000..5b018a2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/errno.rs
@@ -0,0 +1,135 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
diff --git a/vendor/linux-raw-sys-0.9.4/src/aarch64/general.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/general.rs
new file mode 100644
index 0000000..085c857
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/general.rs
@@ -0,0 +1,3187 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type cap_user_header_t = *mut __user_cap_header_struct;
+pub type cap_user_data_t = *mut __user_cap_data_struct;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+pub type old_sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type __fsword_t = __kernel_long_t;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fsid_t {
+pub val: [crate::ctypes::c_int; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __user_cap_header_struct {
+pub version: __u32,
+pub pid: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __user_cap_data_struct {
+pub effective: __u32,
+pub permitted: __u32,
+pub inheritable: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_cap_data {
+pub magic_etc: __le32,
+pub data: [vfs_cap_data__bindgen_ty_1; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_cap_data__bindgen_ty_1 {
+pub permitted: __le32,
+pub inheritable: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_ns_cap_data {
+pub magic_etc: __le32,
+pub data: [vfs_ns_cap_data__bindgen_ty_1; 2usize],
+pub rootid: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_ns_cap_data__bindgen_ty_1 {
+pub permitted: __le32,
+pub inheritable: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct f_owner_ex {
+pub type_: crate::ctypes::c_int,
+pub pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct flock {
+pub l_type: crate::ctypes::c_short,
+pub l_whence: crate::ctypes::c_short,
+pub l_start: __kernel_off_t,
+pub l_len: __kernel_off_t,
+pub l_pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct flock64 {
+pub l_type: crate::ctypes::c_short,
+pub l_whence: crate::ctypes::c_short,
+pub l_start: __kernel_loff_t,
+pub l_len: __kernel_loff_t,
+pub l_pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct open_how {
+pub flags: __u64,
+pub mode: __u64,
+pub resolve: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct epoll_event {
+pub events: __poll_t,
+pub data: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 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; 1usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaction {
+pub sa_handler: __sighandler_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_restorer: __sigrestore_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_flags: crate::ctypes::c_int,
+pub ss_size: __kernel_size_t,
+}
+#[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_errno: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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; 19usize],
+}
+#[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; 19usize],
+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; 19usize],
+pub c_ispeed: speed_t,
+pub c_ospeed: speed_t,
+}
+#[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_uchar,
+pub c_cc: [crate::ctypes::c_uchar; 8usize],
+}
+#[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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulong,
+pub d_off: crate::ctypes::c_long,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_ulong,
+pub st_ino: crate::ctypes::c_ulong,
+pub st_mode: crate::ctypes::c_uint,
+pub st_nlink: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_uint,
+pub st_gid: crate::ctypes::c_uint,
+pub st_rdev: crate::ctypes::c_ulong,
+pub __pad1: crate::ctypes::c_ulong,
+pub st_size: crate::ctypes::c_long,
+pub st_blksize: crate::ctypes::c_int,
+pub __pad2: crate::ctypes::c_int,
+pub st_blocks: crate::ctypes::c_long,
+pub st_atime: crate::ctypes::c_long,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_long,
+pub st_mtime_nsec: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_long,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub __unused4: crate::ctypes::c_uint,
+pub __unused5: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: __kernel_long_t,
+pub f_bsize: __kernel_long_t,
+pub f_blocks: __kernel_long_t,
+pub f_bfree: __kernel_long_t,
+pub f_bavail: __kernel_long_t,
+pub f_files: __kernel_long_t,
+pub f_ffree: __kernel_long_t,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __kernel_long_t,
+pub f_frsize: __kernel_long_t,
+pub f_flags: __kernel_long_t,
+pub f_spare: [__kernel_long_t; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: __kernel_long_t,
+pub f_bsize: __kernel_long_t,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __kernel_long_t,
+pub f_frsize: __kernel_long_t,
+pub f_flags: __kernel_long_t,
+pub f_spare: [__kernel_long_t; 4usize],
+}
+#[repr(C, packed(4))]
+#[derive(Debug, Copy, Clone)]
+pub struct compat_statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[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; 1usize],
+}
+#[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_restorer: __sigrestore_t,
+pub sa_mask: kernel_sigset_t,
+}
+pub const LINUX_VERSION_CODE: u32 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+pub const LINUX_VERSION_SUBLEVEL: u32 = 0;
+pub const AT_SYSINFO_EHDR: u32 = 33;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const AT_VECTOR_SIZE_ARCH: u32 = 2;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+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_DIRECTORY: u32 = 16384;
+pub const O_NOFOLLOW: u32 = 32768;
+pub const O_DIRECT: u32 = 65536;
+pub const O_LARGEFILE: u32 = 131072;
+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_CREAT: u32 = 64;
+pub const O_EXCL: u32 = 128;
+pub const O_NOCTTY: u32 = 256;
+pub const O_TRUNC: u32 = 512;
+pub const O_APPEND: u32 = 1024;
+pub const O_NONBLOCK: u32 = 2048;
+pub const O_DSYNC: u32 = 4096;
+pub const FASYNC: u32 = 8192;
+pub const O_NOATIME: u32 = 262144;
+pub const O_CLOEXEC: u32 = 524288;
+pub const __O_SYNC: u32 = 1048576;
+pub const O_SYNC: u32 = 1052672;
+pub const O_PATH: u32 = 2097152;
+pub const __O_TMPFILE: u32 = 4194304;
+pub const O_TMPFILE: u32 = 4210688;
+pub const O_NDELAY: u32 = 2048;
+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_GETLK: u32 = 5;
+pub const F_SETLK: u32 = 6;
+pub const F_SETLKW: u32 = 7;
+pub const F_SETOWN: u32 = 8;
+pub const F_GETOWN: u32 = 9;
+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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 = 2048;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+pub const PROT_READ: u32 = 1;
+pub const PROT_WRITE: u32 = 2;
+pub const PROT_EXEC: u32 = 4;
+pub const PROT_SEM: u32 = 8;
+pub const PROT_NONE: u32 = 0;
+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_ANONYMOUS: u32 = 32;
+pub const MAP_POPULATE: u32 = 32768;
+pub const MAP_NONBLOCK: u32 = 65536;
+pub const MAP_STACK: u32 = 131072;
+pub const MAP_HUGETLB: u32 = 262144;
+pub const MAP_SYNC: u32 = 524288;
+pub const MAP_FIXED_NOREPLACE: u32 = 1048576;
+pub const MAP_UNINITIALIZED: u32 = 67108864;
+pub const MLOCK_ONFAULT: u32 = 1;
+pub const MS_ASYNC: u32 = 1;
+pub const MS_INVALIDATE: u32 = 2;
+pub const MS_SYNC: u32 = 4;
+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_HWPOISON: u32 = 100;
+pub const MADV_SOFT_OFFLINE: u32 = 101;
+pub const MADV_MERGEABLE: u32 = 12;
+pub const MADV_UNMERGEABLE: u32 = 13;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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 MAP_GROWSDOWN: u32 = 256;
+pub const MAP_DENYWRITE: u32 = 2048;
+pub const MAP_EXECUTABLE: u32 = 4096;
+pub const MAP_LOCKED: u32 = 8192;
+pub const MAP_NORESERVE: u32 = 16384;
+pub const MCL_CURRENT: u32 = 1;
+pub const MCL_FUTURE: u32 = 2;
+pub const MCL_ONFAULT: u32 = 4;
+pub const SHADOW_STACK_SET_TOKEN: u32 = 1;
+pub const SHADOW_STACK_SET_MARKER: u32 = 2;
+pub const PROT_BTI: u32 = 16;
+pub const PROT_MTE: u32 = 32;
+pub const PKEY_DISABLE_EXECUTE: u32 = 4;
+pub const PKEY_DISABLE_READ: u32 = 8;
+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_DROPPABLE: u32 = 8;
+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 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 POLLWRNORM: u32 = 256;
+pub const POLLWRBAND: u32 = 512;
+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 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_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_RSS: u32 = 5;
+pub const RLIMIT_NPROC: u32 = 6;
+pub const RLIMIT_NOFILE: u32 = 7;
+pub const RLIMIT_MEMLOCK: u32 = 8;
+pub const RLIMIT_AS: u32 = 9;
+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_EXT: u32 = 7;
+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 SA_RESTORER: u32 = 67108864;
+pub const MINSIGSTKSZ: u32 = 5120;
+pub const SIGSTKSZ: u32 = 16384;
+pub const _NSIG: u32 = 64;
+pub const _NSIG_BPW: u32 = 64;
+pub const _NSIG_WORDS: u32 = 1;
+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 SIGABRT: u32 = 6;
+pub const SIGIOT: u32 = 6;
+pub const SIGBUS: u32 = 7;
+pub const SIGFPE: u32 = 8;
+pub const SIGKILL: u32 = 9;
+pub const SIGUSR1: u32 = 10;
+pub const SIGSEGV: u32 = 11;
+pub const SIGUSR2: u32 = 12;
+pub const SIGPIPE: u32 = 13;
+pub const SIGALRM: u32 = 14;
+pub const SIGTERM: u32 = 15;
+pub const SIGSTKFLT: u32 = 16;
+pub const SIGCHLD: u32 = 17;
+pub const SIGCONT: u32 = 18;
+pub const SIGSTOP: u32 = 19;
+pub const SIGTSTP: u32 = 20;
+pub const SIGTTIN: u32 = 21;
+pub const SIGTTOU: u32 = 22;
+pub const SIGURG: u32 = 23;
+pub const SIGXCPU: u32 = 24;
+pub const SIGXFSZ: u32 = 25;
+pub const SIGVTALRM: u32 = 26;
+pub const SIGPROF: u32 = 27;
+pub const SIGWINCH: u32 = 28;
+pub const SIGIO: u32 = 29;
+pub const SIGPOLL: u32 = 29;
+pub const SIGPWR: u32 = 30;
+pub const SIGSYS: u32 = 31;
+pub const SIGUNUSED: u32 = 31;
+pub const SIGRTMIN: u32 = 32;
+pub const SIGRTMAX: u32 = 64;
+pub const SA_NOCLDSTOP: u32 = 1;
+pub const SA_NOCLDWAIT: u32 = 2;
+pub const SA_SIGINFO: u32 = 4;
+pub const SA_UNSUPPORTED: u32 = 1024;
+pub const SA_EXPOSE_TAGBITS: u32 = 2048;
+pub const SA_ONSTACK: u32 = 134217728;
+pub const SA_RESTART: u32 = 268435456;
+pub const SA_NODEFER: u32 = 1073741824;
+pub const SA_RESETHAND: u32 = 2147483648;
+pub const SA_NOMASK: u32 = 1073741824;
+pub const SA_ONESHOT: u32 = 2147483648;
+pub const SIG_BLOCK: u32 = 0;
+pub const SIG_UNBLOCK: u32 = 1;
+pub const SIG_SETMASK: u32 = 2;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 = 19;
+pub const VINTR: u32 = 0;
+pub const VQUIT: u32 = 1;
+pub const VERASE: u32 = 2;
+pub const VKILL: u32 = 3;
+pub const VEOF: u32 = 4;
+pub const VTIME: u32 = 5;
+pub const VMIN: u32 = 6;
+pub const VSWTC: u32 = 7;
+pub const VSTART: u32 = 8;
+pub const VSTOP: u32 = 9;
+pub const VSUSP: u32 = 10;
+pub const VEOL: u32 = 11;
+pub const VREPRINT: u32 = 12;
+pub const VDISCARD: u32 = 13;
+pub const VWERASE: u32 = 14;
+pub const VLNEXT: u32 = 15;
+pub const VEOL2: u32 = 16;
+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 TOSTOP: u32 = 256;
+pub const ECHOCTL: u32 = 512;
+pub const ECHOPRT: u32 = 1024;
+pub const ECHOKE: u32 = 2048;
+pub const FLUSHO: u32 = 4096;
+pub const PENDIN: u32 = 16384;
+pub const IEXTEN: u32 = 32768;
+pub const EXTPROC: u32 = 65536;
+pub const TCSANOW: u32 = 0;
+pub const TCSADRAIN: u32 = 1;
+pub const TCSAFLUSH: u32 = 2;
+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 TIOCSER_TEMT: u32 = 1;
+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 = 8;
+pub const TIOCM_SR: u32 = 16;
+pub const TIOCM_CTS: u32 = 32;
+pub const TIOCM_CAR: u32 = 64;
+pub const TIOCM_RNG: u32 = 128;
+pub const TIOCM_DSR: u32 = 256;
+pub const TIOCM_CD: u32 = 64;
+pub const TIOCM_RI: u32 = 128;
+pub const TIOCM_OUT1: u32 = 8192;
+pub const TIOCM_OUT2: u32 = 16384;
+pub const TIOCM_LOOP: u32 = 32768;
+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 UIO_FASTIOV: u32 = 8;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const __NR_io_setup: u32 = 0;
+pub const __NR_io_destroy: u32 = 1;
+pub const __NR_io_submit: u32 = 2;
+pub const __NR_io_cancel: u32 = 3;
+pub const __NR_io_getevents: u32 = 4;
+pub const __NR_setxattr: u32 = 5;
+pub const __NR_lsetxattr: u32 = 6;
+pub const __NR_fsetxattr: u32 = 7;
+pub const __NR_getxattr: u32 = 8;
+pub const __NR_lgetxattr: u32 = 9;
+pub const __NR_fgetxattr: u32 = 10;
+pub const __NR_listxattr: u32 = 11;
+pub const __NR_llistxattr: u32 = 12;
+pub const __NR_flistxattr: u32 = 13;
+pub const __NR_removexattr: u32 = 14;
+pub const __NR_lremovexattr: u32 = 15;
+pub const __NR_fremovexattr: u32 = 16;
+pub const __NR_getcwd: u32 = 17;
+pub const __NR_lookup_dcookie: u32 = 18;
+pub const __NR_eventfd2: u32 = 19;
+pub const __NR_epoll_create1: u32 = 20;
+pub const __NR_epoll_ctl: u32 = 21;
+pub const __NR_epoll_pwait: u32 = 22;
+pub const __NR_dup: u32 = 23;
+pub const __NR_dup3: u32 = 24;
+pub const __NR_fcntl: u32 = 25;
+pub const __NR_inotify_init1: u32 = 26;
+pub const __NR_inotify_add_watch: u32 = 27;
+pub const __NR_inotify_rm_watch: u32 = 28;
+pub const __NR_ioctl: u32 = 29;
+pub const __NR_ioprio_set: u32 = 30;
+pub const __NR_ioprio_get: u32 = 31;
+pub const __NR_flock: u32 = 32;
+pub const __NR_mknodat: u32 = 33;
+pub const __NR_mkdirat: u32 = 34;
+pub const __NR_unlinkat: u32 = 35;
+pub const __NR_symlinkat: u32 = 36;
+pub const __NR_linkat: u32 = 37;
+pub const __NR_renameat: u32 = 38;
+pub const __NR_umount2: u32 = 39;
+pub const __NR_mount: u32 = 40;
+pub const __NR_pivot_root: u32 = 41;
+pub const __NR_nfsservctl: u32 = 42;
+pub const __NR_statfs: u32 = 43;
+pub const __NR_fstatfs: u32 = 44;
+pub const __NR_truncate: u32 = 45;
+pub const __NR_ftruncate: u32 = 46;
+pub const __NR_fallocate: u32 = 47;
+pub const __NR_faccessat: u32 = 48;
+pub const __NR_chdir: u32 = 49;
+pub const __NR_fchdir: u32 = 50;
+pub const __NR_chroot: u32 = 51;
+pub const __NR_fchmod: u32 = 52;
+pub const __NR_fchmodat: u32 = 53;
+pub const __NR_fchownat: u32 = 54;
+pub const __NR_fchown: u32 = 55;
+pub const __NR_openat: u32 = 56;
+pub const __NR_close: u32 = 57;
+pub const __NR_vhangup: u32 = 58;
+pub const __NR_pipe2: u32 = 59;
+pub const __NR_quotactl: u32 = 60;
+pub const __NR_getdents64: u32 = 61;
+pub const __NR_lseek: u32 = 62;
+pub const __NR_read: u32 = 63;
+pub const __NR_write: u32 = 64;
+pub const __NR_readv: u32 = 65;
+pub const __NR_writev: u32 = 66;
+pub const __NR_pread64: u32 = 67;
+pub const __NR_pwrite64: u32 = 68;
+pub const __NR_preadv: u32 = 69;
+pub const __NR_pwritev: u32 = 70;
+pub const __NR_sendfile: u32 = 71;
+pub const __NR_pselect6: u32 = 72;
+pub const __NR_ppoll: u32 = 73;
+pub const __NR_signalfd4: u32 = 74;
+pub const __NR_vmsplice: u32 = 75;
+pub const __NR_splice: u32 = 76;
+pub const __NR_tee: u32 = 77;
+pub const __NR_readlinkat: u32 = 78;
+pub const __NR_newfstatat: u32 = 79;
+pub const __NR_fstat: u32 = 80;
+pub const __NR_sync: u32 = 81;
+pub const __NR_fsync: u32 = 82;
+pub const __NR_fdatasync: u32 = 83;
+pub const __NR_sync_file_range: u32 = 84;
+pub const __NR_timerfd_create: u32 = 85;
+pub const __NR_timerfd_settime: u32 = 86;
+pub const __NR_timerfd_gettime: u32 = 87;
+pub const __NR_utimensat: u32 = 88;
+pub const __NR_acct: u32 = 89;
+pub const __NR_capget: u32 = 90;
+pub const __NR_capset: u32 = 91;
+pub const __NR_personality: u32 = 92;
+pub const __NR_exit: u32 = 93;
+pub const __NR_exit_group: u32 = 94;
+pub const __NR_waitid: u32 = 95;
+pub const __NR_set_tid_address: u32 = 96;
+pub const __NR_unshare: u32 = 97;
+pub const __NR_futex: u32 = 98;
+pub const __NR_set_robust_list: u32 = 99;
+pub const __NR_get_robust_list: u32 = 100;
+pub const __NR_nanosleep: u32 = 101;
+pub const __NR_getitimer: u32 = 102;
+pub const __NR_setitimer: u32 = 103;
+pub const __NR_kexec_load: u32 = 104;
+pub const __NR_init_module: u32 = 105;
+pub const __NR_delete_module: u32 = 106;
+pub const __NR_timer_create: u32 = 107;
+pub const __NR_timer_gettime: u32 = 108;
+pub const __NR_timer_getoverrun: u32 = 109;
+pub const __NR_timer_settime: u32 = 110;
+pub const __NR_timer_delete: u32 = 111;
+pub const __NR_clock_settime: u32 = 112;
+pub const __NR_clock_gettime: u32 = 113;
+pub const __NR_clock_getres: u32 = 114;
+pub const __NR_clock_nanosleep: u32 = 115;
+pub const __NR_syslog: u32 = 116;
+pub const __NR_ptrace: u32 = 117;
+pub const __NR_sched_setparam: u32 = 118;
+pub const __NR_sched_setscheduler: u32 = 119;
+pub const __NR_sched_getscheduler: u32 = 120;
+pub const __NR_sched_getparam: u32 = 121;
+pub const __NR_sched_setaffinity: u32 = 122;
+pub const __NR_sched_getaffinity: u32 = 123;
+pub const __NR_sched_yield: u32 = 124;
+pub const __NR_sched_get_priority_max: u32 = 125;
+pub const __NR_sched_get_priority_min: u32 = 126;
+pub const __NR_sched_rr_get_interval: u32 = 127;
+pub const __NR_restart_syscall: u32 = 128;
+pub const __NR_kill: u32 = 129;
+pub const __NR_tkill: u32 = 130;
+pub const __NR_tgkill: u32 = 131;
+pub const __NR_sigaltstack: u32 = 132;
+pub const __NR_rt_sigsuspend: u32 = 133;
+pub const __NR_rt_sigaction: u32 = 134;
+pub const __NR_rt_sigprocmask: u32 = 135;
+pub const __NR_rt_sigpending: u32 = 136;
+pub const __NR_rt_sigtimedwait: u32 = 137;
+pub const __NR_rt_sigqueueinfo: u32 = 138;
+pub const __NR_rt_sigreturn: u32 = 139;
+pub const __NR_setpriority: u32 = 140;
+pub const __NR_getpriority: u32 = 141;
+pub const __NR_reboot: u32 = 142;
+pub const __NR_setregid: u32 = 143;
+pub const __NR_setgid: u32 = 144;
+pub const __NR_setreuid: u32 = 145;
+pub const __NR_setuid: u32 = 146;
+pub const __NR_setresuid: u32 = 147;
+pub const __NR_getresuid: u32 = 148;
+pub const __NR_setresgid: u32 = 149;
+pub const __NR_getresgid: u32 = 150;
+pub const __NR_setfsuid: u32 = 151;
+pub const __NR_setfsgid: u32 = 152;
+pub const __NR_times: u32 = 153;
+pub const __NR_setpgid: u32 = 154;
+pub const __NR_getpgid: u32 = 155;
+pub const __NR_getsid: u32 = 156;
+pub const __NR_setsid: u32 = 157;
+pub const __NR_getgroups: u32 = 158;
+pub const __NR_setgroups: u32 = 159;
+pub const __NR_uname: u32 = 160;
+pub const __NR_sethostname: u32 = 161;
+pub const __NR_setdomainname: u32 = 162;
+pub const __NR_getrlimit: u32 = 163;
+pub const __NR_setrlimit: u32 = 164;
+pub const __NR_getrusage: u32 = 165;
+pub const __NR_umask: u32 = 166;
+pub const __NR_prctl: u32 = 167;
+pub const __NR_getcpu: u32 = 168;
+pub const __NR_gettimeofday: u32 = 169;
+pub const __NR_settimeofday: u32 = 170;
+pub const __NR_adjtimex: u32 = 171;
+pub const __NR_getpid: u32 = 172;
+pub const __NR_getppid: u32 = 173;
+pub const __NR_getuid: u32 = 174;
+pub const __NR_geteuid: u32 = 175;
+pub const __NR_getgid: u32 = 176;
+pub const __NR_getegid: u32 = 177;
+pub const __NR_gettid: u32 = 178;
+pub const __NR_sysinfo: u32 = 179;
+pub const __NR_mq_open: u32 = 180;
+pub const __NR_mq_unlink: u32 = 181;
+pub const __NR_mq_timedsend: u32 = 182;
+pub const __NR_mq_timedreceive: u32 = 183;
+pub const __NR_mq_notify: u32 = 184;
+pub const __NR_mq_getsetattr: u32 = 185;
+pub const __NR_msgget: u32 = 186;
+pub const __NR_msgctl: u32 = 187;
+pub const __NR_msgrcv: u32 = 188;
+pub const __NR_msgsnd: u32 = 189;
+pub const __NR_semget: u32 = 190;
+pub const __NR_semctl: u32 = 191;
+pub const __NR_semtimedop: u32 = 192;
+pub const __NR_semop: u32 = 193;
+pub const __NR_shmget: u32 = 194;
+pub const __NR_shmctl: u32 = 195;
+pub const __NR_shmat: u32 = 196;
+pub const __NR_shmdt: u32 = 197;
+pub const __NR_socket: u32 = 198;
+pub const __NR_socketpair: u32 = 199;
+pub const __NR_bind: u32 = 200;
+pub const __NR_listen: u32 = 201;
+pub const __NR_accept: u32 = 202;
+pub const __NR_connect: u32 = 203;
+pub const __NR_getsockname: u32 = 204;
+pub const __NR_getpeername: u32 = 205;
+pub const __NR_sendto: u32 = 206;
+pub const __NR_recvfrom: u32 = 207;
+pub const __NR_setsockopt: u32 = 208;
+pub const __NR_getsockopt: u32 = 209;
+pub const __NR_shutdown: u32 = 210;
+pub const __NR_sendmsg: u32 = 211;
+pub const __NR_recvmsg: u32 = 212;
+pub const __NR_readahead: u32 = 213;
+pub const __NR_brk: u32 = 214;
+pub const __NR_munmap: u32 = 215;
+pub const __NR_mremap: u32 = 216;
+pub const __NR_add_key: u32 = 217;
+pub const __NR_request_key: u32 = 218;
+pub const __NR_keyctl: u32 = 219;
+pub const __NR_clone: u32 = 220;
+pub const __NR_execve: u32 = 221;
+pub const __NR_mmap: u32 = 222;
+pub const __NR_fadvise64: u32 = 223;
+pub const __NR_swapon: u32 = 224;
+pub const __NR_swapoff: u32 = 225;
+pub const __NR_mprotect: u32 = 226;
+pub const __NR_msync: u32 = 227;
+pub const __NR_mlock: u32 = 228;
+pub const __NR_munlock: u32 = 229;
+pub const __NR_mlockall: u32 = 230;
+pub const __NR_munlockall: u32 = 231;
+pub const __NR_mincore: u32 = 232;
+pub const __NR_madvise: u32 = 233;
+pub const __NR_remap_file_pages: u32 = 234;
+pub const __NR_mbind: u32 = 235;
+pub const __NR_get_mempolicy: u32 = 236;
+pub const __NR_set_mempolicy: u32 = 237;
+pub const __NR_migrate_pages: u32 = 238;
+pub const __NR_move_pages: u32 = 239;
+pub const __NR_rt_tgsigqueueinfo: u32 = 240;
+pub const __NR_perf_event_open: u32 = 241;
+pub const __NR_accept4: u32 = 242;
+pub const __NR_recvmmsg: u32 = 243;
+pub const __NR_wait4: u32 = 260;
+pub const __NR_prlimit64: u32 = 261;
+pub const __NR_fanotify_init: u32 = 262;
+pub const __NR_fanotify_mark: u32 = 263;
+pub const __NR_name_to_handle_at: u32 = 264;
+pub const __NR_open_by_handle_at: u32 = 265;
+pub const __NR_clock_adjtime: u32 = 266;
+pub const __NR_syncfs: u32 = 267;
+pub const __NR_setns: u32 = 268;
+pub const __NR_sendmmsg: u32 = 269;
+pub const __NR_process_vm_readv: u32 = 270;
+pub const __NR_process_vm_writev: u32 = 271;
+pub const __NR_kcmp: u32 = 272;
+pub const __NR_finit_module: u32 = 273;
+pub const __NR_sched_setattr: u32 = 274;
+pub const __NR_sched_getattr: u32 = 275;
+pub const __NR_renameat2: u32 = 276;
+pub const __NR_seccomp: u32 = 277;
+pub const __NR_getrandom: u32 = 278;
+pub const __NR_memfd_create: u32 = 279;
+pub const __NR_bpf: u32 = 280;
+pub const __NR_execveat: u32 = 281;
+pub const __NR_userfaultfd: u32 = 282;
+pub const __NR_membarrier: u32 = 283;
+pub const __NR_mlock2: u32 = 284;
+pub const __NR_copy_file_range: u32 = 285;
+pub const __NR_preadv2: u32 = 286;
+pub const __NR_pwritev2: u32 = 287;
+pub const __NR_pkey_mprotect: u32 = 288;
+pub const __NR_pkey_alloc: u32 = 289;
+pub const __NR_pkey_free: u32 = 290;
+pub const __NR_statx: u32 = 291;
+pub const __NR_io_pgetevents: u32 = 292;
+pub const __NR_rseq: u32 = 293;
+pub const __NR_kexec_file_load: u32 = 294;
+pub const __NR_pidfd_send_signal: u32 = 424;
+pub const __NR_io_uring_setup: u32 = 425;
+pub const __NR_io_uring_enter: u32 = 426;
+pub const __NR_io_uring_register: u32 = 427;
+pub const __NR_open_tree: u32 = 428;
+pub const __NR_move_mount: u32 = 429;
+pub const __NR_fsopen: u32 = 430;
+pub const __NR_fsconfig: u32 = 431;
+pub const __NR_fsmount: u32 = 432;
+pub const __NR_fspick: u32 = 433;
+pub const __NR_pidfd_open: u32 = 434;
+pub const __NR_clone3: u32 = 435;
+pub const __NR_close_range: u32 = 436;
+pub const __NR_openat2: u32 = 437;
+pub const __NR_pidfd_getfd: u32 = 438;
+pub const __NR_faccessat2: u32 = 439;
+pub const __NR_process_madvise: u32 = 440;
+pub const __NR_epoll_pwait2: u32 = 441;
+pub const __NR_mount_setattr: u32 = 442;
+pub const __NR_quotactl_fd: u32 = 443;
+pub const __NR_landlock_create_ruleset: u32 = 444;
+pub const __NR_landlock_add_rule: u32 = 445;
+pub const __NR_landlock_restrict_self: u32 = 446;
+pub const __NR_memfd_secret: u32 = 447;
+pub const __NR_process_mrelease: u32 = 448;
+pub const __NR_futex_waitv: u32 = 449;
+pub const __NR_set_mempolicy_home_node: u32 = 450;
+pub const __NR_cachestat: u32 = 451;
+pub const __NR_fchmodat2: u32 = 452;
+pub const __NR_map_shadow_stack: u32 = 453;
+pub const __NR_futex_wake: u32 = 454;
+pub const __NR_futex_wait: u32 = 455;
+pub const __NR_futex_requeue: u32 = 456;
+pub const __NR_statmount: u32 = 457;
+pub const __NR_listmount: u32 = 458;
+pub const __NR_lsm_get_self_attr: u32 = 459;
+pub const __NR_lsm_set_self_attr: u32 = 460;
+pub const __NR_lsm_list_modules: u32 = 461;
+pub const __NR_mseal: u32 = 462;
+pub const __NR_setxattrat: u32 = 463;
+pub const __NR_getxattrat: u32 = 464;
+pub const __NR_listxattrat: u32 = 465;
+pub const __NR_removexattrat: u32 = 466;
+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 = 2048;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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 = 2048;
+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 = 526336;
+pub const TFD_CREATE_FLAGS: u32 = 526336;
+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 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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd {
+MEMBARRIER_CMD_QUERY = 0,
+MEMBARRIER_CMD_GLOBAL = 1,
+MEMBARRIER_CMD_GLOBAL_EXPEDITED = 2,
+MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 4,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED = 8,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 16,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 32,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 64,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 128,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 256,
+MEMBARRIER_CMD_GET_REGISTRATIONS = 512,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd_flag {
+MEMBARRIER_CMD_FLAG_CPU = 1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_get_policy_ex_arg__bindgen_ty_1 {
+pub version: __u8,
+pub v1: fscrypt_policy_v1,
+pub v2: fscrypt_policy_v2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_key_specifier__bindgen_ty_1 {
+pub __reserved: [__u8; 32usize],
+pub descriptor: [__u8; 8usize],
+pub identifier: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigval {
+pub sival_int: crate::ctypes::c_int,
+pub sival_ptr: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields {
+pub _kill: __sifields__bindgen_ty_1,
+pub _timer: __sifields__bindgen_ty_2,
+pub _rt: __sifields__bindgen_ty_3,
+pub _sigchld: __sifields__bindgen_ty_4,
+pub _sigfault: __sifields__bindgen_ty_5,
+pub _sigpoll: __sifields__bindgen_ty_6,
+pub _sigsys: __sifields__bindgen_ty_7,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields__bindgen_ty_5__bindgen_ty_1 {
+pub _trapno: crate::ctypes::c_int,
+pub _addr_lsb: crate::ctypes::c_short,
+pub _addr_bnd: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1,
+pub _addr_pkey: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2,
+pub _perf: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union siginfo__bindgen_ty_1 {
+pub __bindgen_anon_1: siginfo__bindgen_ty_1__bindgen_ty_1,
+pub _si_pad: [crate::ctypes::c_int; 32usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigevent__bindgen_ty_1 {
+pub _pad: [crate::ctypes::c_int; 12usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/aarch64/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/if_arp.rs
new file mode 100644
index 0000000..f214bb1
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/if_arp.rs
@@ -0,0 +1,2757 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 id: __u16,
+pub type_flags: __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 __BITS_PER_LONG_LONG: u32 = 64;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/aarch64/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/if_ether.rs
new file mode 100644
index 0000000..c451055
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/if_ether.rs
@@ -0,0 +1,170 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/aarch64/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/if_packet.rs
new file mode 100644
index 0000000..4593754
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/if_packet.rs
@@ -0,0 +1,311 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 id: __u16,
+pub type_flags: __u16,
+pub max_num_members: __u32,
+}
+pub const __LITTLE_ENDIAN: u32 = 1234;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/aarch64/image.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/image.rs
new file mode 100644
index 0000000..56b1ba4
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/image.rs
@@ -0,0 +1,80 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 arm64_image_header {
+pub code0: __le32,
+pub code1: __le32,
+pub text_offset: __le64,
+pub image_size: __le64,
+pub flags: __le64,
+pub res2: __le64,
+pub res3: __le64,
+pub res4: __le64,
+pub magic: __le32,
+pub res5: __le32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const ARM64_IMAGE_MAGIC: &[u8; 5] = b"ARMd\0";
+pub const ARM64_IMAGE_FLAG_BE_SHIFT: u32 = 0;
+pub const ARM64_IMAGE_FLAG_PAGE_SIZE_SHIFT: u32 = 1;
+pub const ARM64_IMAGE_FLAG_PHYS_BASE_SHIFT: u32 = 3;
+pub const ARM64_IMAGE_FLAG_BE_MASK: u32 = 1;
+pub const ARM64_IMAGE_FLAG_PAGE_SIZE_MASK: u32 = 3;
+pub const ARM64_IMAGE_FLAG_PHYS_BASE_MASK: u32 = 1;
+pub const ARM64_IMAGE_FLAG_LE: u32 = 0;
+pub const ARM64_IMAGE_FLAG_BE: u32 = 1;
+pub const ARM64_IMAGE_FLAG_PAGE_SIZE_4K: u32 = 1;
+pub const ARM64_IMAGE_FLAG_PAGE_SIZE_16K: u32 = 2;
+pub const ARM64_IMAGE_FLAG_PAGE_SIZE_64K: u32 = 3;
+pub const ARM64_IMAGE_FLAG_PHYS_BASE: u32 = 1;
diff --git a/vendor/linux-raw-sys-0.9.4/src/aarch64/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/io_uring.rs
new file mode 100644
index 0000000..e4844b6
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/io_uring.rs
@@ -0,0 +1,1336 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/aarch64/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/ioctl.rs
new file mode 100644
index 0000000..63131c9
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/ioctl.rs
@@ -0,0 +1,1502 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub const FIONREAD: u32 = 21531;
+pub const FIONBIO: u32 = 21537;
+pub const FIOCLEX: u32 = 21585;
+pub const FIONCLEX: u32 = 21584;
+pub const FIOASYNC: u32 = 21586;
+pub const FIOQSIZE: u32 = 21600;
+pub const TCXONC: u32 = 21514;
+pub const TCFLSH: u32 = 21515;
+pub const TIOCSCTTY: u32 = 21518;
+pub const TIOCSPGRP: u32 = 21520;
+pub const TIOCOUTQ: u32 = 21521;
+pub const TIOCSTI: u32 = 21522;
+pub const TIOCSWINSZ: u32 = 21524;
+pub const TIOCMGET: u32 = 21525;
+pub const TIOCMBIS: u32 = 21526;
+pub const TIOCMBIC: u32 = 21527;
+pub const TIOCMSET: u32 = 21528;
+pub const TIOCSSOFTCAR: u32 = 21530;
+pub const TIOCLINUX: u32 = 21532;
+pub const TIOCCONS: u32 = 21533;
+pub const TIOCSSERIAL: u32 = 21535;
+pub const TIOCPKT: u32 = 21536;
+pub const TIOCNOTTY: u32 = 21538;
+pub const TIOCSETD: u32 = 21539;
+pub const TIOCSBRK: u32 = 21543;
+pub const TIOCCBRK: u32 = 21544;
+pub const TIOCSRS485: u32 = 21551;
+pub const TIOCSPTLCK: u32 = 1074025521;
+pub const TIOCSIG: u32 = 1074025526;
+pub const TIOCVHANGUP: u32 = 21559;
+pub const TIOCSERCONFIG: u32 = 21587;
+pub const TIOCSERGWILD: u32 = 21588;
+pub const TIOCSERSWILD: u32 = 21589;
+pub const TIOCSLCKTRMIOS: u32 = 21591;
+pub const TIOCSERGSTRUCT: u32 = 21592;
+pub const TIOCSERGETLSR: u32 = 21593;
+pub const TIOCSERGETMULTI: u32 = 21594;
+pub const TIOCSERSETMULTI: u32 = 21595;
+pub const TIOCMIWAIT: u32 = 21596;
+pub const TCGETS: u32 = 21505;
+pub const TCGETA: u32 = 21509;
+pub const TCSBRK: u32 = 21513;
+pub const TCSBRKP: u32 = 21541;
+pub const TCSETA: u32 = 21510;
+pub const TCSETAF: u32 = 21512;
+pub const TCSETAW: u32 = 21511;
+pub const TIOCEXCL: u32 = 21516;
+pub const TIOCNXCL: u32 = 21517;
+pub const TIOCGDEV: u32 = 2147767346;
+pub const TIOCGEXCL: u32 = 2147767360;
+pub const TIOCGICOUNT: u32 = 21597;
+pub const TIOCGLCKTRMIOS: u32 = 21590;
+pub const TIOCGPGRP: u32 = 21519;
+pub const TIOCGPKT: u32 = 2147767352;
+pub const TIOCGPTLCK: u32 = 2147767353;
+pub const TIOCGPTN: u32 = 2147767344;
+pub const TIOCGPTPEER: u32 = 21569;
+pub const TIOCGRS485: u32 = 21550;
+pub const TIOCGSERIAL: u32 = 21534;
+pub const TIOCGSID: u32 = 21545;
+pub const TIOCGSOFTCAR: u32 = 21529;
+pub const TIOCGWINSZ: u32 = 21523;
+pub const TCGETS2: u32 = 2150388778;
+pub const TCGETX: u32 = 21554;
+pub const TCSETS: u32 = 21506;
+pub const TCSETS2: u32 = 1076646955;
+pub const TCSETSF: u32 = 21508;
+pub const TCSETSF2: u32 = 1076646957;
+pub const TCSETSW: u32 = 21507;
+pub const TCSETSW2: u32 = 1076646956;
+pub const TCSETX: u32 = 21555;
+pub const TCSETXF: u32 = 21556;
+pub const TCSETXW: u32 = 21557;
+pub const TIOCGETD: u32 = 21540;
+pub const MTIOCGET: u32 = 2150657282;
+pub const BLKSSZGET: u32 = 4712;
+pub const BLKPBSZGET: u32 = 4731;
+pub const BLKROSET: u32 = 4701;
+pub const BLKROGET: u32 = 4702;
+pub const BLKRRPART: u32 = 4703;
+pub const BLKGETSIZE: u32 = 4704;
+pub const BLKFLSBUF: u32 = 4705;
+pub const BLKRASET: u32 = 4706;
+pub const BLKRAGET: u32 = 4707;
+pub const BLKFRASET: u32 = 4708;
+pub const BLKFRAGET: u32 = 4709;
+pub const BLKSECTSET: u32 = 4710;
+pub const BLKSECTGET: u32 = 4711;
+pub const BLKPG: u32 = 4713;
+pub const BLKBSZGET: u32 = 2148012656;
+pub const BLKBSZSET: u32 = 1074270833;
+pub const BLKGETSIZE64: u32 = 2148012658;
+pub const BLKTRACESETUP: u32 = 3225948787;
+pub const BLKTRACESTART: u32 = 4724;
+pub const BLKTRACESTOP: u32 = 4725;
+pub const BLKTRACETEARDOWN: u32 = 4726;
+pub const BLKDISCARD: u32 = 4727;
+pub const BLKIOMIN: u32 = 4728;
+pub const BLKIOOPT: u32 = 4729;
+pub const BLKALIGNOFF: u32 = 4730;
+pub const BLKDISCARDZEROES: u32 = 4732;
+pub const BLKSECDISCARD: u32 = 4733;
+pub const BLKROTATIONAL: u32 = 4734;
+pub const BLKZEROOUT: u32 = 4735;
+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 = 2148575745;
+pub const UFFDIO_WAKE: u32 = 2148575746;
+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 = 46849;
+pub const NS_GET_PARENT: u32 = 46850;
+pub const NS_GET_NSTYPE: u32 = 46851;
+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 = 35073;
+pub const SIOCSPGRP: u32 = 35074;
+pub const FIOGETOWN: u32 = 35075;
+pub const SIOCGPGRP: u32 = 35076;
+pub const SIOCATMARK: u32 = 35077;
+pub const SIOCGSTAMP: u32 = 35078;
+pub const TIOCINQ: u32 = 21531;
+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 = 1;
+pub const FIGETBSZ: u32 = 2;
+pub const FIFREEZE: u32 = 3221510263;
+pub const FITHAW: u32 = 3221510264;
+pub const FITRIM: u32 = 3222820985;
+pub const FICLONE: u32 = 1074041865;
+pub const FICLONERANGE: u32 = 1075876877;
+pub const FIDEDUPERANGE: u32 = 3222836278;
+pub const FS_IOC_GETFLAGS: u32 = 2148034049;
+pub const FS_IOC_SETFLAGS: u32 = 1074292226;
+pub const FS_IOC_GETVERSION: u32 = 2148038145;
+pub const FS_IOC_SETVERSION: u32 = 1074296322;
+pub const FS_IOC_FIEMAP: u32 = 3223348747;
+pub const FS_IOC32_GETFLAGS: u32 = 2147771905;
+pub const FS_IOC32_SETFLAGS: u32 = 1074030082;
+pub const FS_IOC32_GETVERSION: u32 = 2147776001;
+pub const FS_IOC32_SETVERSION: u32 = 1074034178;
+pub const FS_IOC_FSGETXATTR: u32 = 2149341215;
+pub const FS_IOC_FSSETXATTR: u32 = 1075599392;
+pub const FS_IOC_GETFSLABEL: u32 = 2164298801;
+pub const FS_IOC_SETFSLABEL: u32 = 1090556978;
+pub const EXT4_IOC_GETVERSION: u32 = 2148034051;
+pub const EXT4_IOC_SETVERSION: u32 = 1074292228;
+pub const EXT4_IOC_GETVERSION_OLD: u32 = 2148038145;
+pub const EXT4_IOC_SETVERSION_OLD: u32 = 1074296322;
+pub const EXT4_IOC_GETRSVSZ: u32 = 2148034053;
+pub const EXT4_IOC_SETRSVSZ: u32 = 1074292230;
+pub const EXT4_IOC_GROUP_EXTEND: u32 = 1074292231;
+pub const EXT4_IOC_MIGRATE: u32 = 26121;
+pub const EXT4_IOC_ALLOC_DA_BLKS: u32 = 26124;
+pub const EXT4_IOC_RESIZE_FS: u32 = 1074292240;
+pub const EXT4_IOC_SWAP_BOOT: u32 = 26129;
+pub const EXT4_IOC_PRECACHE_EXTENTS: u32 = 26130;
+pub const EXT4_IOC_CLEAR_ES_CACHE: u32 = 26152;
+pub const EXT4_IOC_GETSTATE: u32 = 1074030121;
+pub const EXT4_IOC_GET_ES_CACHE: u32 = 3223348778;
+pub const EXT4_IOC_CHECKPOINT: u32 = 1074030123;
+pub const EXT4_IOC_SHUTDOWN: u32 = 2147768445;
+pub const EXT4_IOC32_GETVERSION: u32 = 2147771907;
+pub const EXT4_IOC32_SETVERSION: u32 = 1074030084;
+pub const EXT4_IOC32_GETRSVSZ: u32 = 2147771909;
+pub const EXT4_IOC32_SETRSVSZ: u32 = 1074030086;
+pub const EXT4_IOC32_GROUP_EXTEND: u32 = 1074030087;
+pub const EXT4_IOC32_GETVERSION_OLD: u32 = 2147776001;
+pub const EXT4_IOC32_SETVERSION_OLD: u32 = 1074034178;
+pub const VIDIOC_SUBDEV_QUERYSTD: u32 = 2148030015;
+pub const AUTOFS_DEV_IOCTL_CLOSEMOUNT: u32 = 3222836085;
+pub const LIRC_SET_SEND_CARRIER: u32 = 1074030867;
+pub const AUTOFS_IOC_PROTOSUBVER: u32 = 2147783527;
+pub const PTP_SYS_OFFSET_PRECISE: u32 = 3225435400;
+pub const FSI_SCOM_WRITE: u32 = 3223352066;
+pub const ATM_GETCIRANGE: u32 = 1074815370;
+pub const DMA_BUF_SET_NAME_B: u32 = 1074291201;
+pub const RIO_CM_EP_GET_LIST_SIZE: u32 = 3221512961;
+pub const TUNSETPERSIST: u32 = 1074025675;
+pub const FS_IOC_GET_ENCRYPTION_POLICY: u32 = 1074554389;
+pub const CEC_RECEIVE: u32 = 3224920326;
+pub const MGSL_IOCGPARAMS: u32 = 2150657281;
+pub const ENI_SETMULT: u32 = 1074815335;
+pub const RIO_GET_EVENT_MASK: u32 = 2147773710;
+pub const LIRC_GET_MAX_TIMEOUT: u32 = 2147772681;
+pub const USBDEVFS_CLAIMINTERFACE: u32 = 2147767567;
+pub const CHIOMOVE: u32 = 1075077889;
+pub const SONYPI_IOCGBATFLAGS: u32 = 2147579399;
+pub const BTRFS_IOC_SYNC: u32 = 37896;
+pub const VIDIOC_TRY_FMT: u32 = 3234879040;
+pub const LIRC_SET_REC_MODE: u32 = 1074030866;
+pub const VIDIOC_DQEVENT: u32 = 2156418649;
+pub const RPMSG_DESTROY_EPT_IOCTL: u32 = 46338;
+pub const UVCIOC_CTRL_MAP: u32 = 3227546912;
+pub const VHOST_SET_BACKEND_FEATURES: u32 = 1074310949;
+pub const VHOST_VSOCK_SET_GUEST_CID: u32 = 1074311008;
+pub const UI_SET_KEYBIT: u32 = 1074025829;
+pub const LIRC_SET_REC_TIMEOUT: u32 = 1074030872;
+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 = 1074310930;
+pub const RIO_ENABLE_DOORBELL_RANGE: u32 = 1074294025;
+pub const VIDIOC_TRY_EXT_CTRLS: u32 = 3223344713;
+pub const LIRC_GET_REC_MODE: u32 = 2147772674;
+pub const PPGETTIME: u32 = 2148561045;
+pub const BTRFS_IOC_RM_DEV: u32 = 1342215179;
+pub const ATM_SETBACKEND: u32 = 1073897970;
+pub const FSL_HV_IOCTL_PARTITION_START: u32 = 3222318851;
+pub const FBIO_WAITEVENT: u32 = 18056;
+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 = 601;
+pub const NVME_IOCTL_SUBMIT_IO: u32 = 1076907586;
+pub const NILFS_IOCTL_SYNC: u32 = 2148036234;
+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 = 2147787781;
+pub const NS_GETPSTAT: u32 = 3222298977;
+pub const UI_SET_PROPBIT: u32 = 1074025838;
+pub const TUNSETFILTEREBPF: u32 = 2147767521;
+pub const RIO_MPORT_MAINT_COMPTAG_SET: u32 = 1074031874;
+pub const AUTOFS_DEV_IOCTL_VERSION: u32 = 3222836081;
+pub const WDIOC_SETOPTIONS: u32 = 2147768068;
+pub const VHOST_SCSI_SET_ENDPOINT: u32 = 1088991040;
+pub const MGSL_IOCGTXIDLE: u32 = 27907;
+pub const ATM_ADDLECSADDR: u32 = 1074815374;
+pub const FSL_HV_IOCTL_GETPROP: u32 = 3223891719;
+pub const FDGETPRM: u32 = 2149581316;
+pub const HIDIOCAPPLICATION: u32 = 18434;
+pub const ENI_MEMDUMP: u32 = 1074815328;
+pub const PTP_SYS_OFFSET2: u32 = 1128283406;
+pub const VIDIOC_SUBDEV_G_DV_TIMINGS: u32 = 3229898328;
+pub const DMA_BUF_SET_NAME_A: u32 = 1074029057;
+pub const PTP_PIN_GETFUNC: u32 = 3227532550;
+pub const PTP_SYS_OFFSET_EXTENDED: u32 = 3300932873;
+pub const DFL_FPGA_PORT_UINT_SET_IRQ: u32 = 1074312776;
+pub const RTC_EPOCH_READ: u32 = 2148036621;
+pub const VIDIOC_SUBDEV_S_SELECTION: u32 = 3225441854;
+pub const VIDIOC_QUERY_EXT_CTRL: u32 = 3236451943;
+pub const ATM_GETLECSADDR: u32 = 1074815376;
+pub const FSL_HV_IOCTL_PARTITION_STOP: u32 = 3221794564;
+pub const SONET_GETDIAG: u32 = 2147770644;
+pub const ATMMPC_DATA: u32 = 25049;
+pub const IPMICTL_UNREGISTER_FOR_CMD_CHANS: u32 = 2148296989;
+pub const HIDIOCGCOLLECTIONINDEX: u32 = 1075333136;
+pub const RPMSG_CREATE_EPT_IOCTL: u32 = 1076409601;
+pub const GPIOHANDLE_GET_LINE_VALUES_IOCTL: u32 = 3225465864;
+pub const UI_DEV_SETUP: u32 = 1079792899;
+pub const ISST_IF_IO_CMD: u32 = 1074331138;
+pub const RIO_MPORT_MAINT_READ_REMOTE: u32 = 2149084423;
+pub const VIDIOC_OMAP3ISP_HIST_CFG: u32 = 3224393412;
+pub const BLKGETNRZONES: u32 = 2147750533;
+pub const VIDIOC_G_MODULATOR: u32 = 3225703990;
+pub const VBG_IOCTL_WRITE_CORE_DUMP: u32 = 3223082515;
+pub const USBDEVFS_SETINTERFACE: u32 = 2148029700;
+pub const PPPIOCGCHAN: u32 = 2147775543;
+pub const EVIOCGVERSION: u32 = 2147763457;
+pub const VHOST_NET_SET_BACKEND: u32 = 1074310960;
+pub const USBDEVFS_REAPURBNDELAY: u32 = 1074287885;
+pub const RNDZAPENTCNT: u32 = 20996;
+pub const VIDIOC_G_PARM: u32 = 3234616853;
+pub const TUNGETDEVNETNS: u32 = 21731;
+pub const LIRC_SET_MEASURE_CARRIER_MODE: u32 = 1074030877;
+pub const VHOST_SET_VRING_ERR: u32 = 1074310946;
+pub const VDUSE_VQ_SETUP: u32 = 1075872020;
+pub const AUTOFS_IOC_SETTIMEOUT: u32 = 3221787492;
+pub const VIDIOC_S_FREQUENCY: u32 = 1076647481;
+pub const F2FS_IOC_SEC_TRIM_FILE: u32 = 1075377428;
+pub const FS_IOC_REMOVE_ENCRYPTION_KEY: u32 = 3225445912;
+pub const WDIOC_GETPRETIMEOUT: u32 = 2147768073;
+pub const USBDEVFS_DROP_PRIVILEGES: u32 = 1074025758;
+pub const BTRFS_IOC_SNAP_CREATE_V2: u32 = 1342215191;
+pub const VHOST_VSOCK_SET_RUNNING: u32 = 1074048865;
+pub const STP_SET_OPTIONS: u32 = 1074275586;
+pub const FBIO_RADEON_GET_MIRROR: u32 = 2148024323;
+pub const IVTVFB_IOC_DMA_FRAME: u32 = 1075336896;
+pub const IPMICTL_SEND_COMMAND: u32 = 2150131981;
+pub const VIDIOC_G_ENC_INDEX: u32 = 2283296332;
+pub const DFL_FPGA_FME_PORT_PR: u32 = 46720;
+pub const CHIOSVOLTAG: u32 = 1076912914;
+pub const ATM_SETESIF: u32 = 1074815373;
+pub const FW_CDEV_IOC_SEND_RESPONSE: u32 = 1075323652;
+pub const PMU_IOC_GET_MODEL: u32 = 2148024835;
+pub const JSIOCGBTNMAP: u32 = 2214619700;
+pub const USBDEVFS_HUB_PORTINFO: u32 = 2155894035;
+pub const VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS: u32 = 3222820363;
+pub const FDCLRPRM: u32 = 577;
+pub const BTRFS_IOC_SCRUB: u32 = 3288372251;
+pub const USBDEVFS_DISCONNECT: u32 = 21782;
+pub const TUNSETVNETBE: u32 = 1074025694;
+pub const ATMTCP_REMOVE: u32 = 24975;
+pub const VHOST_VDPA_GET_CONFIG: u32 = 2148052851;
+pub const PPPIOCGNPMODE: u32 = 3221779532;
+pub const FDGETDRVPRM: u32 = 2155872785;
+pub const TUNSETVNETLE: u32 = 1074025692;
+pub const PHN_SETREG: u32 = 1074294790;
+pub const PPPIOCDETACH: u32 = 1074033724;
+pub const MMTIMER_GETRES: u32 = 2148035841;
+pub const VIDIOC_SUBDEV_ENUMSTD: u32 = 3225966105;
+pub const PPGETFLAGS: u32 = 2147774618;
+pub const VDUSE_DEV_GET_FEATURES: u32 = 2148040977;
+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 = 2148052512;
+pub const MEDIA_IOC_ENUM_LINKS: u32 = 3223878658;
+pub const F2FS_IOC_PRECACHE_EXTENTS: u32 = 62735;
+pub const DFL_FPGA_PORT_DMA_MAP: u32 = 46659;
+pub const MGSL_IOCGXCTRL: u32 = 27926;
+pub const FW_CDEV_IOC_SEND_REQUEST: u32 = 1076372225;
+pub const SONYPI_IOCGBLUE: u32 = 2147579400;
+pub const F2FS_IOC_DECOMPRESS_FILE: u32 = 62743;
+pub const I2OHTML: u32 = 3224398089;
+pub const VFIO_GET_API_VERSION: u32 = 15204;
+pub const IDT77105_GETSTATZ: u32 = 1074815283;
+pub const I2OPARMSET: u32 = 3223873795;
+pub const TEE_IOC_CANCEL: u32 = 2148049924;
+pub const PTP_SYS_OFFSET_PRECISE2: u32 = 3225435409;
+pub const DFL_FPGA_PORT_RESET: u32 = 46656;
+pub const PPPIOCGASYNCMAP: u32 = 2147775576;
+pub const EVIOCGKEYCODE_V2: u32 = 2150122756;
+pub const DM_DEV_SET_GEOMETRY: u32 = 3241737487;
+pub const HIDIOCSUSAGE: u32 = 1075333132;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323664;
+pub const PTP_EXTTS_REQUEST: u32 = 1074806018;
+pub const SWITCHTEC_IOCTL_EVENT_CTL: u32 = 3223869251;
+pub const WDIOC_SETPRETIMEOUT: u32 = 3221509896;
+pub const VHOST_SCSI_CLEAR_ENDPOINT: u32 = 1088991041;
+pub const JSIOCGAXES: u32 = 2147576337;
+pub const HIDIOCSFLAG: u32 = 1074022415;
+pub const PTP_PEROUT_REQUEST2: u32 = 1077427468;
+pub const PPWDATA: u32 = 1073836166;
+pub const PTP_CLOCK_GETCAPS: u32 = 2152742145;
+pub const FDGETMAXERRS: u32 = 2148794894;
+pub const TUNSETQUEUE: u32 = 1074025689;
+pub const PTP_ENABLE_PPS: u32 = 1074019588;
+pub const SIOCSIFATMTCP: u32 = 24960;
+pub const CEC_ADAP_G_LOG_ADDRS: u32 = 2153537795;
+pub const ND_IOCTL_ARS_CAP: u32 = 3223342593;
+pub const NBD_SET_BLKSIZE: u32 = 43777;
+pub const NBD_SET_TIMEOUT: u32 = 43785;
+pub const VHOST_SCSI_GET_ABI_VERSION: u32 = 1074048834;
+pub const RIO_UNMAP_INBOUND: u32 = 1074294034;
+pub const ATM_QUERYLOOP: u32 = 1074815316;
+pub const DFL_FPGA_GET_API_VERSION: u32 = 46592;
+pub const USBDEVFS_WAIT_FOR_RESUME: u32 = 21795;
+pub const FBIO_CURSOR: u32 = 3228059144;
+pub const RNDCLEARPOOL: u32 = 20998;
+pub const VIDIOC_QUERYSTD: u32 = 2148030015;
+pub const DMA_BUF_IOCTL_SYNC: u32 = 1074291200;
+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 = 2150651402;
+pub const PTP_ENABLE_PPS2: u32 = 1074019597;
+pub const PCITEST_CLEAR_IRQ: u32 = 20496;
+pub const IPMICTL_SET_GETS_EVENTS_CMD: u32 = 2147772688;
+pub const BTRFS_IOC_DEVICES_READY: u32 = 2415957031;
+pub const JSIOCGAXMAP: u32 = 2151705138;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER: u32 = 2148541196;
+pub const FW_CDEV_IOC_SET_ISO_CHANNELS: u32 = 1074799383;
+pub const RTC_WIE_OFF: u32 = 28688;
+pub const PPGETMODE: u32 = 2147774616;
+pub const VIDIOC_DBG_G_REGISTER: u32 = 3224917584;
+pub const PTP_SYS_OFFSET: u32 = 1128283397;
+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 = 37894;
+pub const INOTIFY_IOC_SETNEXTWD: u32 = 1074022656;
+pub const SNAPSHOT_GET_IMAGE_SIZE: u32 = 2148021006;
+pub const TUNDETACHFILTER: u32 = 1074812118;
+pub const ND_IOCTL_CLEAR_ERROR: u32 = 3223342596;
+pub const IOC_PR_CLEAR: u32 = 1074819277;
+pub const SCIF_READFROM: u32 = 3223876362;
+pub const PPPIOCGDEBUG: u32 = 2147775553;
+pub const BLKGETZONESZ: u32 = 2147750532;
+pub const HIDIOCGUSAGES: u32 = 3491514387;
+pub const SONYPI_IOCGTEMP: u32 = 2147579404;
+pub const UI_SET_MSCBIT: u32 = 1074025832;
+pub const APM_IOC_SUSPEND: u32 = 16642;
+pub const BTRFS_IOC_TREE_SEARCH: u32 = 3489698833;
+pub const RTC_PLL_GET: u32 = 2149609489;
+pub const RIO_CM_EP_GET_LIST: u32 = 3221512962;
+pub const USBDEVFS_DISCSIGNAL: u32 = 2148553998;
+pub const LIRC_GET_MIN_TIMEOUT: u32 = 2147772680;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY: u32 = 2174244674;
+pub const DM_TARGET_MSG: u32 = 3241737486;
+pub const SONYPI_IOCGBAT1REM: u32 = 2147644931;
+pub const EVIOCSFF: u32 = 1076905344;
+pub const TUNSETGROUP: u32 = 1074025678;
+pub const EVIOCGKEYCODE: u32 = 2148025604;
+pub const KCOV_REMOTE_ENABLE: u32 = 1075340134;
+pub const ND_IOCTL_GET_CONFIG_SIZE: u32 = 3222031876;
+pub const FDEJECT: u32 = 602;
+pub const TUNSETOFFLOAD: u32 = 1074025680;
+pub const PPPIOCCONNECT: u32 = 1074033722;
+pub const ATM_ADDADDR: u32 = 1074815368;
+pub const VDUSE_DEV_INJECT_CONFIG_IRQ: u32 = 33043;
+pub const AUTOFS_DEV_IOCTL_ASKUMOUNT: u32 = 3222836093;
+pub const VHOST_VDPA_GET_STATUS: u32 = 2147594097;
+pub const CCISS_PASSTHRU: u32 = 3227009547;
+pub const MGSL_IOCCLRMODCOUNT: u32 = 27919;
+pub const TEE_IOC_SUPPL_SEND: u32 = 2148574215;
+pub const ATMARPD_CTRL: u32 = 25057;
+pub const UI_ABS_SETUP: u32 = 1075598596;
+pub const UI_DEV_DESTROY: u32 = 21762;
+pub const BTRFS_IOC_QUOTA_CTL: u32 = 3222311976;
+pub const RTC_AIE_ON: u32 = 28673;
+pub const AUTOFS_IOC_EXPIRE: u32 = 2165085029;
+pub const PPPIOCSDEBUG: u32 = 1074033728;
+pub const GPIO_V2_LINE_SET_VALUES_IOCTL: u32 = 3222320143;
+pub const PPPIOCSMRU: u32 = 1074033746;
+pub const CCISS_DEREGDISK: u32 = 16908;
+pub const UI_DEV_CREATE: u32 = 21761;
+pub const FUSE_DEV_IOC_CLONE: u32 = 2147804416;
+pub const BTRFS_IOC_START_SYNC: u32 = 2148045848;
+pub const NILFS_IOCTL_DELETE_CHECKPOINT: u32 = 1074294401;
+pub const SNAPSHOT_AVAIL_SWAP_SIZE: u32 = 2148021011;
+pub const DM_TABLE_CLEAR: u32 = 3241737482;
+pub const CCISS_GETINTINFO: u32 = 2148024834;
+pub const PPPIOCSASYNCMAP: u32 = 1074033751;
+pub const I2OEVTGET: u32 = 2154326283;
+pub const NVME_IOCTL_RESET: u32 = 20036;
+pub const PPYIELD: u32 = 28813;
+pub const NVME_IOCTL_IO64_CMD: u32 = 3226488392;
+pub const TUNSETCARRIER: u32 = 1074025698;
+pub const DM_DEV_WAIT: u32 = 3241737480;
+pub const RTC_WIE_ON: u32 = 28687;
+pub const MEDIA_IOC_DEVICE_INFO: u32 = 3238034432;
+pub const RIO_CM_CHAN_CREATE: u32 = 3221381891;
+pub const MGSL_IOCSPARAMS: u32 = 1076915456;
+pub const RTC_SET_TIME: u32 = 1076129802;
+pub const VHOST_RESET_OWNER: u32 = 44802;
+pub const IOC_OPAL_PSID_REVERT_TPR: u32 = 1091072232;
+pub const AUTOFS_DEV_IOCTL_OPENMOUNT: u32 = 3222836084;
+pub const UDF_GETEABLOCK: u32 = 2148035649;
+pub const VFIO_IOMMU_MAP_DMA: u32 = 15217;
+pub const VIDIOC_SUBSCRIBE_EVENT: u32 = 1075861082;
+pub const HIDIOCGFLAG: u32 = 2147764238;
+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 = 1074835969;
+pub const CCISS_GETFIRMVER: u32 = 2147762696;
+pub const ND_IOCTL_ARS_START: u32 = 3223342594;
+pub const PPPIOCSMRRU: u32 = 1074033723;
+pub const CEC_ADAP_S_LOG_ADDRS: u32 = 3227279620;
+pub const RPROC_GET_SHUTDOWN_ON_RELEASE: u32 = 2147792642;
+pub const DMA_HEAP_IOCTL_ALLOC: u32 = 3222816768;
+pub const PPSETTIME: u32 = 1074819222;
+pub const RTC_ALM_READ: u32 = 2149871624;
+pub const VDUSE_SET_API_VERSION: u32 = 1074299137;
+pub const RIO_MPORT_MAINT_WRITE_REMOTE: u32 = 1075342600;
+pub const VIDIOC_SUBDEV_S_CROP: u32 = 3224917564;
+pub const USBDEVFS_CONNECT: u32 = 21783;
+pub const SYNC_IOC_FILE_INFO: u32 = 3224911364;
+pub const ATMARP_MKIP: u32 = 25058;
+pub const VFIO_IOMMU_SPAPR_TCE_GET_INFO: u32 = 15216;
+pub const CCISS_GETHEARTBEAT: u32 = 2147762694;
+pub const ATM_RSTADDR: u32 = 1074815367;
+pub const NBD_SET_SIZE: u32 = 43778;
+pub const UDF_GETVOLIDENT: u32 = 2148035650;
+pub const GPIO_V2_LINE_GET_VALUES_IOCTL: u32 = 3222320142;
+pub const MGSL_IOCSTXIDLE: u32 = 27906;
+pub const FSL_HV_IOCTL_SETPROP: u32 = 3223891720;
+pub const BTRFS_IOC_GET_DEV_STATS: u32 = 3288896564;
+pub const PPRSTATUS: u32 = 2147577985;
+pub const MGSL_IOCTXENABLE: u32 = 27908;
+pub const UDF_GETEASIZE: u32 = 2147773504;
+pub const NVME_IOCTL_ADMIN64_CMD: u32 = 3226488391;
+pub const VHOST_SET_OWNER: u32 = 44801;
+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 = 1074815371;
+pub const HPET_IE_ON: u32 = 26625;
+pub const PERF_EVENT_IOC_ID: u32 = 2148017159;
+pub const TUNSETSNDBUF: u32 = 1074025684;
+pub const PTP_PIN_SETFUNC: u32 = 1080048903;
+pub const PPPIOCDISCONN: u32 = 29753;
+pub const VIDIOC_QUERYCTRL: u32 = 3225703972;
+pub const PPEXCL: u32 = 28815;
+pub const PCITEST_MSI: u32 = 1074024451;
+pub const FDWERRORCLR: u32 = 598;
+pub const AUTOFS_IOC_FAIL: u32 = 37729;
+pub const USBDEVFS_IOCTL: u32 = 3222295826;
+pub const VIDIOC_S_STD: u32 = 1074288152;
+pub const F2FS_IOC_RESIZE_FS: u32 = 1074328848;
+pub const SONET_SETDIAG: u32 = 3221512466;
+pub const BTRFS_IOC_DEFRAG: u32 = 1342215170;
+pub const CCISS_GETDRIVVER: u32 = 2147762697;
+pub const IPMICTL_GET_TIMING_PARMS_CMD: u32 = 2148034839;
+pub const HPET_IRQFREQ: u32 = 1074292742;
+pub const ATM_GETESI: u32 = 1074815365;
+pub const CCISS_GETLUNINFO: u32 = 2148286993;
+pub const AUTOFS_DEV_IOCTL_ISMOUNTPOINT: u32 = 3222836094;
+pub const TEE_IOC_SHM_ALLOC: u32 = 3222316033;
+pub const PERF_EVENT_IOC_SET_BPF: u32 = 1074013192;
+pub const UDMABUF_CREATE_LIST: u32 = 1074296131;
+pub const VHOST_SET_LOG_BASE: u32 = 1074310916;
+pub const ZATM_GETPOOL: u32 = 1074815329;
+pub const BR2684_SETFILT: u32 = 1075601808;
+pub const RNDGETPOOL: u32 = 2148028930;
+pub const PPS_GETPARAMS: u32 = 2148036769;
+pub const IOC_PR_RESERVE: u32 = 1074819273;
+pub const VIDIOC_TRY_DECODER_CMD: u32 = 3225966177;
+pub const RIO_CM_CHAN_CLOSE: u32 = 1073898244;
+pub const VIDIOC_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const IOCTL_MEI_CONNECT_CLIENT_VTAG: u32 = 3222554628;
+pub const PMU_IOC_GET_BACKLIGHT: u32 = 2148024833;
+pub const USBDEVFS_GET_CAPABILITIES: u32 = 2147767578;
+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 = 16910;
+pub const FAT_IOCTL_SET_ATTRIBUTES: u32 = 1074033169;
+pub const VIDIOC_CREATE_BUFS: u32 = 3238024796;
+pub const CAPI_GET_VERSION: u32 = 3222291207;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY: u32 = 2228770626;
+pub const VFIO_EEH_PE_OP: u32 = 15225;
+pub const FW_CDEV_IOC_CREATE_ISO_CONTEXT: u32 = 3223331592;
+pub const F2FS_IOC_RELEASE_COMPRESS_BLOCKS: u32 = 2148070674;
+pub const NBD_SET_SIZE_BLOCKS: u32 = 43783;
+pub const IPMI_BMC_IOCTL_SET_SMS_ATN: u32 = 45312;
+pub const ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG: u32 = 3222319873;
+pub const VIDIOC_S_AUDOUT: u32 = 1077171762;
+pub const VIDIOC_S_FMT: u32 = 3234878981;
+pub const PPPIOCATTACH: u32 = 1074033725;
+pub const VHOST_GET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310948;
+pub const FS_IOC_MEASURE_VERITY: u32 = 3221513862;
+pub const CCISS_BIG_PASSTHRU: u32 = 3227533842;
+pub const IPMICTL_SET_MY_LUN_CMD: u32 = 2147772691;
+pub const PCITEST_LEGACY_IRQ: u32 = 20482;
+pub const USBDEVFS_SUBMITURB: u32 = 2151175434;
+pub const AUTOFS_IOC_READY: u32 = 37728;
+pub const BTRFS_IOC_SEND: u32 = 1078498342;
+pub const VIDIOC_G_EXT_CTRLS: u32 = 3223344711;
+pub const JSIOCSBTNMAP: u32 = 1140877875;
+pub const PPPIOCSFLAGS: u32 = 1074033753;
+pub const NVRAM_INIT: u32 = 28736;
+pub const RFKILL_IOCTL_NOINPUT: u32 = 20993;
+pub const BTRFS_IOC_BALANCE: u32 = 1342215180;
+pub const FS_IOC_GETFSMAP: u32 = 3233830971;
+pub const IPMICTL_GET_MY_CHANNEL_LUN_CMD: u32 = 2147772699;
+pub const STP_POLICY_ID_GET: u32 = 2148541697;
+pub const PPSETFLAGS: u32 = 1074032795;
+pub const CEC_ADAP_S_PHYS_ADDR: u32 = 1073897730;
+pub const ATMTCP_CREATE: u32 = 24974;
+pub const IPMI_BMC_IOCTL_FORCE_ABORT: u32 = 45314;
+pub const PPPIOCGXASYNCMAP: u32 = 2149610576;
+pub const VHOST_SET_VRING_CALL: u32 = 1074310945;
+pub const LIRC_GET_FEATURES: u32 = 2147772672;
+pub const GSMIOC_DISABLE_NET: u32 = 18179;
+pub const AUTOFS_IOC_CATATONIC: u32 = 37730;
+pub const NBD_DO_IT: u32 = 43779;
+pub const LIRC_SET_REC_CARRIER_RANGE: u32 = 1074030879;
+pub const IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772697;
+pub const EVIOCSCLOCKID: u32 = 1074021792;
+pub const USBDEVFS_FREE_STREAMS: u32 = 2148029725;
+pub const FSI_SCOM_RESET: u32 = 1074033411;
+pub const PMU_IOC_GRAB_BACKLIGHT: u32 = 2148024838;
+pub const VIDIOC_SUBDEV_S_FMT: u32 = 3227014661;
+pub const FDDEFPRM: u32 = 1075839555;
+pub const TEE_IOC_INVOKE: u32 = 2148574211;
+pub const USBDEVFS_BULK: u32 = 3222820098;
+pub const SCIF_VWRITETO: u32 = 3223876365;
+pub const SONYPI_IOCSBRT: u32 = 1073837568;
+pub const BTRFS_IOC_FILE_EXTENT_SAME: u32 = 3222836278;
+pub const RTC_PIE_ON: u32 = 28677;
+pub const BTRFS_IOC_SCAN_DEV: u32 = 1342215172;
+pub const PPPIOCXFERUNIT: u32 = 29774;
+pub const WDIOC_GETTIMEOUT: u32 = 2147768071;
+pub const BTRFS_IOC_SET_RECEIVED_SUBVOL: u32 = 3234370597;
+pub const DFL_FPGA_PORT_ERR_SET_IRQ: u32 = 1074312774;
+pub const FBIO_WAITFORVSYNC: u32 = 1074021920;
+pub const RTC_PIE_OFF: u32 = 28678;
+pub const EVIOCGRAB: u32 = 1074021776;
+pub const PMU_IOC_SET_BACKLIGHT: u32 = 1074283010;
+pub const EVIOCGREP: u32 = 2148025603;
+pub const PERF_EVENT_IOC_MODIFY_ATTRIBUTES: u32 = 1074275339;
+pub const UFFDIO_CONTINUE: u32 = 3223366151;
+pub const VDUSE_GET_API_VERSION: u32 = 2148040960;
+pub const RTC_RD_TIME: u32 = 2149871625;
+pub const FDMSGOFF: u32 = 582;
+pub const IPMICTL_REGISTER_FOR_CMD_CHANS: u32 = 2148296988;
+pub const CAPI_GET_ERRCODE: u32 = 2147631905;
+pub const PCITEST_SET_IRQTYPE: u32 = 1074024456;
+pub const VIDIOC_SUBDEV_S_EDID: u32 = 3223868969;
+pub const MATROXFB_SET_OUTPUT_MODE: u32 = 1074294522;
+pub const RIO_DEV_ADD: u32 = 1075866903;
+pub const VIDIOC_ENUM_FREQ_BANDS: u32 = 3225441893;
+pub const FBIO_RADEON_SET_MIRROR: u32 = 1074282500;
+pub const PCITEST_GET_IRQTYPE: u32 = 20489;
+pub const JSIOCGVERSION: u32 = 2147772929;
+pub const SONYPI_IOCSBLUE: u32 = 1073837577;
+pub const SNAPSHOT_PREF_IMAGE_SIZE: u32 = 13074;
+pub const F2FS_IOC_GET_FEATURES: u32 = 2147808524;
+pub const SCIF_REG: u32 = 3223876360;
+pub const NILFS_IOCTL_CLEAN_SEGMENTS: u32 = 1081634440;
+pub const FW_CDEV_IOC_INITIATE_BUS_RESET: u32 = 1074012933;
+pub const RIO_WAIT_FOR_ASYNC: u32 = 1074294038;
+pub const VHOST_SET_VRING_NUM: u32 = 1074310928;
+pub const AUTOFS_DEV_IOCTL_PROTOVER: u32 = 3222836082;
+pub const RIO_FREE_DMA: u32 = 1074294036;
+pub const MGSL_IOCRXENABLE: u32 = 27909;
+pub const IOCTL_VM_SOCKETS_GET_LOCAL_CID: u32 = 1977;
+pub const IPMICTL_SET_TIMING_PARMS_CMD: u32 = 2148034838;
+pub const PPPIOCGL2TPSTATS: u32 = 2152231990;
+pub const PERF_EVENT_IOC_PERIOD: u32 = 1074275332;
+pub const PTP_PIN_SETFUNC2: u32 = 1080048912;
+pub const CHIOEXCHANGE: u32 = 1075602178;
+pub const NILFS_IOCTL_GET_SUINFO: u32 = 2149084804;
+pub const CEC_DQEVENT: u32 = 3226493191;
+pub const UI_SET_SWBIT: u32 = 1074025837;
+pub const VHOST_VDPA_SET_CONFIG: u32 = 1074311028;
+pub const TUNSETIFF: u32 = 1074025674;
+pub const CHIOPOSITION: u32 = 1074553603;
+pub const IPMICTL_SET_MAINTENANCE_MODE_CMD: u32 = 1074030879;
+pub const BTRFS_IOC_DEFAULT_SUBVOL: u32 = 1074304019;
+pub const RIO_UNMAP_OUTBOUND: u32 = 1076391184;
+pub const CAPI_CLR_FLAGS: u32 = 2147762981;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323663;
+pub const MATROXFB_GET_OUTPUT_CONNECTION: u32 = 2148036344;
+pub const EVIOCSMASK: u32 = 1074808211;
+pub const BTRFS_IOC_FORGET_DEV: u32 = 1342215173;
+pub const CXL_MEM_QUERY_COMMANDS: u32 = 2148060673;
+pub const CEC_S_MODE: u32 = 1074028809;
+pub const MGSL_IOCSIF: u32 = 27914;
+pub const SWITCHTEC_IOCTL_PFF_TO_PORT: u32 = 3222034244;
+pub const PPSETMODE: u32 = 1074032768;
+pub const VFIO_DEVICE_SET_IRQS: u32 = 15214;
+pub const VIDIOC_PREPARE_BUF: u32 = 3227014749;
+pub const CEC_ADAP_G_CONNECTOR_INFO: u32 = 2151964938;
+pub const IOC_OPAL_WRITE_SHADOW_MBR: u32 = 1092645098;
+pub const VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: u32 = 3225441867;
+pub const UDMABUF_CREATE: u32 = 1075344706;
+pub const SONET_CLRDIAG: u32 = 3221512467;
+pub const PHN_SET_REG: u32 = 1074294785;
+pub const RNDADDTOENTCNT: u32 = 1074024961;
+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 = 28674;
+pub const VFIO_GROUP_SET_CONTAINER: u32 = 15208;
+pub const FW_CDEV_IOC_RECEIVE_PHY_PACKETS: u32 = 1074275094;
+pub const VFIO_IOMMU_SPAPR_TCE_REMOVE: u32 = 15224;
+pub const VFIO_IOMMU_GET_INFO: u32 = 15216;
+pub const DM_DEV_SUSPEND: u32 = 3241737478;
+pub const F2FS_IOC_GET_COMPRESS_OPTION: u32 = 2147677461;
+pub const FW_CDEV_IOC_STOP_ISO: u32 = 1074012939;
+pub const GPIO_V2_GET_LINEINFO_IOCTL: u32 = 3238048773;
+pub const ATMMPC_CTRL: u32 = 25048;
+pub const PPPIOCSXASYNCMAP: u32 = 1075868751;
+pub const CHIOGSTATUS: u32 = 1074815752;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE: u32 = 3222807309;
+pub const RIO_MPORT_MAINT_PORT_IDX_GET: u32 = 2147773699;
+pub const CAPI_SET_FLAGS: u32 = 2147762980;
+pub const VFIO_GROUP_GET_DEVICE_FD: u32 = 15210;
+pub const VHOST_SET_MEM_TABLE: u32 = 1074310915;
+pub const MATROXFB_SET_OUTPUT_CONNECTION: u32 = 1074294520;
+pub const DFL_FPGA_PORT_GET_REGION_INFO: u32 = 46658;
+pub const VHOST_GET_FEATURES: u32 = 2148052736;
+pub const LIRC_GET_REC_RESOLUTION: u32 = 2147772679;
+pub const PACKET_CTRL_CMD: u32 = 3222820865;
+pub const LIRC_SET_TRANSMITTER_MASK: u32 = 1074030871;
+pub const BTRFS_IOC_ADD_DEV: u32 = 1342215178;
+pub const JSIOCGCORR: u32 = 2149870114;
+pub const VIDIOC_G_FMT: u32 = 3234878980;
+pub const RTC_EPOCH_SET: u32 = 1074294798;
+pub const CAPI_GET_PROFILE: u32 = 3225436937;
+pub const ATM_GETLOOP: u32 = 1074815314;
+pub const SCIF_LISTEN: u32 = 1074033410;
+pub const NBD_CLEAR_QUE: u32 = 43781;
+pub const F2FS_IOC_MOVE_RANGE: u32 = 3223385353;
+pub const LIRC_GET_LENGTH: u32 = 2147772687;
+pub const I8K_SET_FAN: u32 = 3221776775;
+pub const FDSETMAXERRS: u32 = 1075053132;
+pub const VIDIOC_SUBDEV_QUERYCAP: u32 = 2151699968;
+pub const SNAPSHOT_SET_SWAP_AREA: u32 = 1074541325;
+pub const LIRC_GET_REC_TIMEOUT: u32 = 2147772708;
+pub const EVIOCRMFF: u32 = 1074021761;
+pub const GPIO_GET_LINEEVENT_IOCTL: u32 = 3224417284;
+pub const PPRDATA: u32 = 2147577989;
+pub const RIO_MPORT_GET_PROPERTIES: u32 = 2150657284;
+pub const TUNSETVNETHDRSZ: u32 = 1074025688;
+pub const GPIO_GET_LINEINFO_IOCTL: u32 = 3225990146;
+pub const GSMIOC_GETCONF: u32 = 2152482560;
+pub const LIRC_GET_SEND_MODE: u32 = 2147772673;
+pub const PPPIOCSACTIVE: u32 = 1074820166;
+pub const SIOCGSTAMPNS_NEW: u32 = 2148567303;
+pub const IPMICTL_RECEIVE_MSG: u32 = 3224398092;
+pub const LIRC_SET_SEND_DUTY_CYCLE: u32 = 1074030869;
+pub const UI_END_FF_ERASE: u32 = 1074550219;
+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 = 43786;
+pub const VFIO_DEVICE_GET_REGION_INFO: u32 = 15212;
+pub const REISERFS_IOC_UNPACK: u32 = 1074318593;
+pub const FW_CDEV_IOC_REMOVE_DESCRIPTOR: u32 = 1074012935;
+pub const RIO_SET_EVENT_MASK: u32 = 1074031885;
+pub const SNAPSHOT_ALLOC_SWAP_PAGE: u32 = 2148021012;
+pub const VDUSE_VQ_INJECT_IRQ: u32 = 1074037015;
+pub const I2OPASSTHRU: u32 = 2148559116;
+pub const IOC_OPAL_SET_PW: u32 = 1109422304;
+pub const FSI_SCOM_READ: u32 = 3223352065;
+pub const VHOST_VDPA_GET_DEVICE_ID: u32 = 2147790704;
+pub const VIDIOC_QBUF: u32 = 3227014671;
+pub const VIDIOC_S_TUNER: u32 = 1079268894;
+pub const TUNGETVNETHDRSZ: u32 = 2147767511;
+pub const CAPI_NCCI_GETUNIT: u32 = 2147762983;
+pub const DFL_FPGA_PORT_UINT_GET_IRQ_NUM: u32 = 2147792455;
+pub const VIDIOC_OMAP3ISP_STAT_EN: u32 = 3221771975;
+pub const GPIO_V2_LINE_SET_CONFIG_IOCTL: u32 = 3239097357;
+pub const TEE_IOC_VERSION: u32 = 2148312064;
+pub const VIDIOC_LOG_STATUS: u32 = 22086;
+pub const IPMICTL_SEND_COMMAND_SETTIME: u32 = 2150656277;
+pub const VHOST_SET_LOG_FD: u32 = 1074048775;
+pub const SCIF_SEND: u32 = 3222827782;
+pub const VIDIOC_SUBDEV_G_FMT: u32 = 3227014660;
+pub const NS_ADJBUFLEV: u32 = 24931;
+pub const VIDIOC_DBG_S_REGISTER: u32 = 1077433935;
+pub const NILFS_IOCTL_RESIZE: u32 = 1074294411;
+pub const PHN_GETREG: u32 = 3221778437;
+pub const I2OSWDL: u32 = 3224398085;
+pub const VBG_IOCTL_VMMDEV_REQUEST_BIG: u32 = 22019;
+pub const JSIOCGBUTTONS: u32 = 2147576338;
+pub const VFIO_IOMMU_ENABLE: u32 = 15219;
+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 = 1074048887;
+pub const VIDIOC_SUBDEV_G_CROP: u32 = 3224917563;
+pub const VIDIOC_S_CROP: u32 = 1075074620;
+pub const WDIOC_GETTEMP: u32 = 2147768067;
+pub const IOC_OPAL_ADD_USR_TO_LR: u32 = 1092120804;
+pub const UI_SET_LEDBIT: u32 = 1074025833;
+pub const NBD_SET_SOCK: u32 = 43776;
+pub const BTRFS_IOC_SNAP_DESTROY_V2: u32 = 1342215231;
+pub const HIDIOCGCOLLECTIONINFO: u32 = 3222292497;
+pub const I2OSWUL: u32 = 3224398086;
+pub const IOCTL_MEI_NOTIFY_GET: u32 = 2147764227;
+pub const FDFMTTRK: u32 = 1074528840;
+pub const MMTIMER_GETBITS: u32 = 27908;
+pub const VIDIOC_ENUMSTD: u32 = 3225966105;
+pub const VHOST_GET_VRING_BASE: u32 = 3221794578;
+pub const VFIO_DEVICE_IOEVENTFD: u32 = 15220;
+pub const ATMARP_SETENTRY: u32 = 25059;
+pub const CCISS_REVALIDVOLS: u32 = 16906;
+pub const MGSL_IOCLOOPTXDONE: u32 = 27913;
+pub const RTC_VL_READ: u32 = 2147774483;
+pub const ND_IOCTL_ARS_STATUS: u32 = 3224391171;
+pub const RIO_DEV_DEL: u32 = 1075866904;
+pub const VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: u32 = 3223606797;
+pub const VIDIOC_SUBDEV_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const SONYPI_IOCSFAN: u32 = 1073837579;
+pub const SPIOCSTYPE: u32 = 1074295041;
+pub const IPMICTL_REGISTER_FOR_CMD: u32 = 2147641614;
+pub const I8K_GET_FAN: u32 = 3221776774;
+pub const TUNGETVNETBE: u32 = 2147767519;
+pub const AUTOFS_DEV_IOCTL_FAIL: u32 = 3222836087;
+pub const UI_END_FF_UPLOAD: u32 = 1080579529;
+pub const TOSH_SMM: u32 = 3222828176;
+pub const SONYPI_IOCGBAT2REM: u32 = 2147644933;
+pub const F2FS_IOC_GET_COMPRESS_BLOCKS: u32 = 2148070673;
+pub const PPPIOCSNPMODE: u32 = 1074295883;
+pub const USBDEVFS_CONTROL: u32 = 3222820096;
+pub const HIDIOCGUSAGE: u32 = 3222816779;
+pub const TUNSETTXFILTER: u32 = 1074025681;
+pub const TUNGETVNETLE: u32 = 2147767517;
+pub const VIDIOC_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const BTRFS_IOC_INO_PATHS: u32 = 3224933411;
+pub const MGSL_IOCGXSYNC: u32 = 27924;
+pub const HIDIOCGFIELDINFO: u32 = 3224913930;
+pub const VIDIOC_SUBDEV_G_STD: u32 = 2148029975;
+pub const I2OVALIDATE: u32 = 2147772680;
+pub const VIDIOC_TRY_ENCODER_CMD: u32 = 3223869006;
+pub const NILFS_IOCTL_GET_CPINFO: u32 = 2149084802;
+pub const VIDIOC_G_FREQUENCY: u32 = 3224131128;
+pub const VFAT_IOCTL_READDIR_SHORT: u32 = 2184212994;
+pub const ND_IOCTL_GET_CONFIG_DATA: u32 = 3222031877;
+pub const F2FS_IOC_RESERVE_COMPRESS_BLOCKS: u32 = 2148070675;
+pub const FDGETDRVSTAT: u32 = 2152727058;
+pub const SYNC_IOC_MERGE: u32 = 3224387075;
+pub const VIDIOC_S_DV_TIMINGS: u32 = 3229898327;
+pub const PPPIOCBRIDGECHAN: u32 = 1074033717;
+pub const LIRC_SET_SEND_MODE: u32 = 1074030865;
+pub const RIO_ENABLE_PORTWRITE_RANGE: u32 = 1074818315;
+pub const ATM_GETTYPE: u32 = 1074815364;
+pub const PHN_GETREGS: u32 = 3223875591;
+pub const FDSETEMSGTRESH: u32 = 586;
+pub const NILFS_IOCTL_GET_VINFO: u32 = 3222826630;
+pub const MGSL_IOCWAITEVENT: u32 = 3221515528;
+pub const CAPI_INSTALLED: u32 = 2147631906;
+pub const EVIOCGMASK: u32 = 2148550034;
+pub const BTRFS_IOC_SUBVOL_GETFLAGS: u32 = 2148045849;
+pub const FSL_HV_IOCTL_PARTITION_GET_STATUS: u32 = 3222056706;
+pub const MEDIA_IOC_ENUM_ENTITIES: u32 = 3238034433;
+pub const GSMIOC_GETFIRST: u32 = 2147763972;
+pub const FW_CDEV_IOC_FLUSH_ISO: u32 = 1074012952;
+pub const VIDIOC_DBG_G_CHIP_INFO: u32 = 3234354790;
+pub const F2FS_IOC_RELEASE_VOLATILE_WRITE: u32 = 62724;
+pub const CAPI_GET_SERIAL: u32 = 3221504776;
+pub const FDSETDRVPRM: u32 = 1082131088;
+pub const IOC_OPAL_SAVE: u32 = 1092120796;
+pub const VIDIOC_G_DV_TIMINGS: u32 = 3229898328;
+pub const TUNSETIFINDEX: u32 = 1074025690;
+pub const CCISS_SETINTINFO: u32 = 1074283011;
+pub const RTC_VL_CLR: u32 = 28692;
+pub const VIDIOC_REQBUFS: u32 = 3222558216;
+pub const USBDEVFS_REAPURBNDELAY32: u32 = 1074025741;
+pub const TEE_IOC_SHM_REGISTER: u32 = 3222840329;
+pub const USBDEVFS_SETCONFIGURATION: u32 = 2147767557;
+pub const CCISS_GETNODENAME: u32 = 2148549124;
+pub const VIDIOC_SUBDEV_S_FRAME_INTERVAL: u32 = 3224393238;
+pub const VIDIOC_ENUM_FRAMESIZES: u32 = 3224131146;
+pub const VFIO_DEVICE_PCI_HOT_RESET: u32 = 15217;
+pub const FW_CDEV_IOC_SEND_BROADCAST_REQUEST: u32 = 1076372242;
+pub const LPSETTIMEOUT_NEW: u32 = 1074791951;
+pub const RIO_CM_MPORT_GET_LIST: u32 = 3221512971;
+pub const FW_CDEV_IOC_QUEUE_ISO: u32 = 3222807305;
+pub const FDRAWCMD: u32 = 600;
+pub const SCIF_UNREG: u32 = 3222303497;
+pub const PPPIOCGIDLE64: u32 = 2148561983;
+pub const USBDEVFS_RELEASEINTERFACE: u32 = 2147767568;
+pub const VIDIOC_CROPCAP: u32 = 3224131130;
+pub const DFL_FPGA_PORT_GET_INFO: u32 = 46657;
+pub const PHN_SET_REGS: u32 = 1074294787;
+pub const ATMLEC_DATA: u32 = 25041;
+pub const PPPOEIOCDFWD: u32 = 45313;
+pub const VIDIOC_S_SELECTION: u32 = 3225441887;
+pub const SNAPSHOT_FREE_SWAP_PAGES: u32 = 13065;
+pub const BTRFS_IOC_LOGICAL_INO: u32 = 3224933412;
+pub const VIDIOC_S_CTRL: u32 = 3221771804;
+pub const ZATM_SETPOOL: u32 = 1074815331;
+pub const MTIOCPOS: u32 = 2148035843;
+pub const PMU_IOC_SLEEP: u32 = 16896;
+pub const AUTOFS_DEV_IOCTL_PROTOSUBVER: u32 = 3222836083;
+pub const VBG_IOCTL_CHANGE_FILTER_MASK: u32 = 3223344652;
+pub const NILFS_IOCTL_GET_SUSTAT: u32 = 2150657669;
+pub const VIDIOC_QUERYCAP: u32 = 2154321408;
+pub const HPET_INFO: u32 = 2149083139;
+pub const VIDIOC_AM437X_CCDC_CFG: u32 = 1074288321;
+pub const DM_LIST_DEVICES: u32 = 3241737474;
+pub const TUNSETOWNER: u32 = 1074025676;
+pub const VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: u32 = 3223344654;
+pub const RNDADDENTROPY: u32 = 1074287107;
+pub const USBDEVFS_RESET: u32 = 21780;
+pub const BTRFS_IOC_SUBVOL_CREATE: u32 = 1342215182;
+pub const USBDEVFS_FORBID_SUSPEND: u32 = 21793;
+pub const FDGETDRVTYP: u32 = 2148532751;
+pub const PPWCONTROL: u32 = 1073836164;
+pub const VIDIOC_ENUM_FRAMEINTERVALS: u32 = 3224655435;
+pub const KCOV_DISABLE: u32 = 25445;
+pub const IOC_OPAL_ACTIVATE_LSP: u32 = 1092120799;
+pub const VHOST_VDPA_GET_IOVA_RANGE: u32 = 2148577144;
+pub const PPPIOCSPASS: u32 = 1074820167;
+pub const RIO_CM_CHAN_CONNECT: u32 = 1074291464;
+pub const I2OSWDEL: u32 = 3224398087;
+pub const FS_IOC_SET_ENCRYPTION_POLICY: u32 = 2148296211;
+pub const IOC_OPAL_MBR_DONE: u32 = 1091596521;
+pub const PPPIOCSMAXCID: u32 = 1074033745;
+pub const PPSETPHASE: u32 = 1074032788;
+pub const VHOST_VDPA_SET_VRING_ENABLE: u32 = 1074311029;
+pub const USBDEVFS_GET_SPEED: u32 = 21791;
+pub const SONET_GETFRAMING: u32 = 2147770646;
+pub const VIDIOC_QUERYBUF: u32 = 3227014665;
+pub const VIDIOC_S_EDID: u32 = 3223868969;
+pub const BTRFS_IOC_QGROUP_ASSIGN: u32 = 1075352617;
+pub const PPS_GETCAP: u32 = 2148036771;
+pub const SNAPSHOT_PLATFORM_SUPPORT: u32 = 13071;
+pub const LIRC_SET_REC_TIMEOUT_REPORTS: u32 = 1074030873;
+pub const SCIF_GET_NODEIDS: u32 = 3222827790;
+pub const NBD_DISCONNECT: u32 = 43784;
+pub const VIDIOC_SUBDEV_G_FRAME_INTERVAL: u32 = 3224393237;
+pub const VFIO_IOMMU_DISABLE: u32 = 15220;
+pub const SNAPSHOT_CREATE_IMAGE: u32 = 1074017041;
+pub const SNAPSHOT_POWER_OFF: u32 = 13072;
+pub const APM_IOC_STANDBY: u32 = 16641;
+pub const PPPIOCGUNIT: u32 = 2147775574;
+pub const AUTOFS_IOC_EXPIRE_MULTI: u32 = 1074041702;
+pub const SCIF_BIND: u32 = 3221779201;
+pub const IOC_WATCH_QUEUE_SET_SIZE: u32 = 22368;
+pub const NILFS_IOCTL_CHANGE_CPMODE: u32 = 1074818688;
+pub const IOC_OPAL_LOCK_UNLOCK: u32 = 1092120797;
+pub const F2FS_IOC_SET_PIN_FILE: u32 = 1074066701;
+pub const PPPIOCGRASYNCMAP: u32 = 2147775573;
+pub const MMTIMER_MMAPAVAIL: u32 = 27910;
+pub const I2OPASSTHRU32: u32 = 2148034828;
+pub const DFL_FPGA_FME_PORT_RELEASE: u32 = 1074050689;
+pub const VIDIOC_SUBDEV_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const UI_SET_SNDBIT: u32 = 1074025834;
+pub const VIDIOC_G_AUDOUT: u32 = 2150913585;
+pub const RTC_PLL_SET: u32 = 1075867666;
+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 = 1074048836;
+pub const VHOST_SET_VRING_ADDR: u32 = 1076408081;
+pub const VDUSE_CREATE_DEV: u32 = 1095794946;
+pub const FDFLUSH: u32 = 587;
+pub const VBG_IOCTL_WAIT_FOR_EVENTS: u32 = 3223344650;
+pub const DFL_FPGA_FME_ERR_SET_IRQ: u32 = 1074312836;
+pub const F2FS_IOC_GET_PIN_FILE: u32 = 2147808526;
+pub const SCIF_CONNECT: u32 = 3221779203;
+pub const BLKREPORTZONE: u32 = 3222278786;
+pub const AUTOFS_IOC_ASKUMOUNT: u32 = 2147783536;
+pub const ATM_ADDPARTY: u32 = 1074815476;
+pub const FDSETPRM: u32 = 1075839554;
+pub const ATM_GETSTATZ: u32 = 1074815313;
+pub const ISST_IF_MSR_COMMAND: u32 = 3221814788;
+pub const BTRFS_IOC_GET_SUBVOL_INFO: u32 = 2180551740;
+pub const VIDIOC_UNSUBSCRIBE_EVENT: u32 = 1075861083;
+pub const SEV_ISSUE_CMD: u32 = 3222295296;
+pub const GPIOHANDLE_SET_LINE_VALUES_IOCTL: u32 = 3225465865;
+pub const PCITEST_COPY: u32 = 1074286598;
+pub const IPMICTL_GET_MY_ADDRESS_CMD: u32 = 2147772690;
+pub const CHIOGPICKER: u32 = 2147771140;
+pub const CAPI_NCCI_OPENCOUNT: u32 = 2147762982;
+pub const CXL_MEM_SEND_COMMAND: u32 = 3224423938;
+pub const PERF_EVENT_IOC_SET_FILTER: u32 = 1074275334;
+pub const IOC_OPAL_REVERT_TPR: u32 = 1091072226;
+pub const CHIOGVPARAMS: u32 = 2154849043;
+pub const PTP_PEROUT_REQUEST: u32 = 1077427459;
+pub const FSI_SCOM_CHECK: u32 = 2147775232;
+pub const RTC_IRQP_READ: u32 = 2148036619;
+pub const RIO_MPORT_MAINT_READ_LOCAL: u32 = 2149084421;
+pub const HIDIOCGRDESCSIZE: u32 = 2147764225;
+pub const UI_GET_VERSION: u32 = 2147767597;
+pub const NILFS_IOCTL_GET_CPSTAT: u32 = 2149084803;
+pub const CCISS_GETBUSTYPES: u32 = 2147762695;
+pub const VFIO_IOMMU_SPAPR_TCE_CREATE: u32 = 15223;
+pub const VIDIOC_EXPBUF: u32 = 3225441808;
+pub const UI_SET_RELBIT: u32 = 1074025830;
+pub const VFIO_SET_IOMMU: u32 = 15206;
+pub const VIDIOC_S_MODULATOR: u32 = 1078220343;
+pub const TUNGETFILTER: u32 = 2148553947;
+pub const CCISS_SETNODENAME: u32 = 1074807301;
+pub const FBIO_GETCONTROL2: u32 = 2148025993;
+pub const TUNSETDEBUG: u32 = 1074025673;
+pub const DM_DEV_REMOVE: u32 = 3241737476;
+pub const HIDIOCSUSAGES: u32 = 1344030740;
+pub const FS_IOC_ADD_ENCRYPTION_KEY: u32 = 3226494487;
+pub const FBIOGET_VBLANK: u32 = 2149598738;
+pub const ATM_GETSTAT: u32 = 1074815312;
+pub const VIDIOC_G_JPEGCOMP: u32 = 2156680765;
+pub const TUNATTACHFILTER: u32 = 1074812117;
+pub const UI_SET_ABSBIT: u32 = 1074025831;
+pub const DFL_FPGA_PORT_ERR_GET_IRQ_NUM: u32 = 2147792453;
+pub const USBDEVFS_REAPURB32: u32 = 1074025740;
+pub const BTRFS_IOC_TRANS_END: u32 = 37895;
+pub const CAPI_REGISTER: u32 = 1074545409;
+pub const F2FS_IOC_COMPRESS_FILE: u32 = 62744;
+pub const USBDEVFS_DISCARDURB: u32 = 21771;
+pub const HE_GET_REG: u32 = 1074815328;
+pub const ATM_SETLOOP: u32 = 1074815315;
+pub const ATMSIGD_CTRL: u32 = 25072;
+pub const CIOC_KERNEL_VERSION: u32 = 3221775114;
+pub const BTRFS_IOC_CLONE_RANGE: u32 = 1075876877;
+pub const SNAPSHOT_UNFREEZE: u32 = 13058;
+pub const F2FS_IOC_START_VOLATILE_WRITE: u32 = 62723;
+pub const PMU_IOC_HAS_ADB: u32 = 2148024836;
+pub const I2OGETIOPS: u32 = 2149607680;
+pub const VIDIOC_S_FBUF: u32 = 1076909579;
+pub const PPRCONTROL: u32 = 2147577987;
+pub const CHIOSPICKER: u32 = 1074029317;
+pub const VFIO_IOMMU_SPAPR_REGISTER_MEMORY: u32 = 15221;
+pub const TUNGETSNDBUF: u32 = 2147767507;
+pub const GSMIOC_SETCONF: u32 = 1078740737;
+pub const IOC_PR_PREEMPT: u32 = 1075343563;
+pub const KCOV_INIT_TRACE: u32 = 2148033281;
+pub const SONYPI_IOCGBAT1CAP: u32 = 2147644930;
+pub const SWITCHTEC_IOCTL_FLASH_INFO: u32 = 2148554560;
+pub const MTIOCTOP: u32 = 1074294017;
+pub const VHOST_VDPA_SET_STATUS: u32 = 1073852274;
+pub const VHOST_SCSI_SET_EVENTS_MISSED: u32 = 1074048835;
+pub const VFIO_IOMMU_DIRTY_PAGES: u32 = 15221;
+pub const BTRFS_IOC_SCRUB_PROGRESS: u32 = 3288372253;
+pub const PPPIOCGMRU: u32 = 2147775571;
+pub const BTRFS_IOC_DEV_REPLACE: u32 = 3391657013;
+pub const PPPIOCGFLAGS: u32 = 2147775578;
+pub const NILFS_IOCTL_SET_SUINFO: u32 = 1075342989;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER2: u32 = 3222807316;
+pub const ATM_DELLECSADDR: u32 = 1074815375;
+pub const FW_CDEV_IOC_GET_SPEED: u32 = 8977;
+pub const PPPIOCGIDLE32: u32 = 2148037695;
+pub const VFIO_DEVICE_RESET: u32 = 15215;
+pub const GPIO_GET_LINEINFO_UNWATCH_IOCTL: u32 = 3221533708;
+pub const WDIOC_GETSTATUS: u32 = 2147768065;
+pub const BTRFS_IOC_SET_FEATURES: u32 = 1076925497;
+pub const IOCTL_MEI_CONNECT_CLIENT: u32 = 3222292481;
+pub const VIDIOC_OMAP3ISP_AEWB_CFG: u32 = 3223344835;
+pub const PCITEST_READ: u32 = 1074286597;
+pub const VFIO_GROUP_GET_STATUS: u32 = 15207;
+pub const MATROXFB_GET_ALL_OUTPUTS: u32 = 2148036347;
+pub const USBDEVFS_CLEAR_HALT: u32 = 2147767573;
+pub const VIDIOC_DECODER_CMD: u32 = 3225966176;
+pub const VIDIOC_G_AUDIO: u32 = 2150913569;
+pub const CCISS_RESCANDISK: u32 = 16912;
+pub const RIO_DISABLE_PORTWRITE_RANGE: u32 = 1074818316;
+pub const IOC_OPAL_SECURE_ERASE_LR: u32 = 1091596519;
+pub const USBDEVFS_REAPURB: u32 = 1074287884;
+pub const DFL_FPGA_CHECK_EXTENSION: u32 = 46593;
+pub const AUTOFS_IOC_PROTOVER: u32 = 2147783523;
+pub const FSL_HV_IOCTL_MEMCPY: u32 = 3223891717;
+pub const BTRFS_IOC_GET_FEATURES: u32 = 2149094457;
+pub const PCITEST_MSIX: u32 = 1074024455;
+pub const BTRFS_IOC_DEFRAG_RANGE: u32 = 1076925456;
+pub const UI_BEGIN_FF_ERASE: u32 = 3222033866;
+pub const DM_GET_TARGET_VERSION: u32 = 3241737489;
+pub const PPPIOCGIDLE: u32 = 2148561983;
+pub const NVRAM_SETCKS: u32 = 28737;
+pub const WDIOC_GETSUPPORT: u32 = 2150127360;
+pub const GSMIOC_ENABLE_NET: u32 = 1077167874;
+pub const GPIO_GET_CHIPINFO_IOCTL: u32 = 2151986177;
+pub const NE_ADD_VCPU: u32 = 3221532193;
+pub const EVIOCSKEYCODE_V2: u32 = 1076380932;
+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 = 1075342598;
+pub const I2OEVTREG: u32 = 1074555146;
+pub const I2OPARMGET: u32 = 3223873796;
+pub const EVIOCGID: u32 = 2148025602;
+pub const BTRFS_IOC_QGROUP_CREATE: u32 = 1074828330;
+pub const AUTOFS_DEV_IOCTL_SETPIPEFD: u32 = 3222836088;
+pub const VIDIOC_S_PARM: u32 = 3234616854;
+pub const TUNSETSTEERINGEBPF: u32 = 2147767520;
+pub const ATM_GETNAMES: u32 = 1074815363;
+pub const VIDIOC_QUERYMENU: u32 = 3224131109;
+pub const DFL_FPGA_PORT_DMA_UNMAP: u32 = 46660;
+pub const I2OLCTGET: u32 = 3222825218;
+pub const FS_IOC_GET_ENCRYPTION_PWSALT: u32 = 1074816532;
+pub const NS_SETBUFLEV: u32 = 1074815330;
+pub const BLKCLOSEZONE: u32 = 1074795143;
+pub const SONET_GETFRSENSE: u32 = 2147901719;
+pub const UI_SET_EVBIT: u32 = 1074025828;
+pub const DM_LIST_VERSIONS: u32 = 3241737485;
+pub const HIDIOCGSTRING: u32 = 2164541444;
+pub const PPPIOCATTCHAN: u32 = 1074033720;
+pub const VDUSE_DEV_SET_CONFIG: u32 = 1074299154;
+pub const TUNGETFEATURES: u32 = 2147767503;
+pub const VFIO_GROUP_UNSET_CONTAINER: u32 = 15209;
+pub const IPMICTL_SET_MY_ADDRESS_CMD: u32 = 2147772689;
+pub const CCISS_REGNEWDISK: u32 = 1074020877;
+pub const VIDIOC_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const PHN_SETREGS: u32 = 1076391944;
+pub const FAT_IOCTL_GET_ATTRIBUTES: u32 = 2147774992;
+pub const FSL_MC_SEND_MC_COMMAND: u32 = 3225440992;
+pub const TUNGETIFF: u32 = 2147767506;
+pub const PTP_CLOCK_GETCAPS2: u32 = 2152742154;
+pub const BTRFS_IOC_RESIZE: u32 = 1342215171;
+pub const VHOST_SET_VRING_ENDIAN: u32 = 1074310931;
+pub const PPS_KC_BIND: u32 = 1074294949;
+pub const F2FS_IOC_WRITE_CHECKPOINT: u32 = 62727;
+pub const UI_SET_FFBIT: u32 = 1074025835;
+pub const IPMICTL_GET_MY_LUN_CMD: u32 = 2147772692;
+pub const CEC_ADAP_G_PHYS_ADDR: u32 = 2147639553;
+pub const CEC_G_MODE: u32 = 2147770632;
+pub const USBDEVFS_RESETEP: u32 = 2147767555;
+pub const MEDIA_REQUEST_IOC_QUEUE: u32 = 31872;
+pub const USBDEVFS_ALLOC_STREAMS: u32 = 2148029724;
+pub const MGSL_IOCSXCTRL: u32 = 27925;
+pub const MEDIA_IOC_G_TOPOLOGY: u32 = 3225975812;
+pub const PPPIOCUNBRIDGECHAN: u32 = 29748;
+pub const F2FS_IOC_COMMIT_ATOMIC_WRITE: u32 = 62722;
+pub const ISST_IF_GET_PLATFORM_INFO: u32 = 2148072960;
+pub const SCIF_FENCE_MARK: u32 = 3222303503;
+pub const USBDEVFS_RELEASE_PORT: u32 = 2147767577;
+pub const VFIO_CHECK_EXTENSION: u32 = 15205;
+pub const BTRFS_IOC_QGROUP_LIMIT: u32 = 2150667307;
+pub const FAT_IOCTL_GET_VOLUME_ID: u32 = 2147774995;
+pub const UI_SET_PHYS: u32 = 1074287980;
+pub const FDWERRORGET: u32 = 2150105623;
+pub const VIDIOC_SUBDEV_G_EDID: u32 = 3223868968;
+pub const MGSL_IOCGSTATS: u32 = 27911;
+pub const RPROC_SET_SHUTDOWN_ON_RELEASE: u32 = 1074050817;
+pub const SIOCGSTAMP_NEW: u32 = 2148567302;
+pub const RTC_WKALM_RD: u32 = 2150133776;
+pub const PHN_GET_REG: u32 = 3221778432;
+pub const DELL_WMI_SMBIOS_CMD: u32 = 3224655616;
+pub const PHN_NOT_OH: u32 = 28676;
+pub const PPGETMODES: u32 = 2147774615;
+pub const CHIOGPARAMS: u32 = 2148819718;
+pub const VFIO_DEVICE_GET_GFX_DMABUF: u32 = 15219;
+pub const VHOST_SET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310947;
+pub const VIDIOC_SUBDEV_G_SELECTION: u32 = 3225441853;
+pub const BTRFS_IOC_RM_DEV_V2: u32 = 1342215226;
+pub const MGSL_IOCWAITGPIO: u32 = 3222301970;
+pub const PMU_IOC_CAN_SLEEP: u32 = 2148024837;
+pub const KCOV_ENABLE: u32 = 25444;
+pub const BTRFS_IOC_CLONE: u32 = 1074041865;
+pub const F2FS_IOC_DEFRAGMENT: u32 = 3222336776;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE: u32 = 1074012942;
+pub const AGPIOC_ALLOCATE: u32 = 3221766406;
+pub const NE_SET_USER_MEMORY_REGION: u32 = 1075359267;
+pub const MGSL_IOCTXABORT: u32 = 27910;
+pub const MGSL_IOCSGPIO: u32 = 1074818320;
+pub const LIRC_SET_REC_CARRIER: u32 = 1074030868;
+pub const F2FS_IOC_FLUSH_DEVICE: u32 = 1074328842;
+pub const SNAPSHOT_ATOMIC_RESTORE: u32 = 13060;
+pub const RTC_UIE_OFF: u32 = 28676;
+pub const BT_BMC_IOCTL_SMS_ATN: u32 = 45312;
+pub const NVME_IOCTL_ID: u32 = 20032;
+pub const NE_START_ENCLAVE: u32 = 3222318628;
+pub const VIDIOC_STREAMON: u32 = 1074026002;
+pub const FDPOLLDRVSTAT: u32 = 2152727059;
+pub const AUTOFS_DEV_IOCTL_READY: u32 = 3222836086;
+pub const VIDIOC_ENUMAUDOUT: u32 = 3224655426;
+pub const VIDIOC_SUBDEV_S_STD: u32 = 1074288152;
+pub const WDIOC_GETTIMELEFT: u32 = 2147768074;
+pub const ATM_GETLINKRATE: u32 = 1074815361;
+pub const RTC_WKALM_SET: u32 = 1076391951;
+pub const VHOST_GET_BACKEND_FEATURES: u32 = 2148052774;
+pub const ATMARP_ENCAP: u32 = 25061;
+pub const CAPI_GET_FLAGS: u32 = 2147762979;
+pub const IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772696;
+pub const DFL_FPGA_FME_PORT_ASSIGN: u32 = 1074050690;
+pub const NS_GET_OWNER_UID: u32 = 46852;
+pub const VIDIOC_OVERLAY: u32 = 1074025998;
+pub const BTRFS_IOC_WAIT_SYNC: u32 = 1074304022;
+pub const GPIOHANDLE_SET_CONFIG_IOCTL: u32 = 3226776586;
+pub const VHOST_GET_VRING_ENDIAN: u32 = 1074310932;
+pub const ATM_GETADDR: u32 = 1074815366;
+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 = 13067;
+pub const JSIOCSAXMAP: u32 = 1077963313;
+pub const F2FS_IOC_SET_COMPRESS_OPTION: u32 = 1073935638;
+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 = 15216;
+pub const VIDIOC_SUBDEV_ENUM_MBUS_CODE: u32 = 3224393218;
+pub const MMTIMER_GETOFFSET: u32 = 27904;
+pub const RIO_CM_CHAN_LISTEN: u32 = 1073898246;
+pub const ATM_SETSC: u32 = 1074029041;
+pub const F2FS_IOC_SHUTDOWN: u32 = 2147768445;
+pub const NVME_IOCTL_RESCAN: u32 = 20038;
+pub const BLKOPENZONE: u32 = 1074795142;
+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 = 25056;
+pub const IPMI_BMC_IOCTL_CLEAR_SMS_ATN: u32 = 45313;
+pub const HIDIOCGVERSION: u32 = 2147764225;
+pub const VIDIOC_S_INPUT: u32 = 3221509671;
+pub const VIDIOC_G_CROP: u32 = 3222558267;
+pub const LIRC_SET_WIDEBAND_RECEIVER: u32 = 1074030883;
+pub const EVIOCGEFFECTS: u32 = 2147763588;
+pub const UVCIOC_CTRL_QUERY: u32 = 3222304033;
+pub const IOC_OPAL_GENERIC_TABLE_RW: u32 = 1094217963;
+pub const FS_IOC_READ_VERITY_METADATA: u32 = 3223873159;
+pub const ND_IOCTL_SET_CONFIG_DATA: u32 = 3221769734;
+pub const USBDEVFS_GETDRIVER: u32 = 1090802952;
+pub const IDT77105_GETSTAT: u32 = 1074815282;
+pub const HIDIOCINITREPORT: u32 = 18437;
+pub const VFIO_DEVICE_GET_INFO: u32 = 15211;
+pub const RIO_CM_CHAN_RECEIVE: u32 = 3222299402;
+pub const RNDGETENTCNT: u32 = 2147766784;
+pub const PPPIOCNEWUNIT: u32 = 3221517374;
+pub const BTRFS_IOC_INO_LOOKUP: u32 = 3489698834;
+pub const FDRESET: u32 = 596;
+pub const IOC_PR_REGISTER: u32 = 1075343560;
+pub const HIDIOCSREPORT: u32 = 1074546696;
+pub const TEE_IOC_OPEN_SESSION: u32 = 2148574210;
+pub const TEE_IOC_SUPPL_RECV: u32 = 2148574214;
+pub const BTRFS_IOC_BALANCE_CTL: u32 = 1074041889;
+pub const GPIO_GET_LINEINFO_WATCH_IOCTL: u32 = 3225990155;
+pub const HIDIOCGRAWINFO: u32 = 2148026371;
+pub const PPPIOCSCOMPRESS: u32 = 1074820173;
+pub const USBDEVFS_CONNECTINFO: u32 = 1074287889;
+pub const BLKRESETZONE: u32 = 1074795139;
+pub const CHIOINITELEM: u32 = 25361;
+pub const NILFS_IOCTL_SET_ALLOC_RANGE: u32 = 1074818700;
+pub const AUTOFS_DEV_IOCTL_CATATONIC: u32 = 3222836089;
+pub const RIO_MPORT_MAINT_HDID_SET: u32 = 1073900801;
+pub const PPGETPHASE: u32 = 2147774617;
+pub const USBDEVFS_DISCONNECT_CLAIM: u32 = 2164806939;
+pub const FDMSGON: u32 = 581;
+pub const VIDIOC_G_SLICED_VBI_CAP: u32 = 3228849733;
+pub const BTRFS_IOC_BALANCE_V2: u32 = 3288372256;
+pub const MEDIA_REQUEST_IOC_REINIT: u32 = 31873;
+pub const IOC_OPAL_ERASE_LR: u32 = 1091596518;
+pub const FDFMTBEG: u32 = 583;
+pub const RNDRESEEDCRNG: u32 = 20999;
+pub const ISST_IF_GET_PHY_ID: u32 = 3221814785;
+pub const TUNSETNOCSUM: u32 = 1074025672;
+pub const SONET_GETSTAT: u32 = 2149867792;
+pub const TFD_IOC_SET_TICKS: u32 = 1074287616;
+pub const PPDATADIR: u32 = 1074032784;
+pub const IOC_OPAL_ENABLE_DISABLE_MBR: u32 = 1091596517;
+pub const GPIO_V2_GET_LINE_IOCTL: u32 = 3260068871;
+pub const RIO_CM_CHAN_SEND: u32 = 1074815753;
+pub const PPWCTLONIRQ: u32 = 1073836178;
+pub const SONYPI_IOCGBRT: u32 = 2147579392;
+pub const IOC_PR_RELEASE: u32 = 1074819274;
+pub const PPCLRIRQ: u32 = 2147774611;
+pub const IPMICTL_SET_MY_CHANNEL_LUN_CMD: u32 = 2147772698;
+pub const MGSL_IOCSXSYNC: u32 = 27923;
+pub const HPET_IE_OFF: u32 = 26626;
+pub const IOC_OPAL_ACTIVATE_USR: u32 = 1091596513;
+pub const SONET_SETFRAMING: u32 = 1074028821;
+pub const PERF_EVENT_IOC_PAUSE_OUTPUT: u32 = 1074013193;
+pub const BTRFS_IOC_LOGICAL_INO_V2: u32 = 3224933435;
+pub const VBG_IOCTL_HGCM_CONNECT: u32 = 3231471108;
+pub const BLKFINISHZONE: u32 = 1074795144;
+pub const EVIOCREVOKE: u32 = 1074021777;
+pub const VFIO_DEVICE_FEATURE: u32 = 15221;
+pub const CCISS_GETPCIINFO: u32 = 2148024833;
+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 = 1074026003;
+pub const VDUSE_DESTROY_DEV: u32 = 1090552067;
+pub const FDGETFDCSTAT: u32 = 2150105621;
+pub const VIDIOC_S_PRIORITY: u32 = 1074026052;
+pub const SNAPSHOT_FREEZE: u32 = 13057;
+pub const VIDIOC_ENUMINPUT: u32 = 3226490394;
+pub const ZATM_GETPOOLZ: u32 = 1074815330;
+pub const RIO_DISABLE_DOORBELL_RANGE: u32 = 1074294026;
+pub const GPIO_V2_GET_LINEINFO_WATCH_IOCTL: u32 = 3238048774;
+pub const VIDIOC_G_STD: u32 = 2148029975;
+pub const USBDEVFS_ALLOW_SUSPEND: u32 = 21794;
+pub const SONET_GETSTATZ: u32 = 2149867793;
+pub const SCIF_ACCEPTREG: u32 = 3221779205;
+pub const VIDIOC_ENCODER_CMD: u32 = 3223869005;
+pub const PPPIOCSRASYNCMAP: u32 = 1074033748;
+pub const IOCTL_MEI_NOTIFY_SET: u32 = 1074022402;
+pub const BTRFS_IOC_QUOTA_RESCAN_STATUS: u32 = 2151715885;
+pub const F2FS_IOC_GARBAGE_COLLECT: u32 = 1074066694;
+pub const ATMLEC_CTRL: u32 = 25040;
+pub const MATROXFB_GET_AVAILABLE_OUTPUTS: u32 = 2148036345;
+pub const DM_DEV_CREATE: u32 = 3241737475;
+pub const VHOST_VDPA_GET_VRING_NUM: u32 = 2147659638;
+pub const VIDIOC_G_CTRL: u32 = 3221771803;
+pub const NBD_CLEAR_SOCK: u32 = 43780;
+pub const VFIO_DEVICE_QUERY_GFX_PLANE: u32 = 15218;
+pub const WDIOC_KEEPALIVE: u32 = 2147768069;
+pub const NVME_IOCTL_SUBSYS_RESET: u32 = 20037;
+pub const PTP_EXTTS_REQUEST2: u32 = 1074806027;
+pub const PCITEST_BAR: u32 = 20481;
+pub const MGSL_IOCGGPIO: u32 = 2148560145;
+pub const EVIOCSREP: u32 = 1074283779;
+pub const VFIO_DEVICE_GET_IRQ_INFO: u32 = 15213;
+pub const HPET_DPI: u32 = 26629;
+pub const VDUSE_VQ_SETUP_KICKFD: u32 = 1074299158;
+pub const ND_IOCTL_CALL: u32 = 3225439754;
+pub const HIDIOCGDEVINFO: u32 = 2149337091;
+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 = 2147767875;
+pub const ATM_NEWBACKENDIF: u32 = 1073897971;
+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 = 1076909650;
+pub const DM_TABLE_LOAD: u32 = 3241737481;
+pub const F2FS_IOC_START_ATOMIC_WRITE: u32 = 62721;
+pub const VIDIOC_G_OUTPUT: u32 = 2147767854;
+pub const ATM_DROPPARTY: u32 = 1074029045;
+pub const CHIOGELEM: u32 = 1080845072;
+pub const BTRFS_IOC_GET_SUPPORTED_FEATURES: u32 = 2152240185;
+pub const EVIOCSKEYCODE: u32 = 1074283780;
+pub const NE_GET_IMAGE_LOAD_INFO: u32 = 3222318626;
+pub const TUNSETLINK: u32 = 1074025677;
+pub const FW_CDEV_IOC_ADD_DESCRIPTOR: u32 = 3222807302;
+pub const BTRFS_IOC_SCRUB_CANCEL: u32 = 37916;
+pub const PPS_SETPARAMS: u32 = 1074294946;
+pub const IOC_OPAL_LR_SETUP: u32 = 1093169379;
+pub const FW_CDEV_IOC_DEALLOCATE: u32 = 1074012931;
+pub const WDIOC_SETTIMEOUT: u32 = 3221509894;
+pub const IOC_WATCH_QUEUE_SET_FILTER: u32 = 22369;
+pub const CAPI_GET_MANUFACTURER: u32 = 3221504774;
+pub const VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY: u32 = 15222;
+pub const ASPEED_P2A_CTRL_IOCTL_SET_WINDOW: u32 = 1074836224;
+pub const VIDIOC_G_EDID: u32 = 3223868968;
+pub const F2FS_IOC_GARBAGE_COLLECT_RANGE: u32 = 1075377419;
+pub const RIO_MAP_INBOUND: u32 = 3223874833;
+pub const IOC_OPAL_TAKE_OWNERSHIP: u32 = 1091072222;
+pub const USBDEVFS_CLAIM_PORT: u32 = 2147767576;
+pub const VIDIOC_S_AUDIO: u32 = 1077171746;
+pub const FS_IOC_GET_ENCRYPTION_NONCE: u32 = 2148558363;
+pub const FW_CDEV_IOC_SEND_STREAM_PACKET: u32 = 1076372243;
+pub const BTRFS_IOC_SNAP_DESTROY: u32 = 1342215183;
+pub const SNAPSHOT_FREE: u32 = 13061;
+pub const I8K_GET_SPEED: u32 = 3221776773;
+pub const HIDIOCGREPORT: u32 = 1074546695;
+pub const HPET_EPI: u32 = 26628;
+pub const JSIOCSCORR: u32 = 1076128289;
+pub const IOC_PR_PREEMPT_ABORT: u32 = 1075343564;
+pub const RIO_MAP_OUTBOUND: u32 = 3223874831;
+pub const ATM_SETESI: u32 = 1074815372;
+pub const FW_CDEV_IOC_START_ISO: u32 = 1074799370;
+pub const ATM_DELADDR: u32 = 1074815369;
+pub const PPFCONTROL: u32 = 1073901710;
+pub const SONYPI_IOCGFAN: u32 = 2147579402;
+pub const RTC_IRQP_SET: u32 = 1074294796;
+pub const PCITEST_WRITE: u32 = 1074286596;
+pub const PPCLAIM: u32 = 28811;
+pub const VIDIOC_S_JPEGCOMP: u32 = 1082938942;
+pub const IPMICTL_UNREGISTER_FOR_CMD: u32 = 2147641615;
+pub const VHOST_SET_FEATURES: u32 = 1074310912;
+pub const TOSHIBA_ACPI_SCI: u32 = 3222828177;
+pub const VIDIOC_DQBUF: u32 = 3227014673;
+pub const BTRFS_IOC_BALANCE_PROGRESS: u32 = 2214630434;
+pub const BTRFS_IOC_SUBVOL_SETFLAGS: u32 = 1074304026;
+pub const ATMLEC_MCAST: u32 = 25042;
+pub const MMTIMER_GETFREQ: u32 = 2148035842;
+pub const VIDIOC_G_SELECTION: u32 = 3225441886;
+pub const RTC_ALM_SET: u32 = 1076129799;
+pub const PPPOEIOCSFWD: u32 = 1074311424;
+pub const IPMICTL_GET_MAINTENANCE_MODE_CMD: u32 = 2147772702;
+pub const FS_IOC_ENABLE_VERITY: u32 = 1082156677;
+pub const NILFS_IOCTL_GET_BDESCS: u32 = 3222826631;
+pub const FDFMTEND: u32 = 585;
+pub const DMA_BUF_SET_NAME: u32 = 1074291201;
+pub const UI_BEGIN_FF_UPLOAD: u32 = 3228063176;
+pub const RTC_UIE_ON: u32 = 28675;
+pub const PPRELEASE: u32 = 28812;
+pub const VFIO_IOMMU_UNMAP_DMA: u32 = 15218;
+pub const VIDIOC_OMAP3ISP_PRV_CFG: u32 = 3228587714;
+pub const GPIO_GET_LINEHANDLE_IOCTL: u32 = 3245126659;
+pub const VFAT_IOCTL_READDIR_BOTH: u32 = 2184212993;
+pub const NVME_IOCTL_ADMIN_CMD: u32 = 3225964097;
+pub const VHOST_SET_VRING_KICK: u32 = 1074310944;
+pub const BTRFS_IOC_SUBVOL_CREATE_V2: u32 = 1342215192;
+pub const BTRFS_IOC_SNAP_CREATE: u32 = 1342215169;
+pub const SONYPI_IOCGBAT2CAP: u32 = 2147644932;
+pub const PPNEGOT: u32 = 1074032785;
+pub const NBD_PRINT_DEBUG: u32 = 43782;
+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 = 2214630431;
+pub const VIDIOC_ENUM_FMT: u32 = 3225441794;
+pub const VIDIOC_G_INPUT: u32 = 2147767846;
+pub const VTPM_PROXY_IOC_NEW_DEV: u32 = 3222577408;
+pub const DFL_FPGA_FME_ERR_GET_IRQ_NUM: u32 = 2147792515;
+pub const ND_IOCTL_DIMM_FLAGS: u32 = 3221769731;
+pub const BTRFS_IOC_QUOTA_RESCAN: u32 = 1077974060;
+pub const MMTIMER_GETCOUNTER: u32 = 2148035849;
+pub const MATROXFB_GET_OUTPUT_MODE: u32 = 3221778170;
+pub const BTRFS_IOC_QUOTA_RESCAN_WAIT: u32 = 37934;
+pub const RIO_CM_CHAN_BIND: u32 = 1074291461;
+pub const HIDIOCGRDESC: u32 = 2416199682;
+pub const MGSL_IOCGIF: u32 = 27915;
+pub const VIDIOC_S_OUTPUT: u32 = 3221509679;
+pub const HIDIOCGREPORTINFO: u32 = 3222030345;
+pub const WDIOC_GETBOOTSTATUS: u32 = 2147768066;
+pub const VDUSE_VQ_GET_INFO: u32 = 3224404245;
+pub const ACRN_IOCTL_ASSIGN_PCIDEV: u32 = 1076142677;
+pub const BLKGETDISKSEQ: u32 = 2148012672;
+pub const ACRN_IOCTL_PM_GET_CPU_STATE: u32 = 3221791328;
+pub const ACRN_IOCTL_DESTROY_VM: u32 = 41489;
+pub const ACRN_IOCTL_SET_PTDEV_INTR: u32 = 1075094099;
+pub const ACRN_IOCTL_CREATE_IOREQ_CLIENT: u32 = 41522;
+pub const ACRN_IOCTL_IRQFD: u32 = 1075356273;
+pub const ACRN_IOCTL_CREATE_VM: u32 = 3224412688;
+pub const ACRN_IOCTL_INJECT_MSI: u32 = 1074831907;
+pub const ACRN_IOCTL_ATTACH_IOREQ_CLIENT: u32 = 41523;
+pub const ACRN_IOCTL_RESET_PTDEV_INTR: u32 = 1075094100;
+pub const ACRN_IOCTL_NOTIFY_REQUEST_FINISH: u32 = 1074307633;
+pub const ACRN_IOCTL_SET_IRQLINE: u32 = 1074307621;
+pub const ACRN_IOCTL_START_VM: u32 = 41490;
+pub const ACRN_IOCTL_SET_VCPU_REGS: u32 = 1093181974;
+pub const ACRN_IOCTL_SET_MEMSEG: u32 = 1075880513;
+pub const ACRN_IOCTL_PAUSE_VM: u32 = 41491;
+pub const ACRN_IOCTL_CLEAR_VM_IOREQ: u32 = 41525;
+pub const ACRN_IOCTL_UNSET_MEMSEG: u32 = 1075880514;
+pub const ACRN_IOCTL_IOEVENTFD: u32 = 1075880560;
+pub const ACRN_IOCTL_DEASSIGN_PCIDEV: u32 = 1076142678;
+pub const ACRN_IOCTL_RESET_VM: u32 = 41493;
+pub const ACRN_IOCTL_DESTROY_IOREQ_CLIENT: u32 = 41524;
+pub const ACRN_IOCTL_VM_INTR_MONITOR: u32 = 1074307620;
diff --git a/vendor/linux-raw-sys-0.9.4/src/aarch64/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/landlock.rs
new file mode 100644
index 0000000..1236020
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/landlock.rs
@@ -0,0 +1,100 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/aarch64/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/loop_device.rs
new file mode 100644
index 0000000..e15f2e8
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/loop_device.rs
@@ -0,0 +1,134 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/aarch64/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/mempolicy.rs
new file mode 100644
index 0000000..ad4957c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/mempolicy.rs
@@ -0,0 +1,175 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
+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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/aarch64/net.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/net.rs
new file mode 100644
index 0000000..e89ef84
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/net.rs
@@ -0,0 +1,3427 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 34usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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 SIOCGSTAMP_OLD: u32 = 35078;
+pub const SIOCGSTAMPNS_OLD: u32 = 35079;
+pub const SOL_SOCKET: u32 = 1;
+pub const SO_DEBUG: u32 = 1;
+pub const SO_REUSEADDR: u32 = 2;
+pub const SO_TYPE: u32 = 3;
+pub const SO_ERROR: u32 = 4;
+pub const SO_DONTROUTE: u32 = 5;
+pub const SO_BROADCAST: u32 = 6;
+pub const SO_SNDBUF: u32 = 7;
+pub const SO_RCVBUF: u32 = 8;
+pub const SO_SNDBUFFORCE: u32 = 32;
+pub const SO_RCVBUFFORCE: u32 = 33;
+pub const SO_KEEPALIVE: u32 = 9;
+pub const SO_OOBINLINE: u32 = 10;
+pub const SO_NO_CHECK: u32 = 11;
+pub const SO_PRIORITY: u32 = 12;
+pub const SO_LINGER: u32 = 13;
+pub const SO_BSDCOMPAT: u32 = 14;
+pub const SO_REUSEPORT: u32 = 15;
+pub const SO_PASSCRED: u32 = 16;
+pub const SO_PEERCRED: u32 = 17;
+pub const SO_RCVLOWAT: u32 = 18;
+pub const SO_SNDLOWAT: u32 = 19;
+pub const SO_RCVTIMEO_OLD: u32 = 20;
+pub const SO_SNDTIMEO_OLD: u32 = 21;
+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_ACCEPTCONN: u32 = 30;
+pub const SO_PEERSEC: u32 = 31;
+pub const SO_PASSSEC: u32 = 34;
+pub const SO_MARK: u32 = 36;
+pub const SO_PROTOCOL: u32 = 38;
+pub const SO_DOMAIN: u32 = 39;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+pub const SO_TIMESTAMP: u32 = 29;
+pub const SO_TIMESTAMPNS: u32 = 35;
+pub const SO_TIMESTAMPING: u32 = 37;
+pub const SO_RCVTIMEO: u32 = 20;
+pub const SO_SNDTIMEO: u32 = 21;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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 = 1;
+pub const SOCK_DGRAM: u32 = 2;
+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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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 = 32768,
+TCP_FLAG_ECE = 16384,
+TCP_FLAG_URG = 8192,
+TCP_FLAG_ACK = 4096,
+TCP_FLAG_PSH = 2048,
+TCP_FLAG_RST = 1024,
+TCP_FLAG_SYN = 512,
+TCP_FLAG_FIN = 256,
+TCP_RESERVED_BITS = 15,
+TCP_DATA_OFFSET = 240,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn ihl(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_ihl(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(ihl: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let ihl: u8 = unsafe { ::core::mem::transmute(ihl) };
+ihl as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl ipv6hdr {
+#[inline]
+pub fn priority(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_priority(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(priority: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let priority: u8 = unsafe { ::core::mem::transmute(priority) };
+priority as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcphdr {
+#[inline]
+pub fn res1(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_res1(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn doff(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_doff(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn fin(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_fin(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn syn(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_syn(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn rst(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_rst(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn psh(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_psh(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ack(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ack(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn urg(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_urg(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ece(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ece(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn cwr(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_cwr(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(res1: __u16, doff: __u16, fin: __u16, syn: __u16, rst: __u16, psh: __u16, ack: __u16, urg: __u16, ece: __u16, cwr: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let res1: u16 = unsafe { ::core::mem::transmute(res1) };
+res1 as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let doff: u16 = unsafe { ::core::mem::transmute(doff) };
+doff as u64
+});
+__bindgen_bitfield_unit.set(8usize, 1u8, {
+let fin: u16 = unsafe { ::core::mem::transmute(fin) };
+fin as u64
+});
+__bindgen_bitfield_unit.set(9usize, 1u8, {
+let syn: u16 = unsafe { ::core::mem::transmute(syn) };
+syn as u64
+});
+__bindgen_bitfield_unit.set(10usize, 1u8, {
+let rst: u16 = unsafe { ::core::mem::transmute(rst) };
+rst as u64
+});
+__bindgen_bitfield_unit.set(11usize, 1u8, {
+let psh: u16 = unsafe { ::core::mem::transmute(psh) };
+psh as u64
+});
+__bindgen_bitfield_unit.set(12usize, 1u8, {
+let ack: u16 = unsafe { ::core::mem::transmute(ack) };
+ack as u64
+});
+__bindgen_bitfield_unit.set(13usize, 1u8, {
+let urg: u16 = unsafe { ::core::mem::transmute(urg) };
+urg as u64
+});
+__bindgen_bitfield_unit.set(14usize, 1u8, {
+let ece: u16 = unsafe { ::core::mem::transmute(ece) };
+ece as u64
+});
+__bindgen_bitfield_unit.set(15usize, 1u8, {
+let cwr: u16 = unsafe { ::core::mem::transmute(cwr) };
+cwr 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/aarch64/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/netlink.rs
new file mode 100644
index 0000000..6abe0a4
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/netlink.rs
@@ -0,0 +1,2946 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_nl {
+pub nl_family: __kernel_sa_family_t,
+pub nl_pad: crate::ctypes::c_ushort,
+pub nl_pid: __u32,
+pub nl_groups: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsghdr {
+pub nlmsg_len: __u32,
+pub nlmsg_type: __u16,
+pub nlmsg_flags: __u16,
+pub nlmsg_seq: __u32,
+pub nlmsg_pid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsgerr {
+pub error: crate::ctypes::c_int,
+pub msg: nlmsghdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_pktinfo {
+pub group: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_req {
+pub nm_block_size: crate::ctypes::c_uint,
+pub nm_block_nr: crate::ctypes::c_uint,
+pub nm_frame_size: crate::ctypes::c_uint,
+pub nm_frame_nr: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_hdr {
+pub nm_status: crate::ctypes::c_uint,
+pub nm_len: crate::ctypes::c_uint,
+pub nm_group: __u32,
+pub nm_pid: __u32,
+pub nm_uid: __u32,
+pub nm_gid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlattr {
+pub nla_len: __u16,
+pub nla_type: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nla_bitfield32 {
+pub value: __u32,
+pub selector: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats {
+pub rx_packets: __u32,
+pub tx_packets: __u32,
+pub rx_bytes: __u32,
+pub tx_bytes: __u32,
+pub rx_errors: __u32,
+pub tx_errors: __u32,
+pub rx_dropped: __u32,
+pub tx_dropped: __u32,
+pub multicast: __u32,
+pub collisions: __u32,
+pub rx_length_errors: __u32,
+pub rx_over_errors: __u32,
+pub rx_crc_errors: __u32,
+pub rx_frame_errors: __u32,
+pub rx_fifo_errors: __u32,
+pub rx_missed_errors: __u32,
+pub tx_aborted_errors: __u32,
+pub tx_carrier_errors: __u32,
+pub tx_fifo_errors: __u32,
+pub tx_heartbeat_errors: __u32,
+pub tx_window_errors: __u32,
+pub rx_compressed: __u32,
+pub tx_compressed: __u32,
+pub rx_nohandler: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+pub collisions: __u64,
+pub rx_length_errors: __u64,
+pub rx_over_errors: __u64,
+pub rx_crc_errors: __u64,
+pub rx_frame_errors: __u64,
+pub rx_fifo_errors: __u64,
+pub rx_missed_errors: __u64,
+pub tx_aborted_errors: __u64,
+pub tx_carrier_errors: __u64,
+pub tx_fifo_errors: __u64,
+pub tx_heartbeat_errors: __u64,
+pub tx_window_errors: __u64,
+pub rx_compressed: __u64,
+pub tx_compressed: __u64,
+pub rx_nohandler: __u64,
+pub rx_otherhost_dropped: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_hw_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_ifmap {
+pub mem_start: __u64,
+pub mem_end: __u64,
+pub base_addr: __u64,
+pub irq: __u16,
+pub dma: __u8,
+pub port: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_bridge_id {
+pub prio: [__u8; 2usize],
+pub addr: [__u8; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_cacheinfo {
+pub max_reasm_len: __u32,
+pub tstamp: __u32,
+pub reachable_time: __u32,
+pub retrans_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_qos_mapping {
+pub from: __u32,
+pub to: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tunnel_msg {
+pub family: __u8,
+pub flags: __u8,
+pub reserved2: __u16,
+pub ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vxlan_port_range {
+pub low: __be16,
+pub high: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_mac {
+pub vf: __u32,
+pub mac: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_broadcast {
+pub broadcast: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan_info {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+pub vlan_proto: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_tx_rate {
+pub vf: __u32,
+pub rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rate {
+pub vf: __u32,
+pub min_tx_rate: __u32,
+pub max_tx_rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_spoofchk {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_guid {
+pub vf: __u32,
+pub guid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_link_state {
+pub vf: __u32,
+pub link_state: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rss_query_en {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_trust {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_port_vsi {
+pub vsi_mgr_id: __u8,
+pub vsi_type_id: [__u8; 3usize],
+pub vsi_type_version: __u8,
+pub pad: [__u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_stats_msg {
+pub family: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub ifindex: __u32,
+pub filter_mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_rmnet_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifaddrmsg {
+pub ifa_family: __u8,
+pub ifa_prefixlen: __u8,
+pub ifa_flags: __u8,
+pub ifa_scope: __u8,
+pub ifa_index: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifa_cacheinfo {
+pub ifa_prefered: __u32,
+pub ifa_valid: __u32,
+pub cstamp: __u32,
+pub tstamp: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndmsg {
+pub ndm_family: __u8,
+pub ndm_pad1: __u8,
+pub ndm_pad2: __u16,
+pub ndm_ifindex: __s32,
+pub ndm_state: __u16,
+pub ndm_flags: __u8,
+pub ndm_type: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nda_cacheinfo {
+pub ndm_confirmed: __u32,
+pub ndm_used: __u32,
+pub ndm_updated: __u32,
+pub ndm_refcnt: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_stats {
+pub ndts_allocs: __u64,
+pub ndts_destroys: __u64,
+pub ndts_hash_grows: __u64,
+pub ndts_res_failed: __u64,
+pub ndts_lookups: __u64,
+pub ndts_hits: __u64,
+pub ndts_rcv_probes_mcast: __u64,
+pub ndts_rcv_probes_ucast: __u64,
+pub ndts_periodic_gc_runs: __u64,
+pub ndts_forced_gc_runs: __u64,
+pub ndts_table_fulls: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndtmsg {
+pub ndtm_family: __u8,
+pub ndtm_pad1: __u8,
+pub ndtm_pad2: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_config {
+pub ndtc_key_len: __u16,
+pub ndtc_entry_size: __u16,
+pub ndtc_entries: __u32,
+pub ndtc_last_flush: __u32,
+pub ndtc_last_rand: __u32,
+pub ndtc_hash_rnd: __u32,
+pub ndtc_hash_mask: __u32,
+pub ndtc_hash_chain_gc: __u32,
+pub ndtc_proxy_qlen: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtattr {
+pub rta_len: crate::ctypes::c_ushort,
+pub rta_type: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtmsg {
+pub rtm_family: crate::ctypes::c_uchar,
+pub rtm_dst_len: crate::ctypes::c_uchar,
+pub rtm_src_len: crate::ctypes::c_uchar,
+pub rtm_tos: crate::ctypes::c_uchar,
+pub rtm_table: crate::ctypes::c_uchar,
+pub rtm_protocol: crate::ctypes::c_uchar,
+pub rtm_scope: crate::ctypes::c_uchar,
+pub rtm_type: crate::ctypes::c_uchar,
+pub rtm_flags: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnexthop {
+pub rtnh_len: crate::ctypes::c_ushort,
+pub rtnh_flags: crate::ctypes::c_uchar,
+pub rtnh_hops: crate::ctypes::c_uchar,
+pub rtnh_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct rtvia {
+pub rtvia_family: __kernel_sa_family_t,
+pub rtvia_addr: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_cacheinfo {
+pub rta_clntref: __u32,
+pub rta_lastuse: __u32,
+pub rta_expires: __s32,
+pub rta_error: __u32,
+pub rta_used: __u32,
+pub rta_id: __u32,
+pub rta_ts: __u32,
+pub rta_tsage: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rta_session {
+pub proto: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub u: rta_session__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_1 {
+pub sport: __u16,
+pub dport: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_2 {
+pub type_: __u8,
+pub code: __u8,
+pub ident: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_mfc_stats {
+pub mfcs_packets: __u64,
+pub mfcs_bytes: __u64,
+pub mfcs_wrong_if: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtgenmsg {
+pub rtgen_family: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifinfomsg {
+pub ifi_family: crate::ctypes::c_uchar,
+pub __ifi_pad: crate::ctypes::c_uchar,
+pub ifi_type: crate::ctypes::c_ushort,
+pub ifi_index: crate::ctypes::c_int,
+pub ifi_flags: crate::ctypes::c_uint,
+pub ifi_change: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefixmsg {
+pub prefix_family: crate::ctypes::c_uchar,
+pub prefix_pad1: crate::ctypes::c_uchar,
+pub prefix_pad2: crate::ctypes::c_ushort,
+pub prefix_ifindex: crate::ctypes::c_int,
+pub prefix_type: crate::ctypes::c_uchar,
+pub prefix_len: crate::ctypes::c_uchar,
+pub prefix_flags: crate::ctypes::c_uchar,
+pub prefix_pad3: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefix_cacheinfo {
+pub preferred_time: __u32,
+pub valid_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcmsg {
+pub tcm_family: crate::ctypes::c_uchar,
+pub tcm__pad1: crate::ctypes::c_uchar,
+pub tcm__pad2: crate::ctypes::c_ushort,
+pub tcm_ifindex: crate::ctypes::c_int,
+pub tcm_handle: __u32,
+pub tcm_parent: __u32,
+pub tcm_info: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nduseroptmsg {
+pub nduseropt_family: crate::ctypes::c_uchar,
+pub nduseropt_pad1: crate::ctypes::c_uchar,
+pub nduseropt_opts_len: crate::ctypes::c_ushort,
+pub nduseropt_ifindex: crate::ctypes::c_int,
+pub nduseropt_icmp_type: __u8,
+pub nduseropt_icmp_code: __u8,
+pub nduseropt_pad2: crate::ctypes::c_ushort,
+pub nduseropt_pad3: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcamsg {
+pub tca_family: crate::ctypes::c_uchar,
+pub tca__pad1: crate::ctypes::c_uchar,
+pub tca__pad2: crate::ctypes::c_ushort,
+}
+pub const _K_SS_MAXSIZE: u32 = 128;
+pub const SOCK_SNDBUF_LOCK: u32 = 1;
+pub const SOCK_RCVBUF_LOCK: u32 = 2;
+pub const SOCK_BUF_LOCK_MASK: u32 = 3;
+pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
+pub const SOCK_TXREHASH_DISABLED: u32 = 0;
+pub const SOCK_TXREHASH_ENABLED: u32 = 1;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/aarch64/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/prctl.rs
new file mode 100644
index 0000000..31fc242
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/prctl.rs
@@ -0,0 +1,262 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/aarch64/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/ptrace.rs
new file mode 100644
index 0000000..aaf6080
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/ptrace.rs
@@ -0,0 +1,1014 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 __uint128_t = u128;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_pt_regs {
+pub regs: [__u64; 31usize],
+pub sp: __u64,
+pub pc: __u64,
+pub pstate: __u64,
+}
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct user_fpsimd_state {
+pub vregs: [__uint128_t; 32usize],
+pub fpsr: __u32,
+pub fpcr: __u32,
+pub __reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_hwdebug_state {
+pub dbg_info: __u32,
+pub pad: __u32,
+pub dbg_regs: [user_hwdebug_state__bindgen_ty_1; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_hwdebug_state__bindgen_ty_1 {
+pub addr: __u64,
+pub ctrl: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_sve_header {
+pub size: __u32,
+pub max_size: __u32,
+pub vl: __u16,
+pub max_vl: __u16,
+pub flags: __u16,
+pub __reserved: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_pac_mask {
+pub data_mask: __u64,
+pub insn_mask: __u64,
+}
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct user_pac_address_keys {
+pub apiakey: __uint128_t,
+pub apibkey: __uint128_t,
+pub apdakey: __uint128_t,
+pub apdbkey: __uint128_t,
+}
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct user_pac_generic_keys {
+pub apgakey: __uint128_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_za_header {
+pub size: __u32,
+pub max_size: __u32,
+pub vl: __u16,
+pub max_vl: __u16,
+pub flags: __u16,
+pub __reserved: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_gcs {
+pub features_enabled: __u64,
+pub features_locked: __u64,
+pub gcspr_el0: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const HWCAP_FP: u32 = 1;
+pub const HWCAP_ASIMD: u32 = 2;
+pub const HWCAP_EVTSTRM: u32 = 4;
+pub const HWCAP_AES: u32 = 8;
+pub const HWCAP_PMULL: u32 = 16;
+pub const HWCAP_SHA1: u32 = 32;
+pub const HWCAP_SHA2: u32 = 64;
+pub const HWCAP_CRC32: u32 = 128;
+pub const HWCAP_ATOMICS: u32 = 256;
+pub const HWCAP_FPHP: u32 = 512;
+pub const HWCAP_ASIMDHP: u32 = 1024;
+pub const HWCAP_CPUID: u32 = 2048;
+pub const HWCAP_ASIMDRDM: u32 = 4096;
+pub const HWCAP_JSCVT: u32 = 8192;
+pub const HWCAP_FCMA: u32 = 16384;
+pub const HWCAP_LRCPC: u32 = 32768;
+pub const HWCAP_DCPOP: u32 = 65536;
+pub const HWCAP_SHA3: u32 = 131072;
+pub const HWCAP_SM3: u32 = 262144;
+pub const HWCAP_SM4: u32 = 524288;
+pub const HWCAP_ASIMDDP: u32 = 1048576;
+pub const HWCAP_SHA512: u32 = 2097152;
+pub const HWCAP_SVE: u32 = 4194304;
+pub const HWCAP_ASIMDFHM: u32 = 8388608;
+pub const HWCAP_DIT: u32 = 16777216;
+pub const HWCAP_USCAT: u32 = 33554432;
+pub const HWCAP_ILRCPC: u32 = 67108864;
+pub const HWCAP_FLAGM: u32 = 134217728;
+pub const HWCAP_SSBS: u32 = 268435456;
+pub const HWCAP_SB: u32 = 536870912;
+pub const HWCAP_PACA: u32 = 1073741824;
+pub const HWCAP_PACG: u32 = 2147483648;
+pub const HWCAP_GCS: u64 = 4294967296;
+pub const HWCAP2_DCPODP: u32 = 1;
+pub const HWCAP2_SVE2: u32 = 2;
+pub const HWCAP2_SVEAES: u32 = 4;
+pub const HWCAP2_SVEPMULL: u32 = 8;
+pub const HWCAP2_SVEBITPERM: u32 = 16;
+pub const HWCAP2_SVESHA3: u32 = 32;
+pub const HWCAP2_SVESM4: u32 = 64;
+pub const HWCAP2_FLAGM2: u32 = 128;
+pub const HWCAP2_FRINT: u32 = 256;
+pub const HWCAP2_SVEI8MM: u32 = 512;
+pub const HWCAP2_SVEF32MM: u32 = 1024;
+pub const HWCAP2_SVEF64MM: u32 = 2048;
+pub const HWCAP2_SVEBF16: u32 = 4096;
+pub const HWCAP2_I8MM: u32 = 8192;
+pub const HWCAP2_BF16: u32 = 16384;
+pub const HWCAP2_DGH: u32 = 32768;
+pub const HWCAP2_RNG: u32 = 65536;
+pub const HWCAP2_BTI: u32 = 131072;
+pub const HWCAP2_MTE: u32 = 262144;
+pub const HWCAP2_ECV: u32 = 524288;
+pub const HWCAP2_AFP: u32 = 1048576;
+pub const HWCAP2_RPRES: u32 = 2097152;
+pub const HWCAP2_MTE3: u32 = 4194304;
+pub const HWCAP2_SME: u32 = 8388608;
+pub const HWCAP2_SME_I16I64: u32 = 16777216;
+pub const HWCAP2_SME_F64F64: u32 = 33554432;
+pub const HWCAP2_SME_I8I32: u32 = 67108864;
+pub const HWCAP2_SME_F16F32: u32 = 134217728;
+pub const HWCAP2_SME_B16F32: u32 = 268435456;
+pub const HWCAP2_SME_F32F32: u32 = 536870912;
+pub const HWCAP2_SME_FA64: u32 = 1073741824;
+pub const HWCAP2_WFXT: u32 = 2147483648;
+pub const HWCAP2_EBF16: u64 = 4294967296;
+pub const HWCAP2_SVE_EBF16: u64 = 8589934592;
+pub const HWCAP2_CSSC: u64 = 17179869184;
+pub const HWCAP2_RPRFM: u64 = 34359738368;
+pub const HWCAP2_SVE2P1: u64 = 68719476736;
+pub const HWCAP2_SME2: u64 = 137438953472;
+pub const HWCAP2_SME2P1: u64 = 274877906944;
+pub const HWCAP2_SME_I16I32: u64 = 549755813888;
+pub const HWCAP2_SME_BI32I32: u64 = 1099511627776;
+pub const HWCAP2_SME_B16B16: u64 = 2199023255552;
+pub const HWCAP2_SME_F16F16: u64 = 4398046511104;
+pub const HWCAP2_MOPS: u64 = 8796093022208;
+pub const HWCAP2_HBC: u64 = 17592186044416;
+pub const HWCAP2_SVE_B16B16: u64 = 35184372088832;
+pub const HWCAP2_LRCPC3: u64 = 70368744177664;
+pub const HWCAP2_LSE128: u64 = 140737488355328;
+pub const HWCAP2_FPMR: u64 = 281474976710656;
+pub const HWCAP2_LUT: u64 = 562949953421312;
+pub const HWCAP2_FAMINMAX: u64 = 1125899906842624;
+pub const HWCAP2_F8CVT: u64 = 2251799813685248;
+pub const HWCAP2_F8FMA: u64 = 4503599627370496;
+pub const HWCAP2_F8DP4: u64 = 9007199254740992;
+pub const HWCAP2_F8DP2: u64 = 18014398509481984;
+pub const HWCAP2_F8E4M3: u64 = 36028797018963968;
+pub const HWCAP2_F8E5M2: u64 = 72057594037927936;
+pub const HWCAP2_SME_LUTV2: u64 = 144115188075855872;
+pub const HWCAP2_SME_F8F16: u64 = 288230376151711744;
+pub const HWCAP2_SME_F8F32: u64 = 576460752303423488;
+pub const HWCAP2_SME_SF8FMA: u64 = 1152921504606846976;
+pub const HWCAP2_SME_SF8DP4: u64 = 2305843009213693952;
+pub const HWCAP2_SME_SF8DP2: u64 = 4611686018427387904;
+pub const HWCAP2_POE: i64 = -9223372036854775808;
+pub const __SVE_VQ_BYTES: u32 = 16;
+pub const __SVE_VQ_MIN: u32 = 1;
+pub const __SVE_VQ_MAX: u32 = 512;
+pub const __SVE_VL_MIN: u32 = 16;
+pub const __SVE_VL_MAX: u32 = 8192;
+pub const __SVE_NUM_ZREGS: u32 = 32;
+pub const __SVE_NUM_PREGS: u32 = 16;
+pub const __SVE_ZREGS_OFFSET: u32 = 0;
+pub const PSR_MODE_EL0t: u32 = 0;
+pub const PSR_MODE_EL1t: u32 = 4;
+pub const PSR_MODE_EL1h: u32 = 5;
+pub const PSR_MODE_EL2t: u32 = 8;
+pub const PSR_MODE_EL2h: u32 = 9;
+pub const PSR_MODE_EL3t: u32 = 12;
+pub const PSR_MODE_EL3h: u32 = 13;
+pub const PSR_MODE_MASK: u32 = 15;
+pub const PSR_MODE32_BIT: u32 = 16;
+pub const PSR_F_BIT: u32 = 64;
+pub const PSR_I_BIT: u32 = 128;
+pub const PSR_A_BIT: u32 = 256;
+pub const PSR_D_BIT: u32 = 512;
+pub const PSR_BTYPE_MASK: u32 = 3072;
+pub const PSR_SSBS_BIT: u32 = 4096;
+pub const PSR_PAN_BIT: u32 = 4194304;
+pub const PSR_UAO_BIT: u32 = 8388608;
+pub const PSR_DIT_BIT: u32 = 16777216;
+pub const PSR_TCO_BIT: u32 = 33554432;
+pub const PSR_V_BIT: u32 = 268435456;
+pub const PSR_C_BIT: u32 = 536870912;
+pub const PSR_Z_BIT: u32 = 1073741824;
+pub const PSR_N_BIT: u32 = 2147483648;
+pub const PSR_BTYPE_SHIFT: u32 = 10;
+pub const PSR_f: u32 = 4278190080;
+pub const PSR_s: u32 = 16711680;
+pub const PSR_x: u32 = 65280;
+pub const PSR_c: u32 = 255;
+pub const PSR_BTYPE_NONE: u32 = 0;
+pub const PSR_BTYPE_JC: u32 = 1024;
+pub const PSR_BTYPE_C: u32 = 2048;
+pub const PSR_BTYPE_J: u32 = 3072;
+pub const PTRACE_SYSEMU: u32 = 31;
+pub const PTRACE_SYSEMU_SINGLESTEP: u32 = 32;
+pub const PTRACE_PEEKMTETAGS: u32 = 33;
+pub const PTRACE_POKEMTETAGS: u32 = 34;
+pub const SVE_PT_REGS_MASK: u32 = 1;
+pub const SVE_PT_REGS_FPSIMD: u32 = 0;
+pub const SVE_PT_REGS_SVE: u32 = 1;
+pub const SVE_PT_VL_INHERIT: u32 = 2;
+pub const SVE_PT_VL_ONEXEC: u32 = 4;
+pub const ZA_PT_VL_INHERIT: u32 = 2;
+pub const ZA_PT_VL_ONEXEC: u32 = 4;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/aarch64/system.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/system.rs
new file mode 100644
index 0000000..454f7e6
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/system.rs
@@ -0,0 +1,132 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug)]
+pub struct sysinfo {
+pub uptime: __kernel_long_t,
+pub loads: [__kernel_ulong_t; 3usize],
+pub totalram: __kernel_ulong_t,
+pub freeram: __kernel_ulong_t,
+pub sharedram: __kernel_ulong_t,
+pub bufferram: __kernel_ulong_t,
+pub totalswap: __kernel_ulong_t,
+pub freeswap: __kernel_ulong_t,
+pub procs: __u16,
+pub pad: __u16,
+pub totalhigh: __kernel_ulong_t,
+pub freehigh: __kernel_ulong_t,
+pub mem_unit: __u32,
+pub _f: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct oldold_utsname {
+pub sysname: [crate::ctypes::c_char; 9usize],
+pub nodename: [crate::ctypes::c_char; 9usize],
+pub release: [crate::ctypes::c_char; 9usize],
+pub version: [crate::ctypes::c_char; 9usize],
+pub machine: [crate::ctypes::c_char; 9usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct old_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct new_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+pub domainname: [crate::ctypes::c_char; 65usize],
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/aarch64/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/aarch64/xdp.rs
new file mode 100644
index 0000000..90b1c36
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/aarch64/xdp.rs
@@ -0,0 +1,191 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/arm/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/arm/bootparam.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/bootparam.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/arm/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/arm/btrfs.rs
new file mode 100644
index 0000000..60a5d05
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/btrfs.rs
@@ -0,0 +1,1866 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const _IOC_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/arm/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/arm/elf_uapi.rs
new file mode 100644
index 0000000..187f123
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/elf_uapi.rs
@@ -0,0 +1,522 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/arm/errno.rs b/vendor/linux-raw-sys-0.9.4/src/arm/errno.rs
new file mode 100644
index 0000000..5b018a2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/errno.rs
@@ -0,0 +1,135 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
diff --git a/vendor/linux-raw-sys-0.9.4/src/arm/general.rs b/vendor/linux-raw-sys-0.9.4/src/arm/general.rs
new file mode 100644
index 0000000..fef9c97
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/general.rs
@@ -0,0 +1,3328 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type __fsword_t = __u32;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 32usize],
+}
+#[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 epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 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(Copy, Clone)]
+pub struct sigaction {
+pub _u: sigaction__bindgen_ty_1,
+pub sa_mask: sigset_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_restorer: ::core::option::Option<unsafe extern "C" fn()>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaltstack {
+pub ss_sp: *mut crate::ctypes::c_void,
+pub ss_flags: crate::ctypes::c_int,
+pub ss_size: __kernel_size_t,
+}
+#[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; 4usize],
+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; 4usize],
+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_errno: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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; 19usize],
+}
+#[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; 19usize],
+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; 19usize],
+pub c_ispeed: speed_t,
+pub c_ospeed: speed_t,
+}
+#[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_uchar,
+pub c_cc: [crate::ctypes::c_uchar; 8usize],
+}
+#[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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulonglong,
+pub d_off: crate::ctypes::c_longlong,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __old_kernel_stat {
+pub st_dev: crate::ctypes::c_ushort,
+pub st_ino: crate::ctypes::c_ushort,
+pub st_mode: crate::ctypes::c_ushort,
+pub st_nlink: crate::ctypes::c_ushort,
+pub st_uid: crate::ctypes::c_ushort,
+pub st_gid: crate::ctypes::c_ushort,
+pub st_rdev: crate::ctypes::c_ushort,
+pub st_size: crate::ctypes::c_ulong,
+pub st_atime: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_ulong,
+pub st_ino: crate::ctypes::c_ulong,
+pub st_mode: crate::ctypes::c_ushort,
+pub st_nlink: crate::ctypes::c_ushort,
+pub st_uid: crate::ctypes::c_ushort,
+pub st_gid: crate::ctypes::c_ushort,
+pub st_rdev: crate::ctypes::c_ulong,
+pub st_size: crate::ctypes::c_ulong,
+pub st_blksize: crate::ctypes::c_ulong,
+pub st_blocks: crate::ctypes::c_ulong,
+pub st_atime: crate::ctypes::c_ulong,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_ulong,
+pub st_mtime_nsec: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_ulong,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub __unused4: crate::ctypes::c_ulong,
+pub __unused5: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat64 {
+pub st_dev: crate::ctypes::c_ulonglong,
+pub __pad0: [crate::ctypes::c_uchar; 4usize],
+pub __st_ino: crate::ctypes::c_ulong,
+pub st_mode: crate::ctypes::c_uint,
+pub st_nlink: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_ulong,
+pub st_gid: crate::ctypes::c_ulong,
+pub st_rdev: crate::ctypes::c_ulonglong,
+pub __pad3: [crate::ctypes::c_uchar; 4usize],
+pub st_size: crate::ctypes::c_longlong,
+pub st_blksize: crate::ctypes::c_ulong,
+pub st_blocks: crate::ctypes::c_ulonglong,
+pub st_atime: crate::ctypes::c_ulong,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_ulong,
+pub st_mtime_nsec: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_ulong,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub st_ino: crate::ctypes::c_ulonglong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u32,
+pub f_bfree: __u32,
+pub f_bavail: __u32,
+pub f_files: __u32,
+pub f_ffree: __u32,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[repr(C, packed(4))]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct compat_statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[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_restorer: __sigrestore_t,
+pub sa_mask: kernel_sigset_t,
+}
+pub const LINUX_VERSION_CODE: u32 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+pub const LINUX_VERSION_SUBLEVEL: u32 = 0;
+pub const AT_SYSINFO_EHDR: u32 = 33;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+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_DIRECTORY: u32 = 16384;
+pub const O_NOFOLLOW: u32 = 32768;
+pub const O_DIRECT: u32 = 65536;
+pub const O_LARGEFILE: u32 = 131072;
+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_CREAT: u32 = 64;
+pub const O_EXCL: u32 = 128;
+pub const O_NOCTTY: u32 = 256;
+pub const O_TRUNC: u32 = 512;
+pub const O_APPEND: u32 = 1024;
+pub const O_NONBLOCK: u32 = 2048;
+pub const O_DSYNC: u32 = 4096;
+pub const FASYNC: u32 = 8192;
+pub const O_NOATIME: u32 = 262144;
+pub const O_CLOEXEC: u32 = 524288;
+pub const __O_SYNC: u32 = 1048576;
+pub const O_SYNC: u32 = 1052672;
+pub const O_PATH: u32 = 2097152;
+pub const __O_TMPFILE: u32 = 4194304;
+pub const O_TMPFILE: u32 = 4210688;
+pub const O_NDELAY: u32 = 2048;
+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_GETLK: u32 = 5;
+pub const F_SETLK: u32 = 6;
+pub const F_SETLKW: u32 = 7;
+pub const F_SETOWN: u32 = 8;
+pub const F_GETOWN: u32 = 9;
+pub const F_SETSIG: u32 = 10;
+pub const F_GETSIG: u32 = 11;
+pub const F_GETLK64: u32 = 12;
+pub const F_SETLK64: u32 = 13;
+pub const F_SETLKW64: u32 = 14;
+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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 = 2048;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+pub const PROT_READ: u32 = 1;
+pub const PROT_WRITE: u32 = 2;
+pub const PROT_EXEC: u32 = 4;
+pub const PROT_SEM: u32 = 8;
+pub const PROT_NONE: u32 = 0;
+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_ANONYMOUS: u32 = 32;
+pub const MAP_POPULATE: u32 = 32768;
+pub const MAP_NONBLOCK: u32 = 65536;
+pub const MAP_STACK: u32 = 131072;
+pub const MAP_HUGETLB: u32 = 262144;
+pub const MAP_SYNC: u32 = 524288;
+pub const MAP_FIXED_NOREPLACE: u32 = 1048576;
+pub const MAP_UNINITIALIZED: u32 = 67108864;
+pub const MLOCK_ONFAULT: u32 = 1;
+pub const MS_ASYNC: u32 = 1;
+pub const MS_INVALIDATE: u32 = 2;
+pub const MS_SYNC: u32 = 4;
+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_HWPOISON: u32 = 100;
+pub const MADV_SOFT_OFFLINE: u32 = 101;
+pub const MADV_MERGEABLE: u32 = 12;
+pub const MADV_UNMERGEABLE: u32 = 13;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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 MAP_GROWSDOWN: u32 = 256;
+pub const MAP_DENYWRITE: u32 = 2048;
+pub const MAP_EXECUTABLE: u32 = 4096;
+pub const MAP_LOCKED: u32 = 8192;
+pub const MAP_NORESERVE: u32 = 16384;
+pub const MCL_CURRENT: u32 = 1;
+pub const MCL_FUTURE: u32 = 2;
+pub const MCL_ONFAULT: u32 = 4;
+pub const SHADOW_STACK_SET_TOKEN: u32 = 1;
+pub const SHADOW_STACK_SET_MARKER: u32 = 2;
+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_DROPPABLE: u32 = 8;
+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 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 POLLWRNORM: u32 = 256;
+pub const POLLWRBAND: u32 = 512;
+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 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_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_RSS: u32 = 5;
+pub const RLIMIT_NPROC: u32 = 6;
+pub const RLIMIT_NOFILE: u32 = 7;
+pub const RLIMIT_MEMLOCK: u32 = 8;
+pub const RLIMIT_AS: u32 = 9;
+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_EXT: u32 = 7;
+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 = 32;
+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 SIGABRT: u32 = 6;
+pub const SIGIOT: u32 = 6;
+pub const SIGBUS: u32 = 7;
+pub const SIGFPE: u32 = 8;
+pub const SIGKILL: u32 = 9;
+pub const SIGUSR1: u32 = 10;
+pub const SIGSEGV: u32 = 11;
+pub const SIGUSR2: u32 = 12;
+pub const SIGPIPE: u32 = 13;
+pub const SIGALRM: u32 = 14;
+pub const SIGTERM: u32 = 15;
+pub const SIGSTKFLT: u32 = 16;
+pub const SIGCHLD: u32 = 17;
+pub const SIGCONT: u32 = 18;
+pub const SIGSTOP: u32 = 19;
+pub const SIGTSTP: u32 = 20;
+pub const SIGTTIN: u32 = 21;
+pub const SIGTTOU: u32 = 22;
+pub const SIGURG: u32 = 23;
+pub const SIGXCPU: u32 = 24;
+pub const SIGXFSZ: u32 = 25;
+pub const SIGVTALRM: u32 = 26;
+pub const SIGPROF: u32 = 27;
+pub const SIGWINCH: u32 = 28;
+pub const SIGIO: u32 = 29;
+pub const SIGPOLL: u32 = 29;
+pub const SIGPWR: u32 = 30;
+pub const SIGSYS: u32 = 31;
+pub const SIGUNUSED: u32 = 31;
+pub const SIGRTMIN: u32 = 32;
+pub const SIGSWI: u32 = 32;
+pub const SA_THIRTYTWO: u32 = 33554432;
+pub const SA_RESTORER: u32 = 67108864;
+pub const MINSIGSTKSZ: u32 = 2048;
+pub const SIGSTKSZ: u32 = 8192;
+pub const SA_NOCLDSTOP: u32 = 1;
+pub const SA_NOCLDWAIT: u32 = 2;
+pub const SA_SIGINFO: u32 = 4;
+pub const SA_UNSUPPORTED: u32 = 1024;
+pub const SA_EXPOSE_TAGBITS: u32 = 2048;
+pub const SA_ONSTACK: u32 = 134217728;
+pub const SA_RESTART: u32 = 268435456;
+pub const SA_NODEFER: u32 = 1073741824;
+pub const SA_RESETHAND: u32 = 2147483648;
+pub const SA_NOMASK: u32 = 1073741824;
+pub const SA_ONESHOT: u32 = 2147483648;
+pub const SIG_BLOCK: u32 = 0;
+pub const SIG_UNBLOCK: u32 = 1;
+pub const SIG_SETMASK: u32 = 2;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 = 19;
+pub const VINTR: u32 = 0;
+pub const VQUIT: u32 = 1;
+pub const VERASE: u32 = 2;
+pub const VKILL: u32 = 3;
+pub const VEOF: u32 = 4;
+pub const VTIME: u32 = 5;
+pub const VMIN: u32 = 6;
+pub const VSWTC: u32 = 7;
+pub const VSTART: u32 = 8;
+pub const VSTOP: u32 = 9;
+pub const VSUSP: u32 = 10;
+pub const VEOL: u32 = 11;
+pub const VREPRINT: u32 = 12;
+pub const VDISCARD: u32 = 13;
+pub const VWERASE: u32 = 14;
+pub const VLNEXT: u32 = 15;
+pub const VEOL2: u32 = 16;
+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 TOSTOP: u32 = 256;
+pub const ECHOCTL: u32 = 512;
+pub const ECHOPRT: u32 = 1024;
+pub const ECHOKE: u32 = 2048;
+pub const FLUSHO: u32 = 4096;
+pub const PENDIN: u32 = 16384;
+pub const IEXTEN: u32 = 32768;
+pub const EXTPROC: u32 = 65536;
+pub const TCSANOW: u32 = 0;
+pub const TCSADRAIN: u32 = 1;
+pub const TCSAFLUSH: u32 = 2;
+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 TIOCSER_TEMT: u32 = 1;
+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 = 8;
+pub const TIOCM_SR: u32 = 16;
+pub const TIOCM_CTS: u32 = 32;
+pub const TIOCM_CAR: u32 = 64;
+pub const TIOCM_RNG: u32 = 128;
+pub const TIOCM_DSR: u32 = 256;
+pub const TIOCM_CD: u32 = 64;
+pub const TIOCM_RI: u32 = 128;
+pub const TIOCM_OUT1: u32 = 8192;
+pub const TIOCM_OUT2: u32 = 16384;
+pub const TIOCM_LOOP: u32 = 32768;
+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 UIO_FASTIOV: u32 = 8;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const __NR_OABI_SYSCALL_BASE: u32 = 9437184;
+pub const __NR_SYSCALL_MASK: u32 = 1048575;
+pub const __NR_SYSCALL_BASE: u32 = 0;
+pub const __NR_restart_syscall: u32 = 0;
+pub const __NR_exit: u32 = 1;
+pub const __NR_fork: u32 = 2;
+pub const __NR_read: u32 = 3;
+pub const __NR_write: u32 = 4;
+pub const __NR_open: u32 = 5;
+pub const __NR_close: u32 = 6;
+pub const __NR_creat: u32 = 8;
+pub const __NR_link: u32 = 9;
+pub const __NR_unlink: u32 = 10;
+pub const __NR_execve: u32 = 11;
+pub const __NR_chdir: u32 = 12;
+pub const __NR_mknod: u32 = 14;
+pub const __NR_chmod: u32 = 15;
+pub const __NR_lchown: u32 = 16;
+pub const __NR_lseek: u32 = 19;
+pub const __NR_getpid: u32 = 20;
+pub const __NR_mount: u32 = 21;
+pub const __NR_setuid: u32 = 23;
+pub const __NR_getuid: u32 = 24;
+pub const __NR_ptrace: u32 = 26;
+pub const __NR_pause: u32 = 29;
+pub const __NR_access: u32 = 33;
+pub const __NR_nice: u32 = 34;
+pub const __NR_sync: u32 = 36;
+pub const __NR_kill: u32 = 37;
+pub const __NR_rename: u32 = 38;
+pub const __NR_mkdir: u32 = 39;
+pub const __NR_rmdir: u32 = 40;
+pub const __NR_dup: u32 = 41;
+pub const __NR_pipe: u32 = 42;
+pub const __NR_times: u32 = 43;
+pub const __NR_brk: u32 = 45;
+pub const __NR_setgid: u32 = 46;
+pub const __NR_getgid: u32 = 47;
+pub const __NR_geteuid: u32 = 49;
+pub const __NR_getegid: u32 = 50;
+pub const __NR_acct: u32 = 51;
+pub const __NR_umount2: u32 = 52;
+pub const __NR_ioctl: u32 = 54;
+pub const __NR_fcntl: u32 = 55;
+pub const __NR_setpgid: u32 = 57;
+pub const __NR_umask: u32 = 60;
+pub const __NR_chroot: u32 = 61;
+pub const __NR_ustat: u32 = 62;
+pub const __NR_dup2: u32 = 63;
+pub const __NR_getppid: u32 = 64;
+pub const __NR_getpgrp: u32 = 65;
+pub const __NR_setsid: u32 = 66;
+pub const __NR_sigaction: u32 = 67;
+pub const __NR_setreuid: u32 = 70;
+pub const __NR_setregid: u32 = 71;
+pub const __NR_sigsuspend: u32 = 72;
+pub const __NR_sigpending: u32 = 73;
+pub const __NR_sethostname: u32 = 74;
+pub const __NR_setrlimit: u32 = 75;
+pub const __NR_getrusage: u32 = 77;
+pub const __NR_gettimeofday: u32 = 78;
+pub const __NR_settimeofday: u32 = 79;
+pub const __NR_getgroups: u32 = 80;
+pub const __NR_setgroups: u32 = 81;
+pub const __NR_symlink: u32 = 83;
+pub const __NR_readlink: u32 = 85;
+pub const __NR_uselib: u32 = 86;
+pub const __NR_swapon: u32 = 87;
+pub const __NR_reboot: u32 = 88;
+pub const __NR_munmap: u32 = 91;
+pub const __NR_truncate: u32 = 92;
+pub const __NR_ftruncate: u32 = 93;
+pub const __NR_fchmod: u32 = 94;
+pub const __NR_fchown: u32 = 95;
+pub const __NR_getpriority: u32 = 96;
+pub const __NR_setpriority: u32 = 97;
+pub const __NR_statfs: u32 = 99;
+pub const __NR_fstatfs: u32 = 100;
+pub const __NR_syslog: u32 = 103;
+pub const __NR_setitimer: u32 = 104;
+pub const __NR_getitimer: u32 = 105;
+pub const __NR_stat: u32 = 106;
+pub const __NR_lstat: u32 = 107;
+pub const __NR_fstat: u32 = 108;
+pub const __NR_vhangup: u32 = 111;
+pub const __NR_wait4: u32 = 114;
+pub const __NR_swapoff: u32 = 115;
+pub const __NR_sysinfo: u32 = 116;
+pub const __NR_fsync: u32 = 118;
+pub const __NR_sigreturn: u32 = 119;
+pub const __NR_clone: u32 = 120;
+pub const __NR_setdomainname: u32 = 121;
+pub const __NR_uname: u32 = 122;
+pub const __NR_adjtimex: u32 = 124;
+pub const __NR_mprotect: u32 = 125;
+pub const __NR_sigprocmask: u32 = 126;
+pub const __NR_init_module: u32 = 128;
+pub const __NR_delete_module: u32 = 129;
+pub const __NR_quotactl: u32 = 131;
+pub const __NR_getpgid: u32 = 132;
+pub const __NR_fchdir: u32 = 133;
+pub const __NR_bdflush: u32 = 134;
+pub const __NR_sysfs: u32 = 135;
+pub const __NR_personality: u32 = 136;
+pub const __NR_setfsuid: u32 = 138;
+pub const __NR_setfsgid: u32 = 139;
+pub const __NR__llseek: u32 = 140;
+pub const __NR_getdents: u32 = 141;
+pub const __NR__newselect: u32 = 142;
+pub const __NR_flock: u32 = 143;
+pub const __NR_msync: u32 = 144;
+pub const __NR_readv: u32 = 145;
+pub const __NR_writev: u32 = 146;
+pub const __NR_getsid: u32 = 147;
+pub const __NR_fdatasync: u32 = 148;
+pub const __NR__sysctl: u32 = 149;
+pub const __NR_mlock: u32 = 150;
+pub const __NR_munlock: u32 = 151;
+pub const __NR_mlockall: u32 = 152;
+pub const __NR_munlockall: u32 = 153;
+pub const __NR_sched_setparam: u32 = 154;
+pub const __NR_sched_getparam: u32 = 155;
+pub const __NR_sched_setscheduler: u32 = 156;
+pub const __NR_sched_getscheduler: u32 = 157;
+pub const __NR_sched_yield: u32 = 158;
+pub const __NR_sched_get_priority_max: u32 = 159;
+pub const __NR_sched_get_priority_min: u32 = 160;
+pub const __NR_sched_rr_get_interval: u32 = 161;
+pub const __NR_nanosleep: u32 = 162;
+pub const __NR_mremap: u32 = 163;
+pub const __NR_setresuid: u32 = 164;
+pub const __NR_getresuid: u32 = 165;
+pub const __NR_poll: u32 = 168;
+pub const __NR_nfsservctl: u32 = 169;
+pub const __NR_setresgid: u32 = 170;
+pub const __NR_getresgid: u32 = 171;
+pub const __NR_prctl: u32 = 172;
+pub const __NR_rt_sigreturn: u32 = 173;
+pub const __NR_rt_sigaction: u32 = 174;
+pub const __NR_rt_sigprocmask: u32 = 175;
+pub const __NR_rt_sigpending: u32 = 176;
+pub const __NR_rt_sigtimedwait: u32 = 177;
+pub const __NR_rt_sigqueueinfo: u32 = 178;
+pub const __NR_rt_sigsuspend: u32 = 179;
+pub const __NR_pread64: u32 = 180;
+pub const __NR_pwrite64: u32 = 181;
+pub const __NR_chown: u32 = 182;
+pub const __NR_getcwd: u32 = 183;
+pub const __NR_capget: u32 = 184;
+pub const __NR_capset: u32 = 185;
+pub const __NR_sigaltstack: u32 = 186;
+pub const __NR_sendfile: u32 = 187;
+pub const __NR_vfork: u32 = 190;
+pub const __NR_ugetrlimit: u32 = 191;
+pub const __NR_mmap2: u32 = 192;
+pub const __NR_truncate64: u32 = 193;
+pub const __NR_ftruncate64: u32 = 194;
+pub const __NR_stat64: u32 = 195;
+pub const __NR_lstat64: u32 = 196;
+pub const __NR_fstat64: u32 = 197;
+pub const __NR_lchown32: u32 = 198;
+pub const __NR_getuid32: u32 = 199;
+pub const __NR_getgid32: u32 = 200;
+pub const __NR_geteuid32: u32 = 201;
+pub const __NR_getegid32: u32 = 202;
+pub const __NR_setreuid32: u32 = 203;
+pub const __NR_setregid32: u32 = 204;
+pub const __NR_getgroups32: u32 = 205;
+pub const __NR_setgroups32: u32 = 206;
+pub const __NR_fchown32: u32 = 207;
+pub const __NR_setresuid32: u32 = 208;
+pub const __NR_getresuid32: u32 = 209;
+pub const __NR_setresgid32: u32 = 210;
+pub const __NR_getresgid32: u32 = 211;
+pub const __NR_chown32: u32 = 212;
+pub const __NR_setuid32: u32 = 213;
+pub const __NR_setgid32: u32 = 214;
+pub const __NR_setfsuid32: u32 = 215;
+pub const __NR_setfsgid32: u32 = 216;
+pub const __NR_getdents64: u32 = 217;
+pub const __NR_pivot_root: u32 = 218;
+pub const __NR_mincore: u32 = 219;
+pub const __NR_madvise: u32 = 220;
+pub const __NR_fcntl64: u32 = 221;
+pub const __NR_gettid: u32 = 224;
+pub const __NR_readahead: u32 = 225;
+pub const __NR_setxattr: u32 = 226;
+pub const __NR_lsetxattr: u32 = 227;
+pub const __NR_fsetxattr: u32 = 228;
+pub const __NR_getxattr: u32 = 229;
+pub const __NR_lgetxattr: u32 = 230;
+pub const __NR_fgetxattr: u32 = 231;
+pub const __NR_listxattr: u32 = 232;
+pub const __NR_llistxattr: u32 = 233;
+pub const __NR_flistxattr: u32 = 234;
+pub const __NR_removexattr: u32 = 235;
+pub const __NR_lremovexattr: u32 = 236;
+pub const __NR_fremovexattr: u32 = 237;
+pub const __NR_tkill: u32 = 238;
+pub const __NR_sendfile64: u32 = 239;
+pub const __NR_futex: u32 = 240;
+pub const __NR_sched_setaffinity: u32 = 241;
+pub const __NR_sched_getaffinity: u32 = 242;
+pub const __NR_io_setup: u32 = 243;
+pub const __NR_io_destroy: u32 = 244;
+pub const __NR_io_getevents: u32 = 245;
+pub const __NR_io_submit: u32 = 246;
+pub const __NR_io_cancel: u32 = 247;
+pub const __NR_exit_group: u32 = 248;
+pub const __NR_lookup_dcookie: u32 = 249;
+pub const __NR_epoll_create: u32 = 250;
+pub const __NR_epoll_ctl: u32 = 251;
+pub const __NR_epoll_wait: u32 = 252;
+pub const __NR_remap_file_pages: u32 = 253;
+pub const __NR_set_tid_address: u32 = 256;
+pub const __NR_timer_create: u32 = 257;
+pub const __NR_timer_settime: u32 = 258;
+pub const __NR_timer_gettime: u32 = 259;
+pub const __NR_timer_getoverrun: u32 = 260;
+pub const __NR_timer_delete: u32 = 261;
+pub const __NR_clock_settime: u32 = 262;
+pub const __NR_clock_gettime: u32 = 263;
+pub const __NR_clock_getres: u32 = 264;
+pub const __NR_clock_nanosleep: u32 = 265;
+pub const __NR_statfs64: u32 = 266;
+pub const __NR_fstatfs64: u32 = 267;
+pub const __NR_tgkill: u32 = 268;
+pub const __NR_utimes: u32 = 269;
+pub const __NR_arm_fadvise64_64: u32 = 270;
+pub const __NR_pciconfig_iobase: u32 = 271;
+pub const __NR_pciconfig_read: u32 = 272;
+pub const __NR_pciconfig_write: u32 = 273;
+pub const __NR_mq_open: u32 = 274;
+pub const __NR_mq_unlink: u32 = 275;
+pub const __NR_mq_timedsend: u32 = 276;
+pub const __NR_mq_timedreceive: u32 = 277;
+pub const __NR_mq_notify: u32 = 278;
+pub const __NR_mq_getsetattr: u32 = 279;
+pub const __NR_waitid: u32 = 280;
+pub const __NR_socket: u32 = 281;
+pub const __NR_bind: u32 = 282;
+pub const __NR_connect: u32 = 283;
+pub const __NR_listen: u32 = 284;
+pub const __NR_accept: u32 = 285;
+pub const __NR_getsockname: u32 = 286;
+pub const __NR_getpeername: u32 = 287;
+pub const __NR_socketpair: u32 = 288;
+pub const __NR_send: u32 = 289;
+pub const __NR_sendto: u32 = 290;
+pub const __NR_recv: u32 = 291;
+pub const __NR_recvfrom: u32 = 292;
+pub const __NR_shutdown: u32 = 293;
+pub const __NR_setsockopt: u32 = 294;
+pub const __NR_getsockopt: u32 = 295;
+pub const __NR_sendmsg: u32 = 296;
+pub const __NR_recvmsg: u32 = 297;
+pub const __NR_semop: u32 = 298;
+pub const __NR_semget: u32 = 299;
+pub const __NR_semctl: u32 = 300;
+pub const __NR_msgsnd: u32 = 301;
+pub const __NR_msgrcv: u32 = 302;
+pub const __NR_msgget: u32 = 303;
+pub const __NR_msgctl: u32 = 304;
+pub const __NR_shmat: u32 = 305;
+pub const __NR_shmdt: u32 = 306;
+pub const __NR_shmget: u32 = 307;
+pub const __NR_shmctl: u32 = 308;
+pub const __NR_add_key: u32 = 309;
+pub const __NR_request_key: u32 = 310;
+pub const __NR_keyctl: u32 = 311;
+pub const __NR_semtimedop: u32 = 312;
+pub const __NR_vserver: u32 = 313;
+pub const __NR_ioprio_set: u32 = 314;
+pub const __NR_ioprio_get: u32 = 315;
+pub const __NR_inotify_init: u32 = 316;
+pub const __NR_inotify_add_watch: u32 = 317;
+pub const __NR_inotify_rm_watch: u32 = 318;
+pub const __NR_mbind: u32 = 319;
+pub const __NR_get_mempolicy: u32 = 320;
+pub const __NR_set_mempolicy: u32 = 321;
+pub const __NR_openat: u32 = 322;
+pub const __NR_mkdirat: u32 = 323;
+pub const __NR_mknodat: u32 = 324;
+pub const __NR_fchownat: u32 = 325;
+pub const __NR_futimesat: u32 = 326;
+pub const __NR_fstatat64: u32 = 327;
+pub const __NR_unlinkat: u32 = 328;
+pub const __NR_renameat: u32 = 329;
+pub const __NR_linkat: u32 = 330;
+pub const __NR_symlinkat: u32 = 331;
+pub const __NR_readlinkat: u32 = 332;
+pub const __NR_fchmodat: u32 = 333;
+pub const __NR_faccessat: u32 = 334;
+pub const __NR_pselect6: u32 = 335;
+pub const __NR_ppoll: u32 = 336;
+pub const __NR_unshare: u32 = 337;
+pub const __NR_set_robust_list: u32 = 338;
+pub const __NR_get_robust_list: u32 = 339;
+pub const __NR_splice: u32 = 340;
+pub const __NR_arm_sync_file_range: u32 = 341;
+pub const __NR_tee: u32 = 342;
+pub const __NR_vmsplice: u32 = 343;
+pub const __NR_move_pages: u32 = 344;
+pub const __NR_getcpu: u32 = 345;
+pub const __NR_epoll_pwait: u32 = 346;
+pub const __NR_kexec_load: u32 = 347;
+pub const __NR_utimensat: u32 = 348;
+pub const __NR_signalfd: u32 = 349;
+pub const __NR_timerfd_create: u32 = 350;
+pub const __NR_eventfd: u32 = 351;
+pub const __NR_fallocate: u32 = 352;
+pub const __NR_timerfd_settime: u32 = 353;
+pub const __NR_timerfd_gettime: u32 = 354;
+pub const __NR_signalfd4: u32 = 355;
+pub const __NR_eventfd2: u32 = 356;
+pub const __NR_epoll_create1: u32 = 357;
+pub const __NR_dup3: u32 = 358;
+pub const __NR_pipe2: u32 = 359;
+pub const __NR_inotify_init1: u32 = 360;
+pub const __NR_preadv: u32 = 361;
+pub const __NR_pwritev: u32 = 362;
+pub const __NR_rt_tgsigqueueinfo: u32 = 363;
+pub const __NR_perf_event_open: u32 = 364;
+pub const __NR_recvmmsg: u32 = 365;
+pub const __NR_accept4: u32 = 366;
+pub const __NR_fanotify_init: u32 = 367;
+pub const __NR_fanotify_mark: u32 = 368;
+pub const __NR_prlimit64: u32 = 369;
+pub const __NR_name_to_handle_at: u32 = 370;
+pub const __NR_open_by_handle_at: u32 = 371;
+pub const __NR_clock_adjtime: u32 = 372;
+pub const __NR_syncfs: u32 = 373;
+pub const __NR_sendmmsg: u32 = 374;
+pub const __NR_setns: u32 = 375;
+pub const __NR_process_vm_readv: u32 = 376;
+pub const __NR_process_vm_writev: u32 = 377;
+pub const __NR_kcmp: u32 = 378;
+pub const __NR_finit_module: u32 = 379;
+pub const __NR_sched_setattr: u32 = 380;
+pub const __NR_sched_getattr: u32 = 381;
+pub const __NR_renameat2: u32 = 382;
+pub const __NR_seccomp: u32 = 383;
+pub const __NR_getrandom: u32 = 384;
+pub const __NR_memfd_create: u32 = 385;
+pub const __NR_bpf: u32 = 386;
+pub const __NR_execveat: u32 = 387;
+pub const __NR_userfaultfd: u32 = 388;
+pub const __NR_membarrier: u32 = 389;
+pub const __NR_mlock2: u32 = 390;
+pub const __NR_copy_file_range: u32 = 391;
+pub const __NR_preadv2: u32 = 392;
+pub const __NR_pwritev2: u32 = 393;
+pub const __NR_pkey_mprotect: u32 = 394;
+pub const __NR_pkey_alloc: u32 = 395;
+pub const __NR_pkey_free: u32 = 396;
+pub const __NR_statx: u32 = 397;
+pub const __NR_rseq: u32 = 398;
+pub const __NR_io_pgetevents: u32 = 399;
+pub const __NR_migrate_pages: u32 = 400;
+pub const __NR_kexec_file_load: u32 = 401;
+pub const __NR_clock_gettime64: u32 = 403;
+pub const __NR_clock_settime64: u32 = 404;
+pub const __NR_clock_adjtime64: u32 = 405;
+pub const __NR_clock_getres_time64: u32 = 406;
+pub const __NR_clock_nanosleep_time64: u32 = 407;
+pub const __NR_timer_gettime64: u32 = 408;
+pub const __NR_timer_settime64: u32 = 409;
+pub const __NR_timerfd_gettime64: u32 = 410;
+pub const __NR_timerfd_settime64: u32 = 411;
+pub const __NR_utimensat_time64: u32 = 412;
+pub const __NR_pselect6_time64: u32 = 413;
+pub const __NR_ppoll_time64: u32 = 414;
+pub const __NR_io_pgetevents_time64: u32 = 416;
+pub const __NR_recvmmsg_time64: u32 = 417;
+pub const __NR_mq_timedsend_time64: u32 = 418;
+pub const __NR_mq_timedreceive_time64: u32 = 419;
+pub const __NR_semtimedop_time64: u32 = 420;
+pub const __NR_rt_sigtimedwait_time64: u32 = 421;
+pub const __NR_futex_time64: u32 = 422;
+pub const __NR_sched_rr_get_interval_time64: u32 = 423;
+pub const __NR_pidfd_send_signal: u32 = 424;
+pub const __NR_io_uring_setup: u32 = 425;
+pub const __NR_io_uring_enter: u32 = 426;
+pub const __NR_io_uring_register: u32 = 427;
+pub const __NR_open_tree: u32 = 428;
+pub const __NR_move_mount: u32 = 429;
+pub const __NR_fsopen: u32 = 430;
+pub const __NR_fsconfig: u32 = 431;
+pub const __NR_fsmount: u32 = 432;
+pub const __NR_fspick: u32 = 433;
+pub const __NR_pidfd_open: u32 = 434;
+pub const __NR_clone3: u32 = 435;
+pub const __NR_close_range: u32 = 436;
+pub const __NR_openat2: u32 = 437;
+pub const __NR_pidfd_getfd: u32 = 438;
+pub const __NR_faccessat2: u32 = 439;
+pub const __NR_process_madvise: u32 = 440;
+pub const __NR_epoll_pwait2: u32 = 441;
+pub const __NR_mount_setattr: u32 = 442;
+pub const __NR_quotactl_fd: u32 = 443;
+pub const __NR_landlock_create_ruleset: u32 = 444;
+pub const __NR_landlock_add_rule: u32 = 445;
+pub const __NR_landlock_restrict_self: u32 = 446;
+pub const __NR_process_mrelease: u32 = 448;
+pub const __NR_futex_waitv: u32 = 449;
+pub const __NR_set_mempolicy_home_node: u32 = 450;
+pub const __NR_cachestat: u32 = 451;
+pub const __NR_fchmodat2: u32 = 452;
+pub const __NR_map_shadow_stack: u32 = 453;
+pub const __NR_futex_wake: u32 = 454;
+pub const __NR_futex_wait: u32 = 455;
+pub const __NR_futex_requeue: u32 = 456;
+pub const __NR_statmount: u32 = 457;
+pub const __NR_listmount: u32 = 458;
+pub const __NR_lsm_get_self_attr: u32 = 459;
+pub const __NR_lsm_set_self_attr: u32 = 460;
+pub const __NR_lsm_list_modules: u32 = 461;
+pub const __NR_mseal: u32 = 462;
+pub const __NR_setxattrat: u32 = 463;
+pub const __NR_getxattrat: u32 = 464;
+pub const __NR_listxattrat: u32 = 465;
+pub const __NR_removexattrat: u32 = 466;
+pub const __NR_sync_file_range2: u32 = 341;
+pub const __ARM_NR_BASE: u32 = 983040;
+pub const __ARM_NR_breakpoint: u32 = 983041;
+pub const __ARM_NR_cacheflush: u32 = 983042;
+pub const __ARM_NR_usr26: u32 = 983043;
+pub const __ARM_NR_usr32: u32 = 983044;
+pub const __ARM_NR_set_tls: u32 = 983045;
+pub const __ARM_NR_get_tls: u32 = 983046;
+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 = 2048;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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 STAT64_HAS_BROKEN_ST_INO: 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 = 2048;
+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 = 526336;
+pub const TFD_CREATE_FLAGS: u32 = 526336;
+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 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;
+pub const _NSIG: u32 = 64;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[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 sigaction__bindgen_ty_1 {
+pub _sa_handler: __sighandler_t,
+pub _sa_sigaction: ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int, arg2: *mut siginfo, arg3: *mut crate::ctypes::c_void)>,
+}
+#[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; 13usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/arm/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/arm/if_arp.rs
new file mode 100644
index 0000000..19895de
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/if_arp.rs
@@ -0,0 +1,2755 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 id: __u16,
+pub type_flags: __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 __BITS_PER_LONG_LONG: u32 = 64;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/arm/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/arm/if_ether.rs
new file mode 100644
index 0000000..d337ab8
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/if_ether.rs
@@ -0,0 +1,168 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/arm/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/arm/if_packet.rs
new file mode 100644
index 0000000..29495ee
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/if_packet.rs
@@ -0,0 +1,309 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 id: __u16,
+pub type_flags: __u16,
+pub max_num_members: __u32,
+}
+pub const __LITTLE_ENDIAN: u32 = 1234;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/arm/image.rs b/vendor/linux-raw-sys-0.9.4/src/arm/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/arm/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/arm/io_uring.rs
new file mode 100644
index 0000000..bb2b74b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/io_uring.rs
@@ -0,0 +1,1334 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/arm/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/arm/ioctl.rs
new file mode 100644
index 0000000..b90f7c2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/ioctl.rs
@@ -0,0 +1,1502 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub const FIONREAD: u32 = 21531;
+pub const FIONBIO: u32 = 21537;
+pub const FIOCLEX: u32 = 21585;
+pub const FIONCLEX: u32 = 21584;
+pub const FIOASYNC: u32 = 21586;
+pub const FIOQSIZE: u32 = 21598;
+pub const TCXONC: u32 = 21514;
+pub const TCFLSH: u32 = 21515;
+pub const TIOCSCTTY: u32 = 21518;
+pub const TIOCSPGRP: u32 = 21520;
+pub const TIOCOUTQ: u32 = 21521;
+pub const TIOCSTI: u32 = 21522;
+pub const TIOCSWINSZ: u32 = 21524;
+pub const TIOCMGET: u32 = 21525;
+pub const TIOCMBIS: u32 = 21526;
+pub const TIOCMBIC: u32 = 21527;
+pub const TIOCMSET: u32 = 21528;
+pub const TIOCSSOFTCAR: u32 = 21530;
+pub const TIOCLINUX: u32 = 21532;
+pub const TIOCCONS: u32 = 21533;
+pub const TIOCSSERIAL: u32 = 21535;
+pub const TIOCPKT: u32 = 21536;
+pub const TIOCNOTTY: u32 = 21538;
+pub const TIOCSETD: u32 = 21539;
+pub const TIOCSBRK: u32 = 21543;
+pub const TIOCCBRK: u32 = 21544;
+pub const TIOCSRS485: u32 = 21551;
+pub const TIOCSPTLCK: u32 = 1074025521;
+pub const TIOCSIG: u32 = 1074025526;
+pub const TIOCVHANGUP: u32 = 21559;
+pub const TIOCSERCONFIG: u32 = 21587;
+pub const TIOCSERGWILD: u32 = 21588;
+pub const TIOCSERSWILD: u32 = 21589;
+pub const TIOCSLCKTRMIOS: u32 = 21591;
+pub const TIOCSERGSTRUCT: u32 = 21592;
+pub const TIOCSERGETLSR: u32 = 21593;
+pub const TIOCSERGETMULTI: u32 = 21594;
+pub const TIOCSERSETMULTI: u32 = 21595;
+pub const TIOCMIWAIT: u32 = 21596;
+pub const TCGETS: u32 = 21505;
+pub const TCGETA: u32 = 21509;
+pub const TCSBRK: u32 = 21513;
+pub const TCSBRKP: u32 = 21541;
+pub const TCSETA: u32 = 21510;
+pub const TCSETAF: u32 = 21512;
+pub const TCSETAW: u32 = 21511;
+pub const TIOCEXCL: u32 = 21516;
+pub const TIOCNXCL: u32 = 21517;
+pub const TIOCGDEV: u32 = 2147767346;
+pub const TIOCGEXCL: u32 = 2147767360;
+pub const TIOCGICOUNT: u32 = 21597;
+pub const TIOCGLCKTRMIOS: u32 = 21590;
+pub const TIOCGPGRP: u32 = 21519;
+pub const TIOCGPKT: u32 = 2147767352;
+pub const TIOCGPTLCK: u32 = 2147767353;
+pub const TIOCGPTN: u32 = 2147767344;
+pub const TIOCGPTPEER: u32 = 21569;
+pub const TIOCGRS485: u32 = 21550;
+pub const TIOCGSERIAL: u32 = 21534;
+pub const TIOCGSID: u32 = 21545;
+pub const TIOCGSOFTCAR: u32 = 21529;
+pub const TIOCGWINSZ: u32 = 21523;
+pub const TCGETS2: u32 = 2150388778;
+pub const TCGETX: u32 = 21554;
+pub const TCSETS: u32 = 21506;
+pub const TCSETS2: u32 = 1076646955;
+pub const TCSETSF: u32 = 21508;
+pub const TCSETSF2: u32 = 1076646957;
+pub const TCSETSW: u32 = 21507;
+pub const TCSETSW2: u32 = 1076646956;
+pub const TCSETX: u32 = 21555;
+pub const TCSETXF: u32 = 21556;
+pub const TCSETXW: u32 = 21557;
+pub const TIOCGETD: u32 = 21540;
+pub const MTIOCGET: u32 = 2149346562;
+pub const BLKSSZGET: u32 = 4712;
+pub const BLKPBSZGET: u32 = 4731;
+pub const BLKROSET: u32 = 4701;
+pub const BLKROGET: u32 = 4702;
+pub const BLKRRPART: u32 = 4703;
+pub const BLKGETSIZE: u32 = 4704;
+pub const BLKFLSBUF: u32 = 4705;
+pub const BLKRASET: u32 = 4706;
+pub const BLKRAGET: u32 = 4707;
+pub const BLKFRASET: u32 = 4708;
+pub const BLKFRAGET: u32 = 4709;
+pub const BLKSECTSET: u32 = 4710;
+pub const BLKSECTGET: u32 = 4711;
+pub const BLKPG: u32 = 4713;
+pub const BLKBSZGET: u32 = 2147750512;
+pub const BLKBSZSET: u32 = 1074008689;
+pub const BLKGETSIZE64: u32 = 2147750514;
+pub const BLKTRACESETUP: u32 = 3225948787;
+pub const BLKTRACESTART: u32 = 4724;
+pub const BLKTRACESTOP: u32 = 4725;
+pub const BLKTRACETEARDOWN: u32 = 4726;
+pub const BLKDISCARD: u32 = 4727;
+pub const BLKIOMIN: u32 = 4728;
+pub const BLKIOOPT: u32 = 4729;
+pub const BLKALIGNOFF: u32 = 4730;
+pub const BLKDISCARDZEROES: u32 = 4732;
+pub const BLKSECDISCARD: u32 = 4733;
+pub const BLKROTATIONAL: u32 = 4734;
+pub const BLKZEROOUT: u32 = 4735;
+pub const FIEMAP_MAX_OFFSET: u32 = 4294967295;
+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 = 2148575745;
+pub const UFFDIO_WAKE: u32 = 2148575746;
+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 = 46849;
+pub const NS_GET_PARENT: u32 = 46850;
+pub const NS_GET_NSTYPE: u32 = 46851;
+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 = 35073;
+pub const SIOCSPGRP: u32 = 35074;
+pub const FIOGETOWN: u32 = 35075;
+pub const SIOCGPGRP: u32 = 35076;
+pub const SIOCATMARK: u32 = 35077;
+pub const SIOCGSTAMP: u32 = 35078;
+pub const TIOCINQ: u32 = 21531;
+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 = 1;
+pub const FIGETBSZ: u32 = 2;
+pub const FIFREEZE: u32 = 3221510263;
+pub const FITHAW: u32 = 3221510264;
+pub const FITRIM: u32 = 3222820985;
+pub const FICLONE: u32 = 1074041865;
+pub const FICLONERANGE: u32 = 1075876877;
+pub const FIDEDUPERANGE: u32 = 3222836278;
+pub const FS_IOC_GETFLAGS: u32 = 2147771905;
+pub const FS_IOC_SETFLAGS: u32 = 1074030082;
+pub const FS_IOC_GETVERSION: u32 = 2147776001;
+pub const FS_IOC_SETVERSION: u32 = 1074034178;
+pub const FS_IOC_FIEMAP: u32 = 3223348747;
+pub const FS_IOC32_GETFLAGS: u32 = 2147771905;
+pub const FS_IOC32_SETFLAGS: u32 = 1074030082;
+pub const FS_IOC32_GETVERSION: u32 = 2147776001;
+pub const FS_IOC32_SETVERSION: u32 = 1074034178;
+pub const FS_IOC_FSGETXATTR: u32 = 2149341215;
+pub const FS_IOC_FSSETXATTR: u32 = 1075599392;
+pub const FS_IOC_GETFSLABEL: u32 = 2164298801;
+pub const FS_IOC_SETFSLABEL: u32 = 1090556978;
+pub const EXT4_IOC_GETVERSION: u32 = 2147771907;
+pub const EXT4_IOC_SETVERSION: u32 = 1074030084;
+pub const EXT4_IOC_GETVERSION_OLD: u32 = 2147776001;
+pub const EXT4_IOC_SETVERSION_OLD: u32 = 1074034178;
+pub const EXT4_IOC_GETRSVSZ: u32 = 2147771909;
+pub const EXT4_IOC_SETRSVSZ: u32 = 1074030086;
+pub const EXT4_IOC_GROUP_EXTEND: u32 = 1074030087;
+pub const EXT4_IOC_MIGRATE: u32 = 26121;
+pub const EXT4_IOC_ALLOC_DA_BLKS: u32 = 26124;
+pub const EXT4_IOC_RESIZE_FS: u32 = 1074292240;
+pub const EXT4_IOC_SWAP_BOOT: u32 = 26129;
+pub const EXT4_IOC_PRECACHE_EXTENTS: u32 = 26130;
+pub const EXT4_IOC_CLEAR_ES_CACHE: u32 = 26152;
+pub const EXT4_IOC_GETSTATE: u32 = 1074030121;
+pub const EXT4_IOC_GET_ES_CACHE: u32 = 3223348778;
+pub const EXT4_IOC_CHECKPOINT: u32 = 1074030123;
+pub const EXT4_IOC_SHUTDOWN: u32 = 2147768445;
+pub const EXT4_IOC32_GETVERSION: u32 = 2147771907;
+pub const EXT4_IOC32_SETVERSION: u32 = 1074030084;
+pub const EXT4_IOC32_GETRSVSZ: u32 = 2147771909;
+pub const EXT4_IOC32_SETRSVSZ: u32 = 1074030086;
+pub const EXT4_IOC32_GROUP_EXTEND: u32 = 1074030087;
+pub const EXT4_IOC32_GETVERSION_OLD: u32 = 2147776001;
+pub const EXT4_IOC32_SETVERSION_OLD: u32 = 1074034178;
+pub const VIDIOC_SUBDEV_QUERYSTD: u32 = 2148030015;
+pub const AUTOFS_DEV_IOCTL_CLOSEMOUNT: u32 = 3222836085;
+pub const LIRC_SET_SEND_CARRIER: u32 = 1074030867;
+pub const AUTOFS_IOC_PROTOSUBVER: u32 = 2147783527;
+pub const PTP_SYS_OFFSET_PRECISE: u32 = 3225435400;
+pub const FSI_SCOM_WRITE: u32 = 3223352066;
+pub const ATM_GETCIRANGE: u32 = 1074553226;
+pub const DMA_BUF_SET_NAME_B: u32 = 1074291201;
+pub const RIO_CM_EP_GET_LIST_SIZE: u32 = 3221512961;
+pub const TUNSETPERSIST: u32 = 1074025675;
+pub const FS_IOC_GET_ENCRYPTION_POLICY: u32 = 1074554389;
+pub const CEC_RECEIVE: u32 = 3224920326;
+pub const MGSL_IOCGPARAMS: u32 = 2149608705;
+pub const ENI_SETMULT: u32 = 1074553191;
+pub const RIO_GET_EVENT_MASK: u32 = 2147773710;
+pub const LIRC_GET_MAX_TIMEOUT: u32 = 2147772681;
+pub const USBDEVFS_CLAIMINTERFACE: u32 = 2147767567;
+pub const CHIOMOVE: u32 = 1075077889;
+pub const SONYPI_IOCGBATFLAGS: u32 = 2147579399;
+pub const BTRFS_IOC_SYNC: u32 = 37896;
+pub const VIDIOC_TRY_FMT: u32 = 3234616896;
+pub const LIRC_SET_REC_MODE: u32 = 1074030866;
+pub const VIDIOC_DQEVENT: u32 = 2155894361;
+pub const RPMSG_DESTROY_EPT_IOCTL: u32 = 46338;
+pub const UVCIOC_CTRL_MAP: u32 = 3227022624;
+pub const VHOST_SET_BACKEND_FEATURES: u32 = 1074310949;
+pub const VHOST_VSOCK_SET_GUEST_CID: u32 = 1074311008;
+pub const UI_SET_KEYBIT: u32 = 1074025829;
+pub const LIRC_SET_REC_TIMEOUT: u32 = 1074030872;
+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 = 1074310930;
+pub const RIO_ENABLE_DOORBELL_RANGE: u32 = 1074294025;
+pub const VIDIOC_TRY_EXT_CTRLS: u32 = 3222820425;
+pub const LIRC_GET_REC_MODE: u32 = 2147772674;
+pub const PPGETTIME: u32 = 2148036757;
+pub const BTRFS_IOC_RM_DEV: u32 = 1342215179;
+pub const ATM_SETBACKEND: u32 = 1073897970;
+pub const FSL_HV_IOCTL_PARTITION_START: u32 = 3222318851;
+pub const FBIO_WAITEVENT: u32 = 18056;
+pub const SWITCHTEC_IOCTL_PORT_TO_PFF: u32 = 3222034245;
+pub const NVME_IOCTL_IO_CMD: u32 = 3225964099;
+pub const IPMICTL_RECEIVE_MSG_TRUNC: u32 = 3222825227;
+pub const FDTWADDLE: u32 = 601;
+pub const NVME_IOCTL_SUBMIT_IO: u32 = 1076907586;
+pub const NILFS_IOCTL_SYNC: u32 = 2148036234;
+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 = 2147787781;
+pub const NS_GETPSTAT: u32 = 3222036833;
+pub const UI_SET_PROPBIT: u32 = 1074025838;
+pub const TUNSETFILTEREBPF: u32 = 2147767521;
+pub const RIO_MPORT_MAINT_COMPTAG_SET: u32 = 1074031874;
+pub const AUTOFS_DEV_IOCTL_VERSION: u32 = 3222836081;
+pub const WDIOC_SETOPTIONS: u32 = 2147768068;
+pub const VHOST_SCSI_SET_ENDPOINT: u32 = 1088991040;
+pub const MGSL_IOCGTXIDLE: u32 = 27907;
+pub const ATM_ADDLECSADDR: u32 = 1074553230;
+pub const FSL_HV_IOCTL_GETPROP: u32 = 3223891719;
+pub const FDGETPRM: u32 = 2149319172;
+pub const HIDIOCAPPLICATION: u32 = 18434;
+pub const ENI_MEMDUMP: u32 = 1074553184;
+pub const PTP_SYS_OFFSET2: u32 = 1128283406;
+pub const VIDIOC_SUBDEV_G_DV_TIMINGS: u32 = 3229898328;
+pub const DMA_BUF_SET_NAME_A: u32 = 1074029057;
+pub const PTP_PIN_GETFUNC: u32 = 3227532550;
+pub const PTP_SYS_OFFSET_EXTENDED: u32 = 3300932873;
+pub const DFL_FPGA_PORT_UINT_SET_IRQ: u32 = 1074312776;
+pub const RTC_EPOCH_READ: u32 = 2147774477;
+pub const VIDIOC_SUBDEV_S_SELECTION: u32 = 3225441854;
+pub const VIDIOC_QUERY_EXT_CTRL: u32 = 3236451943;
+pub const ATM_GETLECSADDR: u32 = 1074553232;
+pub const FSL_HV_IOCTL_PARTITION_STOP: u32 = 3221794564;
+pub const SONET_GETDIAG: u32 = 2147770644;
+pub const ATMMPC_DATA: u32 = 25049;
+pub const IPMICTL_UNREGISTER_FOR_CMD_CHANS: u32 = 2148296989;
+pub const HIDIOCGCOLLECTIONINDEX: u32 = 1075333136;
+pub const RPMSG_CREATE_EPT_IOCTL: u32 = 1076409601;
+pub const GPIOHANDLE_GET_LINE_VALUES_IOCTL: u32 = 3225465864;
+pub const UI_DEV_SETUP: u32 = 1079792899;
+pub const ISST_IF_IO_CMD: u32 = 1074068994;
+pub const RIO_MPORT_MAINT_READ_REMOTE: u32 = 2149084423;
+pub const VIDIOC_OMAP3ISP_HIST_CFG: u32 = 3224393412;
+pub const BLKGETNRZONES: u32 = 2147750533;
+pub const VIDIOC_G_MODULATOR: u32 = 3225703990;
+pub const VBG_IOCTL_WRITE_CORE_DUMP: u32 = 3223082515;
+pub const USBDEVFS_SETINTERFACE: u32 = 2148029700;
+pub const PPPIOCGCHAN: u32 = 2147775543;
+pub const EVIOCGVERSION: u32 = 2147763457;
+pub const VHOST_NET_SET_BACKEND: u32 = 1074310960;
+pub const USBDEVFS_REAPURBNDELAY: u32 = 1074025741;
+pub const RNDZAPENTCNT: u32 = 20996;
+pub const VIDIOC_G_PARM: u32 = 3234616853;
+pub const TUNGETDEVNETNS: u32 = 21731;
+pub const LIRC_SET_MEASURE_CARRIER_MODE: u32 = 1074030877;
+pub const VHOST_SET_VRING_ERR: u32 = 1074310946;
+pub const VDUSE_VQ_SETUP: u32 = 1075872020;
+pub const AUTOFS_IOC_SETTIMEOUT: u32 = 3221525348;
+pub const VIDIOC_S_FREQUENCY: u32 = 1076647481;
+pub const F2FS_IOC_SEC_TRIM_FILE: u32 = 1075377428;
+pub const FS_IOC_REMOVE_ENCRYPTION_KEY: u32 = 3225445912;
+pub const WDIOC_GETPRETIMEOUT: u32 = 2147768073;
+pub const USBDEVFS_DROP_PRIVILEGES: u32 = 1074025758;
+pub const BTRFS_IOC_SNAP_CREATE_V2: u32 = 1342215191;
+pub const VHOST_VSOCK_SET_RUNNING: u32 = 1074048865;
+pub const STP_SET_OPTIONS: u32 = 1074275586;
+pub const FBIO_RADEON_GET_MIRROR: u32 = 2147762179;
+pub const IVTVFB_IOC_DMA_FRAME: u32 = 1074550464;
+pub const IPMICTL_SEND_COMMAND: u32 = 2148821261;
+pub const VIDIOC_G_ENC_INDEX: u32 = 2283296332;
+pub const DFL_FPGA_FME_PORT_PR: u32 = 46720;
+pub const CHIOSVOLTAG: u32 = 1076912914;
+pub const ATM_SETESIF: u32 = 1074553229;
+pub const FW_CDEV_IOC_SEND_RESPONSE: u32 = 1075323652;
+pub const PMU_IOC_GET_MODEL: u32 = 2147762691;
+pub const JSIOCGBTNMAP: u32 = 2214619700;
+pub const USBDEVFS_HUB_PORTINFO: u32 = 2155894035;
+pub const VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS: u32 = 3222820363;
+pub const FDCLRPRM: u32 = 577;
+pub const BTRFS_IOC_SCRUB: u32 = 3288372251;
+pub const USBDEVFS_DISCONNECT: u32 = 21782;
+pub const TUNSETVNETBE: u32 = 1074025694;
+pub const ATMTCP_REMOVE: u32 = 24975;
+pub const VHOST_VDPA_GET_CONFIG: u32 = 2148052851;
+pub const PPPIOCGNPMODE: u32 = 3221779532;
+pub const FDGETDRVPRM: u32 = 2153251345;
+pub const TUNSETVNETLE: u32 = 1074025692;
+pub const PHN_SETREG: u32 = 1074294790;
+pub const PPPIOCDETACH: u32 = 1074033724;
+pub const MMTIMER_GETRES: u32 = 2147773697;
+pub const VIDIOC_SUBDEV_ENUMSTD: u32 = 3225966105;
+pub const PPGETFLAGS: u32 = 2147774618;
+pub const VDUSE_DEV_GET_FEATURES: u32 = 2148040977;
+pub const CAPI_MANUFACTURER_CMD: u32 = 3221766944;
+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 = 2148052512;
+pub const MEDIA_IOC_ENUM_LINKS: u32 = 3223092226;
+pub const F2FS_IOC_PRECACHE_EXTENTS: u32 = 62735;
+pub const DFL_FPGA_PORT_DMA_MAP: u32 = 46659;
+pub const MGSL_IOCGXCTRL: u32 = 27926;
+pub const FW_CDEV_IOC_SEND_REQUEST: u32 = 1076372225;
+pub const SONYPI_IOCGBLUE: u32 = 2147579400;
+pub const F2FS_IOC_DECOMPRESS_FILE: u32 = 62743;
+pub const I2OHTML: u32 = 3223087369;
+pub const VFIO_GET_API_VERSION: u32 = 15204;
+pub const IDT77105_GETSTATZ: u32 = 1074553139;
+pub const I2OPARMSET: u32 = 3222825219;
+pub const TEE_IOC_CANCEL: u32 = 2148049924;
+pub const PTP_SYS_OFFSET_PRECISE2: u32 = 3225435409;
+pub const DFL_FPGA_PORT_RESET: u32 = 46656;
+pub const PPPIOCGASYNCMAP: u32 = 2147775576;
+pub const EVIOCGKEYCODE_V2: u32 = 2150122756;
+pub const DM_DEV_SET_GEOMETRY: u32 = 3241737487;
+pub const HIDIOCSUSAGE: u32 = 1075333132;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323664;
+pub const PTP_EXTTS_REQUEST: u32 = 1074806018;
+pub const SWITCHTEC_IOCTL_EVENT_CTL: u32 = 3223869251;
+pub const WDIOC_SETPRETIMEOUT: u32 = 3221509896;
+pub const VHOST_SCSI_CLEAR_ENDPOINT: u32 = 1088991041;
+pub const JSIOCGAXES: u32 = 2147576337;
+pub const HIDIOCSFLAG: u32 = 1074022415;
+pub const PTP_PEROUT_REQUEST2: u32 = 1077427468;
+pub const PPWDATA: u32 = 1073836166;
+pub const PTP_CLOCK_GETCAPS: u32 = 2152742145;
+pub const FDGETMAXERRS: u32 = 2148794894;
+pub const TUNSETQUEUE: u32 = 1074025689;
+pub const PTP_ENABLE_PPS: u32 = 1074019588;
+pub const SIOCSIFATMTCP: u32 = 24960;
+pub const CEC_ADAP_G_LOG_ADDRS: u32 = 2153537795;
+pub const ND_IOCTL_ARS_CAP: u32 = 3223342593;
+pub const NBD_SET_BLKSIZE: u32 = 43777;
+pub const NBD_SET_TIMEOUT: u32 = 43785;
+pub const VHOST_SCSI_GET_ABI_VERSION: u32 = 1074048834;
+pub const RIO_UNMAP_INBOUND: u32 = 1074294034;
+pub const ATM_QUERYLOOP: u32 = 1074553172;
+pub const DFL_FPGA_GET_API_VERSION: u32 = 46592;
+pub const USBDEVFS_WAIT_FOR_RESUME: u32 = 21795;
+pub const FBIO_CURSOR: u32 = 3225961992;
+pub const RNDCLEARPOOL: u32 = 20998;
+pub const VIDIOC_QUERYSTD: u32 = 2148030015;
+pub const DMA_BUF_IOCTL_SYNC: u32 = 1074291200;
+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 = 2150389258;
+pub const PTP_ENABLE_PPS2: u32 = 1074019597;
+pub const PCITEST_CLEAR_IRQ: u32 = 20496;
+pub const IPMICTL_SET_GETS_EVENTS_CMD: u32 = 2147772688;
+pub const BTRFS_IOC_DEVICES_READY: u32 = 2415957031;
+pub const JSIOCGAXMAP: u32 = 2151705138;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER: u32 = 2148541196;
+pub const FW_CDEV_IOC_SET_ISO_CHANNELS: u32 = 1074799383;
+pub const RTC_WIE_OFF: u32 = 28688;
+pub const PPGETMODE: u32 = 2147774616;
+pub const VIDIOC_DBG_G_REGISTER: u32 = 3224917584;
+pub const PTP_SYS_OFFSET: u32 = 1128283397;
+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 = 37894;
+pub const INOTIFY_IOC_SETNEXTWD: u32 = 1074022656;
+pub const SNAPSHOT_GET_IMAGE_SIZE: u32 = 2148021006;
+pub const TUNDETACHFILTER: u32 = 1074287830;
+pub const ND_IOCTL_CLEAR_ERROR: u32 = 3223342596;
+pub const IOC_PR_CLEAR: u32 = 1074819277;
+pub const SCIF_READFROM: u32 = 3223876362;
+pub const PPPIOCGDEBUG: u32 = 2147775553;
+pub const BLKGETZONESZ: u32 = 2147750532;
+pub const HIDIOCGUSAGES: u32 = 3491514387;
+pub const SONYPI_IOCGTEMP: u32 = 2147579404;
+pub const UI_SET_MSCBIT: u32 = 1074025832;
+pub const APM_IOC_SUSPEND: u32 = 16642;
+pub const BTRFS_IOC_TREE_SEARCH: u32 = 3489698833;
+pub const RTC_PLL_GET: u32 = 2149347345;
+pub const RIO_CM_EP_GET_LIST: u32 = 3221512962;
+pub const USBDEVFS_DISCSIGNAL: u32 = 2148029710;
+pub const LIRC_GET_MIN_TIMEOUT: u32 = 2147772680;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY: u32 = 2174244674;
+pub const DM_TARGET_MSG: u32 = 3241737486;
+pub const SONYPI_IOCGBAT1REM: u32 = 2147644931;
+pub const EVIOCSFF: u32 = 1076643200;
+pub const TUNSETGROUP: u32 = 1074025678;
+pub const EVIOCGKEYCODE: u32 = 2148025604;
+pub const KCOV_REMOTE_ENABLE: u32 = 1075340134;
+pub const ND_IOCTL_GET_CONFIG_SIZE: u32 = 3222031876;
+pub const FDEJECT: u32 = 602;
+pub const TUNSETOFFLOAD: u32 = 1074025680;
+pub const PPPIOCCONNECT: u32 = 1074033722;
+pub const ATM_ADDADDR: u32 = 1074553224;
+pub const VDUSE_DEV_INJECT_CONFIG_IRQ: u32 = 33043;
+pub const AUTOFS_DEV_IOCTL_ASKUMOUNT: u32 = 3222836093;
+pub const VHOST_VDPA_GET_STATUS: u32 = 2147594097;
+pub const CCISS_PASSTHRU: u32 = 3226747403;
+pub const MGSL_IOCCLRMODCOUNT: u32 = 27919;
+pub const TEE_IOC_SUPPL_SEND: u32 = 2148574215;
+pub const ATMARPD_CTRL: u32 = 25057;
+pub const UI_ABS_SETUP: u32 = 1075598596;
+pub const UI_DEV_DESTROY: u32 = 21762;
+pub const BTRFS_IOC_QUOTA_CTL: u32 = 3222311976;
+pub const RTC_AIE_ON: u32 = 28673;
+pub const AUTOFS_IOC_EXPIRE: u32 = 2165085029;
+pub const PPPIOCSDEBUG: u32 = 1074033728;
+pub const GPIO_V2_LINE_SET_VALUES_IOCTL: u32 = 3222320143;
+pub const PPPIOCSMRU: u32 = 1074033746;
+pub const CCISS_DEREGDISK: u32 = 16908;
+pub const UI_DEV_CREATE: u32 = 21761;
+pub const FUSE_DEV_IOC_CLONE: u32 = 2147804416;
+pub const BTRFS_IOC_START_SYNC: u32 = 2148045848;
+pub const NILFS_IOCTL_DELETE_CHECKPOINT: u32 = 1074294401;
+pub const SNAPSHOT_AVAIL_SWAP_SIZE: u32 = 2148021011;
+pub const DM_TABLE_CLEAR: u32 = 3241737482;
+pub const CCISS_GETINTINFO: u32 = 2148024834;
+pub const PPPIOCSASYNCMAP: u32 = 1074033751;
+pub const I2OEVTGET: u32 = 2154326283;
+pub const NVME_IOCTL_RESET: u32 = 20036;
+pub const PPYIELD: u32 = 28813;
+pub const NVME_IOCTL_IO64_CMD: u32 = 3226488392;
+pub const TUNSETCARRIER: u32 = 1074025698;
+pub const DM_DEV_WAIT: u32 = 3241737480;
+pub const RTC_WIE_ON: u32 = 28687;
+pub const MEDIA_IOC_DEVICE_INFO: u32 = 3238034432;
+pub const RIO_CM_CHAN_CREATE: u32 = 3221381891;
+pub const MGSL_IOCSPARAMS: u32 = 1075866880;
+pub const RTC_SET_TIME: u32 = 1076129802;
+pub const VHOST_RESET_OWNER: u32 = 44802;
+pub const IOC_OPAL_PSID_REVERT_TPR: u32 = 1091072232;
+pub const AUTOFS_DEV_IOCTL_OPENMOUNT: u32 = 3222836084;
+pub const UDF_GETEABLOCK: u32 = 2147773505;
+pub const VFIO_IOMMU_MAP_DMA: u32 = 15217;
+pub const VIDIOC_SUBSCRIBE_EVENT: u32 = 1075861082;
+pub const HIDIOCGFLAG: u32 = 2147764238;
+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 = 1074835969;
+pub const CCISS_GETFIRMVER: u32 = 2147762696;
+pub const ND_IOCTL_ARS_START: u32 = 3223342594;
+pub const PPPIOCSMRRU: u32 = 1074033723;
+pub const CEC_ADAP_S_LOG_ADDRS: u32 = 3227279620;
+pub const RPROC_GET_SHUTDOWN_ON_RELEASE: u32 = 2147792642;
+pub const DMA_HEAP_IOCTL_ALLOC: u32 = 3222816768;
+pub const PPSETTIME: u32 = 1074294934;
+pub const RTC_ALM_READ: u32 = 2149871624;
+pub const VDUSE_SET_API_VERSION: u32 = 1074299137;
+pub const RIO_MPORT_MAINT_WRITE_REMOTE: u32 = 1075342600;
+pub const VIDIOC_SUBDEV_S_CROP: u32 = 3224917564;
+pub const USBDEVFS_CONNECT: u32 = 21783;
+pub const SYNC_IOC_FILE_INFO: u32 = 3224911364;
+pub const ATMARP_MKIP: u32 = 25058;
+pub const VFIO_IOMMU_SPAPR_TCE_GET_INFO: u32 = 15216;
+pub const CCISS_GETHEARTBEAT: u32 = 2147762694;
+pub const ATM_RSTADDR: u32 = 1074553223;
+pub const NBD_SET_SIZE: u32 = 43778;
+pub const UDF_GETVOLIDENT: u32 = 2147773506;
+pub const GPIO_V2_LINE_GET_VALUES_IOCTL: u32 = 3222320142;
+pub const MGSL_IOCSTXIDLE: u32 = 27906;
+pub const FSL_HV_IOCTL_SETPROP: u32 = 3223891720;
+pub const BTRFS_IOC_GET_DEV_STATS: u32 = 3288896564;
+pub const PPRSTATUS: u32 = 2147577985;
+pub const MGSL_IOCTXENABLE: u32 = 27908;
+pub const UDF_GETEASIZE: u32 = 2147773504;
+pub const NVME_IOCTL_ADMIN64_CMD: u32 = 3226488391;
+pub const VHOST_SET_OWNER: u32 = 44801;
+pub const RIO_ALLOC_DMA: u32 = 3222826259;
+pub const RIO_CM_CHAN_ACCEPT: u32 = 3221775111;
+pub const I2OHRTGET: u32 = 3222038785;
+pub const ATM_SETCIRANGE: u32 = 1074553227;
+pub const HPET_IE_ON: u32 = 26625;
+pub const PERF_EVENT_IOC_ID: u32 = 2147755015;
+pub const TUNSETSNDBUF: u32 = 1074025684;
+pub const PTP_PIN_SETFUNC: u32 = 1080048903;
+pub const PPPIOCDISCONN: u32 = 29753;
+pub const VIDIOC_QUERYCTRL: u32 = 3225703972;
+pub const PPEXCL: u32 = 28815;
+pub const PCITEST_MSI: u32 = 1074024451;
+pub const FDWERRORCLR: u32 = 598;
+pub const AUTOFS_IOC_FAIL: u32 = 37729;
+pub const USBDEVFS_IOCTL: u32 = 3222033682;
+pub const VIDIOC_S_STD: u32 = 1074288152;
+pub const F2FS_IOC_RESIZE_FS: u32 = 1074328848;
+pub const SONET_SETDIAG: u32 = 3221512466;
+pub const BTRFS_IOC_DEFRAG: u32 = 1342215170;
+pub const CCISS_GETDRIVVER: u32 = 2147762697;
+pub const IPMICTL_GET_TIMING_PARMS_CMD: u32 = 2148034839;
+pub const HPET_IRQFREQ: u32 = 1074030598;
+pub const ATM_GETESI: u32 = 1074553221;
+pub const CCISS_GETLUNINFO: u32 = 2148286993;
+pub const AUTOFS_DEV_IOCTL_ISMOUNTPOINT: u32 = 3222836094;
+pub const TEE_IOC_SHM_ALLOC: u32 = 3222316033;
+pub const PERF_EVENT_IOC_SET_BPF: u32 = 1074013192;
+pub const UDMABUF_CREATE_LIST: u32 = 1074296131;
+pub const VHOST_SET_LOG_BASE: u32 = 1074310916;
+pub const ZATM_GETPOOL: u32 = 1074553185;
+pub const BR2684_SETFILT: u32 = 1075601808;
+pub const RNDGETPOOL: u32 = 2148028930;
+pub const PPS_GETPARAMS: u32 = 2147774625;
+pub const IOC_PR_RESERVE: u32 = 1074819273;
+pub const VIDIOC_TRY_DECODER_CMD: u32 = 3225966177;
+pub const RIO_CM_CHAN_CLOSE: u32 = 1073898244;
+pub const VIDIOC_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const IOCTL_MEI_CONNECT_CLIENT_VTAG: u32 = 3222554628;
+pub const PMU_IOC_GET_BACKLIGHT: u32 = 2147762689;
+pub const USBDEVFS_GET_CAPABILITIES: u32 = 2147767578;
+pub const SCIF_WRITETO: u32 = 3223876363;
+pub const UDF_RELOCATE_BLOCKS: u32 = 3221515331;
+pub const FSL_HV_IOCTL_PARTITION_RESTART: u32 = 3221794561;
+pub const CCISS_REGNEWD: u32 = 16910;
+pub const FAT_IOCTL_SET_ATTRIBUTES: u32 = 1074033169;
+pub const VIDIOC_CREATE_BUFS: u32 = 3237500508;
+pub const CAPI_GET_VERSION: u32 = 3222291207;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY: u32 = 2228770626;
+pub const VFIO_EEH_PE_OP: u32 = 15225;
+pub const FW_CDEV_IOC_CREATE_ISO_CONTEXT: u32 = 3223331592;
+pub const F2FS_IOC_RELEASE_COMPRESS_BLOCKS: u32 = 2148070674;
+pub const NBD_SET_SIZE_BLOCKS: u32 = 43783;
+pub const IPMI_BMC_IOCTL_SET_SMS_ATN: u32 = 45312;
+pub const ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG: u32 = 3222319873;
+pub const VIDIOC_S_AUDOUT: u32 = 1077171762;
+pub const VIDIOC_S_FMT: u32 = 3234616837;
+pub const PPPIOCATTACH: u32 = 1074033725;
+pub const VHOST_GET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310948;
+pub const FS_IOC_MEASURE_VERITY: u32 = 3221513862;
+pub const CCISS_BIG_PASSTHRU: u32 = 3227009554;
+pub const IPMICTL_SET_MY_LUN_CMD: u32 = 2147772691;
+pub const PCITEST_LEGACY_IRQ: u32 = 20482;
+pub const USBDEVFS_SUBMITURB: u32 = 2150389002;
+pub const AUTOFS_IOC_READY: u32 = 37728;
+pub const BTRFS_IOC_SEND: u32 = 1078498342;
+pub const VIDIOC_G_EXT_CTRLS: u32 = 3222820423;
+pub const JSIOCSBTNMAP: u32 = 1140877875;
+pub const PPPIOCSFLAGS: u32 = 1074033753;
+pub const NVRAM_INIT: u32 = 28736;
+pub const RFKILL_IOCTL_NOINPUT: u32 = 20993;
+pub const BTRFS_IOC_BALANCE: u32 = 1342215180;
+pub const FS_IOC_GETFSMAP: u32 = 3233830971;
+pub const IPMICTL_GET_MY_CHANNEL_LUN_CMD: u32 = 2147772699;
+pub const STP_POLICY_ID_GET: u32 = 2148541697;
+pub const PPSETFLAGS: u32 = 1074032795;
+pub const CEC_ADAP_S_PHYS_ADDR: u32 = 1073897730;
+pub const ATMTCP_CREATE: u32 = 24974;
+pub const IPMI_BMC_IOCTL_FORCE_ABORT: u32 = 45314;
+pub const PPPIOCGXASYNCMAP: u32 = 2149610576;
+pub const VHOST_SET_VRING_CALL: u32 = 1074310945;
+pub const LIRC_GET_FEATURES: u32 = 2147772672;
+pub const GSMIOC_DISABLE_NET: u32 = 18179;
+pub const AUTOFS_IOC_CATATONIC: u32 = 37730;
+pub const NBD_DO_IT: u32 = 43779;
+pub const LIRC_SET_REC_CARRIER_RANGE: u32 = 1074030879;
+pub const IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772697;
+pub const EVIOCSCLOCKID: u32 = 1074021792;
+pub const USBDEVFS_FREE_STREAMS: u32 = 2148029725;
+pub const FSI_SCOM_RESET: u32 = 1074033411;
+pub const PMU_IOC_GRAB_BACKLIGHT: u32 = 2147762694;
+pub const VIDIOC_SUBDEV_S_FMT: u32 = 3227014661;
+pub const FDDEFPRM: u32 = 1075577411;
+pub const TEE_IOC_INVOKE: u32 = 2148574211;
+pub const USBDEVFS_BULK: u32 = 3222295810;
+pub const SCIF_VWRITETO: u32 = 3223876365;
+pub const SONYPI_IOCSBRT: u32 = 1073837568;
+pub const BTRFS_IOC_FILE_EXTENT_SAME: u32 = 3222836278;
+pub const RTC_PIE_ON: u32 = 28677;
+pub const BTRFS_IOC_SCAN_DEV: u32 = 1342215172;
+pub const PPPIOCXFERUNIT: u32 = 29774;
+pub const WDIOC_GETTIMEOUT: u32 = 2147768071;
+pub const BTRFS_IOC_SET_RECEIVED_SUBVOL: u32 = 3234370597;
+pub const DFL_FPGA_PORT_ERR_SET_IRQ: u32 = 1074312774;
+pub const FBIO_WAITFORVSYNC: u32 = 1074021920;
+pub const RTC_PIE_OFF: u32 = 28678;
+pub const EVIOCGRAB: u32 = 1074021776;
+pub const PMU_IOC_SET_BACKLIGHT: u32 = 1074020866;
+pub const EVIOCGREP: u32 = 2148025603;
+pub const PERF_EVENT_IOC_MODIFY_ATTRIBUTES: u32 = 1074013195;
+pub const UFFDIO_CONTINUE: u32 = 3223366151;
+pub const VDUSE_GET_API_VERSION: u32 = 2148040960;
+pub const RTC_RD_TIME: u32 = 2149871625;
+pub const FDMSGOFF: u32 = 582;
+pub const IPMICTL_REGISTER_FOR_CMD_CHANS: u32 = 2148296988;
+pub const CAPI_GET_ERRCODE: u32 = 2147631905;
+pub const PCITEST_SET_IRQTYPE: u32 = 1074024456;
+pub const VIDIOC_SUBDEV_S_EDID: u32 = 3223606825;
+pub const MATROXFB_SET_OUTPUT_MODE: u32 = 1074032378;
+pub const RIO_DEV_ADD: u32 = 1075866903;
+pub const VIDIOC_ENUM_FREQ_BANDS: u32 = 3225441893;
+pub const FBIO_RADEON_SET_MIRROR: u32 = 1074020356;
+pub const PCITEST_GET_IRQTYPE: u32 = 20489;
+pub const JSIOCGVERSION: u32 = 2147772929;
+pub const SONYPI_IOCSBLUE: u32 = 1073837577;
+pub const SNAPSHOT_PREF_IMAGE_SIZE: u32 = 13074;
+pub const F2FS_IOC_GET_FEATURES: u32 = 2147808524;
+pub const SCIF_REG: u32 = 3223876360;
+pub const NILFS_IOCTL_CLEAN_SEGMENTS: u32 = 1081634440;
+pub const FW_CDEV_IOC_INITIATE_BUS_RESET: u32 = 1074012933;
+pub const RIO_WAIT_FOR_ASYNC: u32 = 1074294038;
+pub const VHOST_SET_VRING_NUM: u32 = 1074310928;
+pub const AUTOFS_DEV_IOCTL_PROTOVER: u32 = 3222836082;
+pub const RIO_FREE_DMA: u32 = 1074294036;
+pub const MGSL_IOCRXENABLE: u32 = 27909;
+pub const IOCTL_VM_SOCKETS_GET_LOCAL_CID: u32 = 1977;
+pub const IPMICTL_SET_TIMING_PARMS_CMD: u32 = 2148034838;
+pub const PPPIOCGL2TPSTATS: u32 = 2152231990;
+pub const PERF_EVENT_IOC_PERIOD: u32 = 1074275332;
+pub const PTP_PIN_SETFUNC2: u32 = 1080048912;
+pub const CHIOEXCHANGE: u32 = 1075602178;
+pub const NILFS_IOCTL_GET_SUINFO: u32 = 2149084804;
+pub const CEC_DQEVENT: u32 = 3226493191;
+pub const UI_SET_SWBIT: u32 = 1074025837;
+pub const VHOST_VDPA_SET_CONFIG: u32 = 1074311028;
+pub const TUNSETIFF: u32 = 1074025674;
+pub const CHIOPOSITION: u32 = 1074553603;
+pub const IPMICTL_SET_MAINTENANCE_MODE_CMD: u32 = 1074030879;
+pub const BTRFS_IOC_DEFAULT_SUBVOL: u32 = 1074304019;
+pub const RIO_UNMAP_OUTBOUND: u32 = 1076391184;
+pub const CAPI_CLR_FLAGS: u32 = 2147762981;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323663;
+pub const MATROXFB_GET_OUTPUT_CONNECTION: u32 = 2147774200;
+pub const EVIOCSMASK: u32 = 1074808211;
+pub const BTRFS_IOC_FORGET_DEV: u32 = 1342215173;
+pub const CXL_MEM_QUERY_COMMANDS: u32 = 2148060673;
+pub const CEC_S_MODE: u32 = 1074028809;
+pub const MGSL_IOCSIF: u32 = 27914;
+pub const SWITCHTEC_IOCTL_PFF_TO_PORT: u32 = 3222034244;
+pub const PPSETMODE: u32 = 1074032768;
+pub const VFIO_DEVICE_SET_IRQS: u32 = 15214;
+pub const VIDIOC_PREPARE_BUF: u32 = 3225704029;
+pub const CEC_ADAP_G_CONNECTOR_INFO: u32 = 2151964938;
+pub const IOC_OPAL_WRITE_SHADOW_MBR: u32 = 1092645098;
+pub const VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: u32 = 3225441867;
+pub const UDMABUF_CREATE: u32 = 1075344706;
+pub const SONET_CLRDIAG: u32 = 3221512467;
+pub const PHN_SET_REG: u32 = 1074032641;
+pub const RNDADDTOENTCNT: u32 = 1074024961;
+pub const VBG_IOCTL_CHECK_BALLOON: u32 = 3223344657;
+pub const VIDIOC_OMAP3ISP_STAT_REQ: u32 = 3222820550;
+pub const PPS_FETCH: u32 = 3221516452;
+pub const RTC_AIE_OFF: u32 = 28674;
+pub const VFIO_GROUP_SET_CONTAINER: u32 = 15208;
+pub const FW_CDEV_IOC_RECEIVE_PHY_PACKETS: u32 = 1074275094;
+pub const VFIO_IOMMU_SPAPR_TCE_REMOVE: u32 = 15224;
+pub const VFIO_IOMMU_GET_INFO: u32 = 15216;
+pub const DM_DEV_SUSPEND: u32 = 3241737478;
+pub const F2FS_IOC_GET_COMPRESS_OPTION: u32 = 2147677461;
+pub const FW_CDEV_IOC_STOP_ISO: u32 = 1074012939;
+pub const GPIO_V2_GET_LINEINFO_IOCTL: u32 = 3238048773;
+pub const ATMMPC_CTRL: u32 = 25048;
+pub const PPPIOCSXASYNCMAP: u32 = 1075868751;
+pub const CHIOGSTATUS: u32 = 1074291464;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE: u32 = 3222807309;
+pub const RIO_MPORT_MAINT_PORT_IDX_GET: u32 = 2147773699;
+pub const CAPI_SET_FLAGS: u32 = 2147762980;
+pub const VFIO_GROUP_GET_DEVICE_FD: u32 = 15210;
+pub const VHOST_SET_MEM_TABLE: u32 = 1074310915;
+pub const MATROXFB_SET_OUTPUT_CONNECTION: u32 = 1074032376;
+pub const DFL_FPGA_PORT_GET_REGION_INFO: u32 = 46658;
+pub const VHOST_GET_FEATURES: u32 = 2148052736;
+pub const LIRC_GET_REC_RESOLUTION: u32 = 2147772679;
+pub const PACKET_CTRL_CMD: u32 = 3222820865;
+pub const LIRC_SET_TRANSMITTER_MASK: u32 = 1074030871;
+pub const BTRFS_IOC_ADD_DEV: u32 = 1342215178;
+pub const JSIOCGCORR: u32 = 2149870114;
+pub const VIDIOC_G_FMT: u32 = 3234616836;
+pub const RTC_EPOCH_SET: u32 = 1074032654;
+pub const CAPI_GET_PROFILE: u32 = 3225436937;
+pub const ATM_GETLOOP: u32 = 1074553170;
+pub const SCIF_LISTEN: u32 = 1074033410;
+pub const NBD_CLEAR_QUE: u32 = 43781;
+pub const F2FS_IOC_MOVE_RANGE: u32 = 3223385353;
+pub const LIRC_GET_LENGTH: u32 = 2147772687;
+pub const I8K_SET_FAN: u32 = 3221514631;
+pub const FDSETMAXERRS: u32 = 1075053132;
+pub const VIDIOC_SUBDEV_QUERYCAP: u32 = 2151699968;
+pub const SNAPSHOT_SET_SWAP_AREA: u32 = 1074541325;
+pub const LIRC_GET_REC_TIMEOUT: u32 = 2147772708;
+pub const EVIOCRMFF: u32 = 1074021761;
+pub const GPIO_GET_LINEEVENT_IOCTL: u32 = 3224417284;
+pub const PPRDATA: u32 = 2147577989;
+pub const RIO_MPORT_GET_PROPERTIES: u32 = 2150657284;
+pub const TUNSETVNETHDRSZ: u32 = 1074025688;
+pub const GPIO_GET_LINEINFO_IOCTL: u32 = 3225990146;
+pub const GSMIOC_GETCONF: u32 = 2152482560;
+pub const LIRC_GET_SEND_MODE: u32 = 2147772673;
+pub const PPPIOCSACTIVE: u32 = 1074295878;
+pub const SIOCGSTAMPNS_NEW: u32 = 2148567303;
+pub const IPMICTL_RECEIVE_MSG: u32 = 3222825228;
+pub const LIRC_SET_SEND_DUTY_CYCLE: u32 = 1074030869;
+pub const UI_END_FF_ERASE: u32 = 1074550219;
+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 = 43786;
+pub const VFIO_DEVICE_GET_REGION_INFO: u32 = 15212;
+pub const REISERFS_IOC_UNPACK: u32 = 1074056449;
+pub const FW_CDEV_IOC_REMOVE_DESCRIPTOR: u32 = 1074012935;
+pub const RIO_SET_EVENT_MASK: u32 = 1074031885;
+pub const SNAPSHOT_ALLOC_SWAP_PAGE: u32 = 2148021012;
+pub const VDUSE_VQ_INJECT_IRQ: u32 = 1074037015;
+pub const I2OPASSTHRU: u32 = 2148034828;
+pub const IOC_OPAL_SET_PW: u32 = 1109422304;
+pub const FSI_SCOM_READ: u32 = 3223352065;
+pub const VHOST_VDPA_GET_DEVICE_ID: u32 = 2147790704;
+pub const VIDIOC_QBUF: u32 = 3225703951;
+pub const VIDIOC_S_TUNER: u32 = 1079268894;
+pub const TUNGETVNETHDRSZ: u32 = 2147767511;
+pub const CAPI_NCCI_GETUNIT: u32 = 2147762983;
+pub const DFL_FPGA_PORT_UINT_GET_IRQ_NUM: u32 = 2147792455;
+pub const VIDIOC_OMAP3ISP_STAT_EN: u32 = 3221509831;
+pub const GPIO_V2_LINE_SET_CONFIG_IOCTL: u32 = 3239097357;
+pub const TEE_IOC_VERSION: u32 = 2148312064;
+pub const VIDIOC_LOG_STATUS: u32 = 22086;
+pub const IPMICTL_SEND_COMMAND_SETTIME: u32 = 2149345557;
+pub const VHOST_SET_LOG_FD: u32 = 1074048775;
+pub const SCIF_SEND: u32 = 3222827782;
+pub const VIDIOC_SUBDEV_G_FMT: u32 = 3227014660;
+pub const NS_ADJBUFLEV: u32 = 24931;
+pub const VIDIOC_DBG_S_REGISTER: u32 = 1077433935;
+pub const NILFS_IOCTL_RESIZE: u32 = 1074294411;
+pub const PHN_GETREG: u32 = 3221778437;
+pub const I2OSWDL: u32 = 3223087365;
+pub const VBG_IOCTL_VMMDEV_REQUEST_BIG: u32 = 22019;
+pub const JSIOCGBUTTONS: u32 = 2147576338;
+pub const VFIO_IOMMU_ENABLE: u32 = 15219;
+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 = 1074048887;
+pub const VIDIOC_SUBDEV_G_CROP: u32 = 3224917563;
+pub const VIDIOC_S_CROP: u32 = 1075074620;
+pub const WDIOC_GETTEMP: u32 = 2147768067;
+pub const IOC_OPAL_ADD_USR_TO_LR: u32 = 1092120804;
+pub const UI_SET_LEDBIT: u32 = 1074025833;
+pub const NBD_SET_SOCK: u32 = 43776;
+pub const BTRFS_IOC_SNAP_DESTROY_V2: u32 = 1342215231;
+pub const HIDIOCGCOLLECTIONINFO: u32 = 3222292497;
+pub const I2OSWUL: u32 = 3223087366;
+pub const IOCTL_MEI_NOTIFY_GET: u32 = 2147764227;
+pub const FDFMTTRK: u32 = 1074528840;
+pub const MMTIMER_GETBITS: u32 = 27908;
+pub const VIDIOC_ENUMSTD: u32 = 3225966105;
+pub const VHOST_GET_VRING_BASE: u32 = 3221794578;
+pub const VFIO_DEVICE_IOEVENTFD: u32 = 15220;
+pub const ATMARP_SETENTRY: u32 = 25059;
+pub const CCISS_REVALIDVOLS: u32 = 16906;
+pub const MGSL_IOCLOOPTXDONE: u32 = 27913;
+pub const RTC_VL_READ: u32 = 2147774483;
+pub const ND_IOCTL_ARS_STATUS: u32 = 3224391171;
+pub const RIO_DEV_DEL: u32 = 1075866904;
+pub const VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: u32 = 3223606797;
+pub const VIDIOC_SUBDEV_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const SONYPI_IOCSFAN: u32 = 1073837579;
+pub const SPIOCSTYPE: u32 = 1074032897;
+pub const IPMICTL_REGISTER_FOR_CMD: u32 = 2147641614;
+pub const I8K_GET_FAN: u32 = 3221514630;
+pub const TUNGETVNETBE: u32 = 2147767519;
+pub const AUTOFS_DEV_IOCTL_FAIL: u32 = 3222836087;
+pub const UI_END_FF_UPLOAD: u32 = 1080055241;
+pub const TOSH_SMM: u32 = 3222828176;
+pub const SONYPI_IOCGBAT2REM: u32 = 2147644933;
+pub const F2FS_IOC_GET_COMPRESS_BLOCKS: u32 = 2148070673;
+pub const PPPIOCSNPMODE: u32 = 1074295883;
+pub const USBDEVFS_CONTROL: u32 = 3222295808;
+pub const HIDIOCGUSAGE: u32 = 3222816779;
+pub const TUNSETTXFILTER: u32 = 1074025681;
+pub const TUNGETVNETLE: u32 = 2147767517;
+pub const VIDIOC_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const BTRFS_IOC_INO_PATHS: u32 = 3224933411;
+pub const MGSL_IOCGXSYNC: u32 = 27924;
+pub const HIDIOCGFIELDINFO: u32 = 3224913930;
+pub const VIDIOC_SUBDEV_G_STD: u32 = 2148029975;
+pub const I2OVALIDATE: u32 = 2147772680;
+pub const VIDIOC_TRY_ENCODER_CMD: u32 = 3223869006;
+pub const NILFS_IOCTL_GET_CPINFO: u32 = 2149084802;
+pub const VIDIOC_G_FREQUENCY: u32 = 3224131128;
+pub const VFAT_IOCTL_READDIR_SHORT: u32 = 2182640130;
+pub const ND_IOCTL_GET_CONFIG_DATA: u32 = 3222031877;
+pub const F2FS_IOC_RESERVE_COMPRESS_BLOCKS: u32 = 2148070675;
+pub const FDGETDRVSTAT: u32 = 2150892050;
+pub const SYNC_IOC_MERGE: u32 = 3224387075;
+pub const VIDIOC_S_DV_TIMINGS: u32 = 3229898327;
+pub const PPPIOCBRIDGECHAN: u32 = 1074033717;
+pub const LIRC_SET_SEND_MODE: u32 = 1074030865;
+pub const RIO_ENABLE_PORTWRITE_RANGE: u32 = 1074818315;
+pub const ATM_GETTYPE: u32 = 1074553220;
+pub const PHN_GETREGS: u32 = 3223875591;
+pub const FDSETEMSGTRESH: u32 = 586;
+pub const NILFS_IOCTL_GET_VINFO: u32 = 3222826630;
+pub const MGSL_IOCWAITEVENT: u32 = 3221515528;
+pub const CAPI_INSTALLED: u32 = 2147631906;
+pub const EVIOCGMASK: u32 = 2148550034;
+pub const BTRFS_IOC_SUBVOL_GETFLAGS: u32 = 2148045849;
+pub const FSL_HV_IOCTL_PARTITION_GET_STATUS: u32 = 3222056706;
+pub const MEDIA_IOC_ENUM_ENTITIES: u32 = 3238034433;
+pub const GSMIOC_GETFIRST: u32 = 2147763972;
+pub const FW_CDEV_IOC_FLUSH_ISO: u32 = 1074012952;
+pub const VIDIOC_DBG_G_CHIP_INFO: u32 = 3234354790;
+pub const F2FS_IOC_RELEASE_VOLATILE_WRITE: u32 = 62724;
+pub const CAPI_GET_SERIAL: u32 = 3221504776;
+pub const FDSETDRVPRM: u32 = 1079509648;
+pub const IOC_OPAL_SAVE: u32 = 1092120796;
+pub const VIDIOC_G_DV_TIMINGS: u32 = 3229898328;
+pub const TUNSETIFINDEX: u32 = 1074025690;
+pub const CCISS_SETINTINFO: u32 = 1074283011;
+pub const RTC_VL_CLR: u32 = 28692;
+pub const VIDIOC_REQBUFS: u32 = 3222558216;
+pub const USBDEVFS_REAPURBNDELAY32: u32 = 1074025741;
+pub const TEE_IOC_SHM_REGISTER: u32 = 3222840329;
+pub const USBDEVFS_SETCONFIGURATION: u32 = 2147767557;
+pub const CCISS_GETNODENAME: u32 = 2148549124;
+pub const VIDIOC_SUBDEV_S_FRAME_INTERVAL: u32 = 3224393238;
+pub const VIDIOC_ENUM_FRAMESIZES: u32 = 3224131146;
+pub const VFIO_DEVICE_PCI_HOT_RESET: u32 = 15217;
+pub const FW_CDEV_IOC_SEND_BROADCAST_REQUEST: u32 = 1076372242;
+pub const LPSETTIMEOUT_NEW: u32 = 1074791951;
+pub const RIO_CM_MPORT_GET_LIST: u32 = 3221512971;
+pub const FW_CDEV_IOC_QUEUE_ISO: u32 = 3222807305;
+pub const FDRAWCMD: u32 = 600;
+pub const SCIF_UNREG: u32 = 3222303497;
+pub const PPPIOCGIDLE64: u32 = 2148561983;
+pub const USBDEVFS_RELEASEINTERFACE: u32 = 2147767568;
+pub const VIDIOC_CROPCAP: u32 = 3224131130;
+pub const DFL_FPGA_PORT_GET_INFO: u32 = 46657;
+pub const PHN_SET_REGS: u32 = 1074032643;
+pub const ATMLEC_DATA: u32 = 25041;
+pub const PPPOEIOCDFWD: u32 = 45313;
+pub const VIDIOC_S_SELECTION: u32 = 3225441887;
+pub const SNAPSHOT_FREE_SWAP_PAGES: u32 = 13065;
+pub const BTRFS_IOC_LOGICAL_INO: u32 = 3224933412;
+pub const VIDIOC_S_CTRL: u32 = 3221771804;
+pub const ZATM_SETPOOL: u32 = 1074553187;
+pub const MTIOCPOS: u32 = 2147773699;
+pub const PMU_IOC_SLEEP: u32 = 16896;
+pub const AUTOFS_DEV_IOCTL_PROTOSUBVER: u32 = 3222836083;
+pub const VBG_IOCTL_CHANGE_FILTER_MASK: u32 = 3223344652;
+pub const NILFS_IOCTL_GET_SUSTAT: u32 = 2150657669;
+pub const VIDIOC_QUERYCAP: u32 = 2154321408;
+pub const HPET_INFO: u32 = 2148296707;
+pub const VIDIOC_AM437X_CCDC_CFG: u32 = 1074026177;
+pub const DM_LIST_DEVICES: u32 = 3241737474;
+pub const TUNSETOWNER: u32 = 1074025676;
+pub const VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: u32 = 3223344654;
+pub const RNDADDENTROPY: u32 = 1074287107;
+pub const USBDEVFS_RESET: u32 = 21780;
+pub const BTRFS_IOC_SUBVOL_CREATE: u32 = 1342215182;
+pub const USBDEVFS_FORBID_SUSPEND: u32 = 21793;
+pub const FDGETDRVTYP: u32 = 2148532751;
+pub const PPWCONTROL: u32 = 1073836164;
+pub const VIDIOC_ENUM_FRAMEINTERVALS: u32 = 3224655435;
+pub const KCOV_DISABLE: u32 = 25445;
+pub const IOC_OPAL_ACTIVATE_LSP: u32 = 1092120799;
+pub const VHOST_VDPA_GET_IOVA_RANGE: u32 = 2148577144;
+pub const PPPIOCSPASS: u32 = 1074295879;
+pub const RIO_CM_CHAN_CONNECT: u32 = 1074291464;
+pub const I2OSWDEL: u32 = 3223087367;
+pub const FS_IOC_SET_ENCRYPTION_POLICY: u32 = 2148296211;
+pub const IOC_OPAL_MBR_DONE: u32 = 1091596521;
+pub const PPPIOCSMAXCID: u32 = 1074033745;
+pub const PPSETPHASE: u32 = 1074032788;
+pub const VHOST_VDPA_SET_VRING_ENABLE: u32 = 1074311029;
+pub const USBDEVFS_GET_SPEED: u32 = 21791;
+pub const SONET_GETFRAMING: u32 = 2147770646;
+pub const VIDIOC_QUERYBUF: u32 = 3225703945;
+pub const VIDIOC_S_EDID: u32 = 3223606825;
+pub const BTRFS_IOC_QGROUP_ASSIGN: u32 = 1075352617;
+pub const PPS_GETCAP: u32 = 2147774627;
+pub const SNAPSHOT_PLATFORM_SUPPORT: u32 = 13071;
+pub const LIRC_SET_REC_TIMEOUT_REPORTS: u32 = 1074030873;
+pub const SCIF_GET_NODEIDS: u32 = 3222827790;
+pub const NBD_DISCONNECT: u32 = 43784;
+pub const VIDIOC_SUBDEV_G_FRAME_INTERVAL: u32 = 3224393237;
+pub const VFIO_IOMMU_DISABLE: u32 = 15220;
+pub const SNAPSHOT_CREATE_IMAGE: u32 = 1074017041;
+pub const SNAPSHOT_POWER_OFF: u32 = 13072;
+pub const APM_IOC_STANDBY: u32 = 16641;
+pub const PPPIOCGUNIT: u32 = 2147775574;
+pub const AUTOFS_IOC_EXPIRE_MULTI: u32 = 1074041702;
+pub const SCIF_BIND: u32 = 3221779201;
+pub const IOC_WATCH_QUEUE_SET_SIZE: u32 = 22368;
+pub const NILFS_IOCTL_CHANGE_CPMODE: u32 = 1074818688;
+pub const IOC_OPAL_LOCK_UNLOCK: u32 = 1092120797;
+pub const F2FS_IOC_SET_PIN_FILE: u32 = 1074066701;
+pub const PPPIOCGRASYNCMAP: u32 = 2147775573;
+pub const MMTIMER_MMAPAVAIL: u32 = 27910;
+pub const I2OPASSTHRU32: u32 = 2148034828;
+pub const DFL_FPGA_FME_PORT_RELEASE: u32 = 1074050689;
+pub const VIDIOC_SUBDEV_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const UI_SET_SNDBIT: u32 = 1074025834;
+pub const VIDIOC_G_AUDOUT: u32 = 2150913585;
+pub const RTC_PLL_SET: u32 = 1075605522;
+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 = 1074048836;
+pub const VHOST_SET_VRING_ADDR: u32 = 1076408081;
+pub const VDUSE_CREATE_DEV: u32 = 1095794946;
+pub const FDFLUSH: u32 = 587;
+pub const VBG_IOCTL_WAIT_FOR_EVENTS: u32 = 3223344650;
+pub const DFL_FPGA_FME_ERR_SET_IRQ: u32 = 1074312836;
+pub const F2FS_IOC_GET_PIN_FILE: u32 = 2147808526;
+pub const SCIF_CONNECT: u32 = 3221779203;
+pub const BLKREPORTZONE: u32 = 3222278786;
+pub const AUTOFS_IOC_ASKUMOUNT: u32 = 2147783536;
+pub const ATM_ADDPARTY: u32 = 1074291188;
+pub const FDSETPRM: u32 = 1075577410;
+pub const ATM_GETSTATZ: u32 = 1074553169;
+pub const ISST_IF_MSR_COMMAND: u32 = 3221552644;
+pub const BTRFS_IOC_GET_SUBVOL_INFO: u32 = 2180551740;
+pub const VIDIOC_UNSUBSCRIBE_EVENT: u32 = 1075861083;
+pub const SEV_ISSUE_CMD: u32 = 3222295296;
+pub const GPIOHANDLE_SET_LINE_VALUES_IOCTL: u32 = 3225465865;
+pub const PCITEST_COPY: u32 = 1074024454;
+pub const IPMICTL_GET_MY_ADDRESS_CMD: u32 = 2147772690;
+pub const CHIOGPICKER: u32 = 2147771140;
+pub const CAPI_NCCI_OPENCOUNT: u32 = 2147762982;
+pub const CXL_MEM_SEND_COMMAND: u32 = 3224423938;
+pub const PERF_EVENT_IOC_SET_FILTER: u32 = 1074013190;
+pub const IOC_OPAL_REVERT_TPR: u32 = 1091072226;
+pub const CHIOGVPARAMS: u32 = 2154849043;
+pub const PTP_PEROUT_REQUEST: u32 = 1077427459;
+pub const FSI_SCOM_CHECK: u32 = 2147775232;
+pub const RTC_IRQP_READ: u32 = 2147774475;
+pub const RIO_MPORT_MAINT_READ_LOCAL: u32 = 2149084421;
+pub const HIDIOCGRDESCSIZE: u32 = 2147764225;
+pub const UI_GET_VERSION: u32 = 2147767597;
+pub const NILFS_IOCTL_GET_CPSTAT: u32 = 2149084803;
+pub const CCISS_GETBUSTYPES: u32 = 2147762695;
+pub const VFIO_IOMMU_SPAPR_TCE_CREATE: u32 = 15223;
+pub const VIDIOC_EXPBUF: u32 = 3225441808;
+pub const UI_SET_RELBIT: u32 = 1074025830;
+pub const VFIO_SET_IOMMU: u32 = 15206;
+pub const VIDIOC_S_MODULATOR: u32 = 1078220343;
+pub const TUNGETFILTER: u32 = 2148029659;
+pub const CCISS_SETNODENAME: u32 = 1074807301;
+pub const FBIO_GETCONTROL2: u32 = 2147763849;
+pub const TUNSETDEBUG: u32 = 1074025673;
+pub const DM_DEV_REMOVE: u32 = 3241737476;
+pub const HIDIOCSUSAGES: u32 = 1344030740;
+pub const FS_IOC_ADD_ENCRYPTION_KEY: u32 = 3226494487;
+pub const FBIOGET_VBLANK: u32 = 2149598738;
+pub const ATM_GETSTAT: u32 = 1074553168;
+pub const VIDIOC_G_JPEGCOMP: u32 = 2156680765;
+pub const TUNATTACHFILTER: u32 = 1074287829;
+pub const UI_SET_ABSBIT: u32 = 1074025831;
+pub const DFL_FPGA_PORT_ERR_GET_IRQ_NUM: u32 = 2147792453;
+pub const USBDEVFS_REAPURB32: u32 = 1074025740;
+pub const BTRFS_IOC_TRANS_END: u32 = 37895;
+pub const CAPI_REGISTER: u32 = 1074545409;
+pub const F2FS_IOC_COMPRESS_FILE: u32 = 62744;
+pub const USBDEVFS_DISCARDURB: u32 = 21771;
+pub const HE_GET_REG: u32 = 1074553184;
+pub const ATM_SETLOOP: u32 = 1074553171;
+pub const ATMSIGD_CTRL: u32 = 25072;
+pub const CIOC_KERNEL_VERSION: u32 = 3221512970;
+pub const BTRFS_IOC_CLONE_RANGE: u32 = 1075876877;
+pub const SNAPSHOT_UNFREEZE: u32 = 13058;
+pub const F2FS_IOC_START_VOLATILE_WRITE: u32 = 62723;
+pub const PMU_IOC_HAS_ADB: u32 = 2147762692;
+pub const I2OGETIOPS: u32 = 2149607680;
+pub const VIDIOC_S_FBUF: u32 = 1076647435;
+pub const PPRCONTROL: u32 = 2147577987;
+pub const CHIOSPICKER: u32 = 1074029317;
+pub const VFIO_IOMMU_SPAPR_REGISTER_MEMORY: u32 = 15221;
+pub const TUNGETSNDBUF: u32 = 2147767507;
+pub const GSMIOC_SETCONF: u32 = 1078740737;
+pub const IOC_PR_PREEMPT: u32 = 1075343563;
+pub const KCOV_INIT_TRACE: u32 = 2147771137;
+pub const SONYPI_IOCGBAT1CAP: u32 = 2147644930;
+pub const SWITCHTEC_IOCTL_FLASH_INFO: u32 = 2148554560;
+pub const MTIOCTOP: u32 = 1074294017;
+pub const VHOST_VDPA_SET_STATUS: u32 = 1073852274;
+pub const VHOST_SCSI_SET_EVENTS_MISSED: u32 = 1074048835;
+pub const VFIO_IOMMU_DIRTY_PAGES: u32 = 15221;
+pub const BTRFS_IOC_SCRUB_PROGRESS: u32 = 3288372253;
+pub const PPPIOCGMRU: u32 = 2147775571;
+pub const BTRFS_IOC_DEV_REPLACE: u32 = 3391657013;
+pub const PPPIOCGFLAGS: u32 = 2147775578;
+pub const NILFS_IOCTL_SET_SUINFO: u32 = 1075342989;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER2: u32 = 3222807316;
+pub const ATM_DELLECSADDR: u32 = 1074553231;
+pub const FW_CDEV_IOC_GET_SPEED: u32 = 8977;
+pub const PPPIOCGIDLE32: u32 = 2148037695;
+pub const VFIO_DEVICE_RESET: u32 = 15215;
+pub const GPIO_GET_LINEINFO_UNWATCH_IOCTL: u32 = 3221533708;
+pub const WDIOC_GETSTATUS: u32 = 2147768065;
+pub const BTRFS_IOC_SET_FEATURES: u32 = 1076925497;
+pub const IOCTL_MEI_CONNECT_CLIENT: u32 = 3222292481;
+pub const VIDIOC_OMAP3ISP_AEWB_CFG: u32 = 3223344835;
+pub const PCITEST_READ: u32 = 1074024453;
+pub const VFIO_GROUP_GET_STATUS: u32 = 15207;
+pub const MATROXFB_GET_ALL_OUTPUTS: u32 = 2147774203;
+pub const USBDEVFS_CLEAR_HALT: u32 = 2147767573;
+pub const VIDIOC_DECODER_CMD: u32 = 3225966176;
+pub const VIDIOC_G_AUDIO: u32 = 2150913569;
+pub const CCISS_RESCANDISK: u32 = 16912;
+pub const RIO_DISABLE_PORTWRITE_RANGE: u32 = 1074818316;
+pub const IOC_OPAL_SECURE_ERASE_LR: u32 = 1091596519;
+pub const USBDEVFS_REAPURB: u32 = 1074025740;
+pub const DFL_FPGA_CHECK_EXTENSION: u32 = 46593;
+pub const AUTOFS_IOC_PROTOVER: u32 = 2147783523;
+pub const FSL_HV_IOCTL_MEMCPY: u32 = 3223891717;
+pub const BTRFS_IOC_GET_FEATURES: u32 = 2149094457;
+pub const PCITEST_MSIX: u32 = 1074024455;
+pub const BTRFS_IOC_DEFRAG_RANGE: u32 = 1076925456;
+pub const UI_BEGIN_FF_ERASE: u32 = 3222033866;
+pub const DM_GET_TARGET_VERSION: u32 = 3241737489;
+pub const PPPIOCGIDLE: u32 = 2148037695;
+pub const NVRAM_SETCKS: u32 = 28737;
+pub const WDIOC_GETSUPPORT: u32 = 2150127360;
+pub const GSMIOC_ENABLE_NET: u32 = 1077167874;
+pub const GPIO_GET_CHIPINFO_IOCTL: u32 = 2151986177;
+pub const NE_ADD_VCPU: u32 = 3221532193;
+pub const EVIOCSKEYCODE_V2: u32 = 1076380932;
+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 = 1075342598;
+pub const I2OEVTREG: u32 = 1074555146;
+pub const I2OPARMGET: u32 = 3222825220;
+pub const EVIOCGID: u32 = 2148025602;
+pub const BTRFS_IOC_QGROUP_CREATE: u32 = 1074828330;
+pub const AUTOFS_DEV_IOCTL_SETPIPEFD: u32 = 3222836088;
+pub const VIDIOC_S_PARM: u32 = 3234616854;
+pub const TUNSETSTEERINGEBPF: u32 = 2147767520;
+pub const ATM_GETNAMES: u32 = 1074291075;
+pub const VIDIOC_QUERYMENU: u32 = 3224131109;
+pub const DFL_FPGA_PORT_DMA_UNMAP: u32 = 46660;
+pub const I2OLCTGET: u32 = 3222038786;
+pub const FS_IOC_GET_ENCRYPTION_PWSALT: u32 = 1074816532;
+pub const NS_SETBUFLEV: u32 = 1074553186;
+pub const BLKCLOSEZONE: u32 = 1074795143;
+pub const SONET_GETFRSENSE: u32 = 2147901719;
+pub const UI_SET_EVBIT: u32 = 1074025828;
+pub const DM_LIST_VERSIONS: u32 = 3241737485;
+pub const HIDIOCGSTRING: u32 = 2164541444;
+pub const PPPIOCATTCHAN: u32 = 1074033720;
+pub const VDUSE_DEV_SET_CONFIG: u32 = 1074299154;
+pub const TUNGETFEATURES: u32 = 2147767503;
+pub const VFIO_GROUP_UNSET_CONTAINER: u32 = 15209;
+pub const IPMICTL_SET_MY_ADDRESS_CMD: u32 = 2147772689;
+pub const CCISS_REGNEWDISK: u32 = 1074020877;
+pub const VIDIOC_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const PHN_SETREGS: u32 = 1076391944;
+pub const FAT_IOCTL_GET_ATTRIBUTES: u32 = 2147774992;
+pub const FSL_MC_SEND_MC_COMMAND: u32 = 3225440992;
+pub const TUNGETIFF: u32 = 2147767506;
+pub const PTP_CLOCK_GETCAPS2: u32 = 2152742154;
+pub const BTRFS_IOC_RESIZE: u32 = 1342215171;
+pub const VHOST_SET_VRING_ENDIAN: u32 = 1074310931;
+pub const PPS_KC_BIND: u32 = 1074032805;
+pub const F2FS_IOC_WRITE_CHECKPOINT: u32 = 62727;
+pub const UI_SET_FFBIT: u32 = 1074025835;
+pub const IPMICTL_GET_MY_LUN_CMD: u32 = 2147772692;
+pub const CEC_ADAP_G_PHYS_ADDR: u32 = 2147639553;
+pub const CEC_G_MODE: u32 = 2147770632;
+pub const USBDEVFS_RESETEP: u32 = 2147767555;
+pub const MEDIA_REQUEST_IOC_QUEUE: u32 = 31872;
+pub const USBDEVFS_ALLOC_STREAMS: u32 = 2148029724;
+pub const MGSL_IOCSXCTRL: u32 = 27925;
+pub const MEDIA_IOC_G_TOPOLOGY: u32 = 3225975812;
+pub const PPPIOCUNBRIDGECHAN: u32 = 29748;
+pub const F2FS_IOC_COMMIT_ATOMIC_WRITE: u32 = 62722;
+pub const ISST_IF_GET_PLATFORM_INFO: u32 = 2147810816;
+pub const SCIF_FENCE_MARK: u32 = 3222303503;
+pub const USBDEVFS_RELEASE_PORT: u32 = 2147767577;
+pub const VFIO_CHECK_EXTENSION: u32 = 15205;
+pub const BTRFS_IOC_QGROUP_LIMIT: u32 = 2150667307;
+pub const FAT_IOCTL_GET_VOLUME_ID: u32 = 2147774995;
+pub const UI_SET_PHYS: u32 = 1074025836;
+pub const FDWERRORGET: u32 = 2149057047;
+pub const VIDIOC_SUBDEV_G_EDID: u32 = 3223606824;
+pub const MGSL_IOCGSTATS: u32 = 27911;
+pub const RPROC_SET_SHUTDOWN_ON_RELEASE: u32 = 1074050817;
+pub const SIOCGSTAMP_NEW: u32 = 2148567302;
+pub const RTC_WKALM_RD: u32 = 2150133776;
+pub const PHN_GET_REG: u32 = 3221516288;
+pub const DELL_WMI_SMBIOS_CMD: u32 = 3224655616;
+pub const PHN_NOT_OH: u32 = 28676;
+pub const PPGETMODES: u32 = 2147774615;
+pub const CHIOGPARAMS: u32 = 2148819718;
+pub const VFIO_DEVICE_GET_GFX_DMABUF: u32 = 15219;
+pub const VHOST_SET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310947;
+pub const VIDIOC_SUBDEV_G_SELECTION: u32 = 3225441853;
+pub const BTRFS_IOC_RM_DEV_V2: u32 = 1342215226;
+pub const MGSL_IOCWAITGPIO: u32 = 3222301970;
+pub const PMU_IOC_CAN_SLEEP: u32 = 2147762693;
+pub const KCOV_ENABLE: u32 = 25444;
+pub const BTRFS_IOC_CLONE: u32 = 1074041865;
+pub const F2FS_IOC_DEFRAGMENT: u32 = 3222336776;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE: u32 = 1074012942;
+pub const AGPIOC_ALLOCATE: u32 = 3221504262;
+pub const NE_SET_USER_MEMORY_REGION: u32 = 1075359267;
+pub const MGSL_IOCTXABORT: u32 = 27910;
+pub const MGSL_IOCSGPIO: u32 = 1074818320;
+pub const LIRC_SET_REC_CARRIER: u32 = 1074030868;
+pub const F2FS_IOC_FLUSH_DEVICE: u32 = 1074328842;
+pub const SNAPSHOT_ATOMIC_RESTORE: u32 = 13060;
+pub const RTC_UIE_OFF: u32 = 28676;
+pub const BT_BMC_IOCTL_SMS_ATN: u32 = 45312;
+pub const NVME_IOCTL_ID: u32 = 20032;
+pub const NE_START_ENCLAVE: u32 = 3222318628;
+pub const VIDIOC_STREAMON: u32 = 1074026002;
+pub const FDPOLLDRVSTAT: u32 = 2150892051;
+pub const AUTOFS_DEV_IOCTL_READY: u32 = 3222836086;
+pub const VIDIOC_ENUMAUDOUT: u32 = 3224655426;
+pub const VIDIOC_SUBDEV_S_STD: u32 = 1074288152;
+pub const WDIOC_GETTIMELEFT: u32 = 2147768074;
+pub const ATM_GETLINKRATE: u32 = 1074553217;
+pub const RTC_WKALM_SET: u32 = 1076391951;
+pub const VHOST_GET_BACKEND_FEATURES: u32 = 2148052774;
+pub const ATMARP_ENCAP: u32 = 25061;
+pub const CAPI_GET_FLAGS: u32 = 2147762979;
+pub const IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772696;
+pub const DFL_FPGA_FME_PORT_ASSIGN: u32 = 1074050690;
+pub const NS_GET_OWNER_UID: u32 = 46852;
+pub const VIDIOC_OVERLAY: u32 = 1074025998;
+pub const BTRFS_IOC_WAIT_SYNC: u32 = 1074304022;
+pub const GPIOHANDLE_SET_CONFIG_IOCTL: u32 = 3226776586;
+pub const VHOST_GET_VRING_ENDIAN: u32 = 1074310932;
+pub const ATM_GETADDR: u32 = 1074553222;
+pub const PHN_GET_REGS: u32 = 3221516290;
+pub const AUTOFS_DEV_IOCTL_REQUESTER: u32 = 3222836091;
+pub const AUTOFS_DEV_IOCTL_EXPIRE: u32 = 3222836092;
+pub const SNAPSHOT_S2RAM: u32 = 13067;
+pub const JSIOCSAXMAP: u32 = 1077963313;
+pub const F2FS_IOC_SET_COMPRESS_OPTION: u32 = 1073935638;
+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 = 15216;
+pub const VIDIOC_SUBDEV_ENUM_MBUS_CODE: u32 = 3224393218;
+pub const MMTIMER_GETOFFSET: u32 = 27904;
+pub const RIO_CM_CHAN_LISTEN: u32 = 1073898246;
+pub const ATM_SETSC: u32 = 1074029041;
+pub const F2FS_IOC_SHUTDOWN: u32 = 2147768445;
+pub const NVME_IOCTL_RESCAN: u32 = 20038;
+pub const BLKOPENZONE: u32 = 1074795142;
+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 = 25056;
+pub const IPMI_BMC_IOCTL_CLEAR_SMS_ATN: u32 = 45313;
+pub const HIDIOCGVERSION: u32 = 2147764225;
+pub const VIDIOC_S_INPUT: u32 = 3221509671;
+pub const VIDIOC_G_CROP: u32 = 3222558267;
+pub const LIRC_SET_WIDEBAND_RECEIVER: u32 = 1074030883;
+pub const EVIOCGEFFECTS: u32 = 2147763588;
+pub const UVCIOC_CTRL_QUERY: u32 = 3222041889;
+pub const IOC_OPAL_GENERIC_TABLE_RW: u32 = 1094217963;
+pub const FS_IOC_READ_VERITY_METADATA: u32 = 3223873159;
+pub const ND_IOCTL_SET_CONFIG_DATA: u32 = 3221769734;
+pub const USBDEVFS_GETDRIVER: u32 = 1090802952;
+pub const IDT77105_GETSTAT: u32 = 1074553138;
+pub const HIDIOCINITREPORT: u32 = 18437;
+pub const VFIO_DEVICE_GET_INFO: u32 = 15211;
+pub const RIO_CM_CHAN_RECEIVE: u32 = 3222299402;
+pub const RNDGETENTCNT: u32 = 2147766784;
+pub const PPPIOCNEWUNIT: u32 = 3221517374;
+pub const BTRFS_IOC_INO_LOOKUP: u32 = 3489698834;
+pub const FDRESET: u32 = 596;
+pub const IOC_PR_REGISTER: u32 = 1075343560;
+pub const HIDIOCSREPORT: u32 = 1074546696;
+pub const TEE_IOC_OPEN_SESSION: u32 = 2148574210;
+pub const TEE_IOC_SUPPL_RECV: u32 = 2148574214;
+pub const BTRFS_IOC_BALANCE_CTL: u32 = 1074041889;
+pub const GPIO_GET_LINEINFO_WATCH_IOCTL: u32 = 3225990155;
+pub const HIDIOCGRAWINFO: u32 = 2148026371;
+pub const PPPIOCSCOMPRESS: u32 = 1074558029;
+pub const USBDEVFS_CONNECTINFO: u32 = 1074287889;
+pub const BLKRESETZONE: u32 = 1074795139;
+pub const CHIOINITELEM: u32 = 25361;
+pub const NILFS_IOCTL_SET_ALLOC_RANGE: u32 = 1074818700;
+pub const AUTOFS_DEV_IOCTL_CATATONIC: u32 = 3222836089;
+pub const RIO_MPORT_MAINT_HDID_SET: u32 = 1073900801;
+pub const PPGETPHASE: u32 = 2147774617;
+pub const USBDEVFS_DISCONNECT_CLAIM: u32 = 2164806939;
+pub const FDMSGON: u32 = 581;
+pub const VIDIOC_G_SLICED_VBI_CAP: u32 = 3228849733;
+pub const BTRFS_IOC_BALANCE_V2: u32 = 3288372256;
+pub const MEDIA_REQUEST_IOC_REINIT: u32 = 31873;
+pub const IOC_OPAL_ERASE_LR: u32 = 1091596518;
+pub const FDFMTBEG: u32 = 583;
+pub const RNDRESEEDCRNG: u32 = 20999;
+pub const ISST_IF_GET_PHY_ID: u32 = 3221552641;
+pub const TUNSETNOCSUM: u32 = 1074025672;
+pub const SONET_GETSTAT: u32 = 2149867792;
+pub const TFD_IOC_SET_TICKS: u32 = 1074287616;
+pub const PPDATADIR: u32 = 1074032784;
+pub const IOC_OPAL_ENABLE_DISABLE_MBR: u32 = 1091596517;
+pub const GPIO_V2_GET_LINE_IOCTL: u32 = 3260068871;
+pub const RIO_CM_CHAN_SEND: u32 = 1074815753;
+pub const PPWCTLONIRQ: u32 = 1073836178;
+pub const SONYPI_IOCGBRT: u32 = 2147579392;
+pub const IOC_PR_RELEASE: u32 = 1074819274;
+pub const PPCLRIRQ: u32 = 2147774611;
+pub const IPMICTL_SET_MY_CHANNEL_LUN_CMD: u32 = 2147772698;
+pub const MGSL_IOCSXSYNC: u32 = 27923;
+pub const HPET_IE_OFF: u32 = 26626;
+pub const IOC_OPAL_ACTIVATE_USR: u32 = 1091596513;
+pub const SONET_SETFRAMING: u32 = 1074028821;
+pub const PERF_EVENT_IOC_PAUSE_OUTPUT: u32 = 1074013193;
+pub const BTRFS_IOC_LOGICAL_INO_V2: u32 = 3224933435;
+pub const VBG_IOCTL_HGCM_CONNECT: u32 = 3231471108;
+pub const BLKFINISHZONE: u32 = 1074795144;
+pub const EVIOCREVOKE: u32 = 1074021777;
+pub const VFIO_DEVICE_FEATURE: u32 = 15221;
+pub const CCISS_GETPCIINFO: u32 = 2148024833;
+pub const ISST_IF_MBOX_COMMAND: u32 = 3221552643;
+pub const SCIF_ACCEPTREQ: u32 = 3222303492;
+pub const PERF_EVENT_IOC_QUERY_BPF: u32 = 3221496842;
+pub const VIDIOC_STREAMOFF: u32 = 1074026003;
+pub const VDUSE_DESTROY_DEV: u32 = 1090552067;
+pub const FDGETFDCSTAT: u32 = 2149581333;
+pub const VIDIOC_S_PRIORITY: u32 = 1074026052;
+pub const SNAPSHOT_FREEZE: u32 = 13057;
+pub const VIDIOC_ENUMINPUT: u32 = 3226490394;
+pub const ZATM_GETPOOLZ: u32 = 1074553186;
+pub const RIO_DISABLE_DOORBELL_RANGE: u32 = 1074294026;
+pub const GPIO_V2_GET_LINEINFO_WATCH_IOCTL: u32 = 3238048774;
+pub const VIDIOC_G_STD: u32 = 2148029975;
+pub const USBDEVFS_ALLOW_SUSPEND: u32 = 21794;
+pub const SONET_GETSTATZ: u32 = 2149867793;
+pub const SCIF_ACCEPTREG: u32 = 3221779205;
+pub const VIDIOC_ENCODER_CMD: u32 = 3223869005;
+pub const PPPIOCSRASYNCMAP: u32 = 1074033748;
+pub const IOCTL_MEI_NOTIFY_SET: u32 = 1074022402;
+pub const BTRFS_IOC_QUOTA_RESCAN_STATUS: u32 = 2151715885;
+pub const F2FS_IOC_GARBAGE_COLLECT: u32 = 1074066694;
+pub const ATMLEC_CTRL: u32 = 25040;
+pub const MATROXFB_GET_AVAILABLE_OUTPUTS: u32 = 2147774201;
+pub const DM_DEV_CREATE: u32 = 3241737475;
+pub const VHOST_VDPA_GET_VRING_NUM: u32 = 2147659638;
+pub const VIDIOC_G_CTRL: u32 = 3221771803;
+pub const NBD_CLEAR_SOCK: u32 = 43780;
+pub const VFIO_DEVICE_QUERY_GFX_PLANE: u32 = 15218;
+pub const WDIOC_KEEPALIVE: u32 = 2147768069;
+pub const NVME_IOCTL_SUBSYS_RESET: u32 = 20037;
+pub const PTP_EXTTS_REQUEST2: u32 = 1074806027;
+pub const PCITEST_BAR: u32 = 20481;
+pub const MGSL_IOCGGPIO: u32 = 2148560145;
+pub const EVIOCSREP: u32 = 1074283779;
+pub const VFIO_DEVICE_GET_IRQ_INFO: u32 = 15213;
+pub const HPET_DPI: u32 = 26629;
+pub const VDUSE_VQ_SETUP_KICKFD: u32 = 1074299158;
+pub const ND_IOCTL_CALL: u32 = 3225439754;
+pub const HIDIOCGDEVINFO: u32 = 2149337091;
+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 = 2147767875;
+pub const ATM_NEWBACKENDIF: u32 = 1073897971;
+pub const VIDIOC_S_EXT_CTRLS: u32 = 3222820424;
+pub const VIDIOC_SUBDEV_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const VIDIOC_OMAP3ISP_CCDC_CFG: u32 = 3223344833;
+pub const VIDIOC_S_HW_FREQ_SEEK: u32 = 1076909650;
+pub const DM_TABLE_LOAD: u32 = 3241737481;
+pub const F2FS_IOC_START_ATOMIC_WRITE: u32 = 62721;
+pub const VIDIOC_G_OUTPUT: u32 = 2147767854;
+pub const ATM_DROPPARTY: u32 = 1074029045;
+pub const CHIOGELEM: u32 = 1080845072;
+pub const BTRFS_IOC_GET_SUPPORTED_FEATURES: u32 = 2152240185;
+pub const EVIOCSKEYCODE: u32 = 1074283780;
+pub const NE_GET_IMAGE_LOAD_INFO: u32 = 3222318626;
+pub const TUNSETLINK: u32 = 1074025677;
+pub const FW_CDEV_IOC_ADD_DESCRIPTOR: u32 = 3222807302;
+pub const BTRFS_IOC_SCRUB_CANCEL: u32 = 37916;
+pub const PPS_SETPARAMS: u32 = 1074032802;
+pub const IOC_OPAL_LR_SETUP: u32 = 1093169379;
+pub const FW_CDEV_IOC_DEALLOCATE: u32 = 1074012931;
+pub const WDIOC_SETTIMEOUT: u32 = 3221509894;
+pub const IOC_WATCH_QUEUE_SET_FILTER: u32 = 22369;
+pub const CAPI_GET_MANUFACTURER: u32 = 3221504774;
+pub const VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY: u32 = 15222;
+pub const ASPEED_P2A_CTRL_IOCTL_SET_WINDOW: u32 = 1074836224;
+pub const VIDIOC_G_EDID: u32 = 3223606824;
+pub const F2FS_IOC_GARBAGE_COLLECT_RANGE: u32 = 1075377419;
+pub const RIO_MAP_INBOUND: u32 = 3223874833;
+pub const IOC_OPAL_TAKE_OWNERSHIP: u32 = 1091072222;
+pub const USBDEVFS_CLAIM_PORT: u32 = 2147767576;
+pub const VIDIOC_S_AUDIO: u32 = 1077171746;
+pub const FS_IOC_GET_ENCRYPTION_NONCE: u32 = 2148558363;
+pub const FW_CDEV_IOC_SEND_STREAM_PACKET: u32 = 1076372243;
+pub const BTRFS_IOC_SNAP_DESTROY: u32 = 1342215183;
+pub const SNAPSHOT_FREE: u32 = 13061;
+pub const I8K_GET_SPEED: u32 = 3221514629;
+pub const HIDIOCGREPORT: u32 = 1074546695;
+pub const HPET_EPI: u32 = 26628;
+pub const JSIOCSCORR: u32 = 1076128289;
+pub const IOC_PR_PREEMPT_ABORT: u32 = 1075343564;
+pub const RIO_MAP_OUTBOUND: u32 = 3223874831;
+pub const ATM_SETESI: u32 = 1074553228;
+pub const FW_CDEV_IOC_START_ISO: u32 = 1074799370;
+pub const ATM_DELADDR: u32 = 1074553225;
+pub const PPFCONTROL: u32 = 1073901710;
+pub const SONYPI_IOCGFAN: u32 = 2147579402;
+pub const RTC_IRQP_SET: u32 = 1074032652;
+pub const PCITEST_WRITE: u32 = 1074024452;
+pub const PPCLAIM: u32 = 28811;
+pub const VIDIOC_S_JPEGCOMP: u32 = 1082938942;
+pub const IPMICTL_UNREGISTER_FOR_CMD: u32 = 2147641615;
+pub const VHOST_SET_FEATURES: u32 = 1074310912;
+pub const TOSHIBA_ACPI_SCI: u32 = 3222828177;
+pub const VIDIOC_DQBUF: u32 = 3225703953;
+pub const BTRFS_IOC_BALANCE_PROGRESS: u32 = 2214630434;
+pub const BTRFS_IOC_SUBVOL_SETFLAGS: u32 = 1074304026;
+pub const ATMLEC_MCAST: u32 = 25042;
+pub const MMTIMER_GETFREQ: u32 = 2147773698;
+pub const VIDIOC_G_SELECTION: u32 = 3225441886;
+pub const RTC_ALM_SET: u32 = 1076129799;
+pub const PPPOEIOCSFWD: u32 = 1074049280;
+pub const IPMICTL_GET_MAINTENANCE_MODE_CMD: u32 = 2147772702;
+pub const FS_IOC_ENABLE_VERITY: u32 = 1082156677;
+pub const NILFS_IOCTL_GET_BDESCS: u32 = 3222826631;
+pub const FDFMTEND: u32 = 585;
+pub const DMA_BUF_SET_NAME: u32 = 1074029057;
+pub const UI_BEGIN_FF_UPLOAD: u32 = 3227538888;
+pub const RTC_UIE_ON: u32 = 28675;
+pub const PPRELEASE: u32 = 28812;
+pub const VFIO_IOMMU_UNMAP_DMA: u32 = 15218;
+pub const VIDIOC_OMAP3ISP_PRV_CFG: u32 = 3225179842;
+pub const GPIO_GET_LINEHANDLE_IOCTL: u32 = 3245126659;
+pub const VFAT_IOCTL_READDIR_BOTH: u32 = 2182640129;
+pub const NVME_IOCTL_ADMIN_CMD: u32 = 3225964097;
+pub const VHOST_SET_VRING_KICK: u32 = 1074310944;
+pub const BTRFS_IOC_SUBVOL_CREATE_V2: u32 = 1342215192;
+pub const BTRFS_IOC_SNAP_CREATE: u32 = 1342215169;
+pub const SONYPI_IOCGBAT2CAP: u32 = 2147644932;
+pub const PPNEGOT: u32 = 1074032785;
+pub const NBD_PRINT_DEBUG: u32 = 43782;
+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 = 2214630431;
+pub const VIDIOC_ENUM_FMT: u32 = 3225441794;
+pub const VIDIOC_G_INPUT: u32 = 2147767846;
+pub const VTPM_PROXY_IOC_NEW_DEV: u32 = 3222577408;
+pub const DFL_FPGA_FME_ERR_GET_IRQ_NUM: u32 = 2147792515;
+pub const ND_IOCTL_DIMM_FLAGS: u32 = 3221769731;
+pub const BTRFS_IOC_QUOTA_RESCAN: u32 = 1077974060;
+pub const MMTIMER_GETCOUNTER: u32 = 2147773705;
+pub const MATROXFB_GET_OUTPUT_MODE: u32 = 3221516026;
+pub const BTRFS_IOC_QUOTA_RESCAN_WAIT: u32 = 37934;
+pub const RIO_CM_CHAN_BIND: u32 = 1074291461;
+pub const HIDIOCGRDESC: u32 = 2416199682;
+pub const MGSL_IOCGIF: u32 = 27915;
+pub const VIDIOC_S_OUTPUT: u32 = 3221509679;
+pub const HIDIOCGREPORTINFO: u32 = 3222030345;
+pub const WDIOC_GETBOOTSTATUS: u32 = 2147768066;
+pub const VDUSE_VQ_GET_INFO: u32 = 3224404245;
+pub const ACRN_IOCTL_ASSIGN_PCIDEV: u32 = 1076142677;
+pub const BLKGETDISKSEQ: u32 = 2148012672;
+pub const ACRN_IOCTL_PM_GET_CPU_STATE: u32 = 3221791328;
+pub const ACRN_IOCTL_DESTROY_VM: u32 = 41489;
+pub const ACRN_IOCTL_SET_PTDEV_INTR: u32 = 1075094099;
+pub const ACRN_IOCTL_CREATE_IOREQ_CLIENT: u32 = 41522;
+pub const ACRN_IOCTL_IRQFD: u32 = 1075356273;
+pub const ACRN_IOCTL_CREATE_VM: u32 = 3224412688;
+pub const ACRN_IOCTL_INJECT_MSI: u32 = 1074831907;
+pub const ACRN_IOCTL_ATTACH_IOREQ_CLIENT: u32 = 41523;
+pub const ACRN_IOCTL_RESET_PTDEV_INTR: u32 = 1075094100;
+pub const ACRN_IOCTL_NOTIFY_REQUEST_FINISH: u32 = 1074307633;
+pub const ACRN_IOCTL_SET_IRQLINE: u32 = 1074307621;
+pub const ACRN_IOCTL_START_VM: u32 = 41490;
+pub const ACRN_IOCTL_SET_VCPU_REGS: u32 = 1093181974;
+pub const ACRN_IOCTL_SET_MEMSEG: u32 = 1075880513;
+pub const ACRN_IOCTL_PAUSE_VM: u32 = 41491;
+pub const ACRN_IOCTL_CLEAR_VM_IOREQ: u32 = 41525;
+pub const ACRN_IOCTL_UNSET_MEMSEG: u32 = 1075880514;
+pub const ACRN_IOCTL_IOEVENTFD: u32 = 1075880560;
+pub const ACRN_IOCTL_DEASSIGN_PCIDEV: u32 = 1076142678;
+pub const ACRN_IOCTL_RESET_VM: u32 = 41493;
+pub const ACRN_IOCTL_DESTROY_IOREQ_CLIENT: u32 = 41524;
+pub const ACRN_IOCTL_VM_INTR_MONITOR: u32 = 1074045476;
diff --git a/vendor/linux-raw-sys-0.9.4/src/arm/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/arm/landlock.rs
new file mode 100644
index 0000000..422350c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/landlock.rs
@@ -0,0 +1,98 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/arm/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/arm/loop_device.rs
new file mode 100644
index 0000000..4178e49
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/loop_device.rs
@@ -0,0 +1,132 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/arm/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/arm/mempolicy.rs
new file mode 100644
index 0000000..ad4957c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/mempolicy.rs
@@ -0,0 +1,175 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
+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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/arm/net.rs b/vendor/linux-raw-sys-0.9.4/src/arm/net.rs
new file mode 100644
index 0000000..f869515
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/net.rs
@@ -0,0 +1,3419 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u32; 67usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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 SIOCGSTAMP_OLD: u32 = 35078;
+pub const SIOCGSTAMPNS_OLD: u32 = 35079;
+pub const SOL_SOCKET: u32 = 1;
+pub const SO_DEBUG: u32 = 1;
+pub const SO_REUSEADDR: u32 = 2;
+pub const SO_TYPE: u32 = 3;
+pub const SO_ERROR: u32 = 4;
+pub const SO_DONTROUTE: u32 = 5;
+pub const SO_BROADCAST: u32 = 6;
+pub const SO_SNDBUF: u32 = 7;
+pub const SO_RCVBUF: u32 = 8;
+pub const SO_SNDBUFFORCE: u32 = 32;
+pub const SO_RCVBUFFORCE: u32 = 33;
+pub const SO_KEEPALIVE: u32 = 9;
+pub const SO_OOBINLINE: u32 = 10;
+pub const SO_NO_CHECK: u32 = 11;
+pub const SO_PRIORITY: u32 = 12;
+pub const SO_LINGER: u32 = 13;
+pub const SO_BSDCOMPAT: u32 = 14;
+pub const SO_REUSEPORT: u32 = 15;
+pub const SO_PASSCRED: u32 = 16;
+pub const SO_PEERCRED: u32 = 17;
+pub const SO_RCVLOWAT: u32 = 18;
+pub const SO_SNDLOWAT: u32 = 19;
+pub const SO_RCVTIMEO_OLD: u32 = 20;
+pub const SO_SNDTIMEO_OLD: u32 = 21;
+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_ACCEPTCONN: u32 = 30;
+pub const SO_PEERSEC: u32 = 31;
+pub const SO_PASSSEC: u32 = 34;
+pub const SO_MARK: u32 = 36;
+pub const SO_PROTOCOL: u32 = 38;
+pub const SO_DOMAIN: u32 = 39;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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 = 1;
+pub const SOCK_DGRAM: u32 = 2;
+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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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 = 32768,
+TCP_FLAG_ECE = 16384,
+TCP_FLAG_URG = 8192,
+TCP_FLAG_ACK = 4096,
+TCP_FLAG_PSH = 2048,
+TCP_FLAG_RST = 1024,
+TCP_FLAG_SYN = 512,
+TCP_FLAG_FIN = 256,
+TCP_RESERVED_BITS = 15,
+TCP_DATA_OFFSET = 240,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn ihl(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_ihl(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(ihl: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let ihl: u8 = unsafe { ::core::mem::transmute(ihl) };
+ihl as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl ipv6hdr {
+#[inline]
+pub fn priority(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_priority(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(priority: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let priority: u8 = unsafe { ::core::mem::transmute(priority) };
+priority as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcphdr {
+#[inline]
+pub fn res1(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_res1(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn doff(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_doff(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn fin(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_fin(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn syn(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_syn(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn rst(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_rst(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn psh(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_psh(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ack(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ack(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn urg(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_urg(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ece(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ece(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn cwr(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_cwr(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(res1: __u16, doff: __u16, fin: __u16, syn: __u16, rst: __u16, psh: __u16, ack: __u16, urg: __u16, ece: __u16, cwr: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let res1: u16 = unsafe { ::core::mem::transmute(res1) };
+res1 as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let doff: u16 = unsafe { ::core::mem::transmute(doff) };
+doff as u64
+});
+__bindgen_bitfield_unit.set(8usize, 1u8, {
+let fin: u16 = unsafe { ::core::mem::transmute(fin) };
+fin as u64
+});
+__bindgen_bitfield_unit.set(9usize, 1u8, {
+let syn: u16 = unsafe { ::core::mem::transmute(syn) };
+syn as u64
+});
+__bindgen_bitfield_unit.set(10usize, 1u8, {
+let rst: u16 = unsafe { ::core::mem::transmute(rst) };
+rst as u64
+});
+__bindgen_bitfield_unit.set(11usize, 1u8, {
+let psh: u16 = unsafe { ::core::mem::transmute(psh) };
+psh as u64
+});
+__bindgen_bitfield_unit.set(12usize, 1u8, {
+let ack: u16 = unsafe { ::core::mem::transmute(ack) };
+ack as u64
+});
+__bindgen_bitfield_unit.set(13usize, 1u8, {
+let urg: u16 = unsafe { ::core::mem::transmute(urg) };
+urg as u64
+});
+__bindgen_bitfield_unit.set(14usize, 1u8, {
+let ece: u16 = unsafe { ::core::mem::transmute(ece) };
+ece as u64
+});
+__bindgen_bitfield_unit.set(15usize, 1u8, {
+let cwr: u16 = unsafe { ::core::mem::transmute(cwr) };
+cwr 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/arm/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/arm/netlink.rs
new file mode 100644
index 0000000..08aeeaa
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/netlink.rs
@@ -0,0 +1,2944 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_nl {
+pub nl_family: __kernel_sa_family_t,
+pub nl_pad: crate::ctypes::c_ushort,
+pub nl_pid: __u32,
+pub nl_groups: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsghdr {
+pub nlmsg_len: __u32,
+pub nlmsg_type: __u16,
+pub nlmsg_flags: __u16,
+pub nlmsg_seq: __u32,
+pub nlmsg_pid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsgerr {
+pub error: crate::ctypes::c_int,
+pub msg: nlmsghdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_pktinfo {
+pub group: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_req {
+pub nm_block_size: crate::ctypes::c_uint,
+pub nm_block_nr: crate::ctypes::c_uint,
+pub nm_frame_size: crate::ctypes::c_uint,
+pub nm_frame_nr: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_hdr {
+pub nm_status: crate::ctypes::c_uint,
+pub nm_len: crate::ctypes::c_uint,
+pub nm_group: __u32,
+pub nm_pid: __u32,
+pub nm_uid: __u32,
+pub nm_gid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlattr {
+pub nla_len: __u16,
+pub nla_type: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nla_bitfield32 {
+pub value: __u32,
+pub selector: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats {
+pub rx_packets: __u32,
+pub tx_packets: __u32,
+pub rx_bytes: __u32,
+pub tx_bytes: __u32,
+pub rx_errors: __u32,
+pub tx_errors: __u32,
+pub rx_dropped: __u32,
+pub tx_dropped: __u32,
+pub multicast: __u32,
+pub collisions: __u32,
+pub rx_length_errors: __u32,
+pub rx_over_errors: __u32,
+pub rx_crc_errors: __u32,
+pub rx_frame_errors: __u32,
+pub rx_fifo_errors: __u32,
+pub rx_missed_errors: __u32,
+pub tx_aborted_errors: __u32,
+pub tx_carrier_errors: __u32,
+pub tx_fifo_errors: __u32,
+pub tx_heartbeat_errors: __u32,
+pub tx_window_errors: __u32,
+pub rx_compressed: __u32,
+pub tx_compressed: __u32,
+pub rx_nohandler: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+pub collisions: __u64,
+pub rx_length_errors: __u64,
+pub rx_over_errors: __u64,
+pub rx_crc_errors: __u64,
+pub rx_frame_errors: __u64,
+pub rx_fifo_errors: __u64,
+pub rx_missed_errors: __u64,
+pub tx_aborted_errors: __u64,
+pub tx_carrier_errors: __u64,
+pub tx_fifo_errors: __u64,
+pub tx_heartbeat_errors: __u64,
+pub tx_window_errors: __u64,
+pub rx_compressed: __u64,
+pub tx_compressed: __u64,
+pub rx_nohandler: __u64,
+pub rx_otherhost_dropped: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_hw_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_ifmap {
+pub mem_start: __u64,
+pub mem_end: __u64,
+pub base_addr: __u64,
+pub irq: __u16,
+pub dma: __u8,
+pub port: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_bridge_id {
+pub prio: [__u8; 2usize],
+pub addr: [__u8; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_cacheinfo {
+pub max_reasm_len: __u32,
+pub tstamp: __u32,
+pub reachable_time: __u32,
+pub retrans_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_qos_mapping {
+pub from: __u32,
+pub to: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tunnel_msg {
+pub family: __u8,
+pub flags: __u8,
+pub reserved2: __u16,
+pub ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vxlan_port_range {
+pub low: __be16,
+pub high: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_mac {
+pub vf: __u32,
+pub mac: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_broadcast {
+pub broadcast: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan_info {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+pub vlan_proto: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_tx_rate {
+pub vf: __u32,
+pub rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rate {
+pub vf: __u32,
+pub min_tx_rate: __u32,
+pub max_tx_rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_spoofchk {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_guid {
+pub vf: __u32,
+pub guid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_link_state {
+pub vf: __u32,
+pub link_state: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rss_query_en {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_trust {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_port_vsi {
+pub vsi_mgr_id: __u8,
+pub vsi_type_id: [__u8; 3usize],
+pub vsi_type_version: __u8,
+pub pad: [__u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_stats_msg {
+pub family: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub ifindex: __u32,
+pub filter_mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_rmnet_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifaddrmsg {
+pub ifa_family: __u8,
+pub ifa_prefixlen: __u8,
+pub ifa_flags: __u8,
+pub ifa_scope: __u8,
+pub ifa_index: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifa_cacheinfo {
+pub ifa_prefered: __u32,
+pub ifa_valid: __u32,
+pub cstamp: __u32,
+pub tstamp: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndmsg {
+pub ndm_family: __u8,
+pub ndm_pad1: __u8,
+pub ndm_pad2: __u16,
+pub ndm_ifindex: __s32,
+pub ndm_state: __u16,
+pub ndm_flags: __u8,
+pub ndm_type: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nda_cacheinfo {
+pub ndm_confirmed: __u32,
+pub ndm_used: __u32,
+pub ndm_updated: __u32,
+pub ndm_refcnt: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_stats {
+pub ndts_allocs: __u64,
+pub ndts_destroys: __u64,
+pub ndts_hash_grows: __u64,
+pub ndts_res_failed: __u64,
+pub ndts_lookups: __u64,
+pub ndts_hits: __u64,
+pub ndts_rcv_probes_mcast: __u64,
+pub ndts_rcv_probes_ucast: __u64,
+pub ndts_periodic_gc_runs: __u64,
+pub ndts_forced_gc_runs: __u64,
+pub ndts_table_fulls: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndtmsg {
+pub ndtm_family: __u8,
+pub ndtm_pad1: __u8,
+pub ndtm_pad2: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_config {
+pub ndtc_key_len: __u16,
+pub ndtc_entry_size: __u16,
+pub ndtc_entries: __u32,
+pub ndtc_last_flush: __u32,
+pub ndtc_last_rand: __u32,
+pub ndtc_hash_rnd: __u32,
+pub ndtc_hash_mask: __u32,
+pub ndtc_hash_chain_gc: __u32,
+pub ndtc_proxy_qlen: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtattr {
+pub rta_len: crate::ctypes::c_ushort,
+pub rta_type: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtmsg {
+pub rtm_family: crate::ctypes::c_uchar,
+pub rtm_dst_len: crate::ctypes::c_uchar,
+pub rtm_src_len: crate::ctypes::c_uchar,
+pub rtm_tos: crate::ctypes::c_uchar,
+pub rtm_table: crate::ctypes::c_uchar,
+pub rtm_protocol: crate::ctypes::c_uchar,
+pub rtm_scope: crate::ctypes::c_uchar,
+pub rtm_type: crate::ctypes::c_uchar,
+pub rtm_flags: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnexthop {
+pub rtnh_len: crate::ctypes::c_ushort,
+pub rtnh_flags: crate::ctypes::c_uchar,
+pub rtnh_hops: crate::ctypes::c_uchar,
+pub rtnh_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct rtvia {
+pub rtvia_family: __kernel_sa_family_t,
+pub rtvia_addr: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_cacheinfo {
+pub rta_clntref: __u32,
+pub rta_lastuse: __u32,
+pub rta_expires: __s32,
+pub rta_error: __u32,
+pub rta_used: __u32,
+pub rta_id: __u32,
+pub rta_ts: __u32,
+pub rta_tsage: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rta_session {
+pub proto: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub u: rta_session__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_1 {
+pub sport: __u16,
+pub dport: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_2 {
+pub type_: __u8,
+pub code: __u8,
+pub ident: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_mfc_stats {
+pub mfcs_packets: __u64,
+pub mfcs_bytes: __u64,
+pub mfcs_wrong_if: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtgenmsg {
+pub rtgen_family: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifinfomsg {
+pub ifi_family: crate::ctypes::c_uchar,
+pub __ifi_pad: crate::ctypes::c_uchar,
+pub ifi_type: crate::ctypes::c_ushort,
+pub ifi_index: crate::ctypes::c_int,
+pub ifi_flags: crate::ctypes::c_uint,
+pub ifi_change: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefixmsg {
+pub prefix_family: crate::ctypes::c_uchar,
+pub prefix_pad1: crate::ctypes::c_uchar,
+pub prefix_pad2: crate::ctypes::c_ushort,
+pub prefix_ifindex: crate::ctypes::c_int,
+pub prefix_type: crate::ctypes::c_uchar,
+pub prefix_len: crate::ctypes::c_uchar,
+pub prefix_flags: crate::ctypes::c_uchar,
+pub prefix_pad3: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefix_cacheinfo {
+pub preferred_time: __u32,
+pub valid_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcmsg {
+pub tcm_family: crate::ctypes::c_uchar,
+pub tcm__pad1: crate::ctypes::c_uchar,
+pub tcm__pad2: crate::ctypes::c_ushort,
+pub tcm_ifindex: crate::ctypes::c_int,
+pub tcm_handle: __u32,
+pub tcm_parent: __u32,
+pub tcm_info: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nduseroptmsg {
+pub nduseropt_family: crate::ctypes::c_uchar,
+pub nduseropt_pad1: crate::ctypes::c_uchar,
+pub nduseropt_opts_len: crate::ctypes::c_ushort,
+pub nduseropt_ifindex: crate::ctypes::c_int,
+pub nduseropt_icmp_type: __u8,
+pub nduseropt_icmp_code: __u8,
+pub nduseropt_pad2: crate::ctypes::c_ushort,
+pub nduseropt_pad3: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcamsg {
+pub tca_family: crate::ctypes::c_uchar,
+pub tca__pad1: crate::ctypes::c_uchar,
+pub tca__pad2: crate::ctypes::c_ushort,
+}
+pub const _K_SS_MAXSIZE: u32 = 128;
+pub const SOCK_SNDBUF_LOCK: u32 = 1;
+pub const SOCK_RCVBUF_LOCK: u32 = 2;
+pub const SOCK_BUF_LOCK_MASK: u32 = 3;
+pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
+pub const SOCK_TXREHASH_DISABLED: u32 = 0;
+pub const SOCK_TXREHASH_ENABLED: u32 = 1;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/arm/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/arm/prctl.rs
new file mode 100644
index 0000000..fc0bf89
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/prctl.rs
@@ -0,0 +1,260 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/arm/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/arm/ptrace.rs
new file mode 100644
index 0000000..0860d6e
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/ptrace.rs
@@ -0,0 +1,884 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pt_regs {
+pub uregs: [crate::ctypes::c_long; 18usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const HWCAP_SWP: u32 = 1;
+pub const HWCAP_HALF: u32 = 2;
+pub const HWCAP_THUMB: u32 = 4;
+pub const HWCAP_26BIT: u32 = 8;
+pub const HWCAP_FAST_MULT: u32 = 16;
+pub const HWCAP_FPA: u32 = 32;
+pub const HWCAP_VFP: u32 = 64;
+pub const HWCAP_EDSP: u32 = 128;
+pub const HWCAP_JAVA: u32 = 256;
+pub const HWCAP_IWMMXT: u32 = 512;
+pub const HWCAP_CRUNCH: u32 = 1024;
+pub const HWCAP_THUMBEE: u32 = 2048;
+pub const HWCAP_NEON: u32 = 4096;
+pub const HWCAP_VFPv3: u32 = 8192;
+pub const HWCAP_VFPv3D16: u32 = 16384;
+pub const HWCAP_TLS: u32 = 32768;
+pub const HWCAP_VFPv4: u32 = 65536;
+pub const HWCAP_IDIVA: u32 = 131072;
+pub const HWCAP_IDIVT: u32 = 262144;
+pub const HWCAP_VFPD32: u32 = 524288;
+pub const HWCAP_IDIV: u32 = 393216;
+pub const HWCAP_LPAE: u32 = 1048576;
+pub const HWCAP_EVTSTRM: u32 = 2097152;
+pub const HWCAP_FPHP: u32 = 4194304;
+pub const HWCAP_ASIMDHP: u32 = 8388608;
+pub const HWCAP_ASIMDDP: u32 = 16777216;
+pub const HWCAP_ASIMDFHM: u32 = 33554432;
+pub const HWCAP_ASIMDBF16: u32 = 67108864;
+pub const HWCAP_I8MM: u32 = 134217728;
+pub const HWCAP2_AES: u32 = 1;
+pub const HWCAP2_PMULL: u32 = 2;
+pub const HWCAP2_SHA1: u32 = 4;
+pub const HWCAP2_SHA2: u32 = 8;
+pub const HWCAP2_CRC32: u32 = 16;
+pub const HWCAP2_SB: u32 = 32;
+pub const HWCAP2_SSBS: u32 = 64;
+pub const PTRACE_GETREGS: u32 = 12;
+pub const PTRACE_SETREGS: u32 = 13;
+pub const PTRACE_GETFPREGS: u32 = 14;
+pub const PTRACE_SETFPREGS: u32 = 15;
+pub const PTRACE_GETWMMXREGS: u32 = 18;
+pub const PTRACE_SETWMMXREGS: u32 = 19;
+pub const PTRACE_OLDSETOPTIONS: u32 = 21;
+pub const PTRACE_GET_THREAD_AREA: u32 = 22;
+pub const PTRACE_SET_SYSCALL: u32 = 23;
+pub const PTRACE_GETCRUNCHREGS: u32 = 25;
+pub const PTRACE_SETCRUNCHREGS: u32 = 26;
+pub const PTRACE_GETVFPREGS: u32 = 27;
+pub const PTRACE_SETVFPREGS: u32 = 28;
+pub const PTRACE_GETHBPREGS: u32 = 29;
+pub const PTRACE_SETHBPREGS: u32 = 30;
+pub const PTRACE_GETFDPIC: u32 = 31;
+pub const PTRACE_GETFDPIC_EXEC: u32 = 0;
+pub const PTRACE_GETFDPIC_INTERP: u32 = 1;
+pub const USR26_MODE: u32 = 0;
+pub const FIQ26_MODE: u32 = 1;
+pub const IRQ26_MODE: u32 = 2;
+pub const SVC26_MODE: u32 = 3;
+pub const USR_MODE: u32 = 16;
+pub const SVC_MODE: u32 = 19;
+pub const FIQ_MODE: u32 = 17;
+pub const IRQ_MODE: u32 = 18;
+pub const MON_MODE: u32 = 22;
+pub const ABT_MODE: u32 = 23;
+pub const HYP_MODE: u32 = 26;
+pub const UND_MODE: u32 = 27;
+pub const SYSTEM_MODE: u32 = 31;
+pub const MODE32_BIT: u32 = 16;
+pub const MODE_MASK: u32 = 31;
+pub const V4_PSR_T_BIT: u32 = 32;
+pub const V7M_PSR_T_BIT: u32 = 16777216;
+pub const PSR_T_BIT: u32 = 32;
+pub const PSR_F_BIT: u32 = 64;
+pub const PSR_I_BIT: u32 = 128;
+pub const PSR_A_BIT: u32 = 256;
+pub const PSR_E_BIT: u32 = 512;
+pub const PSR_J_BIT: u32 = 16777216;
+pub const PSR_Q_BIT: u32 = 134217728;
+pub const PSR_V_BIT: u32 = 268435456;
+pub const PSR_C_BIT: u32 = 536870912;
+pub const PSR_Z_BIT: u32 = 1073741824;
+pub const PSR_N_BIT: u32 = 2147483648;
+pub const PSR_f: u32 = 4278190080;
+pub const PSR_s: u32 = 16711680;
+pub const PSR_x: u32 = 65280;
+pub const PSR_c: u32 = 255;
+pub const APSR_MASK: u32 = 4161732608;
+pub const PSR_ISET_MASK: u32 = 16777232;
+pub const PSR_IT_MASK: u32 = 100727808;
+pub const PSR_ENDIAN_MASK: u32 = 512;
+pub const PSR_ENDSTATE: u32 = 0;
+pub const PT_TEXT_ADDR: u32 = 65536;
+pub const PT_DATA_ADDR: u32 = 65540;
+pub const PT_TEXT_END_ADDR: u32 = 65544;
+pub const ARM_VFPREGS_SIZE: u32 = 260;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/arm/system.rs b/vendor/linux-raw-sys-0.9.4/src/arm/system.rs
new file mode 100644
index 0000000..e1f9f19
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/system.rs
@@ -0,0 +1,100 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 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: [crate::ctypes::c_char; 8usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
diff --git a/vendor/linux-raw-sys-0.9.4/src/arm/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/arm/xdp.rs
new file mode 100644
index 0000000..875b5f9
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/arm/xdp.rs
@@ -0,0 +1,189 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/csky/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/csky/bootparam.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/bootparam.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/csky/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/csky/btrfs.rs
new file mode 100644
index 0000000..2e88fe2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/btrfs.rs
@@ -0,0 +1,1866 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const _IOC_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/csky/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/csky/elf_uapi.rs
new file mode 100644
index 0000000..713e9d2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/elf_uapi.rs
@@ -0,0 +1,522 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/csky/errno.rs b/vendor/linux-raw-sys-0.9.4/src/csky/errno.rs
new file mode 100644
index 0000000..5b018a2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/errno.rs
@@ -0,0 +1,135 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
diff --git a/vendor/linux-raw-sys-0.9.4/src/csky/general.rs b/vendor/linux-raw-sys-0.9.4/src/csky/general.rs
new file mode 100644
index 0000000..c573450
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/general.rs
@@ -0,0 +1,3224 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type cap_user_header_t = *mut __user_cap_header_struct;
+pub type cap_user_data_t = *mut __user_cap_data_struct;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+pub type old_sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type __fsword_t = __u32;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 32usize],
+}
+#[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 epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 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)]
+#[repr(align(8))]
+#[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_handler: __sighandler_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_mask: sigset_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaltstack {
+pub ss_sp: *mut crate::ctypes::c_void,
+pub ss_flags: crate::ctypes::c_int,
+pub ss_size: __kernel_size_t,
+}
+#[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; 4usize],
+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; 4usize],
+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_errno: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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; 19usize],
+}
+#[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; 19usize],
+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; 19usize],
+pub c_ispeed: speed_t,
+pub c_ospeed: speed_t,
+}
+#[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_uchar,
+pub c_cc: [crate::ctypes::c_uchar; 8usize],
+}
+#[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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulonglong,
+pub d_off: crate::ctypes::c_longlong,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_ulong,
+pub st_ino: crate::ctypes::c_ulong,
+pub st_mode: crate::ctypes::c_uint,
+pub st_nlink: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_uint,
+pub st_gid: crate::ctypes::c_uint,
+pub st_rdev: crate::ctypes::c_ulong,
+pub __pad1: crate::ctypes::c_ulong,
+pub st_size: crate::ctypes::c_long,
+pub st_blksize: crate::ctypes::c_int,
+pub __pad2: crate::ctypes::c_int,
+pub st_blocks: crate::ctypes::c_long,
+pub st_atime: crate::ctypes::c_long,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_long,
+pub st_mtime_nsec: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_long,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub __unused4: crate::ctypes::c_uint,
+pub __unused5: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat64 {
+pub st_dev: crate::ctypes::c_ulonglong,
+pub st_ino: crate::ctypes::c_ulonglong,
+pub st_mode: crate::ctypes::c_uint,
+pub st_nlink: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_uint,
+pub st_gid: crate::ctypes::c_uint,
+pub st_rdev: crate::ctypes::c_ulonglong,
+pub __pad1: crate::ctypes::c_ulonglong,
+pub st_size: crate::ctypes::c_longlong,
+pub st_blksize: crate::ctypes::c_int,
+pub __pad2: crate::ctypes::c_int,
+pub st_blocks: crate::ctypes::c_longlong,
+pub st_atime: crate::ctypes::c_int,
+pub st_atime_nsec: crate::ctypes::c_uint,
+pub st_mtime: crate::ctypes::c_int,
+pub st_mtime_nsec: crate::ctypes::c_uint,
+pub st_ctime: crate::ctypes::c_int,
+pub st_ctime_nsec: crate::ctypes::c_uint,
+pub __unused4: crate::ctypes::c_uint,
+pub __unused5: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u32,
+pub f_bfree: __u32,
+pub f_bavail: __u32,
+pub f_files: __u32,
+pub f_ffree: __u32,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct compat_statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[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 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+pub const LINUX_VERSION_SUBLEVEL: u32 = 0;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+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_ACCMODE: u32 = 3;
+pub const O_RDONLY: u32 = 0;
+pub const O_WRONLY: u32 = 1;
+pub const O_RDWR: u32 = 2;
+pub const O_CREAT: u32 = 64;
+pub const O_EXCL: u32 = 128;
+pub const O_NOCTTY: u32 = 256;
+pub const O_TRUNC: u32 = 512;
+pub const O_APPEND: u32 = 1024;
+pub const O_NONBLOCK: u32 = 2048;
+pub const O_DSYNC: u32 = 4096;
+pub const FASYNC: u32 = 8192;
+pub const O_DIRECT: u32 = 16384;
+pub const O_LARGEFILE: u32 = 32768;
+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_SYNC: u32 = 1048576;
+pub const O_SYNC: u32 = 1052672;
+pub const O_PATH: u32 = 2097152;
+pub const __O_TMPFILE: u32 = 4194304;
+pub const O_TMPFILE: u32 = 4259840;
+pub const O_NDELAY: u32 = 2048;
+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_GETLK: u32 = 5;
+pub const F_SETLK: u32 = 6;
+pub const F_SETLKW: u32 = 7;
+pub const F_SETOWN: u32 = 8;
+pub const F_GETOWN: u32 = 9;
+pub const F_SETSIG: u32 = 10;
+pub const F_GETSIG: u32 = 11;
+pub const F_GETLK64: u32 = 12;
+pub const F_SETLK64: u32 = 13;
+pub const F_SETLKW64: u32 = 14;
+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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 = 2048;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+pub const PROT_READ: u32 = 1;
+pub const PROT_WRITE: u32 = 2;
+pub const PROT_EXEC: u32 = 4;
+pub const PROT_SEM: u32 = 8;
+pub const PROT_NONE: u32 = 0;
+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_ANONYMOUS: u32 = 32;
+pub const MAP_POPULATE: u32 = 32768;
+pub const MAP_NONBLOCK: u32 = 65536;
+pub const MAP_STACK: u32 = 131072;
+pub const MAP_HUGETLB: u32 = 262144;
+pub const MAP_SYNC: u32 = 524288;
+pub const MAP_FIXED_NOREPLACE: u32 = 1048576;
+pub const MAP_UNINITIALIZED: u32 = 67108864;
+pub const MLOCK_ONFAULT: u32 = 1;
+pub const MS_ASYNC: u32 = 1;
+pub const MS_INVALIDATE: u32 = 2;
+pub const MS_SYNC: u32 = 4;
+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_HWPOISON: u32 = 100;
+pub const MADV_SOFT_OFFLINE: u32 = 101;
+pub const MADV_MERGEABLE: u32 = 12;
+pub const MADV_UNMERGEABLE: u32 = 13;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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 MAP_GROWSDOWN: u32 = 256;
+pub const MAP_DENYWRITE: u32 = 2048;
+pub const MAP_EXECUTABLE: u32 = 4096;
+pub const MAP_LOCKED: u32 = 8192;
+pub const MAP_NORESERVE: u32 = 16384;
+pub const MCL_CURRENT: u32 = 1;
+pub const MCL_FUTURE: u32 = 2;
+pub const MCL_ONFAULT: u32 = 4;
+pub const SHADOW_STACK_SET_TOKEN: u32 = 1;
+pub const SHADOW_STACK_SET_MARKER: u32 = 2;
+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_DROPPABLE: u32 = 8;
+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 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 POLLWRNORM: u32 = 256;
+pub const POLLWRBAND: u32 = 512;
+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 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_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_RSS: u32 = 5;
+pub const RLIMIT_NPROC: u32 = 6;
+pub const RLIMIT_NOFILE: u32 = 7;
+pub const RLIMIT_MEMLOCK: u32 = 8;
+pub const RLIMIT_AS: u32 = 9;
+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_EXT: u32 = 7;
+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 = 64;
+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 SIGABRT: u32 = 6;
+pub const SIGIOT: u32 = 6;
+pub const SIGBUS: u32 = 7;
+pub const SIGFPE: u32 = 8;
+pub const SIGKILL: u32 = 9;
+pub const SIGUSR1: u32 = 10;
+pub const SIGSEGV: u32 = 11;
+pub const SIGUSR2: u32 = 12;
+pub const SIGPIPE: u32 = 13;
+pub const SIGALRM: u32 = 14;
+pub const SIGTERM: u32 = 15;
+pub const SIGSTKFLT: u32 = 16;
+pub const SIGCHLD: u32 = 17;
+pub const SIGCONT: u32 = 18;
+pub const SIGSTOP: u32 = 19;
+pub const SIGTSTP: u32 = 20;
+pub const SIGTTIN: u32 = 21;
+pub const SIGTTOU: u32 = 22;
+pub const SIGURG: u32 = 23;
+pub const SIGXCPU: u32 = 24;
+pub const SIGXFSZ: u32 = 25;
+pub const SIGVTALRM: u32 = 26;
+pub const SIGPROF: u32 = 27;
+pub const SIGWINCH: u32 = 28;
+pub const SIGIO: u32 = 29;
+pub const SIGPOLL: u32 = 29;
+pub const SIGPWR: u32 = 30;
+pub const SIGSYS: u32 = 31;
+pub const SIGUNUSED: u32 = 31;
+pub const SIGRTMIN: u32 = 32;
+pub const SIGRTMAX: u32 = 64;
+pub const MINSIGSTKSZ: u32 = 2048;
+pub const SIGSTKSZ: u32 = 8192;
+pub const SA_NOCLDSTOP: u32 = 1;
+pub const SA_NOCLDWAIT: u32 = 2;
+pub const SA_SIGINFO: u32 = 4;
+pub const SA_UNSUPPORTED: u32 = 1024;
+pub const SA_EXPOSE_TAGBITS: u32 = 2048;
+pub const SA_ONSTACK: u32 = 134217728;
+pub const SA_RESTART: u32 = 268435456;
+pub const SA_NODEFER: u32 = 1073741824;
+pub const SA_RESETHAND: u32 = 2147483648;
+pub const SA_NOMASK: u32 = 1073741824;
+pub const SA_ONESHOT: u32 = 2147483648;
+pub const SIG_BLOCK: u32 = 0;
+pub const SIG_UNBLOCK: u32 = 1;
+pub const SIG_SETMASK: u32 = 2;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 = 19;
+pub const VINTR: u32 = 0;
+pub const VQUIT: u32 = 1;
+pub const VERASE: u32 = 2;
+pub const VKILL: u32 = 3;
+pub const VEOF: u32 = 4;
+pub const VTIME: u32 = 5;
+pub const VMIN: u32 = 6;
+pub const VSWTC: u32 = 7;
+pub const VSTART: u32 = 8;
+pub const VSTOP: u32 = 9;
+pub const VSUSP: u32 = 10;
+pub const VEOL: u32 = 11;
+pub const VREPRINT: u32 = 12;
+pub const VDISCARD: u32 = 13;
+pub const VWERASE: u32 = 14;
+pub const VLNEXT: u32 = 15;
+pub const VEOL2: u32 = 16;
+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 TOSTOP: u32 = 256;
+pub const ECHOCTL: u32 = 512;
+pub const ECHOPRT: u32 = 1024;
+pub const ECHOKE: u32 = 2048;
+pub const FLUSHO: u32 = 4096;
+pub const PENDIN: u32 = 16384;
+pub const IEXTEN: u32 = 32768;
+pub const EXTPROC: u32 = 65536;
+pub const TCSANOW: u32 = 0;
+pub const TCSADRAIN: u32 = 1;
+pub const TCSAFLUSH: u32 = 2;
+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 TIOCSER_TEMT: u32 = 1;
+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 = 8;
+pub const TIOCM_SR: u32 = 16;
+pub const TIOCM_CTS: u32 = 32;
+pub const TIOCM_CAR: u32 = 64;
+pub const TIOCM_RNG: u32 = 128;
+pub const TIOCM_DSR: u32 = 256;
+pub const TIOCM_CD: u32 = 64;
+pub const TIOCM_RI: u32 = 128;
+pub const TIOCM_OUT1: u32 = 8192;
+pub const TIOCM_OUT2: u32 = 16384;
+pub const TIOCM_LOOP: u32 = 32768;
+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 UIO_FASTIOV: u32 = 8;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const __NR_io_setup: u32 = 0;
+pub const __NR_io_destroy: u32 = 1;
+pub const __NR_io_submit: u32 = 2;
+pub const __NR_io_cancel: u32 = 3;
+pub const __NR_io_getevents: u32 = 4;
+pub const __NR_setxattr: u32 = 5;
+pub const __NR_lsetxattr: u32 = 6;
+pub const __NR_fsetxattr: u32 = 7;
+pub const __NR_getxattr: u32 = 8;
+pub const __NR_lgetxattr: u32 = 9;
+pub const __NR_fgetxattr: u32 = 10;
+pub const __NR_listxattr: u32 = 11;
+pub const __NR_llistxattr: u32 = 12;
+pub const __NR_flistxattr: u32 = 13;
+pub const __NR_removexattr: u32 = 14;
+pub const __NR_lremovexattr: u32 = 15;
+pub const __NR_fremovexattr: u32 = 16;
+pub const __NR_getcwd: u32 = 17;
+pub const __NR_lookup_dcookie: u32 = 18;
+pub const __NR_eventfd2: u32 = 19;
+pub const __NR_epoll_create1: u32 = 20;
+pub const __NR_epoll_ctl: u32 = 21;
+pub const __NR_epoll_pwait: u32 = 22;
+pub const __NR_dup: u32 = 23;
+pub const __NR_dup3: u32 = 24;
+pub const __NR_fcntl64: u32 = 25;
+pub const __NR_inotify_init1: u32 = 26;
+pub const __NR_inotify_add_watch: u32 = 27;
+pub const __NR_inotify_rm_watch: u32 = 28;
+pub const __NR_ioctl: u32 = 29;
+pub const __NR_ioprio_set: u32 = 30;
+pub const __NR_ioprio_get: u32 = 31;
+pub const __NR_flock: u32 = 32;
+pub const __NR_mknodat: u32 = 33;
+pub const __NR_mkdirat: u32 = 34;
+pub const __NR_unlinkat: u32 = 35;
+pub const __NR_symlinkat: u32 = 36;
+pub const __NR_linkat: u32 = 37;
+pub const __NR_umount2: u32 = 39;
+pub const __NR_mount: u32 = 40;
+pub const __NR_pivot_root: u32 = 41;
+pub const __NR_nfsservctl: u32 = 42;
+pub const __NR_statfs64: u32 = 43;
+pub const __NR_fstatfs64: u32 = 44;
+pub const __NR_truncate64: u32 = 45;
+pub const __NR_ftruncate64: u32 = 46;
+pub const __NR_fallocate: u32 = 47;
+pub const __NR_faccessat: u32 = 48;
+pub const __NR_chdir: u32 = 49;
+pub const __NR_fchdir: u32 = 50;
+pub const __NR_chroot: u32 = 51;
+pub const __NR_fchmod: u32 = 52;
+pub const __NR_fchmodat: u32 = 53;
+pub const __NR_fchownat: u32 = 54;
+pub const __NR_fchown: u32 = 55;
+pub const __NR_openat: u32 = 56;
+pub const __NR_close: u32 = 57;
+pub const __NR_vhangup: u32 = 58;
+pub const __NR_pipe2: u32 = 59;
+pub const __NR_quotactl: u32 = 60;
+pub const __NR_getdents64: u32 = 61;
+pub const __NR_llseek: u32 = 62;
+pub const __NR_read: u32 = 63;
+pub const __NR_write: u32 = 64;
+pub const __NR_readv: u32 = 65;
+pub const __NR_writev: u32 = 66;
+pub const __NR_pread64: u32 = 67;
+pub const __NR_pwrite64: u32 = 68;
+pub const __NR_preadv: u32 = 69;
+pub const __NR_pwritev: u32 = 70;
+pub const __NR_sendfile64: u32 = 71;
+pub const __NR_pselect6: u32 = 72;
+pub const __NR_ppoll: u32 = 73;
+pub const __NR_signalfd4: u32 = 74;
+pub const __NR_vmsplice: u32 = 75;
+pub const __NR_splice: u32 = 76;
+pub const __NR_tee: u32 = 77;
+pub const __NR_readlinkat: u32 = 78;
+pub const __NR_fstatat64: u32 = 79;
+pub const __NR_fstat64: u32 = 80;
+pub const __NR_sync: u32 = 81;
+pub const __NR_fsync: u32 = 82;
+pub const __NR_fdatasync: u32 = 83;
+pub const __NR_sync_file_range: u32 = 84;
+pub const __NR_timerfd_create: u32 = 85;
+pub const __NR_timerfd_settime: u32 = 86;
+pub const __NR_timerfd_gettime: u32 = 87;
+pub const __NR_utimensat: u32 = 88;
+pub const __NR_acct: u32 = 89;
+pub const __NR_capget: u32 = 90;
+pub const __NR_capset: u32 = 91;
+pub const __NR_personality: u32 = 92;
+pub const __NR_exit: u32 = 93;
+pub const __NR_exit_group: u32 = 94;
+pub const __NR_waitid: u32 = 95;
+pub const __NR_set_tid_address: u32 = 96;
+pub const __NR_unshare: u32 = 97;
+pub const __NR_futex: u32 = 98;
+pub const __NR_set_robust_list: u32 = 99;
+pub const __NR_get_robust_list: u32 = 100;
+pub const __NR_nanosleep: u32 = 101;
+pub const __NR_getitimer: u32 = 102;
+pub const __NR_setitimer: u32 = 103;
+pub const __NR_kexec_load: u32 = 104;
+pub const __NR_init_module: u32 = 105;
+pub const __NR_delete_module: u32 = 106;
+pub const __NR_timer_create: u32 = 107;
+pub const __NR_timer_gettime: u32 = 108;
+pub const __NR_timer_getoverrun: u32 = 109;
+pub const __NR_timer_settime: u32 = 110;
+pub const __NR_timer_delete: u32 = 111;
+pub const __NR_clock_settime: u32 = 112;
+pub const __NR_clock_gettime: u32 = 113;
+pub const __NR_clock_getres: u32 = 114;
+pub const __NR_clock_nanosleep: u32 = 115;
+pub const __NR_syslog: u32 = 116;
+pub const __NR_ptrace: u32 = 117;
+pub const __NR_sched_setparam: u32 = 118;
+pub const __NR_sched_setscheduler: u32 = 119;
+pub const __NR_sched_getscheduler: u32 = 120;
+pub const __NR_sched_getparam: u32 = 121;
+pub const __NR_sched_setaffinity: u32 = 122;
+pub const __NR_sched_getaffinity: u32 = 123;
+pub const __NR_sched_yield: u32 = 124;
+pub const __NR_sched_get_priority_max: u32 = 125;
+pub const __NR_sched_get_priority_min: u32 = 126;
+pub const __NR_sched_rr_get_interval: u32 = 127;
+pub const __NR_restart_syscall: u32 = 128;
+pub const __NR_kill: u32 = 129;
+pub const __NR_tkill: u32 = 130;
+pub const __NR_tgkill: u32 = 131;
+pub const __NR_sigaltstack: u32 = 132;
+pub const __NR_rt_sigsuspend: u32 = 133;
+pub const __NR_rt_sigaction: u32 = 134;
+pub const __NR_rt_sigprocmask: u32 = 135;
+pub const __NR_rt_sigpending: u32 = 136;
+pub const __NR_rt_sigtimedwait: u32 = 137;
+pub const __NR_rt_sigqueueinfo: u32 = 138;
+pub const __NR_rt_sigreturn: u32 = 139;
+pub const __NR_setpriority: u32 = 140;
+pub const __NR_getpriority: u32 = 141;
+pub const __NR_reboot: u32 = 142;
+pub const __NR_setregid: u32 = 143;
+pub const __NR_setgid: u32 = 144;
+pub const __NR_setreuid: u32 = 145;
+pub const __NR_setuid: u32 = 146;
+pub const __NR_setresuid: u32 = 147;
+pub const __NR_getresuid: u32 = 148;
+pub const __NR_setresgid: u32 = 149;
+pub const __NR_getresgid: u32 = 150;
+pub const __NR_setfsuid: u32 = 151;
+pub const __NR_setfsgid: u32 = 152;
+pub const __NR_times: u32 = 153;
+pub const __NR_setpgid: u32 = 154;
+pub const __NR_getpgid: u32 = 155;
+pub const __NR_getsid: u32 = 156;
+pub const __NR_setsid: u32 = 157;
+pub const __NR_getgroups: u32 = 158;
+pub const __NR_setgroups: u32 = 159;
+pub const __NR_uname: u32 = 160;
+pub const __NR_sethostname: u32 = 161;
+pub const __NR_setdomainname: u32 = 162;
+pub const __NR_getrlimit: u32 = 163;
+pub const __NR_setrlimit: u32 = 164;
+pub const __NR_getrusage: u32 = 165;
+pub const __NR_umask: u32 = 166;
+pub const __NR_prctl: u32 = 167;
+pub const __NR_getcpu: u32 = 168;
+pub const __NR_gettimeofday: u32 = 169;
+pub const __NR_settimeofday: u32 = 170;
+pub const __NR_adjtimex: u32 = 171;
+pub const __NR_getpid: u32 = 172;
+pub const __NR_getppid: u32 = 173;
+pub const __NR_getuid: u32 = 174;
+pub const __NR_geteuid: u32 = 175;
+pub const __NR_getgid: u32 = 176;
+pub const __NR_getegid: u32 = 177;
+pub const __NR_gettid: u32 = 178;
+pub const __NR_sysinfo: u32 = 179;
+pub const __NR_mq_open: u32 = 180;
+pub const __NR_mq_unlink: u32 = 181;
+pub const __NR_mq_timedsend: u32 = 182;
+pub const __NR_mq_timedreceive: u32 = 183;
+pub const __NR_mq_notify: u32 = 184;
+pub const __NR_mq_getsetattr: u32 = 185;
+pub const __NR_msgget: u32 = 186;
+pub const __NR_msgctl: u32 = 187;
+pub const __NR_msgrcv: u32 = 188;
+pub const __NR_msgsnd: u32 = 189;
+pub const __NR_semget: u32 = 190;
+pub const __NR_semctl: u32 = 191;
+pub const __NR_semtimedop: u32 = 192;
+pub const __NR_semop: u32 = 193;
+pub const __NR_shmget: u32 = 194;
+pub const __NR_shmctl: u32 = 195;
+pub const __NR_shmat: u32 = 196;
+pub const __NR_shmdt: u32 = 197;
+pub const __NR_socket: u32 = 198;
+pub const __NR_socketpair: u32 = 199;
+pub const __NR_bind: u32 = 200;
+pub const __NR_listen: u32 = 201;
+pub const __NR_accept: u32 = 202;
+pub const __NR_connect: u32 = 203;
+pub const __NR_getsockname: u32 = 204;
+pub const __NR_getpeername: u32 = 205;
+pub const __NR_sendto: u32 = 206;
+pub const __NR_recvfrom: u32 = 207;
+pub const __NR_setsockopt: u32 = 208;
+pub const __NR_getsockopt: u32 = 209;
+pub const __NR_shutdown: u32 = 210;
+pub const __NR_sendmsg: u32 = 211;
+pub const __NR_recvmsg: u32 = 212;
+pub const __NR_readahead: u32 = 213;
+pub const __NR_brk: u32 = 214;
+pub const __NR_munmap: u32 = 215;
+pub const __NR_mremap: u32 = 216;
+pub const __NR_add_key: u32 = 217;
+pub const __NR_request_key: u32 = 218;
+pub const __NR_keyctl: u32 = 219;
+pub const __NR_clone: u32 = 220;
+pub const __NR_execve: u32 = 221;
+pub const __NR_mmap2: u32 = 222;
+pub const __NR_fadvise64_64: u32 = 223;
+pub const __NR_swapon: u32 = 224;
+pub const __NR_swapoff: u32 = 225;
+pub const __NR_mprotect: u32 = 226;
+pub const __NR_msync: u32 = 227;
+pub const __NR_mlock: u32 = 228;
+pub const __NR_munlock: u32 = 229;
+pub const __NR_mlockall: u32 = 230;
+pub const __NR_munlockall: u32 = 231;
+pub const __NR_mincore: u32 = 232;
+pub const __NR_madvise: u32 = 233;
+pub const __NR_remap_file_pages: u32 = 234;
+pub const __NR_mbind: u32 = 235;
+pub const __NR_get_mempolicy: u32 = 236;
+pub const __NR_set_mempolicy: u32 = 237;
+pub const __NR_migrate_pages: u32 = 238;
+pub const __NR_move_pages: u32 = 239;
+pub const __NR_rt_tgsigqueueinfo: u32 = 240;
+pub const __NR_perf_event_open: u32 = 241;
+pub const __NR_accept4: u32 = 242;
+pub const __NR_recvmmsg: u32 = 243;
+pub const __NR_set_thread_area: u32 = 244;
+pub const __NR_cacheflush: u32 = 245;
+pub const __NR_wait4: u32 = 260;
+pub const __NR_prlimit64: u32 = 261;
+pub const __NR_fanotify_init: u32 = 262;
+pub const __NR_fanotify_mark: u32 = 263;
+pub const __NR_name_to_handle_at: u32 = 264;
+pub const __NR_open_by_handle_at: u32 = 265;
+pub const __NR_clock_adjtime: u32 = 266;
+pub const __NR_syncfs: u32 = 267;
+pub const __NR_setns: u32 = 268;
+pub const __NR_sendmmsg: u32 = 269;
+pub const __NR_process_vm_readv: u32 = 270;
+pub const __NR_process_vm_writev: u32 = 271;
+pub const __NR_kcmp: u32 = 272;
+pub const __NR_finit_module: u32 = 273;
+pub const __NR_sched_setattr: u32 = 274;
+pub const __NR_sched_getattr: u32 = 275;
+pub const __NR_renameat2: u32 = 276;
+pub const __NR_seccomp: u32 = 277;
+pub const __NR_getrandom: u32 = 278;
+pub const __NR_memfd_create: u32 = 279;
+pub const __NR_bpf: u32 = 280;
+pub const __NR_execveat: u32 = 281;
+pub const __NR_userfaultfd: u32 = 282;
+pub const __NR_membarrier: u32 = 283;
+pub const __NR_mlock2: u32 = 284;
+pub const __NR_copy_file_range: u32 = 285;
+pub const __NR_preadv2: u32 = 286;
+pub const __NR_pwritev2: u32 = 287;
+pub const __NR_pkey_mprotect: u32 = 288;
+pub const __NR_pkey_alloc: u32 = 289;
+pub const __NR_pkey_free: u32 = 290;
+pub const __NR_statx: u32 = 291;
+pub const __NR_io_pgetevents: u32 = 292;
+pub const __NR_rseq: u32 = 293;
+pub const __NR_kexec_file_load: u32 = 294;
+pub const __NR_clock_gettime64: u32 = 403;
+pub const __NR_clock_settime64: u32 = 404;
+pub const __NR_clock_adjtime64: u32 = 405;
+pub const __NR_clock_getres_time64: u32 = 406;
+pub const __NR_clock_nanosleep_time64: u32 = 407;
+pub const __NR_timer_gettime64: u32 = 408;
+pub const __NR_timer_settime64: u32 = 409;
+pub const __NR_timerfd_gettime64: u32 = 410;
+pub const __NR_timerfd_settime64: u32 = 411;
+pub const __NR_utimensat_time64: u32 = 412;
+pub const __NR_pselect6_time64: u32 = 413;
+pub const __NR_ppoll_time64: u32 = 414;
+pub const __NR_io_pgetevents_time64: u32 = 416;
+pub const __NR_recvmmsg_time64: u32 = 417;
+pub const __NR_mq_timedsend_time64: u32 = 418;
+pub const __NR_mq_timedreceive_time64: u32 = 419;
+pub const __NR_semtimedop_time64: u32 = 420;
+pub const __NR_rt_sigtimedwait_time64: u32 = 421;
+pub const __NR_futex_time64: u32 = 422;
+pub const __NR_sched_rr_get_interval_time64: u32 = 423;
+pub const __NR_pidfd_send_signal: u32 = 424;
+pub const __NR_io_uring_setup: u32 = 425;
+pub const __NR_io_uring_enter: u32 = 426;
+pub const __NR_io_uring_register: u32 = 427;
+pub const __NR_open_tree: u32 = 428;
+pub const __NR_move_mount: u32 = 429;
+pub const __NR_fsopen: u32 = 430;
+pub const __NR_fsconfig: u32 = 431;
+pub const __NR_fsmount: u32 = 432;
+pub const __NR_fspick: u32 = 433;
+pub const __NR_pidfd_open: u32 = 434;
+pub const __NR_clone3: u32 = 435;
+pub const __NR_close_range: u32 = 436;
+pub const __NR_openat2: u32 = 437;
+pub const __NR_pidfd_getfd: u32 = 438;
+pub const __NR_faccessat2: u32 = 439;
+pub const __NR_process_madvise: u32 = 440;
+pub const __NR_epoll_pwait2: u32 = 441;
+pub const __NR_mount_setattr: u32 = 442;
+pub const __NR_quotactl_fd: u32 = 443;
+pub const __NR_landlock_create_ruleset: u32 = 444;
+pub const __NR_landlock_add_rule: u32 = 445;
+pub const __NR_landlock_restrict_self: u32 = 446;
+pub const __NR_process_mrelease: u32 = 448;
+pub const __NR_futex_waitv: u32 = 449;
+pub const __NR_set_mempolicy_home_node: u32 = 450;
+pub const __NR_cachestat: u32 = 451;
+pub const __NR_fchmodat2: u32 = 452;
+pub const __NR_map_shadow_stack: u32 = 453;
+pub const __NR_futex_wake: u32 = 454;
+pub const __NR_futex_wait: u32 = 455;
+pub const __NR_futex_requeue: u32 = 456;
+pub const __NR_statmount: u32 = 457;
+pub const __NR_listmount: u32 = 458;
+pub const __NR_lsm_get_self_attr: u32 = 459;
+pub const __NR_lsm_set_self_attr: u32 = 460;
+pub const __NR_lsm_list_modules: u32 = 461;
+pub const __NR_mseal: u32 = 462;
+pub const __NR_setxattrat: u32 = 463;
+pub const __NR_getxattrat: u32 = 464;
+pub const __NR_listxattrat: u32 = 465;
+pub const __NR_removexattrat: u32 = 466;
+pub const __NR_sync_file_range2: u32 = 84;
+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 = 2048;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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 = 2048;
+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 = 526336;
+pub const TFD_CREATE_FLAGS: u32 = 526336;
+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 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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[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; 13usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/csky/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/csky/if_arp.rs
new file mode 100644
index 0000000..e04c217
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/if_arp.rs
@@ -0,0 +1,2757 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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)]
+#[repr(align(8))]
+#[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)]
+#[repr(align(8))]
+#[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 id: __u16,
+pub type_flags: __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 __BITS_PER_LONG_LONG: u32 = 64;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/csky/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/csky/if_ether.rs
new file mode 100644
index 0000000..877dce7
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/if_ether.rs
@@ -0,0 +1,168 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/csky/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/csky/if_packet.rs
new file mode 100644
index 0000000..a201d9b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/if_packet.rs
@@ -0,0 +1,311 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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)]
+#[repr(align(8))]
+#[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)]
+#[repr(align(8))]
+#[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 id: __u16,
+pub type_flags: __u16,
+pub max_num_members: __u32,
+}
+pub const __LITTLE_ENDIAN: u32 = 1234;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/csky/image.rs b/vendor/linux-raw-sys-0.9.4/src/csky/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/csky/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/csky/io_uring.rs
new file mode 100644
index 0000000..241e655
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/io_uring.rs
@@ -0,0 +1,1338 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+pub cmd: __BindgenUnionField<[__u8; 0usize]>,
+pub bindgen_union_field: [u32; 4usize],
+}
+#[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 user_addr: __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 user_addr: __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)]
+#[repr(align(8))]
+#[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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[repr(C)]
+#[repr(align(8))]
+#[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)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_rsrc_update {
+pub offset: __u32,
+pub resv: __u32,
+pub data: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/csky/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/csky/ioctl.rs
new file mode 100644
index 0000000..5887ebf
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/ioctl.rs
@@ -0,0 +1,1502 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub const FIONREAD: u32 = 21531;
+pub const FIONBIO: u32 = 21537;
+pub const FIOCLEX: u32 = 21585;
+pub const FIONCLEX: u32 = 21584;
+pub const FIOASYNC: u32 = 21586;
+pub const FIOQSIZE: u32 = 21600;
+pub const TCXONC: u32 = 21514;
+pub const TCFLSH: u32 = 21515;
+pub const TIOCSCTTY: u32 = 21518;
+pub const TIOCSPGRP: u32 = 21520;
+pub const TIOCOUTQ: u32 = 21521;
+pub const TIOCSTI: u32 = 21522;
+pub const TIOCSWINSZ: u32 = 21524;
+pub const TIOCMGET: u32 = 21525;
+pub const TIOCMBIS: u32 = 21526;
+pub const TIOCMBIC: u32 = 21527;
+pub const TIOCMSET: u32 = 21528;
+pub const TIOCSSOFTCAR: u32 = 21530;
+pub const TIOCLINUX: u32 = 21532;
+pub const TIOCCONS: u32 = 21533;
+pub const TIOCSSERIAL: u32 = 21535;
+pub const TIOCPKT: u32 = 21536;
+pub const TIOCNOTTY: u32 = 21538;
+pub const TIOCSETD: u32 = 21539;
+pub const TIOCSBRK: u32 = 21543;
+pub const TIOCCBRK: u32 = 21544;
+pub const TIOCSRS485: u32 = 21551;
+pub const TIOCSPTLCK: u32 = 1074025521;
+pub const TIOCSIG: u32 = 1074025526;
+pub const TIOCVHANGUP: u32 = 21559;
+pub const TIOCSERCONFIG: u32 = 21587;
+pub const TIOCSERGWILD: u32 = 21588;
+pub const TIOCSERSWILD: u32 = 21589;
+pub const TIOCSLCKTRMIOS: u32 = 21591;
+pub const TIOCSERGSTRUCT: u32 = 21592;
+pub const TIOCSERGETLSR: u32 = 21593;
+pub const TIOCSERGETMULTI: u32 = 21594;
+pub const TIOCSERSETMULTI: u32 = 21595;
+pub const TIOCMIWAIT: u32 = 21596;
+pub const TCGETS: u32 = 21505;
+pub const TCGETA: u32 = 21509;
+pub const TCSBRK: u32 = 21513;
+pub const TCSBRKP: u32 = 21541;
+pub const TCSETA: u32 = 21510;
+pub const TCSETAF: u32 = 21512;
+pub const TCSETAW: u32 = 21511;
+pub const TIOCEXCL: u32 = 21516;
+pub const TIOCNXCL: u32 = 21517;
+pub const TIOCGDEV: u32 = 2147767346;
+pub const TIOCGEXCL: u32 = 2147767360;
+pub const TIOCGICOUNT: u32 = 21597;
+pub const TIOCGLCKTRMIOS: u32 = 21590;
+pub const TIOCGPGRP: u32 = 21519;
+pub const TIOCGPKT: u32 = 2147767352;
+pub const TIOCGPTLCK: u32 = 2147767353;
+pub const TIOCGPTN: u32 = 2147767344;
+pub const TIOCGPTPEER: u32 = 21569;
+pub const TIOCGRS485: u32 = 21550;
+pub const TIOCGSERIAL: u32 = 21534;
+pub const TIOCGSID: u32 = 21545;
+pub const TIOCGSOFTCAR: u32 = 21529;
+pub const TIOCGWINSZ: u32 = 21523;
+pub const TCGETS2: u32 = 2150388778;
+pub const TCGETX: u32 = 21554;
+pub const TCSETS: u32 = 21506;
+pub const TCSETS2: u32 = 1076646955;
+pub const TCSETSF: u32 = 21508;
+pub const TCSETSF2: u32 = 1076646957;
+pub const TCSETSW: u32 = 21507;
+pub const TCSETSW2: u32 = 1076646956;
+pub const TCSETX: u32 = 21555;
+pub const TCSETXF: u32 = 21556;
+pub const TCSETXW: u32 = 21557;
+pub const TIOCGETD: u32 = 21540;
+pub const MTIOCGET: u32 = 2149346562;
+pub const BLKSSZGET: u32 = 4712;
+pub const BLKPBSZGET: u32 = 4731;
+pub const BLKROSET: u32 = 4701;
+pub const BLKROGET: u32 = 4702;
+pub const BLKRRPART: u32 = 4703;
+pub const BLKGETSIZE: u32 = 4704;
+pub const BLKFLSBUF: u32 = 4705;
+pub const BLKRASET: u32 = 4706;
+pub const BLKRAGET: u32 = 4707;
+pub const BLKFRASET: u32 = 4708;
+pub const BLKFRAGET: u32 = 4709;
+pub const BLKSECTSET: u32 = 4710;
+pub const BLKSECTGET: u32 = 4711;
+pub const BLKPG: u32 = 4713;
+pub const BLKBSZGET: u32 = 2147750512;
+pub const BLKBSZSET: u32 = 1074008689;
+pub const BLKGETSIZE64: u32 = 2147750514;
+pub const BLKTRACESETUP: u32 = 3225424499;
+pub const BLKTRACESTART: u32 = 4724;
+pub const BLKTRACESTOP: u32 = 4725;
+pub const BLKTRACETEARDOWN: u32 = 4726;
+pub const BLKDISCARD: u32 = 4727;
+pub const BLKIOMIN: u32 = 4728;
+pub const BLKIOOPT: u32 = 4729;
+pub const BLKALIGNOFF: u32 = 4730;
+pub const BLKDISCARDZEROES: u32 = 4732;
+pub const BLKSECDISCARD: u32 = 4733;
+pub const BLKROTATIONAL: u32 = 4734;
+pub const BLKZEROOUT: u32 = 4735;
+pub const FIEMAP_MAX_OFFSET: u32 = 4294967295;
+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 = 2148575745;
+pub const UFFDIO_WAKE: u32 = 2148575746;
+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 = 46849;
+pub const NS_GET_PARENT: u32 = 46850;
+pub const NS_GET_NSTYPE: u32 = 46851;
+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 = 35073;
+pub const SIOCSPGRP: u32 = 35074;
+pub const FIOGETOWN: u32 = 35075;
+pub const SIOCGPGRP: u32 = 35076;
+pub const SIOCATMARK: u32 = 35077;
+pub const SIOCGSTAMP: u32 = 35078;
+pub const TIOCINQ: u32 = 21531;
+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 = 1;
+pub const FIGETBSZ: u32 = 2;
+pub const FIFREEZE: u32 = 3221510263;
+pub const FITHAW: u32 = 3221510264;
+pub const FITRIM: u32 = 3222820985;
+pub const FICLONE: u32 = 1074041865;
+pub const FICLONERANGE: u32 = 1075876877;
+pub const FIDEDUPERANGE: u32 = 3222836278;
+pub const FS_IOC_GETFLAGS: u32 = 2147771905;
+pub const FS_IOC_SETFLAGS: u32 = 1074030082;
+pub const FS_IOC_GETVERSION: u32 = 2147776001;
+pub const FS_IOC_SETVERSION: u32 = 1074034178;
+pub const FS_IOC_FIEMAP: u32 = 3223348747;
+pub const FS_IOC32_GETFLAGS: u32 = 2147771905;
+pub const FS_IOC32_SETFLAGS: u32 = 1074030082;
+pub const FS_IOC32_GETVERSION: u32 = 2147776001;
+pub const FS_IOC32_SETVERSION: u32 = 1074034178;
+pub const FS_IOC_FSGETXATTR: u32 = 2149341215;
+pub const FS_IOC_FSSETXATTR: u32 = 1075599392;
+pub const FS_IOC_GETFSLABEL: u32 = 2164298801;
+pub const FS_IOC_SETFSLABEL: u32 = 1090556978;
+pub const EXT4_IOC_GETVERSION: u32 = 2147771907;
+pub const EXT4_IOC_SETVERSION: u32 = 1074030084;
+pub const EXT4_IOC_GETVERSION_OLD: u32 = 2147776001;
+pub const EXT4_IOC_SETVERSION_OLD: u32 = 1074034178;
+pub const EXT4_IOC_GETRSVSZ: u32 = 2147771909;
+pub const EXT4_IOC_SETRSVSZ: u32 = 1074030086;
+pub const EXT4_IOC_GROUP_EXTEND: u32 = 1074030087;
+pub const EXT4_IOC_MIGRATE: u32 = 26121;
+pub const EXT4_IOC_ALLOC_DA_BLKS: u32 = 26124;
+pub const EXT4_IOC_RESIZE_FS: u32 = 1074292240;
+pub const EXT4_IOC_SWAP_BOOT: u32 = 26129;
+pub const EXT4_IOC_PRECACHE_EXTENTS: u32 = 26130;
+pub const EXT4_IOC_CLEAR_ES_CACHE: u32 = 26152;
+pub const EXT4_IOC_GETSTATE: u32 = 1074030121;
+pub const EXT4_IOC_GET_ES_CACHE: u32 = 3223348778;
+pub const EXT4_IOC_CHECKPOINT: u32 = 1074030123;
+pub const EXT4_IOC_SHUTDOWN: u32 = 2147768445;
+pub const EXT4_IOC32_GETVERSION: u32 = 2147771907;
+pub const EXT4_IOC32_SETVERSION: u32 = 1074030084;
+pub const EXT4_IOC32_GETRSVSZ: u32 = 2147771909;
+pub const EXT4_IOC32_SETRSVSZ: u32 = 1074030086;
+pub const EXT4_IOC32_GROUP_EXTEND: u32 = 1074030087;
+pub const EXT4_IOC32_GETVERSION_OLD: u32 = 2147776001;
+pub const EXT4_IOC32_SETVERSION_OLD: u32 = 1074034178;
+pub const VIDIOC_SUBDEV_QUERYSTD: u32 = 2148030015;
+pub const AUTOFS_DEV_IOCTL_CLOSEMOUNT: u32 = 3222836085;
+pub const LIRC_SET_SEND_CARRIER: u32 = 1074030867;
+pub const AUTOFS_IOC_PROTOSUBVER: u32 = 2147783527;
+pub const PTP_SYS_OFFSET_PRECISE: u32 = 3225435400;
+pub const FSI_SCOM_WRITE: u32 = 3223352066;
+pub const ATM_GETCIRANGE: u32 = 1074553226;
+pub const DMA_BUF_SET_NAME_B: u32 = 1074291201;
+pub const RIO_CM_EP_GET_LIST_SIZE: u32 = 3221512961;
+pub const TUNSETPERSIST: u32 = 1074025675;
+pub const FS_IOC_GET_ENCRYPTION_POLICY: u32 = 1074554389;
+pub const CEC_RECEIVE: u32 = 3224920326;
+pub const MGSL_IOCGPARAMS: u32 = 2149608705;
+pub const ENI_SETMULT: u32 = 1074553191;
+pub const RIO_GET_EVENT_MASK: u32 = 2147773710;
+pub const LIRC_GET_MAX_TIMEOUT: u32 = 2147772681;
+pub const USBDEVFS_CLAIMINTERFACE: u32 = 2147767567;
+pub const CHIOMOVE: u32 = 1075077889;
+pub const SONYPI_IOCGBATFLAGS: u32 = 2147579399;
+pub const BTRFS_IOC_SYNC: u32 = 37896;
+pub const VIDIOC_TRY_FMT: u32 = 3234616896;
+pub const LIRC_SET_REC_MODE: u32 = 1074030866;
+pub const VIDIOC_DQEVENT: u32 = 2155370073;
+pub const RPMSG_DESTROY_EPT_IOCTL: u32 = 46338;
+pub const UVCIOC_CTRL_MAP: u32 = 3227022624;
+pub const VHOST_SET_BACKEND_FEATURES: u32 = 1074310949;
+pub const VHOST_VSOCK_SET_GUEST_CID: u32 = 1074311008;
+pub const UI_SET_KEYBIT: u32 = 1074025829;
+pub const LIRC_SET_REC_TIMEOUT: u32 = 1074030872;
+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 = 1074310930;
+pub const RIO_ENABLE_DOORBELL_RANGE: u32 = 1074294025;
+pub const VIDIOC_TRY_EXT_CTRLS: u32 = 3222820425;
+pub const LIRC_GET_REC_MODE: u32 = 2147772674;
+pub const PPGETTIME: u32 = 2148036757;
+pub const BTRFS_IOC_RM_DEV: u32 = 1342215179;
+pub const ATM_SETBACKEND: u32 = 1073897970;
+pub const FSL_HV_IOCTL_PARTITION_START: u32 = 3222318851;
+pub const FBIO_WAITEVENT: u32 = 18056;
+pub const SWITCHTEC_IOCTL_PORT_TO_PFF: u32 = 3222034245;
+pub const NVME_IOCTL_IO_CMD: u32 = 3225964099;
+pub const IPMICTL_RECEIVE_MSG_TRUNC: u32 = 3222825227;
+pub const FDTWADDLE: u32 = 601;
+pub const NVME_IOCTL_SUBMIT_IO: u32 = 1076645442;
+pub const NILFS_IOCTL_SYNC: u32 = 2148036234;
+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 = 2147787781;
+pub const NS_GETPSTAT: u32 = 3222036833;
+pub const UI_SET_PROPBIT: u32 = 1074025838;
+pub const TUNSETFILTEREBPF: u32 = 2147767521;
+pub const RIO_MPORT_MAINT_COMPTAG_SET: u32 = 1074031874;
+pub const AUTOFS_DEV_IOCTL_VERSION: u32 = 3222836081;
+pub const WDIOC_SETOPTIONS: u32 = 2147768068;
+pub const VHOST_SCSI_SET_ENDPOINT: u32 = 1088991040;
+pub const MGSL_IOCGTXIDLE: u32 = 27907;
+pub const ATM_ADDLECSADDR: u32 = 1074553230;
+pub const FSL_HV_IOCTL_GETPROP: u32 = 3223891719;
+pub const FDGETPRM: u32 = 2149319172;
+pub const HIDIOCAPPLICATION: u32 = 18434;
+pub const ENI_MEMDUMP: u32 = 1074553184;
+pub const PTP_SYS_OFFSET2: u32 = 1128283406;
+pub const VIDIOC_SUBDEV_G_DV_TIMINGS: u32 = 3229898328;
+pub const DMA_BUF_SET_NAME_A: u32 = 1074029057;
+pub const PTP_PIN_GETFUNC: u32 = 3227532550;
+pub const PTP_SYS_OFFSET_EXTENDED: u32 = 3300932873;
+pub const DFL_FPGA_PORT_UINT_SET_IRQ: u32 = 1074312776;
+pub const RTC_EPOCH_READ: u32 = 2147774477;
+pub const VIDIOC_SUBDEV_S_SELECTION: u32 = 3225441854;
+pub const VIDIOC_QUERY_EXT_CTRL: u32 = 3236451943;
+pub const ATM_GETLECSADDR: u32 = 1074553232;
+pub const FSL_HV_IOCTL_PARTITION_STOP: u32 = 3221794564;
+pub const SONET_GETDIAG: u32 = 2147770644;
+pub const ATMMPC_DATA: u32 = 25049;
+pub const IPMICTL_UNREGISTER_FOR_CMD_CHANS: u32 = 2148296989;
+pub const HIDIOCGCOLLECTIONINDEX: u32 = 1075333136;
+pub const RPMSG_CREATE_EPT_IOCTL: u32 = 1076409601;
+pub const GPIOHANDLE_GET_LINE_VALUES_IOCTL: u32 = 3225465864;
+pub const UI_DEV_SETUP: u32 = 1079792899;
+pub const ISST_IF_IO_CMD: u32 = 1074068994;
+pub const RIO_MPORT_MAINT_READ_REMOTE: u32 = 2149084423;
+pub const VIDIOC_OMAP3ISP_HIST_CFG: u32 = 3224393412;
+pub const BLKGETNRZONES: u32 = 2147750533;
+pub const VIDIOC_G_MODULATOR: u32 = 3225703990;
+pub const VBG_IOCTL_WRITE_CORE_DUMP: u32 = 3223082515;
+pub const USBDEVFS_SETINTERFACE: u32 = 2148029700;
+pub const PPPIOCGCHAN: u32 = 2147775543;
+pub const EVIOCGVERSION: u32 = 2147763457;
+pub const VHOST_NET_SET_BACKEND: u32 = 1074310960;
+pub const USBDEVFS_REAPURBNDELAY: u32 = 1074025741;
+pub const RNDZAPENTCNT: u32 = 20996;
+pub const VIDIOC_G_PARM: u32 = 3234616853;
+pub const TUNGETDEVNETNS: u32 = 21731;
+pub const LIRC_SET_MEASURE_CARRIER_MODE: u32 = 1074030877;
+pub const VHOST_SET_VRING_ERR: u32 = 1074310946;
+pub const VDUSE_VQ_SETUP: u32 = 1075872020;
+pub const AUTOFS_IOC_SETTIMEOUT: u32 = 3221525348;
+pub const VIDIOC_S_FREQUENCY: u32 = 1076647481;
+pub const F2FS_IOC_SEC_TRIM_FILE: u32 = 1075377428;
+pub const FS_IOC_REMOVE_ENCRYPTION_KEY: u32 = 3225445912;
+pub const WDIOC_GETPRETIMEOUT: u32 = 2147768073;
+pub const USBDEVFS_DROP_PRIVILEGES: u32 = 1074025758;
+pub const BTRFS_IOC_SNAP_CREATE_V2: u32 = 1342215191;
+pub const VHOST_VSOCK_SET_RUNNING: u32 = 1074048865;
+pub const STP_SET_OPTIONS: u32 = 1074275586;
+pub const FBIO_RADEON_GET_MIRROR: u32 = 2147762179;
+pub const IVTVFB_IOC_DMA_FRAME: u32 = 1074550464;
+pub const IPMICTL_SEND_COMMAND: u32 = 2148821261;
+pub const VIDIOC_G_ENC_INDEX: u32 = 2283296332;
+pub const DFL_FPGA_FME_PORT_PR: u32 = 46720;
+pub const CHIOSVOLTAG: u32 = 1076912914;
+pub const ATM_SETESIF: u32 = 1074553229;
+pub const FW_CDEV_IOC_SEND_RESPONSE: u32 = 1075061508;
+pub const PMU_IOC_GET_MODEL: u32 = 2147762691;
+pub const JSIOCGBTNMAP: u32 = 2214619700;
+pub const USBDEVFS_HUB_PORTINFO: u32 = 2155894035;
+pub const VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS: u32 = 3222820363;
+pub const FDCLRPRM: u32 = 577;
+pub const BTRFS_IOC_SCRUB: u32 = 3288372251;
+pub const USBDEVFS_DISCONNECT: u32 = 21782;
+pub const TUNSETVNETBE: u32 = 1074025694;
+pub const ATMTCP_REMOVE: u32 = 24975;
+pub const VHOST_VDPA_GET_CONFIG: u32 = 2148052851;
+pub const PPPIOCGNPMODE: u32 = 3221779532;
+pub const FDGETDRVPRM: u32 = 2153251345;
+pub const TUNSETVNETLE: u32 = 1074025692;
+pub const PHN_SETREG: u32 = 1074294790;
+pub const PPPIOCDETACH: u32 = 1074033724;
+pub const MMTIMER_GETRES: u32 = 2147773697;
+pub const VIDIOC_SUBDEV_ENUMSTD: u32 = 3225441817;
+pub const PPGETFLAGS: u32 = 2147774618;
+pub const VDUSE_DEV_GET_FEATURES: u32 = 2148040977;
+pub const CAPI_MANUFACTURER_CMD: u32 = 3221766944;
+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 = 2148052512;
+pub const MEDIA_IOC_ENUM_LINKS: u32 = 3223092226;
+pub const F2FS_IOC_PRECACHE_EXTENTS: u32 = 62735;
+pub const DFL_FPGA_PORT_DMA_MAP: u32 = 46659;
+pub const MGSL_IOCGXCTRL: u32 = 27926;
+pub const FW_CDEV_IOC_SEND_REQUEST: u32 = 1076110081;
+pub const SONYPI_IOCGBLUE: u32 = 2147579400;
+pub const F2FS_IOC_DECOMPRESS_FILE: u32 = 62743;
+pub const I2OHTML: u32 = 3223087369;
+pub const VFIO_GET_API_VERSION: u32 = 15204;
+pub const IDT77105_GETSTATZ: u32 = 1074553139;
+pub const I2OPARMSET: u32 = 3222825219;
+pub const TEE_IOC_CANCEL: u32 = 2148049924;
+pub const PTP_SYS_OFFSET_PRECISE2: u32 = 3225435409;
+pub const DFL_FPGA_PORT_RESET: u32 = 46656;
+pub const PPPIOCGASYNCMAP: u32 = 2147775576;
+pub const EVIOCGKEYCODE_V2: u32 = 2150122756;
+pub const DM_DEV_SET_GEOMETRY: u32 = 3241737487;
+pub const HIDIOCSUSAGE: u32 = 1075333132;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323664;
+pub const PTP_EXTTS_REQUEST: u32 = 1074806018;
+pub const SWITCHTEC_IOCTL_EVENT_CTL: u32 = 3223869251;
+pub const WDIOC_SETPRETIMEOUT: u32 = 3221509896;
+pub const VHOST_SCSI_CLEAR_ENDPOINT: u32 = 1088991041;
+pub const JSIOCGAXES: u32 = 2147576337;
+pub const HIDIOCSFLAG: u32 = 1074022415;
+pub const PTP_PEROUT_REQUEST2: u32 = 1077427468;
+pub const PPWDATA: u32 = 1073836166;
+pub const PTP_CLOCK_GETCAPS: u32 = 2152742145;
+pub const FDGETMAXERRS: u32 = 2148794894;
+pub const TUNSETQUEUE: u32 = 1074025689;
+pub const PTP_ENABLE_PPS: u32 = 1074019588;
+pub const SIOCSIFATMTCP: u32 = 24960;
+pub const CEC_ADAP_G_LOG_ADDRS: u32 = 2153537795;
+pub const ND_IOCTL_ARS_CAP: u32 = 3223342593;
+pub const NBD_SET_BLKSIZE: u32 = 43777;
+pub const NBD_SET_TIMEOUT: u32 = 43785;
+pub const VHOST_SCSI_GET_ABI_VERSION: u32 = 1074048834;
+pub const RIO_UNMAP_INBOUND: u32 = 1074294034;
+pub const ATM_QUERYLOOP: u32 = 1074553172;
+pub const DFL_FPGA_GET_API_VERSION: u32 = 46592;
+pub const USBDEVFS_WAIT_FOR_RESUME: u32 = 21795;
+pub const FBIO_CURSOR: u32 = 3225961992;
+pub const RNDCLEARPOOL: u32 = 20998;
+pub const VIDIOC_QUERYSTD: u32 = 2148030015;
+pub const DMA_BUF_IOCTL_SYNC: u32 = 1074291200;
+pub const SCIF_RECV: u32 = 3222565639;
+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 = 2150389258;
+pub const PTP_ENABLE_PPS2: u32 = 1074019597;
+pub const PCITEST_CLEAR_IRQ: u32 = 20496;
+pub const IPMICTL_SET_GETS_EVENTS_CMD: u32 = 2147772688;
+pub const BTRFS_IOC_DEVICES_READY: u32 = 2415957031;
+pub const JSIOCGAXMAP: u32 = 2151705138;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER: u32 = 2148279052;
+pub const FW_CDEV_IOC_SET_ISO_CHANNELS: u32 = 1074537239;
+pub const RTC_WIE_OFF: u32 = 28688;
+pub const PPGETMODE: u32 = 2147774616;
+pub const VIDIOC_DBG_G_REGISTER: u32 = 3224917584;
+pub const PTP_SYS_OFFSET: u32 = 1128283397;
+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 = 3223614220;
+pub const BTRFS_IOC_TRANS_START: u32 = 37894;
+pub const INOTIFY_IOC_SETNEXTWD: u32 = 1074022656;
+pub const SNAPSHOT_GET_IMAGE_SIZE: u32 = 2148021006;
+pub const TUNDETACHFILTER: u32 = 1074287830;
+pub const ND_IOCTL_CLEAR_ERROR: u32 = 3223342596;
+pub const IOC_PR_CLEAR: u32 = 1074819277;
+pub const SCIF_READFROM: u32 = 3223614218;
+pub const PPPIOCGDEBUG: u32 = 2147775553;
+pub const BLKGETZONESZ: u32 = 2147750532;
+pub const HIDIOCGUSAGES: u32 = 3491514387;
+pub const SONYPI_IOCGTEMP: u32 = 2147579404;
+pub const UI_SET_MSCBIT: u32 = 1074025832;
+pub const APM_IOC_SUSPEND: u32 = 16642;
+pub const BTRFS_IOC_TREE_SEARCH: u32 = 3489698833;
+pub const RTC_PLL_GET: u32 = 2149347345;
+pub const RIO_CM_EP_GET_LIST: u32 = 3221512962;
+pub const USBDEVFS_DISCSIGNAL: u32 = 2148029710;
+pub const LIRC_GET_MIN_TIMEOUT: u32 = 2147772680;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY: u32 = 2174244674;
+pub const DM_TARGET_MSG: u32 = 3241737486;
+pub const SONYPI_IOCGBAT1REM: u32 = 2147644931;
+pub const EVIOCSFF: u32 = 1076643200;
+pub const TUNSETGROUP: u32 = 1074025678;
+pub const EVIOCGKEYCODE: u32 = 2148025604;
+pub const KCOV_REMOTE_ENABLE: u32 = 1075340134;
+pub const ND_IOCTL_GET_CONFIG_SIZE: u32 = 3222031876;
+pub const FDEJECT: u32 = 602;
+pub const TUNSETOFFLOAD: u32 = 1074025680;
+pub const PPPIOCCONNECT: u32 = 1074033722;
+pub const ATM_ADDADDR: u32 = 1074553224;
+pub const VDUSE_DEV_INJECT_CONFIG_IRQ: u32 = 33043;
+pub const AUTOFS_DEV_IOCTL_ASKUMOUNT: u32 = 3222836093;
+pub const VHOST_VDPA_GET_STATUS: u32 = 2147594097;
+pub const CCISS_PASSTHRU: u32 = 3226747403;
+pub const MGSL_IOCCLRMODCOUNT: u32 = 27919;
+pub const TEE_IOC_SUPPL_SEND: u32 = 2148574215;
+pub const ATMARPD_CTRL: u32 = 25057;
+pub const UI_ABS_SETUP: u32 = 1075598596;
+pub const UI_DEV_DESTROY: u32 = 21762;
+pub const BTRFS_IOC_QUOTA_CTL: u32 = 3222311976;
+pub const RTC_AIE_ON: u32 = 28673;
+pub const AUTOFS_IOC_EXPIRE: u32 = 2165085029;
+pub const PPPIOCSDEBUG: u32 = 1074033728;
+pub const GPIO_V2_LINE_SET_VALUES_IOCTL: u32 = 3222320143;
+pub const PPPIOCSMRU: u32 = 1074033746;
+pub const CCISS_DEREGDISK: u32 = 16908;
+pub const UI_DEV_CREATE: u32 = 21761;
+pub const FUSE_DEV_IOC_CLONE: u32 = 2147804416;
+pub const BTRFS_IOC_START_SYNC: u32 = 2148045848;
+pub const NILFS_IOCTL_DELETE_CHECKPOINT: u32 = 1074294401;
+pub const SNAPSHOT_AVAIL_SWAP_SIZE: u32 = 2148021011;
+pub const DM_TABLE_CLEAR: u32 = 3241737482;
+pub const CCISS_GETINTINFO: u32 = 2148024834;
+pub const PPPIOCSASYNCMAP: u32 = 1074033751;
+pub const I2OEVTGET: u32 = 2154326283;
+pub const NVME_IOCTL_RESET: u32 = 20036;
+pub const PPYIELD: u32 = 28813;
+pub const NVME_IOCTL_IO64_CMD: u32 = 3226488392;
+pub const TUNSETCARRIER: u32 = 1074025698;
+pub const DM_DEV_WAIT: u32 = 3241737480;
+pub const RTC_WIE_ON: u32 = 28687;
+pub const MEDIA_IOC_DEVICE_INFO: u32 = 3238034432;
+pub const RIO_CM_CHAN_CREATE: u32 = 3221381891;
+pub const MGSL_IOCSPARAMS: u32 = 1075866880;
+pub const RTC_SET_TIME: u32 = 1076129802;
+pub const VHOST_RESET_OWNER: u32 = 44802;
+pub const IOC_OPAL_PSID_REVERT_TPR: u32 = 1091072232;
+pub const AUTOFS_DEV_IOCTL_OPENMOUNT: u32 = 3222836084;
+pub const UDF_GETEABLOCK: u32 = 2147773505;
+pub const VFIO_IOMMU_MAP_DMA: u32 = 15217;
+pub const VIDIOC_SUBSCRIBE_EVENT: u32 = 1075861082;
+pub const HIDIOCGFLAG: u32 = 2147764238;
+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 = 1074835969;
+pub const CCISS_GETFIRMVER: u32 = 2147762696;
+pub const ND_IOCTL_ARS_START: u32 = 3223342594;
+pub const PPPIOCSMRRU: u32 = 1074033723;
+pub const CEC_ADAP_S_LOG_ADDRS: u32 = 3227279620;
+pub const RPROC_GET_SHUTDOWN_ON_RELEASE: u32 = 2147792642;
+pub const DMA_HEAP_IOCTL_ALLOC: u32 = 3222816768;
+pub const PPSETTIME: u32 = 1074294934;
+pub const RTC_ALM_READ: u32 = 2149871624;
+pub const VDUSE_SET_API_VERSION: u32 = 1074299137;
+pub const RIO_MPORT_MAINT_WRITE_REMOTE: u32 = 1075342600;
+pub const VIDIOC_SUBDEV_S_CROP: u32 = 3224917564;
+pub const USBDEVFS_CONNECT: u32 = 21783;
+pub const SYNC_IOC_FILE_INFO: u32 = 3224911364;
+pub const ATMARP_MKIP: u32 = 25058;
+pub const VFIO_IOMMU_SPAPR_TCE_GET_INFO: u32 = 15216;
+pub const CCISS_GETHEARTBEAT: u32 = 2147762694;
+pub const ATM_RSTADDR: u32 = 1074553223;
+pub const NBD_SET_SIZE: u32 = 43778;
+pub const UDF_GETVOLIDENT: u32 = 2147773506;
+pub const GPIO_V2_LINE_GET_VALUES_IOCTL: u32 = 3222320142;
+pub const MGSL_IOCSTXIDLE: u32 = 27906;
+pub const FSL_HV_IOCTL_SETPROP: u32 = 3223891720;
+pub const BTRFS_IOC_GET_DEV_STATS: u32 = 3288896564;
+pub const PPRSTATUS: u32 = 2147577985;
+pub const MGSL_IOCTXENABLE: u32 = 27908;
+pub const UDF_GETEASIZE: u32 = 2147773504;
+pub const NVME_IOCTL_ADMIN64_CMD: u32 = 3226488391;
+pub const VHOST_SET_OWNER: u32 = 44801;
+pub const RIO_ALLOC_DMA: u32 = 3222826259;
+pub const RIO_CM_CHAN_ACCEPT: u32 = 3221775111;
+pub const I2OHRTGET: u32 = 3222038785;
+pub const ATM_SETCIRANGE: u32 = 1074553227;
+pub const HPET_IE_ON: u32 = 26625;
+pub const PERF_EVENT_IOC_ID: u32 = 2147755015;
+pub const TUNSETSNDBUF: u32 = 1074025684;
+pub const PTP_PIN_SETFUNC: u32 = 1080048903;
+pub const PPPIOCDISCONN: u32 = 29753;
+pub const VIDIOC_QUERYCTRL: u32 = 3225703972;
+pub const PPEXCL: u32 = 28815;
+pub const PCITEST_MSI: u32 = 1074024451;
+pub const FDWERRORCLR: u32 = 598;
+pub const AUTOFS_IOC_FAIL: u32 = 37729;
+pub const USBDEVFS_IOCTL: u32 = 3222033682;
+pub const VIDIOC_S_STD: u32 = 1074288152;
+pub const F2FS_IOC_RESIZE_FS: u32 = 1074328848;
+pub const SONET_SETDIAG: u32 = 3221512466;
+pub const BTRFS_IOC_DEFRAG: u32 = 1342215170;
+pub const CCISS_GETDRIVVER: u32 = 2147762697;
+pub const IPMICTL_GET_TIMING_PARMS_CMD: u32 = 2148034839;
+pub const HPET_IRQFREQ: u32 = 1074030598;
+pub const ATM_GETESI: u32 = 1074553221;
+pub const CCISS_GETLUNINFO: u32 = 2148286993;
+pub const AUTOFS_DEV_IOCTL_ISMOUNTPOINT: u32 = 3222836094;
+pub const TEE_IOC_SHM_ALLOC: u32 = 3222316033;
+pub const PERF_EVENT_IOC_SET_BPF: u32 = 1074013192;
+pub const UDMABUF_CREATE_LIST: u32 = 1074296131;
+pub const VHOST_SET_LOG_BASE: u32 = 1074310916;
+pub const ZATM_GETPOOL: u32 = 1074553185;
+pub const BR2684_SETFILT: u32 = 1075601808;
+pub const RNDGETPOOL: u32 = 2148028930;
+pub const PPS_GETPARAMS: u32 = 2147774625;
+pub const IOC_PR_RESERVE: u32 = 1074819273;
+pub const VIDIOC_TRY_DECODER_CMD: u32 = 3225966177;
+pub const RIO_CM_CHAN_CLOSE: u32 = 1073898244;
+pub const VIDIOC_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const IOCTL_MEI_CONNECT_CLIENT_VTAG: u32 = 3222554628;
+pub const PMU_IOC_GET_BACKLIGHT: u32 = 2147762689;
+pub const USBDEVFS_GET_CAPABILITIES: u32 = 2147767578;
+pub const SCIF_WRITETO: u32 = 3223614219;
+pub const UDF_RELOCATE_BLOCKS: u32 = 3221515331;
+pub const FSL_HV_IOCTL_PARTITION_RESTART: u32 = 3221794561;
+pub const CCISS_REGNEWD: u32 = 16910;
+pub const FAT_IOCTL_SET_ATTRIBUTES: u32 = 1074033169;
+pub const VIDIOC_CREATE_BUFS: u32 = 3237500508;
+pub const CAPI_GET_VERSION: u32 = 3222291207;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY: u32 = 2228508482;
+pub const VFIO_EEH_PE_OP: u32 = 15225;
+pub const FW_CDEV_IOC_CREATE_ISO_CONTEXT: u32 = 3223069448;
+pub const F2FS_IOC_RELEASE_COMPRESS_BLOCKS: u32 = 2148070674;
+pub const NBD_SET_SIZE_BLOCKS: u32 = 43783;
+pub const IPMI_BMC_IOCTL_SET_SMS_ATN: u32 = 45312;
+pub const ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG: u32 = 3222319873;
+pub const VIDIOC_S_AUDOUT: u32 = 1077171762;
+pub const VIDIOC_S_FMT: u32 = 3234616837;
+pub const PPPIOCATTACH: u32 = 1074033725;
+pub const VHOST_GET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310948;
+pub const FS_IOC_MEASURE_VERITY: u32 = 3221513862;
+pub const CCISS_BIG_PASSTHRU: u32 = 3227009554;
+pub const IPMICTL_SET_MY_LUN_CMD: u32 = 2147772691;
+pub const PCITEST_LEGACY_IRQ: u32 = 20482;
+pub const USBDEVFS_SUBMITURB: u32 = 2150389002;
+pub const AUTOFS_IOC_READY: u32 = 37728;
+pub const BTRFS_IOC_SEND: u32 = 1078236198;
+pub const VIDIOC_G_EXT_CTRLS: u32 = 3222820423;
+pub const JSIOCSBTNMAP: u32 = 1140877875;
+pub const PPPIOCSFLAGS: u32 = 1074033753;
+pub const NVRAM_INIT: u32 = 28736;
+pub const RFKILL_IOCTL_NOINPUT: u32 = 20993;
+pub const BTRFS_IOC_BALANCE: u32 = 1342215180;
+pub const FS_IOC_GETFSMAP: u32 = 3233830971;
+pub const IPMICTL_GET_MY_CHANNEL_LUN_CMD: u32 = 2147772699;
+pub const STP_POLICY_ID_GET: u32 = 2148541697;
+pub const PPSETFLAGS: u32 = 1074032795;
+pub const CEC_ADAP_S_PHYS_ADDR: u32 = 1073897730;
+pub const ATMTCP_CREATE: u32 = 24974;
+pub const IPMI_BMC_IOCTL_FORCE_ABORT: u32 = 45314;
+pub const PPPIOCGXASYNCMAP: u32 = 2149610576;
+pub const VHOST_SET_VRING_CALL: u32 = 1074310945;
+pub const LIRC_GET_FEATURES: u32 = 2147772672;
+pub const GSMIOC_DISABLE_NET: u32 = 18179;
+pub const AUTOFS_IOC_CATATONIC: u32 = 37730;
+pub const NBD_DO_IT: u32 = 43779;
+pub const LIRC_SET_REC_CARRIER_RANGE: u32 = 1074030879;
+pub const IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772697;
+pub const EVIOCSCLOCKID: u32 = 1074021792;
+pub const USBDEVFS_FREE_STREAMS: u32 = 2148029725;
+pub const FSI_SCOM_RESET: u32 = 1074033411;
+pub const PMU_IOC_GRAB_BACKLIGHT: u32 = 2147762694;
+pub const VIDIOC_SUBDEV_S_FMT: u32 = 3227014661;
+pub const FDDEFPRM: u32 = 1075577411;
+pub const TEE_IOC_INVOKE: u32 = 2148574211;
+pub const USBDEVFS_BULK: u32 = 3222295810;
+pub const SCIF_VWRITETO: u32 = 3223614221;
+pub const SONYPI_IOCSBRT: u32 = 1073837568;
+pub const BTRFS_IOC_FILE_EXTENT_SAME: u32 = 3222836278;
+pub const RTC_PIE_ON: u32 = 28677;
+pub const BTRFS_IOC_SCAN_DEV: u32 = 1342215172;
+pub const PPPIOCXFERUNIT: u32 = 29774;
+pub const WDIOC_GETTIMEOUT: u32 = 2147768071;
+pub const BTRFS_IOC_SET_RECEIVED_SUBVOL: u32 = 3233846309;
+pub const DFL_FPGA_PORT_ERR_SET_IRQ: u32 = 1074312774;
+pub const FBIO_WAITFORVSYNC: u32 = 1074021920;
+pub const RTC_PIE_OFF: u32 = 28678;
+pub const EVIOCGRAB: u32 = 1074021776;
+pub const PMU_IOC_SET_BACKLIGHT: u32 = 1074020866;
+pub const EVIOCGREP: u32 = 2148025603;
+pub const PERF_EVENT_IOC_MODIFY_ATTRIBUTES: u32 = 1074013195;
+pub const UFFDIO_CONTINUE: u32 = 3223366151;
+pub const VDUSE_GET_API_VERSION: u32 = 2148040960;
+pub const RTC_RD_TIME: u32 = 2149871625;
+pub const FDMSGOFF: u32 = 582;
+pub const IPMICTL_REGISTER_FOR_CMD_CHANS: u32 = 2148296988;
+pub const CAPI_GET_ERRCODE: u32 = 2147631905;
+pub const PCITEST_SET_IRQTYPE: u32 = 1074024456;
+pub const VIDIOC_SUBDEV_S_EDID: u32 = 3223606825;
+pub const MATROXFB_SET_OUTPUT_MODE: u32 = 1074032378;
+pub const RIO_DEV_ADD: u32 = 1075866903;
+pub const VIDIOC_ENUM_FREQ_BANDS: u32 = 3225441893;
+pub const FBIO_RADEON_SET_MIRROR: u32 = 1074020356;
+pub const PCITEST_GET_IRQTYPE: u32 = 20489;
+pub const JSIOCGVERSION: u32 = 2147772929;
+pub const SONYPI_IOCSBLUE: u32 = 1073837577;
+pub const SNAPSHOT_PREF_IMAGE_SIZE: u32 = 13074;
+pub const F2FS_IOC_GET_FEATURES: u32 = 2147808524;
+pub const SCIF_REG: u32 = 3223876360;
+pub const NILFS_IOCTL_CLEAN_SEGMENTS: u32 = 1081634440;
+pub const FW_CDEV_IOC_INITIATE_BUS_RESET: u32 = 1074012933;
+pub const RIO_WAIT_FOR_ASYNC: u32 = 1074294038;
+pub const VHOST_SET_VRING_NUM: u32 = 1074310928;
+pub const AUTOFS_DEV_IOCTL_PROTOVER: u32 = 3222836082;
+pub const RIO_FREE_DMA: u32 = 1074294036;
+pub const MGSL_IOCRXENABLE: u32 = 27909;
+pub const IOCTL_VM_SOCKETS_GET_LOCAL_CID: u32 = 1977;
+pub const IPMICTL_SET_TIMING_PARMS_CMD: u32 = 2148034838;
+pub const PPPIOCGL2TPSTATS: u32 = 2152231990;
+pub const PERF_EVENT_IOC_PERIOD: u32 = 1074275332;
+pub const PTP_PIN_SETFUNC2: u32 = 1080048912;
+pub const CHIOEXCHANGE: u32 = 1075602178;
+pub const NILFS_IOCTL_GET_SUINFO: u32 = 2149084804;
+pub const CEC_DQEVENT: u32 = 3226493191;
+pub const UI_SET_SWBIT: u32 = 1074025837;
+pub const VHOST_VDPA_SET_CONFIG: u32 = 1074311028;
+pub const TUNSETIFF: u32 = 1074025674;
+pub const CHIOPOSITION: u32 = 1074553603;
+pub const IPMICTL_SET_MAINTENANCE_MODE_CMD: u32 = 1074030879;
+pub const BTRFS_IOC_DEFAULT_SUBVOL: u32 = 1074304019;
+pub const RIO_UNMAP_OUTBOUND: u32 = 1076391184;
+pub const CAPI_CLR_FLAGS: u32 = 2147762981;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323663;
+pub const MATROXFB_GET_OUTPUT_CONNECTION: u32 = 2147774200;
+pub const EVIOCSMASK: u32 = 1074808211;
+pub const BTRFS_IOC_FORGET_DEV: u32 = 1342215173;
+pub const CXL_MEM_QUERY_COMMANDS: u32 = 2148060673;
+pub const CEC_S_MODE: u32 = 1074028809;
+pub const MGSL_IOCSIF: u32 = 27914;
+pub const SWITCHTEC_IOCTL_PFF_TO_PORT: u32 = 3222034244;
+pub const PPSETMODE: u32 = 1074032768;
+pub const VFIO_DEVICE_SET_IRQS: u32 = 15214;
+pub const VIDIOC_PREPARE_BUF: u32 = 3225704029;
+pub const CEC_ADAP_G_CONNECTOR_INFO: u32 = 2151964938;
+pub const IOC_OPAL_WRITE_SHADOW_MBR: u32 = 1092645098;
+pub const VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: u32 = 3225441867;
+pub const UDMABUF_CREATE: u32 = 1075344706;
+pub const SONET_CLRDIAG: u32 = 3221512467;
+pub const PHN_SET_REG: u32 = 1074032641;
+pub const RNDADDTOENTCNT: u32 = 1074024961;
+pub const VBG_IOCTL_CHECK_BALLOON: u32 = 3223344657;
+pub const VIDIOC_OMAP3ISP_STAT_REQ: u32 = 3222820550;
+pub const PPS_FETCH: u32 = 3221516452;
+pub const RTC_AIE_OFF: u32 = 28674;
+pub const VFIO_GROUP_SET_CONTAINER: u32 = 15208;
+pub const FW_CDEV_IOC_RECEIVE_PHY_PACKETS: u32 = 1074275094;
+pub const VFIO_IOMMU_SPAPR_TCE_REMOVE: u32 = 15224;
+pub const VFIO_IOMMU_GET_INFO: u32 = 15216;
+pub const DM_DEV_SUSPEND: u32 = 3241737478;
+pub const F2FS_IOC_GET_COMPRESS_OPTION: u32 = 2147677461;
+pub const FW_CDEV_IOC_STOP_ISO: u32 = 1074012939;
+pub const GPIO_V2_GET_LINEINFO_IOCTL: u32 = 3238048773;
+pub const ATMMPC_CTRL: u32 = 25048;
+pub const PPPIOCSXASYNCMAP: u32 = 1075868751;
+pub const CHIOGSTATUS: u32 = 1074291464;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE: u32 = 3222807309;
+pub const RIO_MPORT_MAINT_PORT_IDX_GET: u32 = 2147773699;
+pub const CAPI_SET_FLAGS: u32 = 2147762980;
+pub const VFIO_GROUP_GET_DEVICE_FD: u32 = 15210;
+pub const VHOST_SET_MEM_TABLE: u32 = 1074310915;
+pub const MATROXFB_SET_OUTPUT_CONNECTION: u32 = 1074032376;
+pub const DFL_FPGA_PORT_GET_REGION_INFO: u32 = 46658;
+pub const VHOST_GET_FEATURES: u32 = 2148052736;
+pub const LIRC_GET_REC_RESOLUTION: u32 = 2147772679;
+pub const PACKET_CTRL_CMD: u32 = 3222820865;
+pub const LIRC_SET_TRANSMITTER_MASK: u32 = 1074030871;
+pub const BTRFS_IOC_ADD_DEV: u32 = 1342215178;
+pub const JSIOCGCORR: u32 = 2149870114;
+pub const VIDIOC_G_FMT: u32 = 3234616836;
+pub const RTC_EPOCH_SET: u32 = 1074032654;
+pub const CAPI_GET_PROFILE: u32 = 3225436937;
+pub const ATM_GETLOOP: u32 = 1074553170;
+pub const SCIF_LISTEN: u32 = 1074033410;
+pub const NBD_CLEAR_QUE: u32 = 43781;
+pub const F2FS_IOC_MOVE_RANGE: u32 = 3223123209;
+pub const LIRC_GET_LENGTH: u32 = 2147772687;
+pub const I8K_SET_FAN: u32 = 3221514631;
+pub const FDSETMAXERRS: u32 = 1075053132;
+pub const VIDIOC_SUBDEV_QUERYCAP: u32 = 2151699968;
+pub const SNAPSHOT_SET_SWAP_AREA: u32 = 1074541325;
+pub const LIRC_GET_REC_TIMEOUT: u32 = 2147772708;
+pub const EVIOCRMFF: u32 = 1074021761;
+pub const GPIO_GET_LINEEVENT_IOCTL: u32 = 3224417284;
+pub const PPRDATA: u32 = 2147577989;
+pub const RIO_MPORT_GET_PROPERTIES: u32 = 2150657284;
+pub const TUNSETVNETHDRSZ: u32 = 1074025688;
+pub const GPIO_GET_LINEINFO_IOCTL: u32 = 3225990146;
+pub const GSMIOC_GETCONF: u32 = 2152482560;
+pub const LIRC_GET_SEND_MODE: u32 = 2147772673;
+pub const PPPIOCSACTIVE: u32 = 1074295878;
+pub const SIOCGSTAMPNS_NEW: u32 = 2148567303;
+pub const IPMICTL_RECEIVE_MSG: u32 = 3222825228;
+pub const LIRC_SET_SEND_DUTY_CYCLE: u32 = 1074030869;
+pub const UI_END_FF_ERASE: u32 = 1074550219;
+pub const SWITCHTEC_IOCTL_FLASH_PART_INFO: u32 = 3222296385;
+pub const FW_CDEV_IOC_SEND_PHY_PACKET: u32 = 3222545173;
+pub const NBD_SET_FLAGS: u32 = 43786;
+pub const VFIO_DEVICE_GET_REGION_INFO: u32 = 15212;
+pub const REISERFS_IOC_UNPACK: u32 = 1074056449;
+pub const FW_CDEV_IOC_REMOVE_DESCRIPTOR: u32 = 1074012935;
+pub const RIO_SET_EVENT_MASK: u32 = 1074031885;
+pub const SNAPSHOT_ALLOC_SWAP_PAGE: u32 = 2148021012;
+pub const VDUSE_VQ_INJECT_IRQ: u32 = 1074037015;
+pub const I2OPASSTHRU: u32 = 2148034828;
+pub const IOC_OPAL_SET_PW: u32 = 1109422304;
+pub const FSI_SCOM_READ: u32 = 3223352065;
+pub const VHOST_VDPA_GET_DEVICE_ID: u32 = 2147790704;
+pub const VIDIOC_QBUF: u32 = 3225703951;
+pub const VIDIOC_S_TUNER: u32 = 1079268894;
+pub const TUNGETVNETHDRSZ: u32 = 2147767511;
+pub const CAPI_NCCI_GETUNIT: u32 = 2147762983;
+pub const DFL_FPGA_PORT_UINT_GET_IRQ_NUM: u32 = 2147792455;
+pub const VIDIOC_OMAP3ISP_STAT_EN: u32 = 3221509831;
+pub const GPIO_V2_LINE_SET_CONFIG_IOCTL: u32 = 3239097357;
+pub const TEE_IOC_VERSION: u32 = 2148312064;
+pub const VIDIOC_LOG_STATUS: u32 = 22086;
+pub const IPMICTL_SEND_COMMAND_SETTIME: u32 = 2149345557;
+pub const VHOST_SET_LOG_FD: u32 = 1074048775;
+pub const SCIF_SEND: u32 = 3222565638;
+pub const VIDIOC_SUBDEV_G_FMT: u32 = 3227014660;
+pub const NS_ADJBUFLEV: u32 = 24931;
+pub const VIDIOC_DBG_S_REGISTER: u32 = 1077433935;
+pub const NILFS_IOCTL_RESIZE: u32 = 1074294411;
+pub const PHN_GETREG: u32 = 3221778437;
+pub const I2OSWDL: u32 = 3223087365;
+pub const VBG_IOCTL_VMMDEV_REQUEST_BIG: u32 = 22019;
+pub const JSIOCGBUTTONS: u32 = 2147576338;
+pub const VFIO_IOMMU_ENABLE: u32 = 15219;
+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 = 1074048887;
+pub const VIDIOC_SUBDEV_G_CROP: u32 = 3224917563;
+pub const VIDIOC_S_CROP: u32 = 1075074620;
+pub const WDIOC_GETTEMP: u32 = 2147768067;
+pub const IOC_OPAL_ADD_USR_TO_LR: u32 = 1092120804;
+pub const UI_SET_LEDBIT: u32 = 1074025833;
+pub const NBD_SET_SOCK: u32 = 43776;
+pub const BTRFS_IOC_SNAP_DESTROY_V2: u32 = 1342215231;
+pub const HIDIOCGCOLLECTIONINFO: u32 = 3222292497;
+pub const I2OSWUL: u32 = 3223087366;
+pub const IOCTL_MEI_NOTIFY_GET: u32 = 2147764227;
+pub const FDFMTTRK: u32 = 1074528840;
+pub const MMTIMER_GETBITS: u32 = 27908;
+pub const VIDIOC_ENUMSTD: u32 = 3225441817;
+pub const VHOST_GET_VRING_BASE: u32 = 3221794578;
+pub const VFIO_DEVICE_IOEVENTFD: u32 = 15220;
+pub const ATMARP_SETENTRY: u32 = 25059;
+pub const CCISS_REVALIDVOLS: u32 = 16906;
+pub const MGSL_IOCLOOPTXDONE: u32 = 27913;
+pub const RTC_VL_READ: u32 = 2147774483;
+pub const ND_IOCTL_ARS_STATUS: u32 = 3224391171;
+pub const RIO_DEV_DEL: u32 = 1075866904;
+pub const VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: u32 = 3223606797;
+pub const VIDIOC_SUBDEV_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const SONYPI_IOCSFAN: u32 = 1073837579;
+pub const SPIOCSTYPE: u32 = 1074032897;
+pub const IPMICTL_REGISTER_FOR_CMD: u32 = 2147641614;
+pub const I8K_GET_FAN: u32 = 3221514630;
+pub const TUNGETVNETBE: u32 = 2147767519;
+pub const AUTOFS_DEV_IOCTL_FAIL: u32 = 3222836087;
+pub const UI_END_FF_UPLOAD: u32 = 1080055241;
+pub const TOSH_SMM: u32 = 3222828176;
+pub const SONYPI_IOCGBAT2REM: u32 = 2147644933;
+pub const F2FS_IOC_GET_COMPRESS_BLOCKS: u32 = 2148070673;
+pub const PPPIOCSNPMODE: u32 = 1074295883;
+pub const USBDEVFS_CONTROL: u32 = 3222295808;
+pub const HIDIOCGUSAGE: u32 = 3222816779;
+pub const TUNSETTXFILTER: u32 = 1074025681;
+pub const TUNGETVNETLE: u32 = 2147767517;
+pub const VIDIOC_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const BTRFS_IOC_INO_PATHS: u32 = 3224933411;
+pub const MGSL_IOCGXSYNC: u32 = 27924;
+pub const HIDIOCGFIELDINFO: u32 = 3224913930;
+pub const VIDIOC_SUBDEV_G_STD: u32 = 2148029975;
+pub const I2OVALIDATE: u32 = 2147772680;
+pub const VIDIOC_TRY_ENCODER_CMD: u32 = 3223869006;
+pub const NILFS_IOCTL_GET_CPINFO: u32 = 2149084802;
+pub const VIDIOC_G_FREQUENCY: u32 = 3224131128;
+pub const VFAT_IOCTL_READDIR_SHORT: u32 = 2182640130;
+pub const ND_IOCTL_GET_CONFIG_DATA: u32 = 3222031877;
+pub const F2FS_IOC_RESERVE_COMPRESS_BLOCKS: u32 = 2148070675;
+pub const FDGETDRVSTAT: u32 = 2150892050;
+pub const SYNC_IOC_MERGE: u32 = 3224387075;
+pub const VIDIOC_S_DV_TIMINGS: u32 = 3229898327;
+pub const PPPIOCBRIDGECHAN: u32 = 1074033717;
+pub const LIRC_SET_SEND_MODE: u32 = 1074030865;
+pub const RIO_ENABLE_PORTWRITE_RANGE: u32 = 1074818315;
+pub const ATM_GETTYPE: u32 = 1074553220;
+pub const PHN_GETREGS: u32 = 3223875591;
+pub const FDSETEMSGTRESH: u32 = 586;
+pub const NILFS_IOCTL_GET_VINFO: u32 = 3222826630;
+pub const MGSL_IOCWAITEVENT: u32 = 3221515528;
+pub const CAPI_INSTALLED: u32 = 2147631906;
+pub const EVIOCGMASK: u32 = 2148550034;
+pub const BTRFS_IOC_SUBVOL_GETFLAGS: u32 = 2148045849;
+pub const FSL_HV_IOCTL_PARTITION_GET_STATUS: u32 = 3222056706;
+pub const MEDIA_IOC_ENUM_ENTITIES: u32 = 3238034433;
+pub const GSMIOC_GETFIRST: u32 = 2147763972;
+pub const FW_CDEV_IOC_FLUSH_ISO: u32 = 1074012952;
+pub const VIDIOC_DBG_G_CHIP_INFO: u32 = 3234354790;
+pub const F2FS_IOC_RELEASE_VOLATILE_WRITE: u32 = 62724;
+pub const CAPI_GET_SERIAL: u32 = 3221504776;
+pub const FDSETDRVPRM: u32 = 1079509648;
+pub const IOC_OPAL_SAVE: u32 = 1092120796;
+pub const VIDIOC_G_DV_TIMINGS: u32 = 3229898328;
+pub const TUNSETIFINDEX: u32 = 1074025690;
+pub const CCISS_SETINTINFO: u32 = 1074283011;
+pub const RTC_VL_CLR: u32 = 28692;
+pub const VIDIOC_REQBUFS: u32 = 3222558216;
+pub const USBDEVFS_REAPURBNDELAY32: u32 = 1074025741;
+pub const TEE_IOC_SHM_REGISTER: u32 = 3222840329;
+pub const USBDEVFS_SETCONFIGURATION: u32 = 2147767557;
+pub const CCISS_GETNODENAME: u32 = 2148549124;
+pub const VIDIOC_SUBDEV_S_FRAME_INTERVAL: u32 = 3224393238;
+pub const VIDIOC_ENUM_FRAMESIZES: u32 = 3224131146;
+pub const VFIO_DEVICE_PCI_HOT_RESET: u32 = 15217;
+pub const FW_CDEV_IOC_SEND_BROADCAST_REQUEST: u32 = 1076110098;
+pub const LPSETTIMEOUT_NEW: u32 = 1074791951;
+pub const RIO_CM_MPORT_GET_LIST: u32 = 3221512971;
+pub const FW_CDEV_IOC_QUEUE_ISO: u32 = 3222807305;
+pub const FDRAWCMD: u32 = 600;
+pub const SCIF_UNREG: u32 = 3222303497;
+pub const PPPIOCGIDLE64: u32 = 2148561983;
+pub const USBDEVFS_RELEASEINTERFACE: u32 = 2147767568;
+pub const VIDIOC_CROPCAP: u32 = 3224131130;
+pub const DFL_FPGA_PORT_GET_INFO: u32 = 46657;
+pub const PHN_SET_REGS: u32 = 1074032643;
+pub const ATMLEC_DATA: u32 = 25041;
+pub const PPPOEIOCDFWD: u32 = 45313;
+pub const VIDIOC_S_SELECTION: u32 = 3225441887;
+pub const SNAPSHOT_FREE_SWAP_PAGES: u32 = 13065;
+pub const BTRFS_IOC_LOGICAL_INO: u32 = 3224933412;
+pub const VIDIOC_S_CTRL: u32 = 3221771804;
+pub const ZATM_SETPOOL: u32 = 1074553187;
+pub const MTIOCPOS: u32 = 2147773699;
+pub const PMU_IOC_SLEEP: u32 = 16896;
+pub const AUTOFS_DEV_IOCTL_PROTOSUBVER: u32 = 3222836083;
+pub const VBG_IOCTL_CHANGE_FILTER_MASK: u32 = 3223344652;
+pub const NILFS_IOCTL_GET_SUSTAT: u32 = 2150657669;
+pub const VIDIOC_QUERYCAP: u32 = 2154321408;
+pub const HPET_INFO: u32 = 2148296707;
+pub const VIDIOC_AM437X_CCDC_CFG: u32 = 1074026177;
+pub const DM_LIST_DEVICES: u32 = 3241737474;
+pub const TUNSETOWNER: u32 = 1074025676;
+pub const VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: u32 = 3223344654;
+pub const RNDADDENTROPY: u32 = 1074287107;
+pub const USBDEVFS_RESET: u32 = 21780;
+pub const BTRFS_IOC_SUBVOL_CREATE: u32 = 1342215182;
+pub const USBDEVFS_FORBID_SUSPEND: u32 = 21793;
+pub const FDGETDRVTYP: u32 = 2148532751;
+pub const PPWCONTROL: u32 = 1073836164;
+pub const VIDIOC_ENUM_FRAMEINTERVALS: u32 = 3224655435;
+pub const KCOV_DISABLE: u32 = 25445;
+pub const IOC_OPAL_ACTIVATE_LSP: u32 = 1092120799;
+pub const VHOST_VDPA_GET_IOVA_RANGE: u32 = 2148577144;
+pub const PPPIOCSPASS: u32 = 1074295879;
+pub const RIO_CM_CHAN_CONNECT: u32 = 1074291464;
+pub const I2OSWDEL: u32 = 3223087367;
+pub const FS_IOC_SET_ENCRYPTION_POLICY: u32 = 2148296211;
+pub const IOC_OPAL_MBR_DONE: u32 = 1091596521;
+pub const PPPIOCSMAXCID: u32 = 1074033745;
+pub const PPSETPHASE: u32 = 1074032788;
+pub const VHOST_VDPA_SET_VRING_ENABLE: u32 = 1074311029;
+pub const USBDEVFS_GET_SPEED: u32 = 21791;
+pub const SONET_GETFRAMING: u32 = 2147770646;
+pub const VIDIOC_QUERYBUF: u32 = 3225703945;
+pub const VIDIOC_S_EDID: u32 = 3223606825;
+pub const BTRFS_IOC_QGROUP_ASSIGN: u32 = 1075352617;
+pub const PPS_GETCAP: u32 = 2147774627;
+pub const SNAPSHOT_PLATFORM_SUPPORT: u32 = 13071;
+pub const LIRC_SET_REC_TIMEOUT_REPORTS: u32 = 1074030873;
+pub const SCIF_GET_NODEIDS: u32 = 3222565646;
+pub const NBD_DISCONNECT: u32 = 43784;
+pub const VIDIOC_SUBDEV_G_FRAME_INTERVAL: u32 = 3224393237;
+pub const VFIO_IOMMU_DISABLE: u32 = 15220;
+pub const SNAPSHOT_CREATE_IMAGE: u32 = 1074017041;
+pub const SNAPSHOT_POWER_OFF: u32 = 13072;
+pub const APM_IOC_STANDBY: u32 = 16641;
+pub const PPPIOCGUNIT: u32 = 2147775574;
+pub const AUTOFS_IOC_EXPIRE_MULTI: u32 = 1074041702;
+pub const SCIF_BIND: u32 = 3221779201;
+pub const IOC_WATCH_QUEUE_SET_SIZE: u32 = 22368;
+pub const NILFS_IOCTL_CHANGE_CPMODE: u32 = 1074818688;
+pub const IOC_OPAL_LOCK_UNLOCK: u32 = 1092120797;
+pub const F2FS_IOC_SET_PIN_FILE: u32 = 1074066701;
+pub const PPPIOCGRASYNCMAP: u32 = 2147775573;
+pub const MMTIMER_MMAPAVAIL: u32 = 27910;
+pub const I2OPASSTHRU32: u32 = 2148034828;
+pub const DFL_FPGA_FME_PORT_RELEASE: u32 = 1074050689;
+pub const VIDIOC_SUBDEV_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const UI_SET_SNDBIT: u32 = 1074025834;
+pub const VIDIOC_G_AUDOUT: u32 = 2150913585;
+pub const RTC_PLL_SET: u32 = 1075605522;
+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 = 1074048836;
+pub const VHOST_SET_VRING_ADDR: u32 = 1076408081;
+pub const VDUSE_CREATE_DEV: u32 = 1095794946;
+pub const FDFLUSH: u32 = 587;
+pub const VBG_IOCTL_WAIT_FOR_EVENTS: u32 = 3223344650;
+pub const DFL_FPGA_FME_ERR_SET_IRQ: u32 = 1074312836;
+pub const F2FS_IOC_GET_PIN_FILE: u32 = 2147808526;
+pub const SCIF_CONNECT: u32 = 3221779203;
+pub const BLKREPORTZONE: u32 = 3222278786;
+pub const AUTOFS_IOC_ASKUMOUNT: u32 = 2147783536;
+pub const ATM_ADDPARTY: u32 = 1074291188;
+pub const FDSETPRM: u32 = 1075577410;
+pub const ATM_GETSTATZ: u32 = 1074553169;
+pub const ISST_IF_MSR_COMMAND: u32 = 3221552644;
+pub const BTRFS_IOC_GET_SUBVOL_INFO: u32 = 2179503164;
+pub const VIDIOC_UNSUBSCRIBE_EVENT: u32 = 1075861083;
+pub const SEV_ISSUE_CMD: u32 = 3222295296;
+pub const GPIOHANDLE_SET_LINE_VALUES_IOCTL: u32 = 3225465865;
+pub const PCITEST_COPY: u32 = 1074024454;
+pub const IPMICTL_GET_MY_ADDRESS_CMD: u32 = 2147772690;
+pub const CHIOGPICKER: u32 = 2147771140;
+pub const CAPI_NCCI_OPENCOUNT: u32 = 2147762982;
+pub const CXL_MEM_SEND_COMMAND: u32 = 3224423938;
+pub const PERF_EVENT_IOC_SET_FILTER: u32 = 1074013190;
+pub const IOC_OPAL_REVERT_TPR: u32 = 1091072226;
+pub const CHIOGVPARAMS: u32 = 2154849043;
+pub const PTP_PEROUT_REQUEST: u32 = 1077427459;
+pub const FSI_SCOM_CHECK: u32 = 2147775232;
+pub const RTC_IRQP_READ: u32 = 2147774475;
+pub const RIO_MPORT_MAINT_READ_LOCAL: u32 = 2149084421;
+pub const HIDIOCGRDESCSIZE: u32 = 2147764225;
+pub const UI_GET_VERSION: u32 = 2147767597;
+pub const NILFS_IOCTL_GET_CPSTAT: u32 = 2149084803;
+pub const CCISS_GETBUSTYPES: u32 = 2147762695;
+pub const VFIO_IOMMU_SPAPR_TCE_CREATE: u32 = 15223;
+pub const VIDIOC_EXPBUF: u32 = 3225441808;
+pub const UI_SET_RELBIT: u32 = 1074025830;
+pub const VFIO_SET_IOMMU: u32 = 15206;
+pub const VIDIOC_S_MODULATOR: u32 = 1078220343;
+pub const TUNGETFILTER: u32 = 2148029659;
+pub const CCISS_SETNODENAME: u32 = 1074807301;
+pub const FBIO_GETCONTROL2: u32 = 2147763849;
+pub const TUNSETDEBUG: u32 = 1074025673;
+pub const DM_DEV_REMOVE: u32 = 3241737476;
+pub const HIDIOCSUSAGES: u32 = 1344030740;
+pub const FS_IOC_ADD_ENCRYPTION_KEY: u32 = 3226494487;
+pub const FBIOGET_VBLANK: u32 = 2149598738;
+pub const ATM_GETSTAT: u32 = 1074553168;
+pub const VIDIOC_G_JPEGCOMP: u32 = 2156680765;
+pub const TUNATTACHFILTER: u32 = 1074287829;
+pub const UI_SET_ABSBIT: u32 = 1074025831;
+pub const DFL_FPGA_PORT_ERR_GET_IRQ_NUM: u32 = 2147792453;
+pub const USBDEVFS_REAPURB32: u32 = 1074025740;
+pub const BTRFS_IOC_TRANS_END: u32 = 37895;
+pub const CAPI_REGISTER: u32 = 1074545409;
+pub const F2FS_IOC_COMPRESS_FILE: u32 = 62744;
+pub const USBDEVFS_DISCARDURB: u32 = 21771;
+pub const HE_GET_REG: u32 = 1074553184;
+pub const ATM_SETLOOP: u32 = 1074553171;
+pub const ATMSIGD_CTRL: u32 = 25072;
+pub const CIOC_KERNEL_VERSION: u32 = 3221512970;
+pub const BTRFS_IOC_CLONE_RANGE: u32 = 1075876877;
+pub const SNAPSHOT_UNFREEZE: u32 = 13058;
+pub const F2FS_IOC_START_VOLATILE_WRITE: u32 = 62723;
+pub const PMU_IOC_HAS_ADB: u32 = 2147762692;
+pub const I2OGETIOPS: u32 = 2149607680;
+pub const VIDIOC_S_FBUF: u32 = 1076647435;
+pub const PPRCONTROL: u32 = 2147577987;
+pub const CHIOSPICKER: u32 = 1074029317;
+pub const VFIO_IOMMU_SPAPR_REGISTER_MEMORY: u32 = 15221;
+pub const TUNGETSNDBUF: u32 = 2147767507;
+pub const GSMIOC_SETCONF: u32 = 1078740737;
+pub const IOC_PR_PREEMPT: u32 = 1075343563;
+pub const KCOV_INIT_TRACE: u32 = 2147771137;
+pub const SONYPI_IOCGBAT1CAP: u32 = 2147644930;
+pub const SWITCHTEC_IOCTL_FLASH_INFO: u32 = 2148554560;
+pub const MTIOCTOP: u32 = 1074294017;
+pub const VHOST_VDPA_SET_STATUS: u32 = 1073852274;
+pub const VHOST_SCSI_SET_EVENTS_MISSED: u32 = 1074048835;
+pub const VFIO_IOMMU_DIRTY_PAGES: u32 = 15221;
+pub const BTRFS_IOC_SCRUB_PROGRESS: u32 = 3288372253;
+pub const PPPIOCGMRU: u32 = 2147775571;
+pub const BTRFS_IOC_DEV_REPLACE: u32 = 3391394869;
+pub const PPPIOCGFLAGS: u32 = 2147775578;
+pub const NILFS_IOCTL_SET_SUINFO: u32 = 1075342989;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER2: u32 = 3222545172;
+pub const ATM_DELLECSADDR: u32 = 1074553231;
+pub const FW_CDEV_IOC_GET_SPEED: u32 = 8977;
+pub const PPPIOCGIDLE32: u32 = 2148037695;
+pub const VFIO_DEVICE_RESET: u32 = 15215;
+pub const GPIO_GET_LINEINFO_UNWATCH_IOCTL: u32 = 3221533708;
+pub const WDIOC_GETSTATUS: u32 = 2147768065;
+pub const BTRFS_IOC_SET_FEATURES: u32 = 1076925497;
+pub const IOCTL_MEI_CONNECT_CLIENT: u32 = 3222292481;
+pub const VIDIOC_OMAP3ISP_AEWB_CFG: u32 = 3223344835;
+pub const PCITEST_READ: u32 = 1074024453;
+pub const VFIO_GROUP_GET_STATUS: u32 = 15207;
+pub const MATROXFB_GET_ALL_OUTPUTS: u32 = 2147774203;
+pub const USBDEVFS_CLEAR_HALT: u32 = 2147767573;
+pub const VIDIOC_DECODER_CMD: u32 = 3225966176;
+pub const VIDIOC_G_AUDIO: u32 = 2150913569;
+pub const CCISS_RESCANDISK: u32 = 16912;
+pub const RIO_DISABLE_PORTWRITE_RANGE: u32 = 1074818316;
+pub const IOC_OPAL_SECURE_ERASE_LR: u32 = 1091596519;
+pub const USBDEVFS_REAPURB: u32 = 1074025740;
+pub const DFL_FPGA_CHECK_EXTENSION: u32 = 46593;
+pub const AUTOFS_IOC_PROTOVER: u32 = 2147783523;
+pub const FSL_HV_IOCTL_MEMCPY: u32 = 3223891717;
+pub const BTRFS_IOC_GET_FEATURES: u32 = 2149094457;
+pub const PCITEST_MSIX: u32 = 1074024455;
+pub const BTRFS_IOC_DEFRAG_RANGE: u32 = 1076925456;
+pub const UI_BEGIN_FF_ERASE: u32 = 3222033866;
+pub const DM_GET_TARGET_VERSION: u32 = 3241737489;
+pub const PPPIOCGIDLE: u32 = 2148037695;
+pub const NVRAM_SETCKS: u32 = 28737;
+pub const WDIOC_GETSUPPORT: u32 = 2150127360;
+pub const GSMIOC_ENABLE_NET: u32 = 1077167874;
+pub const GPIO_GET_CHIPINFO_IOCTL: u32 = 2151986177;
+pub const NE_ADD_VCPU: u32 = 3221532193;
+pub const EVIOCSKEYCODE_V2: u32 = 1076380932;
+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 = 1075342598;
+pub const I2OEVTREG: u32 = 1074555146;
+pub const I2OPARMGET: u32 = 3222825220;
+pub const EVIOCGID: u32 = 2148025602;
+pub const BTRFS_IOC_QGROUP_CREATE: u32 = 1074828330;
+pub const AUTOFS_DEV_IOCTL_SETPIPEFD: u32 = 3222836088;
+pub const VIDIOC_S_PARM: u32 = 3234616854;
+pub const TUNSETSTEERINGEBPF: u32 = 2147767520;
+pub const ATM_GETNAMES: u32 = 1074291075;
+pub const VIDIOC_QUERYMENU: u32 = 3224131109;
+pub const DFL_FPGA_PORT_DMA_UNMAP: u32 = 46660;
+pub const I2OLCTGET: u32 = 3222038786;
+pub const FS_IOC_GET_ENCRYPTION_PWSALT: u32 = 1074816532;
+pub const NS_SETBUFLEV: u32 = 1074553186;
+pub const BLKCLOSEZONE: u32 = 1074795143;
+pub const SONET_GETFRSENSE: u32 = 2147901719;
+pub const UI_SET_EVBIT: u32 = 1074025828;
+pub const DM_LIST_VERSIONS: u32 = 3241737485;
+pub const HIDIOCGSTRING: u32 = 2164541444;
+pub const PPPIOCATTCHAN: u32 = 1074033720;
+pub const VDUSE_DEV_SET_CONFIG: u32 = 1074299154;
+pub const TUNGETFEATURES: u32 = 2147767503;
+pub const VFIO_GROUP_UNSET_CONTAINER: u32 = 15209;
+pub const IPMICTL_SET_MY_ADDRESS_CMD: u32 = 2147772689;
+pub const CCISS_REGNEWDISK: u32 = 1074020877;
+pub const VIDIOC_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const PHN_SETREGS: u32 = 1076391944;
+pub const FAT_IOCTL_GET_ATTRIBUTES: u32 = 2147774992;
+pub const FSL_MC_SEND_MC_COMMAND: u32 = 3225440992;
+pub const TUNGETIFF: u32 = 2147767506;
+pub const PTP_CLOCK_GETCAPS2: u32 = 2152742154;
+pub const BTRFS_IOC_RESIZE: u32 = 1342215171;
+pub const VHOST_SET_VRING_ENDIAN: u32 = 1074310931;
+pub const PPS_KC_BIND: u32 = 1074032805;
+pub const F2FS_IOC_WRITE_CHECKPOINT: u32 = 62727;
+pub const UI_SET_FFBIT: u32 = 1074025835;
+pub const IPMICTL_GET_MY_LUN_CMD: u32 = 2147772692;
+pub const CEC_ADAP_G_PHYS_ADDR: u32 = 2147639553;
+pub const CEC_G_MODE: u32 = 2147770632;
+pub const USBDEVFS_RESETEP: u32 = 2147767555;
+pub const MEDIA_REQUEST_IOC_QUEUE: u32 = 31872;
+pub const USBDEVFS_ALLOC_STREAMS: u32 = 2148029724;
+pub const MGSL_IOCSXCTRL: u32 = 27925;
+pub const MEDIA_IOC_G_TOPOLOGY: u32 = 3225975812;
+pub const PPPIOCUNBRIDGECHAN: u32 = 29748;
+pub const F2FS_IOC_COMMIT_ATOMIC_WRITE: u32 = 62722;
+pub const ISST_IF_GET_PLATFORM_INFO: u32 = 2147810816;
+pub const SCIF_FENCE_MARK: u32 = 3222041359;
+pub const USBDEVFS_RELEASE_PORT: u32 = 2147767577;
+pub const VFIO_CHECK_EXTENSION: u32 = 15205;
+pub const BTRFS_IOC_QGROUP_LIMIT: u32 = 2150667307;
+pub const FAT_IOCTL_GET_VOLUME_ID: u32 = 2147774995;
+pub const UI_SET_PHYS: u32 = 1074025836;
+pub const FDWERRORGET: u32 = 2149057047;
+pub const VIDIOC_SUBDEV_G_EDID: u32 = 3223606824;
+pub const MGSL_IOCGSTATS: u32 = 27911;
+pub const RPROC_SET_SHUTDOWN_ON_RELEASE: u32 = 1074050817;
+pub const SIOCGSTAMP_NEW: u32 = 2148567302;
+pub const RTC_WKALM_RD: u32 = 2150133776;
+pub const PHN_GET_REG: u32 = 3221516288;
+pub const DELL_WMI_SMBIOS_CMD: u32 = 3224655616;
+pub const PHN_NOT_OH: u32 = 28676;
+pub const PPGETMODES: u32 = 2147774615;
+pub const CHIOGPARAMS: u32 = 2148819718;
+pub const VFIO_DEVICE_GET_GFX_DMABUF: u32 = 15219;
+pub const VHOST_SET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310947;
+pub const VIDIOC_SUBDEV_G_SELECTION: u32 = 3225441853;
+pub const BTRFS_IOC_RM_DEV_V2: u32 = 1342215226;
+pub const MGSL_IOCWAITGPIO: u32 = 3222301970;
+pub const PMU_IOC_CAN_SLEEP: u32 = 2147762693;
+pub const KCOV_ENABLE: u32 = 25444;
+pub const BTRFS_IOC_CLONE: u32 = 1074041865;
+pub const F2FS_IOC_DEFRAGMENT: u32 = 3222336776;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE: u32 = 1074012942;
+pub const AGPIOC_ALLOCATE: u32 = 3221504262;
+pub const NE_SET_USER_MEMORY_REGION: u32 = 1075359267;
+pub const MGSL_IOCTXABORT: u32 = 27910;
+pub const MGSL_IOCSGPIO: u32 = 1074818320;
+pub const LIRC_SET_REC_CARRIER: u32 = 1074030868;
+pub const F2FS_IOC_FLUSH_DEVICE: u32 = 1074328842;
+pub const SNAPSHOT_ATOMIC_RESTORE: u32 = 13060;
+pub const RTC_UIE_OFF: u32 = 28676;
+pub const BT_BMC_IOCTL_SMS_ATN: u32 = 45312;
+pub const NVME_IOCTL_ID: u32 = 20032;
+pub const NE_START_ENCLAVE: u32 = 3222318628;
+pub const VIDIOC_STREAMON: u32 = 1074026002;
+pub const FDPOLLDRVSTAT: u32 = 2150892051;
+pub const AUTOFS_DEV_IOCTL_READY: u32 = 3222836086;
+pub const VIDIOC_ENUMAUDOUT: u32 = 3224655426;
+pub const VIDIOC_SUBDEV_S_STD: u32 = 1074288152;
+pub const WDIOC_GETTIMELEFT: u32 = 2147768074;
+pub const ATM_GETLINKRATE: u32 = 1074553217;
+pub const RTC_WKALM_SET: u32 = 1076391951;
+pub const VHOST_GET_BACKEND_FEATURES: u32 = 2148052774;
+pub const ATMARP_ENCAP: u32 = 25061;
+pub const CAPI_GET_FLAGS: u32 = 2147762979;
+pub const IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772696;
+pub const DFL_FPGA_FME_PORT_ASSIGN: u32 = 1074050690;
+pub const NS_GET_OWNER_UID: u32 = 46852;
+pub const VIDIOC_OVERLAY: u32 = 1074025998;
+pub const BTRFS_IOC_WAIT_SYNC: u32 = 1074304022;
+pub const GPIOHANDLE_SET_CONFIG_IOCTL: u32 = 3226776586;
+pub const VHOST_GET_VRING_ENDIAN: u32 = 1074310932;
+pub const ATM_GETADDR: u32 = 1074553222;
+pub const PHN_GET_REGS: u32 = 3221516290;
+pub const AUTOFS_DEV_IOCTL_REQUESTER: u32 = 3222836091;
+pub const AUTOFS_DEV_IOCTL_EXPIRE: u32 = 3222836092;
+pub const SNAPSHOT_S2RAM: u32 = 13067;
+pub const JSIOCSAXMAP: u32 = 1077963313;
+pub const F2FS_IOC_SET_COMPRESS_OPTION: u32 = 1073935638;
+pub const VBG_IOCTL_HGCM_DISCONNECT: u32 = 3223082501;
+pub const SCIF_FENCE_SIGNAL: u32 = 3223614225;
+pub const VFIO_DEVICE_GET_PCI_HOT_RESET_INFO: u32 = 15216;
+pub const VIDIOC_SUBDEV_ENUM_MBUS_CODE: u32 = 3224393218;
+pub const MMTIMER_GETOFFSET: u32 = 27904;
+pub const RIO_CM_CHAN_LISTEN: u32 = 1073898246;
+pub const ATM_SETSC: u32 = 1074029041;
+pub const F2FS_IOC_SHUTDOWN: u32 = 2147768445;
+pub const NVME_IOCTL_RESCAN: u32 = 20038;
+pub const BLKOPENZONE: u32 = 1074795142;
+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 = 25056;
+pub const IPMI_BMC_IOCTL_CLEAR_SMS_ATN: u32 = 45313;
+pub const HIDIOCGVERSION: u32 = 2147764225;
+pub const VIDIOC_S_INPUT: u32 = 3221509671;
+pub const VIDIOC_G_CROP: u32 = 3222558267;
+pub const LIRC_SET_WIDEBAND_RECEIVER: u32 = 1074030883;
+pub const EVIOCGEFFECTS: u32 = 2147763588;
+pub const UVCIOC_CTRL_QUERY: u32 = 3222041889;
+pub const IOC_OPAL_GENERIC_TABLE_RW: u32 = 1094217963;
+pub const FS_IOC_READ_VERITY_METADATA: u32 = 3223873159;
+pub const ND_IOCTL_SET_CONFIG_DATA: u32 = 3221769734;
+pub const USBDEVFS_GETDRIVER: u32 = 1090802952;
+pub const IDT77105_GETSTAT: u32 = 1074553138;
+pub const HIDIOCINITREPORT: u32 = 18437;
+pub const VFIO_DEVICE_GET_INFO: u32 = 15211;
+pub const RIO_CM_CHAN_RECEIVE: u32 = 3222299402;
+pub const RNDGETENTCNT: u32 = 2147766784;
+pub const PPPIOCNEWUNIT: u32 = 3221517374;
+pub const BTRFS_IOC_INO_LOOKUP: u32 = 3489698834;
+pub const FDRESET: u32 = 596;
+pub const IOC_PR_REGISTER: u32 = 1075343560;
+pub const HIDIOCSREPORT: u32 = 1074546696;
+pub const TEE_IOC_OPEN_SESSION: u32 = 2148574210;
+pub const TEE_IOC_SUPPL_RECV: u32 = 2148574214;
+pub const BTRFS_IOC_BALANCE_CTL: u32 = 1074041889;
+pub const GPIO_GET_LINEINFO_WATCH_IOCTL: u32 = 3225990155;
+pub const HIDIOCGRAWINFO: u32 = 2148026371;
+pub const PPPIOCSCOMPRESS: u32 = 1074558029;
+pub const USBDEVFS_CONNECTINFO: u32 = 1074287889;
+pub const BLKRESETZONE: u32 = 1074795139;
+pub const CHIOINITELEM: u32 = 25361;
+pub const NILFS_IOCTL_SET_ALLOC_RANGE: u32 = 1074818700;
+pub const AUTOFS_DEV_IOCTL_CATATONIC: u32 = 3222836089;
+pub const RIO_MPORT_MAINT_HDID_SET: u32 = 1073900801;
+pub const PPGETPHASE: u32 = 2147774617;
+pub const USBDEVFS_DISCONNECT_CLAIM: u32 = 2164806939;
+pub const FDMSGON: u32 = 581;
+pub const VIDIOC_G_SLICED_VBI_CAP: u32 = 3228849733;
+pub const BTRFS_IOC_BALANCE_V2: u32 = 3288372256;
+pub const MEDIA_REQUEST_IOC_REINIT: u32 = 31873;
+pub const IOC_OPAL_ERASE_LR: u32 = 1091596518;
+pub const FDFMTBEG: u32 = 583;
+pub const RNDRESEEDCRNG: u32 = 20999;
+pub const ISST_IF_GET_PHY_ID: u32 = 3221552641;
+pub const TUNSETNOCSUM: u32 = 1074025672;
+pub const SONET_GETSTAT: u32 = 2149867792;
+pub const TFD_IOC_SET_TICKS: u32 = 1074287616;
+pub const PPDATADIR: u32 = 1074032784;
+pub const IOC_OPAL_ENABLE_DISABLE_MBR: u32 = 1091596517;
+pub const GPIO_V2_GET_LINE_IOCTL: u32 = 3260068871;
+pub const RIO_CM_CHAN_SEND: u32 = 1074815753;
+pub const PPWCTLONIRQ: u32 = 1073836178;
+pub const SONYPI_IOCGBRT: u32 = 2147579392;
+pub const IOC_PR_RELEASE: u32 = 1074819274;
+pub const PPCLRIRQ: u32 = 2147774611;
+pub const IPMICTL_SET_MY_CHANNEL_LUN_CMD: u32 = 2147772698;
+pub const MGSL_IOCSXSYNC: u32 = 27923;
+pub const HPET_IE_OFF: u32 = 26626;
+pub const IOC_OPAL_ACTIVATE_USR: u32 = 1091596513;
+pub const SONET_SETFRAMING: u32 = 1074028821;
+pub const PERF_EVENT_IOC_PAUSE_OUTPUT: u32 = 1074013193;
+pub const BTRFS_IOC_LOGICAL_INO_V2: u32 = 3224933435;
+pub const VBG_IOCTL_HGCM_CONNECT: u32 = 3231471108;
+pub const BLKFINISHZONE: u32 = 1074795144;
+pub const EVIOCREVOKE: u32 = 1074021777;
+pub const VFIO_DEVICE_FEATURE: u32 = 15221;
+pub const CCISS_GETPCIINFO: u32 = 2148024833;
+pub const ISST_IF_MBOX_COMMAND: u32 = 3221552643;
+pub const SCIF_ACCEPTREQ: u32 = 3222303492;
+pub const PERF_EVENT_IOC_QUERY_BPF: u32 = 3221496842;
+pub const VIDIOC_STREAMOFF: u32 = 1074026003;
+pub const VDUSE_DESTROY_DEV: u32 = 1090552067;
+pub const FDGETFDCSTAT: u32 = 2149581333;
+pub const VIDIOC_S_PRIORITY: u32 = 1074026052;
+pub const SNAPSHOT_FREEZE: u32 = 13057;
+pub const VIDIOC_ENUMINPUT: u32 = 3226228250;
+pub const ZATM_GETPOOLZ: u32 = 1074553186;
+pub const RIO_DISABLE_DOORBELL_RANGE: u32 = 1074294026;
+pub const GPIO_V2_GET_LINEINFO_WATCH_IOCTL: u32 = 3238048774;
+pub const VIDIOC_G_STD: u32 = 2148029975;
+pub const USBDEVFS_ALLOW_SUSPEND: u32 = 21794;
+pub const SONET_GETSTATZ: u32 = 2149867793;
+pub const SCIF_ACCEPTREG: u32 = 3221779205;
+pub const VIDIOC_ENCODER_CMD: u32 = 3223869005;
+pub const PPPIOCSRASYNCMAP: u32 = 1074033748;
+pub const IOCTL_MEI_NOTIFY_SET: u32 = 1074022402;
+pub const BTRFS_IOC_QUOTA_RESCAN_STATUS: u32 = 2151715885;
+pub const F2FS_IOC_GARBAGE_COLLECT: u32 = 1074066694;
+pub const ATMLEC_CTRL: u32 = 25040;
+pub const MATROXFB_GET_AVAILABLE_OUTPUTS: u32 = 2147774201;
+pub const DM_DEV_CREATE: u32 = 3241737475;
+pub const VHOST_VDPA_GET_VRING_NUM: u32 = 2147659638;
+pub const VIDIOC_G_CTRL: u32 = 3221771803;
+pub const NBD_CLEAR_SOCK: u32 = 43780;
+pub const VFIO_DEVICE_QUERY_GFX_PLANE: u32 = 15218;
+pub const WDIOC_KEEPALIVE: u32 = 2147768069;
+pub const NVME_IOCTL_SUBSYS_RESET: u32 = 20037;
+pub const PTP_EXTTS_REQUEST2: u32 = 1074806027;
+pub const PCITEST_BAR: u32 = 20481;
+pub const MGSL_IOCGGPIO: u32 = 2148560145;
+pub const EVIOCSREP: u32 = 1074283779;
+pub const VFIO_DEVICE_GET_IRQ_INFO: u32 = 15213;
+pub const HPET_DPI: u32 = 26629;
+pub const VDUSE_VQ_SETUP_KICKFD: u32 = 1074299158;
+pub const ND_IOCTL_CALL: u32 = 3225439754;
+pub const HIDIOCGDEVINFO: u32 = 2149337091;
+pub const DM_TABLE_DEPS: u32 = 3241737483;
+pub const BTRFS_IOC_DEV_INFO: u32 = 3489698846;
+pub const VDUSE_IOTLB_GET_FD: u32 = 3223093520;
+pub const FW_CDEV_IOC_GET_INFO: u32 = 3223593728;
+pub const VIDIOC_G_PRIORITY: u32 = 2147767875;
+pub const ATM_NEWBACKENDIF: u32 = 1073897971;
+pub const VIDIOC_S_EXT_CTRLS: u32 = 3222820424;
+pub const VIDIOC_SUBDEV_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const VIDIOC_OMAP3ISP_CCDC_CFG: u32 = 3223344833;
+pub const VIDIOC_S_HW_FREQ_SEEK: u32 = 1076909650;
+pub const DM_TABLE_LOAD: u32 = 3241737481;
+pub const F2FS_IOC_START_ATOMIC_WRITE: u32 = 62721;
+pub const VIDIOC_G_OUTPUT: u32 = 2147767854;
+pub const ATM_DROPPARTY: u32 = 1074029045;
+pub const CHIOGELEM: u32 = 1080845072;
+pub const BTRFS_IOC_GET_SUPPORTED_FEATURES: u32 = 2152240185;
+pub const EVIOCSKEYCODE: u32 = 1074283780;
+pub const NE_GET_IMAGE_LOAD_INFO: u32 = 3222318626;
+pub const TUNSETLINK: u32 = 1074025677;
+pub const FW_CDEV_IOC_ADD_DESCRIPTOR: u32 = 3222807302;
+pub const BTRFS_IOC_SCRUB_CANCEL: u32 = 37916;
+pub const PPS_SETPARAMS: u32 = 1074032802;
+pub const IOC_OPAL_LR_SETUP: u32 = 1093169379;
+pub const FW_CDEV_IOC_DEALLOCATE: u32 = 1074012931;
+pub const WDIOC_SETTIMEOUT: u32 = 3221509894;
+pub const IOC_WATCH_QUEUE_SET_FILTER: u32 = 22369;
+pub const CAPI_GET_MANUFACTURER: u32 = 3221504774;
+pub const VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY: u32 = 15222;
+pub const ASPEED_P2A_CTRL_IOCTL_SET_WINDOW: u32 = 1074836224;
+pub const VIDIOC_G_EDID: u32 = 3223606824;
+pub const F2FS_IOC_GARBAGE_COLLECT_RANGE: u32 = 1075115275;
+pub const RIO_MAP_INBOUND: u32 = 3223874833;
+pub const IOC_OPAL_TAKE_OWNERSHIP: u32 = 1091072222;
+pub const USBDEVFS_CLAIM_PORT: u32 = 2147767576;
+pub const VIDIOC_S_AUDIO: u32 = 1077171746;
+pub const FS_IOC_GET_ENCRYPTION_NONCE: u32 = 2148558363;
+pub const FW_CDEV_IOC_SEND_STREAM_PACKET: u32 = 1076372243;
+pub const BTRFS_IOC_SNAP_DESTROY: u32 = 1342215183;
+pub const SNAPSHOT_FREE: u32 = 13061;
+pub const I8K_GET_SPEED: u32 = 3221514629;
+pub const HIDIOCGREPORT: u32 = 1074546695;
+pub const HPET_EPI: u32 = 26628;
+pub const JSIOCSCORR: u32 = 1076128289;
+pub const IOC_PR_PREEMPT_ABORT: u32 = 1075343564;
+pub const RIO_MAP_OUTBOUND: u32 = 3223874831;
+pub const ATM_SETESI: u32 = 1074553228;
+pub const FW_CDEV_IOC_START_ISO: u32 = 1074799370;
+pub const ATM_DELADDR: u32 = 1074553225;
+pub const PPFCONTROL: u32 = 1073901710;
+pub const SONYPI_IOCGFAN: u32 = 2147579402;
+pub const RTC_IRQP_SET: u32 = 1074032652;
+pub const PCITEST_WRITE: u32 = 1074024452;
+pub const PPCLAIM: u32 = 28811;
+pub const VIDIOC_S_JPEGCOMP: u32 = 1082938942;
+pub const IPMICTL_UNREGISTER_FOR_CMD: u32 = 2147641615;
+pub const VHOST_SET_FEATURES: u32 = 1074310912;
+pub const TOSHIBA_ACPI_SCI: u32 = 3222828177;
+pub const VIDIOC_DQBUF: u32 = 3225703953;
+pub const BTRFS_IOC_BALANCE_PROGRESS: u32 = 2214630434;
+pub const BTRFS_IOC_SUBVOL_SETFLAGS: u32 = 1074304026;
+pub const ATMLEC_MCAST: u32 = 25042;
+pub const MMTIMER_GETFREQ: u32 = 2147773698;
+pub const VIDIOC_G_SELECTION: u32 = 3225441886;
+pub const RTC_ALM_SET: u32 = 1076129799;
+pub const PPPOEIOCSFWD: u32 = 1074049280;
+pub const IPMICTL_GET_MAINTENANCE_MODE_CMD: u32 = 2147772702;
+pub const FS_IOC_ENABLE_VERITY: u32 = 1082156677;
+pub const NILFS_IOCTL_GET_BDESCS: u32 = 3222826631;
+pub const FDFMTEND: u32 = 585;
+pub const DMA_BUF_SET_NAME: u32 = 1074029057;
+pub const UI_BEGIN_FF_UPLOAD: u32 = 3227538888;
+pub const RTC_UIE_ON: u32 = 28675;
+pub const PPRELEASE: u32 = 28812;
+pub const VFIO_IOMMU_UNMAP_DMA: u32 = 15218;
+pub const VIDIOC_OMAP3ISP_PRV_CFG: u32 = 3225179842;
+pub const GPIO_GET_LINEHANDLE_IOCTL: u32 = 3245126659;
+pub const VFAT_IOCTL_READDIR_BOTH: u32 = 2182640129;
+pub const NVME_IOCTL_ADMIN_CMD: u32 = 3225964097;
+pub const VHOST_SET_VRING_KICK: u32 = 1074310944;
+pub const BTRFS_IOC_SUBVOL_CREATE_V2: u32 = 1342215192;
+pub const BTRFS_IOC_SNAP_CREATE: u32 = 1342215169;
+pub const SONYPI_IOCGBAT2CAP: u32 = 2147644932;
+pub const PPNEGOT: u32 = 1074032785;
+pub const NBD_PRINT_DEBUG: u32 = 43782;
+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 = 2214630431;
+pub const VIDIOC_ENUM_FMT: u32 = 3225441794;
+pub const VIDIOC_G_INPUT: u32 = 2147767846;
+pub const VTPM_PROXY_IOC_NEW_DEV: u32 = 3222577408;
+pub const DFL_FPGA_FME_ERR_GET_IRQ_NUM: u32 = 2147792515;
+pub const ND_IOCTL_DIMM_FLAGS: u32 = 3221769731;
+pub const BTRFS_IOC_QUOTA_RESCAN: u32 = 1077974060;
+pub const MMTIMER_GETCOUNTER: u32 = 2147773705;
+pub const MATROXFB_GET_OUTPUT_MODE: u32 = 3221516026;
+pub const BTRFS_IOC_QUOTA_RESCAN_WAIT: u32 = 37934;
+pub const RIO_CM_CHAN_BIND: u32 = 1074291461;
+pub const HIDIOCGRDESC: u32 = 2416199682;
+pub const MGSL_IOCGIF: u32 = 27915;
+pub const VIDIOC_S_OUTPUT: u32 = 3221509679;
+pub const HIDIOCGREPORTINFO: u32 = 3222030345;
+pub const WDIOC_GETBOOTSTATUS: u32 = 2147768066;
+pub const VDUSE_VQ_GET_INFO: u32 = 3224142101;
+pub const ACRN_IOCTL_ASSIGN_PCIDEV: u32 = 1076142677;
+pub const BLKGETDISKSEQ: u32 = 2148012672;
+pub const ACRN_IOCTL_PM_GET_CPU_STATE: u32 = 3221791328;
+pub const ACRN_IOCTL_DESTROY_VM: u32 = 41489;
+pub const ACRN_IOCTL_SET_PTDEV_INTR: u32 = 1075094099;
+pub const ACRN_IOCTL_CREATE_IOREQ_CLIENT: u32 = 41522;
+pub const ACRN_IOCTL_IRQFD: u32 = 1075356273;
+pub const ACRN_IOCTL_CREATE_VM: u32 = 3224412688;
+pub const ACRN_IOCTL_INJECT_MSI: u32 = 1074831907;
+pub const ACRN_IOCTL_ATTACH_IOREQ_CLIENT: u32 = 41523;
+pub const ACRN_IOCTL_RESET_PTDEV_INTR: u32 = 1075094100;
+pub const ACRN_IOCTL_NOTIFY_REQUEST_FINISH: u32 = 1074307633;
+pub const ACRN_IOCTL_SET_IRQLINE: u32 = 1074307621;
+pub const ACRN_IOCTL_START_VM: u32 = 41490;
+pub const ACRN_IOCTL_SET_VCPU_REGS: u32 = 1092919830;
+pub const ACRN_IOCTL_SET_MEMSEG: u32 = 1075880513;
+pub const ACRN_IOCTL_PAUSE_VM: u32 = 41491;
+pub const ACRN_IOCTL_CLEAR_VM_IOREQ: u32 = 41525;
+pub const ACRN_IOCTL_UNSET_MEMSEG: u32 = 1075880514;
+pub const ACRN_IOCTL_IOEVENTFD: u32 = 1075880560;
+pub const ACRN_IOCTL_DEASSIGN_PCIDEV: u32 = 1076142678;
+pub const ACRN_IOCTL_RESET_VM: u32 = 41493;
+pub const ACRN_IOCTL_DESTROY_IOREQ_CLIENT: u32 = 41524;
+pub const ACRN_IOCTL_VM_INTR_MONITOR: u32 = 1074045476;
diff --git a/vendor/linux-raw-sys-0.9.4/src/csky/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/csky/landlock.rs
new file mode 100644
index 0000000..4200c77
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/landlock.rs
@@ -0,0 +1,98 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/csky/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/csky/loop_device.rs
new file mode 100644
index 0000000..65db535
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/loop_device.rs
@@ -0,0 +1,132 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/csky/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/csky/mempolicy.rs
new file mode 100644
index 0000000..ad4957c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/mempolicy.rs
@@ -0,0 +1,175 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
+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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/csky/net.rs b/vendor/linux-raw-sys-0.9.4/src/csky/net.rs
new file mode 100644
index 0000000..812efc0
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/net.rs
@@ -0,0 +1,3421 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u32; 67usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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 SIOCGSTAMP_OLD: u32 = 35078;
+pub const SIOCGSTAMPNS_OLD: u32 = 35079;
+pub const SOL_SOCKET: u32 = 1;
+pub const SO_DEBUG: u32 = 1;
+pub const SO_REUSEADDR: u32 = 2;
+pub const SO_TYPE: u32 = 3;
+pub const SO_ERROR: u32 = 4;
+pub const SO_DONTROUTE: u32 = 5;
+pub const SO_BROADCAST: u32 = 6;
+pub const SO_SNDBUF: u32 = 7;
+pub const SO_RCVBUF: u32 = 8;
+pub const SO_SNDBUFFORCE: u32 = 32;
+pub const SO_RCVBUFFORCE: u32 = 33;
+pub const SO_KEEPALIVE: u32 = 9;
+pub const SO_OOBINLINE: u32 = 10;
+pub const SO_NO_CHECK: u32 = 11;
+pub const SO_PRIORITY: u32 = 12;
+pub const SO_LINGER: u32 = 13;
+pub const SO_BSDCOMPAT: u32 = 14;
+pub const SO_REUSEPORT: u32 = 15;
+pub const SO_PASSCRED: u32 = 16;
+pub const SO_PEERCRED: u32 = 17;
+pub const SO_RCVLOWAT: u32 = 18;
+pub const SO_SNDLOWAT: u32 = 19;
+pub const SO_RCVTIMEO_OLD: u32 = 20;
+pub const SO_SNDTIMEO_OLD: u32 = 21;
+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_ACCEPTCONN: u32 = 30;
+pub const SO_PEERSEC: u32 = 31;
+pub const SO_PASSSEC: u32 = 34;
+pub const SO_MARK: u32 = 36;
+pub const SO_PROTOCOL: u32 = 38;
+pub const SO_DOMAIN: u32 = 39;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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 = 1;
+pub const SOCK_DGRAM: u32 = 2;
+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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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 = 32768,
+TCP_FLAG_ECE = 16384,
+TCP_FLAG_URG = 8192,
+TCP_FLAG_ACK = 4096,
+TCP_FLAG_PSH = 2048,
+TCP_FLAG_RST = 1024,
+TCP_FLAG_SYN = 512,
+TCP_FLAG_FIN = 256,
+TCP_RESERVED_BITS = 15,
+TCP_DATA_OFFSET = 240,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn ihl(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_ihl(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(ihl: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let ihl: u8 = unsafe { ::core::mem::transmute(ihl) };
+ihl as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl ipv6hdr {
+#[inline]
+pub fn priority(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_priority(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(priority: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let priority: u8 = unsafe { ::core::mem::transmute(priority) };
+priority as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcphdr {
+#[inline]
+pub fn res1(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_res1(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn doff(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_doff(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn fin(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_fin(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn syn(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_syn(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn rst(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_rst(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn psh(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_psh(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ack(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ack(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn urg(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_urg(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ece(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ece(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn cwr(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_cwr(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(res1: __u16, doff: __u16, fin: __u16, syn: __u16, rst: __u16, psh: __u16, ack: __u16, urg: __u16, ece: __u16, cwr: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let res1: u16 = unsafe { ::core::mem::transmute(res1) };
+res1 as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let doff: u16 = unsafe { ::core::mem::transmute(doff) };
+doff as u64
+});
+__bindgen_bitfield_unit.set(8usize, 1u8, {
+let fin: u16 = unsafe { ::core::mem::transmute(fin) };
+fin as u64
+});
+__bindgen_bitfield_unit.set(9usize, 1u8, {
+let syn: u16 = unsafe { ::core::mem::transmute(syn) };
+syn as u64
+});
+__bindgen_bitfield_unit.set(10usize, 1u8, {
+let rst: u16 = unsafe { ::core::mem::transmute(rst) };
+rst as u64
+});
+__bindgen_bitfield_unit.set(11usize, 1u8, {
+let psh: u16 = unsafe { ::core::mem::transmute(psh) };
+psh as u64
+});
+__bindgen_bitfield_unit.set(12usize, 1u8, {
+let ack: u16 = unsafe { ::core::mem::transmute(ack) };
+ack as u64
+});
+__bindgen_bitfield_unit.set(13usize, 1u8, {
+let urg: u16 = unsafe { ::core::mem::transmute(urg) };
+urg as u64
+});
+__bindgen_bitfield_unit.set(14usize, 1u8, {
+let ece: u16 = unsafe { ::core::mem::transmute(ece) };
+ece as u64
+});
+__bindgen_bitfield_unit.set(15usize, 1u8, {
+let cwr: u16 = unsafe { ::core::mem::transmute(cwr) };
+cwr 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/csky/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/csky/netlink.rs
new file mode 100644
index 0000000..3ef9b03
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/netlink.rs
@@ -0,0 +1,2944 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_nl {
+pub nl_family: __kernel_sa_family_t,
+pub nl_pad: crate::ctypes::c_ushort,
+pub nl_pid: __u32,
+pub nl_groups: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsghdr {
+pub nlmsg_len: __u32,
+pub nlmsg_type: __u16,
+pub nlmsg_flags: __u16,
+pub nlmsg_seq: __u32,
+pub nlmsg_pid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsgerr {
+pub error: crate::ctypes::c_int,
+pub msg: nlmsghdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_pktinfo {
+pub group: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_req {
+pub nm_block_size: crate::ctypes::c_uint,
+pub nm_block_nr: crate::ctypes::c_uint,
+pub nm_frame_size: crate::ctypes::c_uint,
+pub nm_frame_nr: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_hdr {
+pub nm_status: crate::ctypes::c_uint,
+pub nm_len: crate::ctypes::c_uint,
+pub nm_group: __u32,
+pub nm_pid: __u32,
+pub nm_uid: __u32,
+pub nm_gid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlattr {
+pub nla_len: __u16,
+pub nla_type: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nla_bitfield32 {
+pub value: __u32,
+pub selector: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats {
+pub rx_packets: __u32,
+pub tx_packets: __u32,
+pub rx_bytes: __u32,
+pub tx_bytes: __u32,
+pub rx_errors: __u32,
+pub tx_errors: __u32,
+pub rx_dropped: __u32,
+pub tx_dropped: __u32,
+pub multicast: __u32,
+pub collisions: __u32,
+pub rx_length_errors: __u32,
+pub rx_over_errors: __u32,
+pub rx_crc_errors: __u32,
+pub rx_frame_errors: __u32,
+pub rx_fifo_errors: __u32,
+pub rx_missed_errors: __u32,
+pub tx_aborted_errors: __u32,
+pub tx_carrier_errors: __u32,
+pub tx_fifo_errors: __u32,
+pub tx_heartbeat_errors: __u32,
+pub tx_window_errors: __u32,
+pub rx_compressed: __u32,
+pub tx_compressed: __u32,
+pub rx_nohandler: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+pub collisions: __u64,
+pub rx_length_errors: __u64,
+pub rx_over_errors: __u64,
+pub rx_crc_errors: __u64,
+pub rx_frame_errors: __u64,
+pub rx_fifo_errors: __u64,
+pub rx_missed_errors: __u64,
+pub tx_aborted_errors: __u64,
+pub tx_carrier_errors: __u64,
+pub tx_fifo_errors: __u64,
+pub tx_heartbeat_errors: __u64,
+pub tx_window_errors: __u64,
+pub rx_compressed: __u64,
+pub tx_compressed: __u64,
+pub rx_nohandler: __u64,
+pub rx_otherhost_dropped: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_hw_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_ifmap {
+pub mem_start: __u64,
+pub mem_end: __u64,
+pub base_addr: __u64,
+pub irq: __u16,
+pub dma: __u8,
+pub port: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_bridge_id {
+pub prio: [__u8; 2usize],
+pub addr: [__u8; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_cacheinfo {
+pub max_reasm_len: __u32,
+pub tstamp: __u32,
+pub reachable_time: __u32,
+pub retrans_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_qos_mapping {
+pub from: __u32,
+pub to: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tunnel_msg {
+pub family: __u8,
+pub flags: __u8,
+pub reserved2: __u16,
+pub ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vxlan_port_range {
+pub low: __be16,
+pub high: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_mac {
+pub vf: __u32,
+pub mac: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_broadcast {
+pub broadcast: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan_info {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+pub vlan_proto: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_tx_rate {
+pub vf: __u32,
+pub rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rate {
+pub vf: __u32,
+pub min_tx_rate: __u32,
+pub max_tx_rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_spoofchk {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_guid {
+pub vf: __u32,
+pub guid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_link_state {
+pub vf: __u32,
+pub link_state: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rss_query_en {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_trust {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_port_vsi {
+pub vsi_mgr_id: __u8,
+pub vsi_type_id: [__u8; 3usize],
+pub vsi_type_version: __u8,
+pub pad: [__u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_stats_msg {
+pub family: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub ifindex: __u32,
+pub filter_mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_rmnet_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifaddrmsg {
+pub ifa_family: __u8,
+pub ifa_prefixlen: __u8,
+pub ifa_flags: __u8,
+pub ifa_scope: __u8,
+pub ifa_index: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifa_cacheinfo {
+pub ifa_prefered: __u32,
+pub ifa_valid: __u32,
+pub cstamp: __u32,
+pub tstamp: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndmsg {
+pub ndm_family: __u8,
+pub ndm_pad1: __u8,
+pub ndm_pad2: __u16,
+pub ndm_ifindex: __s32,
+pub ndm_state: __u16,
+pub ndm_flags: __u8,
+pub ndm_type: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nda_cacheinfo {
+pub ndm_confirmed: __u32,
+pub ndm_used: __u32,
+pub ndm_updated: __u32,
+pub ndm_refcnt: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_stats {
+pub ndts_allocs: __u64,
+pub ndts_destroys: __u64,
+pub ndts_hash_grows: __u64,
+pub ndts_res_failed: __u64,
+pub ndts_lookups: __u64,
+pub ndts_hits: __u64,
+pub ndts_rcv_probes_mcast: __u64,
+pub ndts_rcv_probes_ucast: __u64,
+pub ndts_periodic_gc_runs: __u64,
+pub ndts_forced_gc_runs: __u64,
+pub ndts_table_fulls: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndtmsg {
+pub ndtm_family: __u8,
+pub ndtm_pad1: __u8,
+pub ndtm_pad2: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_config {
+pub ndtc_key_len: __u16,
+pub ndtc_entry_size: __u16,
+pub ndtc_entries: __u32,
+pub ndtc_last_flush: __u32,
+pub ndtc_last_rand: __u32,
+pub ndtc_hash_rnd: __u32,
+pub ndtc_hash_mask: __u32,
+pub ndtc_hash_chain_gc: __u32,
+pub ndtc_proxy_qlen: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtattr {
+pub rta_len: crate::ctypes::c_ushort,
+pub rta_type: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtmsg {
+pub rtm_family: crate::ctypes::c_uchar,
+pub rtm_dst_len: crate::ctypes::c_uchar,
+pub rtm_src_len: crate::ctypes::c_uchar,
+pub rtm_tos: crate::ctypes::c_uchar,
+pub rtm_table: crate::ctypes::c_uchar,
+pub rtm_protocol: crate::ctypes::c_uchar,
+pub rtm_scope: crate::ctypes::c_uchar,
+pub rtm_type: crate::ctypes::c_uchar,
+pub rtm_flags: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnexthop {
+pub rtnh_len: crate::ctypes::c_ushort,
+pub rtnh_flags: crate::ctypes::c_uchar,
+pub rtnh_hops: crate::ctypes::c_uchar,
+pub rtnh_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct rtvia {
+pub rtvia_family: __kernel_sa_family_t,
+pub rtvia_addr: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_cacheinfo {
+pub rta_clntref: __u32,
+pub rta_lastuse: __u32,
+pub rta_expires: __s32,
+pub rta_error: __u32,
+pub rta_used: __u32,
+pub rta_id: __u32,
+pub rta_ts: __u32,
+pub rta_tsage: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rta_session {
+pub proto: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub u: rta_session__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_1 {
+pub sport: __u16,
+pub dport: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_2 {
+pub type_: __u8,
+pub code: __u8,
+pub ident: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_mfc_stats {
+pub mfcs_packets: __u64,
+pub mfcs_bytes: __u64,
+pub mfcs_wrong_if: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtgenmsg {
+pub rtgen_family: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifinfomsg {
+pub ifi_family: crate::ctypes::c_uchar,
+pub __ifi_pad: crate::ctypes::c_uchar,
+pub ifi_type: crate::ctypes::c_ushort,
+pub ifi_index: crate::ctypes::c_int,
+pub ifi_flags: crate::ctypes::c_uint,
+pub ifi_change: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefixmsg {
+pub prefix_family: crate::ctypes::c_uchar,
+pub prefix_pad1: crate::ctypes::c_uchar,
+pub prefix_pad2: crate::ctypes::c_ushort,
+pub prefix_ifindex: crate::ctypes::c_int,
+pub prefix_type: crate::ctypes::c_uchar,
+pub prefix_len: crate::ctypes::c_uchar,
+pub prefix_flags: crate::ctypes::c_uchar,
+pub prefix_pad3: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefix_cacheinfo {
+pub preferred_time: __u32,
+pub valid_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcmsg {
+pub tcm_family: crate::ctypes::c_uchar,
+pub tcm__pad1: crate::ctypes::c_uchar,
+pub tcm__pad2: crate::ctypes::c_ushort,
+pub tcm_ifindex: crate::ctypes::c_int,
+pub tcm_handle: __u32,
+pub tcm_parent: __u32,
+pub tcm_info: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nduseroptmsg {
+pub nduseropt_family: crate::ctypes::c_uchar,
+pub nduseropt_pad1: crate::ctypes::c_uchar,
+pub nduseropt_opts_len: crate::ctypes::c_ushort,
+pub nduseropt_ifindex: crate::ctypes::c_int,
+pub nduseropt_icmp_type: __u8,
+pub nduseropt_icmp_code: __u8,
+pub nduseropt_pad2: crate::ctypes::c_ushort,
+pub nduseropt_pad3: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcamsg {
+pub tca_family: crate::ctypes::c_uchar,
+pub tca__pad1: crate::ctypes::c_uchar,
+pub tca__pad2: crate::ctypes::c_ushort,
+}
+pub const _K_SS_MAXSIZE: u32 = 128;
+pub const SOCK_SNDBUF_LOCK: u32 = 1;
+pub const SOCK_RCVBUF_LOCK: u32 = 2;
+pub const SOCK_BUF_LOCK_MASK: u32 = 3;
+pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
+pub const SOCK_TXREHASH_DISABLED: u32 = 0;
+pub const SOCK_TXREHASH_ENABLED: u32 = 1;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/csky/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/csky/prctl.rs
new file mode 100644
index 0000000..338cbf9
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/prctl.rs
@@ -0,0 +1,260 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/csky/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/csky/ptrace.rs
new file mode 100644
index 0000000..7c196b5
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/ptrace.rs
@@ -0,0 +1,808 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pt_regs {
+pub tls: crate::ctypes::c_ulong,
+pub lr: crate::ctypes::c_ulong,
+pub pc: crate::ctypes::c_ulong,
+pub sr: crate::ctypes::c_ulong,
+pub usp: crate::ctypes::c_ulong,
+pub orig_a0: crate::ctypes::c_ulong,
+pub a0: crate::ctypes::c_ulong,
+pub a1: crate::ctypes::c_ulong,
+pub a2: crate::ctypes::c_ulong,
+pub a3: crate::ctypes::c_ulong,
+pub regs: [crate::ctypes::c_ulong; 10usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_fp {
+pub vr: [crate::ctypes::c_ulong; 96usize],
+pub fcr: crate::ctypes::c_ulong,
+pub fesr: crate::ctypes::c_ulong,
+pub fid: crate::ctypes::c_ulong,
+pub reserved: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/csky/system.rs b/vendor/linux-raw-sys-0.9.4/src/csky/system.rs
new file mode 100644
index 0000000..62eb254
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/system.rs
@@ -0,0 +1,100 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 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: [crate::ctypes::c_char; 8usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
diff --git a/vendor/linux-raw-sys-0.9.4/src/csky/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/csky/xdp.rs
new file mode 100644
index 0000000..d161d5f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/csky/xdp.rs
@@ -0,0 +1,189 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/elf.rs b/vendor/linux-raw-sys-0.9.4/src/elf.rs
new file mode 100644
index 0000000..19d7559
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/elf.rs
@@ -0,0 +1,299 @@
+//! The ELF ABI. 🧝
+//!
+//! This module is not as comprehensive as bindgened [`elf_uapi`] and provides only types for target
+//! pointer width: instead of [`elf32_phdr`] and [`elf64_phdr`] there's only [`Elf_Phdr`].
+//!
+//! [`elf_uapi`]: super::elf_uapi
+//! [`elf32_phdr`]: super::elf_uapi::elf32_phdr
+//! [`elf64_phdr`]: super::elf_uapi::elf64_phdr
+
+pub const SELFMAG: usize = 4;
+pub const ELFMAG: [u8; SELFMAG] = [0x7f, b'E', b'L', b'F'];
+pub const EI_CLASS: usize = 4;
+pub const EI_DATA: usize = 5;
+pub const EI_VERSION: usize = 6;
+pub const EI_OSABI: usize = 7;
+pub const EI_ABIVERSION: usize = 8;
+pub const EV_CURRENT: u8 = 1;
+#[cfg(target_pointer_width = "32")]
+pub const ELFCLASS: u8 = 1; // ELFCLASS32
+#[cfg(target_pointer_width = "64")]
+pub const ELFCLASS: u8 = 2; // ELFCLASS64
+#[cfg(target_endian = "little")]
+pub const ELFDATA: u8 = 1; // ELFDATA2LSB
+#[cfg(target_endian = "big")]
+pub const ELFDATA: u8 = 2; // ELFDATA2MSB
+pub const ELFOSABI_SYSV: u8 = 0;
+pub const ELFOSABI_LINUX: u8 = 3;
+// At present all of our supported platforms use 0.
+pub const ELFABIVERSION: u8 = 0;
+pub const ET_DYN: u16 = 3;
+pub const EI_NIDENT: usize = 16;
+pub const SHN_UNDEF: u16 = 0;
+pub const SHN_ABS: u16 = 0xfff1;
+pub const PN_XNUM: u16 = 0xffff;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_GNU_STACK: u32 = 0x6474_e551;
+pub const PT_GNU_RELRO: u32 = 0x6474_e552;
+pub const PF_X: u32 = 1;
+pub const PF_W: u32 = 2;
+pub const PF_R: u32 = 4;
+pub const DT_NULL: usize = 0;
+pub const DT_HASH: usize = 4;
+pub const DT_STRTAB: usize = 5;
+pub const DT_SYMTAB: usize = 6;
+pub const DT_RELA: usize = 7;
+pub const DT_RELASZ: usize = 8;
+pub const DT_RELAENT: usize = 9;
+pub const DT_REL: usize = 17;
+pub const DT_RELSZ: usize = 18;
+pub const DT_RELENT: usize = 19;
+pub const DT_SYMENT: usize = 11;
+pub const DT_GNU_HASH: usize = 0x6fff_fef5;
+pub const DT_VERSYM: usize = 0x6fff_fff0;
+pub const DT_VERDEF: usize = 0x6fff_fffc;
+pub const STB_WEAK: u8 = 2;
+pub const STB_GLOBAL: u8 = 1;
+pub const STT_NOTYPE: u8 = 0;
+pub const STT_FUNC: u8 = 2;
+pub const STN_UNDEF: u32 = 0;
+pub const VER_FLG_BASE: u16 = 0x1;
+pub const VER_DEF_CURRENT: u16 = 1;
+pub const STV_DEFAULT: u8 = 0;
+#[cfg(target_arch = "arm")]
+pub const EM_CURRENT: u16 = 40; // EM_ARM
+#[cfg(target_arch = "x86")]
+pub const EM_CURRENT: u16 = 3; // EM_386
+#[cfg(target_arch = "powerpc")]
+pub const EM_CURRENT: u16 = 20; // EM_PPC
+#[cfg(target_arch = "powerpc64")]
+pub const EM_CURRENT: u16 = 21; // EM_PPC64
+#[cfg(target_arch = "s390x")]
+pub const EM_CURRENT: u16 = 22; // EM_S390
+#[cfg(any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+))]
+pub const EM_CURRENT: u16 = 8; // EM_MIPS
+#[cfg(target_arch = "x86_64")]
+pub const EM_CURRENT: u16 = 62; // EM_X86_64
+#[cfg(target_arch = "aarch64")]
+pub const EM_CURRENT: u16 = 183; // EM_AARCH64
+#[cfg(target_arch = "riscv64")]
+pub const EM_CURRENT: u16 = 243; // EM_RISCV
+
+#[inline]
+pub const fn ELF_ST_VISIBILITY(o: u8) -> u8 {
+ o & 0x03
+}
+
+#[inline]
+pub const fn ELF_ST_BIND(val: u8) -> u8 {
+ val >> 4
+}
+
+#[inline]
+pub const fn ELF_ST_TYPE(val: u8) -> u8 {
+ val & 0xf
+}
+
+#[repr(C)]
+pub struct Elf_Ehdr {
+ pub e_ident: [u8; EI_NIDENT],
+ pub e_type: u16,
+ pub e_machine: u16,
+ pub e_version: u32,
+ pub e_entry: usize,
+ pub e_phoff: usize,
+ pub e_shoff: usize,
+ pub e_flags: u32,
+ pub e_ehsize: u16,
+ pub e_phentsize: u16,
+ pub e_phnum: u16,
+ pub e_shentsize: u16,
+ pub e_shnum: u16,
+ pub e_shstrndx: u16,
+}
+
+#[cfg(target_pointer_width = "32")]
+#[repr(C)]
+pub struct Elf_Phdr {
+ pub p_type: u32,
+ pub p_offset: usize,
+ pub p_vaddr: usize,
+ pub p_paddr: usize,
+ pub p_filesz: usize,
+ pub p_memsz: usize,
+ pub p_flags: u32,
+ pub p_align: usize,
+}
+
+#[cfg(target_pointer_width = "64")]
+#[repr(C)]
+pub struct Elf_Phdr {
+ pub p_type: u32,
+ pub p_flags: u32,
+ pub p_offset: usize,
+ pub p_vaddr: usize,
+ pub p_paddr: usize,
+ pub p_filesz: usize,
+ pub p_memsz: usize,
+ pub p_align: usize,
+}
+
+#[cfg(target_pointer_width = "32")]
+#[repr(C)]
+pub struct Elf_Sym {
+ pub st_name: u32,
+ pub st_value: usize,
+ pub st_size: usize,
+ pub st_info: u8,
+ pub st_other: u8,
+ pub st_shndx: u16,
+}
+
+#[cfg(target_pointer_width = "64")]
+#[repr(C)]
+pub struct Elf_Sym {
+ pub st_name: u32,
+ pub st_info: u8,
+ pub st_other: u8,
+ pub st_shndx: u16,
+ pub st_value: usize,
+ pub st_size: usize,
+}
+
+#[repr(C)]
+pub struct Elf_Verdef {
+ pub vd_version: u16,
+ pub vd_flags: u16,
+ pub vd_ndx: u16,
+ pub vd_cnt: u16,
+ pub vd_hash: u32,
+ pub vd_aux: u32,
+ pub vd_next: u32,
+}
+
+#[repr(C)]
+pub struct Elf_Verdaux {
+ pub vda_name: u32,
+ pub _vda_next: u32,
+}
+
+#[cfg(target_pointer_width = "32")]
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf_Dyn {
+ pub d_tag: usize,
+ pub d_un: Elf_Dyn_Union,
+}
+
+#[cfg(target_pointer_width = "32")]
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf_Dyn_Union {
+ pub d_val: u32,
+ pub d_ptr: usize,
+}
+
+#[cfg(target_pointer_width = "64")]
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf_Dyn {
+ pub d_tag: usize,
+ pub d_un: Elf_Dyn_Union,
+}
+
+#[cfg(target_pointer_width = "64")]
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf_Dyn_Union {
+ pub d_val: u64,
+ pub d_ptr: usize,
+}
+
+#[cfg(target_pointer_width = "32")]
+#[repr(C)]
+pub struct Elf_Rela {
+ pub r_offset: usize,
+ pub r_info: u32,
+ pub r_addend: usize,
+}
+
+#[cfg(target_pointer_width = "64")]
+#[repr(C)]
+pub struct Elf_Rela {
+ pub r_offset: usize,
+ pub r_info: u64,
+ pub r_addend: usize,
+}
+
+impl Elf_Rela {
+ #[inline]
+ pub fn type_(&self) -> u32 {
+ #[cfg(target_pointer_width = "32")]
+ {
+ self.r_info & 0xff
+ }
+ #[cfg(target_pointer_width = "64")]
+ {
+ (self.r_info & 0xffff_ffff) as u32
+ }
+ }
+}
+
+#[cfg(target_pointer_width = "32")]
+#[repr(C)]
+pub struct Elf_Rel {
+ pub r_offset: usize,
+ pub r_info: u32,
+}
+
+#[cfg(target_pointer_width = "64")]
+#[repr(C)]
+pub struct Elf_Rel {
+ pub r_offset: usize,
+ pub r_info: u64,
+}
+
+impl Elf_Rel {
+ #[inline]
+ pub fn type_(&self) -> u32 {
+ #[cfg(target_pointer_width = "32")]
+ {
+ self.r_info & 0xff
+ }
+ #[cfg(target_pointer_width = "64")]
+ {
+ (self.r_info & 0xffff_ffff) as u32
+ }
+ }
+}
+
+#[cfg(target_arch = "x86_64")]
+pub const R_RELATIVE: u32 = 8; // `R_X86_64_RELATIVE`
+#[cfg(target_arch = "x86")]
+pub const R_RELATIVE: u32 = 8; // `R_386_RELATIVE`
+#[cfg(target_arch = "aarch64")]
+pub const R_RELATIVE: u32 = 1027; // `R_AARCH64_RELATIVE`
+#[cfg(target_arch = "riscv64")]
+pub const R_RELATIVE: u32 = 3; // `R_RISCV_RELATIVE`
+#[cfg(target_arch = "arm")]
+pub const R_RELATIVE: u32 = 23; // `R_ARM_RELATIVE`
+
+#[repr(C)]
+#[derive(Clone)]
+pub struct Elf_auxv_t {
+ pub a_type: usize,
+
+ // Some of the values in the auxv array are pointers, so we make `a_val` a
+ // pointer, in order to preserve their provenance. For the values which are
+ // integers, we cast this to `usize`.
+ pub a_val: *mut crate::ctypes::c_void,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/lib.rs b/vendor/linux-raw-sys-0.9.4/src/lib.rs
new file mode 100644
index 0000000..18cef6c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/lib.rs
@@ -0,0 +1,1659 @@
+#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
+#![cfg_attr(not(feature = "std"), no_std)]
+/*
+Unsafe functions no longer implicitly create unsafe blocks (RFC 2585).
+While newer bindgen versions follow this convention, we support Rust 1.63 which warns about
+this behavior. We can simply silence these warnings.
+*/
+#![allow(unused_unsafe)]
+
+#[cfg(feature = "std")]
+pub use std::os::raw as ctypes;
+
+#[cfg(all(not(feature = "std"), feature = "no_std"))]
+pub mod ctypes {
+ // The signedness of `char` is platform-specific, and we have to match
+ // what Rust's `CStr` uses.
+ #[cfg(any(
+ target_arch = "aarch64",
+ target_arch = "arm",
+ target_arch = "msp430",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "riscv32",
+ target_arch = "riscv64",
+ target_arch = "s390x",
+ ))]
+ pub type c_char = c_uchar;
+ #[cfg(any(
+ target_arch = "loongarch64",
+ target_arch = "mips",
+ target_arch = "mips64",
+ target_arch = "mips32r6",
+ target_arch = "mips64r6",
+ target_arch = "sparc",
+ target_arch = "sparc64",
+ target_arch = "x86",
+ target_arch = "x86_64",
+ target_arch = "xtensa",
+ ))]
+ pub type c_char = c_schar;
+
+ // The following assumes that Linux is always either ILP32 or LP64,
+ // and char is always 8-bit.
+ //
+ // In theory, `c_long` and `c_ulong` could be `isize` and `usize`
+ // respectively, however in practice Linux doesn't use them in that way
+ // consistently. So stick with the convention followed by `libc` and
+ // others and use the fixed-width types.
+ pub type c_schar = i8;
+ pub type c_uchar = u8;
+ pub type c_short = i16;
+ pub type c_ushort = u16;
+ pub type c_int = i32;
+ pub type c_uint = u32;
+ #[cfg(target_pointer_width = "32")]
+ pub type c_long = i32;
+ #[cfg(target_pointer_width = "32")]
+ pub type c_ulong = u32;
+ #[cfg(target_pointer_width = "64")]
+ pub type c_long = i64;
+ #[cfg(target_pointer_width = "64")]
+ pub type c_ulong = u64;
+ pub type c_longlong = i64;
+ pub type c_ulonglong = u64;
+ pub type c_float = f32;
+ pub type c_double = f64;
+
+ pub use core::ffi::c_void;
+}
+
+// Confirm that our type definitions above match the actual type definitions.
+#[cfg(test)]
+mod assertions {
+ use super::ctypes;
+ static_assertions::assert_eq_size!(ctypes::c_char, libc::c_char);
+ static_assertions::assert_type_eq_all!(ctypes::c_schar, libc::c_schar);
+ static_assertions::assert_type_eq_all!(ctypes::c_uchar, libc::c_uchar);
+ static_assertions::assert_type_eq_all!(ctypes::c_short, libc::c_short);
+ static_assertions::assert_type_eq_all!(ctypes::c_ushort, libc::c_ushort);
+ static_assertions::assert_type_eq_all!(ctypes::c_int, libc::c_int);
+ static_assertions::assert_type_eq_all!(ctypes::c_uint, libc::c_uint);
+ static_assertions::assert_type_eq_all!(ctypes::c_long, libc::c_long);
+ static_assertions::assert_type_eq_all!(ctypes::c_ulong, libc::c_ulong);
+ static_assertions::assert_type_eq_all!(ctypes::c_longlong, libc::c_longlong);
+ static_assertions::assert_type_eq_all!(ctypes::c_ulonglong, libc::c_ulonglong);
+ static_assertions::assert_type_eq_all!(ctypes::c_float, libc::c_float);
+ static_assertions::assert_type_eq_all!(ctypes::c_double, libc::c_double);
+}
+
+// We don't enable `derive_eq` in bindgen because adding `PartialEq`/`Eq` to
+// *all* structs noticeably increases compile times. But we can add a few
+// manual impls where they're especially useful.
+#[cfg(feature = "general")]
+impl PartialEq for general::__kernel_timespec {
+ fn eq(&self, other: &Self) -> bool {
+ ({
+ let Self { tv_sec, tv_nsec } = self;
+ (tv_sec, tv_nsec)
+ }) == ({
+ let Self { tv_sec, tv_nsec } = other;
+ (tv_sec, tv_nsec)
+ })
+ }
+}
+#[cfg(feature = "general")]
+impl Eq for general::__kernel_timespec {}
+
+#[cfg(feature = "net")]
+pub mod cmsg_macros {
+ use crate::ctypes::{c_long, c_uchar, c_uint};
+ use crate::net::{cmsghdr, msghdr};
+ use core::mem::size_of;
+ use core::ptr;
+
+ pub const unsafe fn CMSG_ALIGN(len: c_uint) -> c_uint {
+ let c_long_size = size_of::<c_long>() as c_uint;
+ (len + c_long_size - 1) & !(c_long_size - 1)
+ }
+
+ pub const unsafe fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar {
+ (cmsg as *mut c_uchar).add(size_of::<cmsghdr>())
+ }
+
+ pub const unsafe fn CMSG_SPACE(len: c_uint) -> c_uint {
+ size_of::<cmsghdr>() as c_uint + CMSG_ALIGN(len)
+ }
+
+ pub const unsafe fn CMSG_LEN(len: c_uint) -> c_uint {
+ size_of::<cmsghdr>() as c_uint + len
+ }
+
+ pub const unsafe fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr {
+ if (*mhdr).msg_controllen < size_of::<cmsghdr>() as _ {
+ return ptr::null_mut();
+ }
+
+ (*mhdr).msg_control as *mut cmsghdr
+ }
+
+ pub unsafe fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr {
+ // We convert from raw pointers to usize here, which may not be sound in a
+ // future version of Rust. Once the provenance rules are set in stone,
+ // it will be a good idea to give this function a once-over.
+
+ let cmsg_len = (*cmsg).cmsg_len;
+ let next_cmsg = (cmsg as *mut u8).add(CMSG_ALIGN(cmsg_len as _) as usize) as *mut cmsghdr;
+ let max = ((*mhdr).msg_control as usize) + ((*mhdr).msg_controllen as usize);
+
+ if cmsg_len < size_of::<cmsghdr>() as _ {
+ return ptr::null_mut();
+ }
+
+ if next_cmsg.add(1) as usize > max
+ || next_cmsg as usize + CMSG_ALIGN((*next_cmsg).cmsg_len as _) as usize > max
+ {
+ return ptr::null_mut();
+ }
+
+ next_cmsg
+ }
+}
+
+#[cfg(feature = "general")]
+pub mod select_macros {
+ use crate::ctypes::c_int;
+ use crate::general::__kernel_fd_set;
+ use core::mem::size_of;
+
+ pub unsafe fn FD_CLR(fd: c_int, set: *mut __kernel_fd_set) {
+ let bytes = set as *mut u8;
+ if fd >= 0 {
+ *bytes.add((fd / 8) as usize) &= !(1 << (fd % 8));
+ }
+ }
+
+ pub unsafe fn FD_SET(fd: c_int, set: *mut __kernel_fd_set) {
+ let bytes = set as *mut u8;
+ if fd >= 0 {
+ *bytes.add((fd / 8) as usize) |= 1 << (fd % 8);
+ }
+ }
+
+ pub unsafe fn FD_ISSET(fd: c_int, set: *const __kernel_fd_set) -> bool {
+ let bytes = set as *const u8;
+ if fd >= 0 {
+ *bytes.add((fd / 8) as usize) & (1 << (fd % 8)) != 0
+ } else {
+ false
+ }
+ }
+
+ pub unsafe fn FD_ZERO(set: *mut __kernel_fd_set) {
+ let bytes = set as *mut u8;
+ core::ptr::write_bytes(bytes, 0, size_of::<__kernel_fd_set>());
+ }
+}
+
+#[cfg(feature = "general")]
+pub mod signal_macros {
+ pub const SIG_DFL: super::general::__kernel_sighandler_t = None;
+
+ /// Rust doesn't currently permit us to use `transmute` to convert the
+ /// `SIG_IGN` value into a function pointer in a `const` initializer, so
+ /// we make it a function instead.
+ ///
+ #[inline]
+ pub const fn sig_ign() -> super::general::__kernel_sighandler_t {
+ // Safety: This creates an invalid pointer, but the pointer type
+ // includes `unsafe`, which covers the safety of calling it.
+ Some(unsafe {
+ core::mem::transmute::<usize, unsafe extern "C" fn(crate::ctypes::c_int)>(1)
+ })
+ }
+}
+
+#[cfg(feature = "elf")]
+pub mod elf;
+
+// The rest of this file is auto-generated!
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "arm")]
+#[path = "arm/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "aarch64")]
+#[path = "aarch64/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "csky")]
+#[path = "csky/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "loongarch64")]
+#[path = "loongarch64/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "mips")]
+#[path = "mips/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "mips64")]
+#[path = "mips64/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "mips32r6")]
+#[path = "mips32r6/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "mips64r6")]
+#[path = "mips64r6/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "powerpc")]
+#[path = "powerpc/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "powerpc64")]
+#[path = "powerpc64/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "riscv32")]
+#[path = "riscv32/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "riscv64")]
+#[path = "riscv64/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "s390x")]
+#[path = "s390x/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "sparc")]
+#[path = "sparc/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "sparc64")]
+#[path = "sparc64/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(target_arch = "x86")]
+#[path = "x86/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
+#[path = "x86_64/xdp.rs"]
+pub mod xdp;
+#[cfg(feature = "bootparam")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/bootparam.rs"]
+pub mod bootparam;
+#[cfg(feature = "btrfs")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/btrfs.rs"]
+pub mod btrfs;
+#[cfg(feature = "elf_uapi")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/elf_uapi.rs"]
+pub mod elf_uapi;
+#[cfg(feature = "errno")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/errno.rs"]
+pub mod errno;
+#[cfg(feature = "general")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/general.rs"]
+pub mod general;
+#[cfg(feature = "if_arp")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/if_arp.rs"]
+pub mod if_arp;
+#[cfg(feature = "if_ether")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/if_ether.rs"]
+pub mod if_ether;
+#[cfg(feature = "if_packet")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/if_packet.rs"]
+pub mod if_packet;
+#[cfg(feature = "image")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/image.rs"]
+pub mod image;
+#[cfg(feature = "io_uring")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/io_uring.rs"]
+pub mod io_uring;
+#[cfg(feature = "ioctl")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/ioctl.rs"]
+pub mod ioctl;
+#[cfg(feature = "landlock")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/landlock.rs"]
+pub mod landlock;
+#[cfg(feature = "loop_device")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/loop_device.rs"]
+pub mod loop_device;
+#[cfg(feature = "mempolicy")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/mempolicy.rs"]
+pub mod mempolicy;
+#[cfg(feature = "net")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/net.rs"]
+pub mod net;
+#[cfg(feature = "netlink")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/netlink.rs"]
+pub mod netlink;
+#[cfg(feature = "prctl")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/prctl.rs"]
+pub mod prctl;
+#[cfg(feature = "ptrace")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/ptrace.rs"]
+pub mod ptrace;
+#[cfg(feature = "system")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/system.rs"]
+pub mod system;
+#[cfg(feature = "xdp")]
+#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
+#[path = "x32/xdp.rs"]
+pub mod xdp;
diff --git a/vendor/linux-raw-sys-0.9.4/src/loongarch64/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/bootparam.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/bootparam.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/loongarch64/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/btrfs.rs
new file mode 100644
index 0000000..941a4a2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/btrfs.rs
@@ -0,0 +1,1868 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const _IOC_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/loongarch64/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/elf_uapi.rs
new file mode 100644
index 0000000..d1e4a9f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/elf_uapi.rs
@@ -0,0 +1,524 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/loongarch64/errno.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/errno.rs
new file mode 100644
index 0000000..5b018a2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/errno.rs
@@ -0,0 +1,135 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
diff --git a/vendor/linux-raw-sys-0.9.4/src/loongarch64/general.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/general.rs
new file mode 100644
index 0000000..837e26f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/general.rs
@@ -0,0 +1,3174 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type cap_user_header_t = *mut __user_cap_header_struct;
+pub type cap_user_data_t = *mut __user_cap_data_struct;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+pub type old_sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type __fsword_t = __kernel_long_t;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fsid_t {
+pub val: [crate::ctypes::c_int; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __user_cap_header_struct {
+pub version: __u32,
+pub pid: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __user_cap_data_struct {
+pub effective: __u32,
+pub permitted: __u32,
+pub inheritable: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_cap_data {
+pub magic_etc: __le32,
+pub data: [vfs_cap_data__bindgen_ty_1; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_cap_data__bindgen_ty_1 {
+pub permitted: __le32,
+pub inheritable: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_ns_cap_data {
+pub magic_etc: __le32,
+pub data: [vfs_ns_cap_data__bindgen_ty_1; 2usize],
+pub rootid: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_ns_cap_data__bindgen_ty_1 {
+pub permitted: __le32,
+pub inheritable: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct f_owner_ex {
+pub type_: crate::ctypes::c_int,
+pub pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct flock {
+pub l_type: crate::ctypes::c_short,
+pub l_whence: crate::ctypes::c_short,
+pub l_start: __kernel_off_t,
+pub l_len: __kernel_off_t,
+pub l_pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct flock64 {
+pub l_type: crate::ctypes::c_short,
+pub l_whence: crate::ctypes::c_short,
+pub l_start: __kernel_loff_t,
+pub l_len: __kernel_loff_t,
+pub l_pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct open_how {
+pub flags: __u64,
+pub mode: __u64,
+pub resolve: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct epoll_event {
+pub events: __poll_t,
+pub data: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 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; 1usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaction {
+pub sa_handler: __sighandler_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_mask: sigset_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaltstack {
+pub ss_sp: *mut crate::ctypes::c_void,
+pub ss_flags: crate::ctypes::c_int,
+pub ss_size: __kernel_size_t,
+}
+#[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_errno: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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; 19usize],
+}
+#[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; 19usize],
+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; 19usize],
+pub c_ispeed: speed_t,
+pub c_ospeed: speed_t,
+}
+#[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_uchar,
+pub c_cc: [crate::ctypes::c_uchar; 8usize],
+}
+#[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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulong,
+pub d_off: crate::ctypes::c_long,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_ulong,
+pub st_ino: crate::ctypes::c_ulong,
+pub st_mode: crate::ctypes::c_uint,
+pub st_nlink: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_uint,
+pub st_gid: crate::ctypes::c_uint,
+pub st_rdev: crate::ctypes::c_ulong,
+pub __pad1: crate::ctypes::c_ulong,
+pub st_size: crate::ctypes::c_long,
+pub st_blksize: crate::ctypes::c_int,
+pub __pad2: crate::ctypes::c_int,
+pub st_blocks: crate::ctypes::c_long,
+pub st_atime: crate::ctypes::c_long,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_long,
+pub st_mtime_nsec: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_long,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub __unused4: crate::ctypes::c_uint,
+pub __unused5: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: __kernel_long_t,
+pub f_bsize: __kernel_long_t,
+pub f_blocks: __kernel_long_t,
+pub f_bfree: __kernel_long_t,
+pub f_bavail: __kernel_long_t,
+pub f_files: __kernel_long_t,
+pub f_ffree: __kernel_long_t,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __kernel_long_t,
+pub f_frsize: __kernel_long_t,
+pub f_flags: __kernel_long_t,
+pub f_spare: [__kernel_long_t; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: __kernel_long_t,
+pub f_bsize: __kernel_long_t,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __kernel_long_t,
+pub f_frsize: __kernel_long_t,
+pub f_flags: __kernel_long_t,
+pub f_spare: [__kernel_long_t; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct compat_statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[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; 1usize],
+}
+#[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 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+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_ACCMODE: u32 = 3;
+pub const O_RDONLY: u32 = 0;
+pub const O_WRONLY: u32 = 1;
+pub const O_RDWR: u32 = 2;
+pub const O_CREAT: u32 = 64;
+pub const O_EXCL: u32 = 128;
+pub const O_NOCTTY: u32 = 256;
+pub const O_TRUNC: u32 = 512;
+pub const O_APPEND: u32 = 1024;
+pub const O_NONBLOCK: u32 = 2048;
+pub const O_DSYNC: u32 = 4096;
+pub const FASYNC: u32 = 8192;
+pub const O_DIRECT: u32 = 16384;
+pub const O_LARGEFILE: u32 = 32768;
+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_SYNC: u32 = 1048576;
+pub const O_SYNC: u32 = 1052672;
+pub const O_PATH: u32 = 2097152;
+pub const __O_TMPFILE: u32 = 4194304;
+pub const O_TMPFILE: u32 = 4259840;
+pub const O_NDELAY: u32 = 2048;
+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_GETLK: u32 = 5;
+pub const F_SETLK: u32 = 6;
+pub const F_SETLKW: u32 = 7;
+pub const F_SETOWN: u32 = 8;
+pub const F_GETOWN: u32 = 9;
+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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 = 2048;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+pub const PROT_READ: u32 = 1;
+pub const PROT_WRITE: u32 = 2;
+pub const PROT_EXEC: u32 = 4;
+pub const PROT_SEM: u32 = 8;
+pub const PROT_NONE: u32 = 0;
+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_ANONYMOUS: u32 = 32;
+pub const MAP_POPULATE: u32 = 32768;
+pub const MAP_NONBLOCK: u32 = 65536;
+pub const MAP_STACK: u32 = 131072;
+pub const MAP_HUGETLB: u32 = 262144;
+pub const MAP_SYNC: u32 = 524288;
+pub const MAP_FIXED_NOREPLACE: u32 = 1048576;
+pub const MAP_UNINITIALIZED: u32 = 67108864;
+pub const MLOCK_ONFAULT: u32 = 1;
+pub const MS_ASYNC: u32 = 1;
+pub const MS_INVALIDATE: u32 = 2;
+pub const MS_SYNC: u32 = 4;
+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_HWPOISON: u32 = 100;
+pub const MADV_SOFT_OFFLINE: u32 = 101;
+pub const MADV_MERGEABLE: u32 = 12;
+pub const MADV_UNMERGEABLE: u32 = 13;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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 MAP_GROWSDOWN: u32 = 256;
+pub const MAP_DENYWRITE: u32 = 2048;
+pub const MAP_EXECUTABLE: u32 = 4096;
+pub const MAP_LOCKED: u32 = 8192;
+pub const MAP_NORESERVE: u32 = 16384;
+pub const MCL_CURRENT: u32 = 1;
+pub const MCL_FUTURE: u32 = 2;
+pub const MCL_ONFAULT: u32 = 4;
+pub const SHADOW_STACK_SET_TOKEN: u32 = 1;
+pub const SHADOW_STACK_SET_MARKER: u32 = 2;
+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_DROPPABLE: u32 = 8;
+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 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 POLLWRNORM: u32 = 256;
+pub const POLLWRBAND: u32 = 512;
+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 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_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_RSS: u32 = 5;
+pub const RLIMIT_NPROC: u32 = 6;
+pub const RLIMIT_NOFILE: u32 = 7;
+pub const RLIMIT_MEMLOCK: u32 = 8;
+pub const RLIMIT_AS: u32 = 9;
+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_EXT: u32 = 7;
+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 MINSIGSTKSZ: u32 = 4096;
+pub const SIGSTKSZ: u32 = 16384;
+pub const _NSIG: u32 = 64;
+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 SIGABRT: u32 = 6;
+pub const SIGIOT: u32 = 6;
+pub const SIGBUS: u32 = 7;
+pub const SIGFPE: u32 = 8;
+pub const SIGKILL: u32 = 9;
+pub const SIGUSR1: u32 = 10;
+pub const SIGSEGV: u32 = 11;
+pub const SIGUSR2: u32 = 12;
+pub const SIGPIPE: u32 = 13;
+pub const SIGALRM: u32 = 14;
+pub const SIGTERM: u32 = 15;
+pub const SIGSTKFLT: u32 = 16;
+pub const SIGCHLD: u32 = 17;
+pub const SIGCONT: u32 = 18;
+pub const SIGSTOP: u32 = 19;
+pub const SIGTSTP: u32 = 20;
+pub const SIGTTIN: u32 = 21;
+pub const SIGTTOU: u32 = 22;
+pub const SIGURG: u32 = 23;
+pub const SIGXCPU: u32 = 24;
+pub const SIGXFSZ: u32 = 25;
+pub const SIGVTALRM: u32 = 26;
+pub const SIGPROF: u32 = 27;
+pub const SIGWINCH: u32 = 28;
+pub const SIGIO: u32 = 29;
+pub const SIGPOLL: u32 = 29;
+pub const SIGPWR: u32 = 30;
+pub const SIGSYS: u32 = 31;
+pub const SIGUNUSED: u32 = 31;
+pub const SIGRTMIN: u32 = 32;
+pub const SIGRTMAX: u32 = 64;
+pub const SA_NOCLDSTOP: u32 = 1;
+pub const SA_NOCLDWAIT: u32 = 2;
+pub const SA_SIGINFO: u32 = 4;
+pub const SA_UNSUPPORTED: u32 = 1024;
+pub const SA_EXPOSE_TAGBITS: u32 = 2048;
+pub const SA_ONSTACK: u32 = 134217728;
+pub const SA_RESTART: u32 = 268435456;
+pub const SA_NODEFER: u32 = 1073741824;
+pub const SA_RESETHAND: u32 = 2147483648;
+pub const SA_NOMASK: u32 = 1073741824;
+pub const SA_ONESHOT: u32 = 2147483648;
+pub const SIG_BLOCK: u32 = 0;
+pub const SIG_UNBLOCK: u32 = 1;
+pub const SIG_SETMASK: u32 = 2;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 = 19;
+pub const VINTR: u32 = 0;
+pub const VQUIT: u32 = 1;
+pub const VERASE: u32 = 2;
+pub const VKILL: u32 = 3;
+pub const VEOF: u32 = 4;
+pub const VTIME: u32 = 5;
+pub const VMIN: u32 = 6;
+pub const VSWTC: u32 = 7;
+pub const VSTART: u32 = 8;
+pub const VSTOP: u32 = 9;
+pub const VSUSP: u32 = 10;
+pub const VEOL: u32 = 11;
+pub const VREPRINT: u32 = 12;
+pub const VDISCARD: u32 = 13;
+pub const VWERASE: u32 = 14;
+pub const VLNEXT: u32 = 15;
+pub const VEOL2: u32 = 16;
+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 TOSTOP: u32 = 256;
+pub const ECHOCTL: u32 = 512;
+pub const ECHOPRT: u32 = 1024;
+pub const ECHOKE: u32 = 2048;
+pub const FLUSHO: u32 = 4096;
+pub const PENDIN: u32 = 16384;
+pub const IEXTEN: u32 = 32768;
+pub const EXTPROC: u32 = 65536;
+pub const TCSANOW: u32 = 0;
+pub const TCSADRAIN: u32 = 1;
+pub const TCSAFLUSH: u32 = 2;
+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 TIOCSER_TEMT: u32 = 1;
+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 = 8;
+pub const TIOCM_SR: u32 = 16;
+pub const TIOCM_CTS: u32 = 32;
+pub const TIOCM_CAR: u32 = 64;
+pub const TIOCM_RNG: u32 = 128;
+pub const TIOCM_DSR: u32 = 256;
+pub const TIOCM_CD: u32 = 64;
+pub const TIOCM_RI: u32 = 128;
+pub const TIOCM_OUT1: u32 = 8192;
+pub const TIOCM_OUT2: u32 = 16384;
+pub const TIOCM_LOOP: u32 = 32768;
+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 UIO_FASTIOV: u32 = 8;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const __NR_io_setup: u32 = 0;
+pub const __NR_io_destroy: u32 = 1;
+pub const __NR_io_submit: u32 = 2;
+pub const __NR_io_cancel: u32 = 3;
+pub const __NR_io_getevents: u32 = 4;
+pub const __NR_setxattr: u32 = 5;
+pub const __NR_lsetxattr: u32 = 6;
+pub const __NR_fsetxattr: u32 = 7;
+pub const __NR_getxattr: u32 = 8;
+pub const __NR_lgetxattr: u32 = 9;
+pub const __NR_fgetxattr: u32 = 10;
+pub const __NR_listxattr: u32 = 11;
+pub const __NR_llistxattr: u32 = 12;
+pub const __NR_flistxattr: u32 = 13;
+pub const __NR_removexattr: u32 = 14;
+pub const __NR_lremovexattr: u32 = 15;
+pub const __NR_fremovexattr: u32 = 16;
+pub const __NR_getcwd: u32 = 17;
+pub const __NR_lookup_dcookie: u32 = 18;
+pub const __NR_eventfd2: u32 = 19;
+pub const __NR_epoll_create1: u32 = 20;
+pub const __NR_epoll_ctl: u32 = 21;
+pub const __NR_epoll_pwait: u32 = 22;
+pub const __NR_dup: u32 = 23;
+pub const __NR_dup3: u32 = 24;
+pub const __NR_fcntl: u32 = 25;
+pub const __NR_inotify_init1: u32 = 26;
+pub const __NR_inotify_add_watch: u32 = 27;
+pub const __NR_inotify_rm_watch: u32 = 28;
+pub const __NR_ioctl: u32 = 29;
+pub const __NR_ioprio_set: u32 = 30;
+pub const __NR_ioprio_get: u32 = 31;
+pub const __NR_flock: u32 = 32;
+pub const __NR_mknodat: u32 = 33;
+pub const __NR_mkdirat: u32 = 34;
+pub const __NR_unlinkat: u32 = 35;
+pub const __NR_symlinkat: u32 = 36;
+pub const __NR_linkat: u32 = 37;
+pub const __NR_umount2: u32 = 39;
+pub const __NR_mount: u32 = 40;
+pub const __NR_pivot_root: u32 = 41;
+pub const __NR_nfsservctl: u32 = 42;
+pub const __NR_statfs: u32 = 43;
+pub const __NR_fstatfs: u32 = 44;
+pub const __NR_truncate: u32 = 45;
+pub const __NR_ftruncate: u32 = 46;
+pub const __NR_fallocate: u32 = 47;
+pub const __NR_faccessat: u32 = 48;
+pub const __NR_chdir: u32 = 49;
+pub const __NR_fchdir: u32 = 50;
+pub const __NR_chroot: u32 = 51;
+pub const __NR_fchmod: u32 = 52;
+pub const __NR_fchmodat: u32 = 53;
+pub const __NR_fchownat: u32 = 54;
+pub const __NR_fchown: u32 = 55;
+pub const __NR_openat: u32 = 56;
+pub const __NR_close: u32 = 57;
+pub const __NR_vhangup: u32 = 58;
+pub const __NR_pipe2: u32 = 59;
+pub const __NR_quotactl: u32 = 60;
+pub const __NR_getdents64: u32 = 61;
+pub const __NR_lseek: u32 = 62;
+pub const __NR_read: u32 = 63;
+pub const __NR_write: u32 = 64;
+pub const __NR_readv: u32 = 65;
+pub const __NR_writev: u32 = 66;
+pub const __NR_pread64: u32 = 67;
+pub const __NR_pwrite64: u32 = 68;
+pub const __NR_preadv: u32 = 69;
+pub const __NR_pwritev: u32 = 70;
+pub const __NR_sendfile: u32 = 71;
+pub const __NR_pselect6: u32 = 72;
+pub const __NR_ppoll: u32 = 73;
+pub const __NR_signalfd4: u32 = 74;
+pub const __NR_vmsplice: u32 = 75;
+pub const __NR_splice: u32 = 76;
+pub const __NR_tee: u32 = 77;
+pub const __NR_readlinkat: u32 = 78;
+pub const __NR_newfstatat: u32 = 79;
+pub const __NR_fstat: u32 = 80;
+pub const __NR_sync: u32 = 81;
+pub const __NR_fsync: u32 = 82;
+pub const __NR_fdatasync: u32 = 83;
+pub const __NR_sync_file_range: u32 = 84;
+pub const __NR_timerfd_create: u32 = 85;
+pub const __NR_timerfd_settime: u32 = 86;
+pub const __NR_timerfd_gettime: u32 = 87;
+pub const __NR_utimensat: u32 = 88;
+pub const __NR_acct: u32 = 89;
+pub const __NR_capget: u32 = 90;
+pub const __NR_capset: u32 = 91;
+pub const __NR_personality: u32 = 92;
+pub const __NR_exit: u32 = 93;
+pub const __NR_exit_group: u32 = 94;
+pub const __NR_waitid: u32 = 95;
+pub const __NR_set_tid_address: u32 = 96;
+pub const __NR_unshare: u32 = 97;
+pub const __NR_futex: u32 = 98;
+pub const __NR_set_robust_list: u32 = 99;
+pub const __NR_get_robust_list: u32 = 100;
+pub const __NR_nanosleep: u32 = 101;
+pub const __NR_getitimer: u32 = 102;
+pub const __NR_setitimer: u32 = 103;
+pub const __NR_kexec_load: u32 = 104;
+pub const __NR_init_module: u32 = 105;
+pub const __NR_delete_module: u32 = 106;
+pub const __NR_timer_create: u32 = 107;
+pub const __NR_timer_gettime: u32 = 108;
+pub const __NR_timer_getoverrun: u32 = 109;
+pub const __NR_timer_settime: u32 = 110;
+pub const __NR_timer_delete: u32 = 111;
+pub const __NR_clock_settime: u32 = 112;
+pub const __NR_clock_gettime: u32 = 113;
+pub const __NR_clock_getres: u32 = 114;
+pub const __NR_clock_nanosleep: u32 = 115;
+pub const __NR_syslog: u32 = 116;
+pub const __NR_ptrace: u32 = 117;
+pub const __NR_sched_setparam: u32 = 118;
+pub const __NR_sched_setscheduler: u32 = 119;
+pub const __NR_sched_getscheduler: u32 = 120;
+pub const __NR_sched_getparam: u32 = 121;
+pub const __NR_sched_setaffinity: u32 = 122;
+pub const __NR_sched_getaffinity: u32 = 123;
+pub const __NR_sched_yield: u32 = 124;
+pub const __NR_sched_get_priority_max: u32 = 125;
+pub const __NR_sched_get_priority_min: u32 = 126;
+pub const __NR_sched_rr_get_interval: u32 = 127;
+pub const __NR_restart_syscall: u32 = 128;
+pub const __NR_kill: u32 = 129;
+pub const __NR_tkill: u32 = 130;
+pub const __NR_tgkill: u32 = 131;
+pub const __NR_sigaltstack: u32 = 132;
+pub const __NR_rt_sigsuspend: u32 = 133;
+pub const __NR_rt_sigaction: u32 = 134;
+pub const __NR_rt_sigprocmask: u32 = 135;
+pub const __NR_rt_sigpending: u32 = 136;
+pub const __NR_rt_sigtimedwait: u32 = 137;
+pub const __NR_rt_sigqueueinfo: u32 = 138;
+pub const __NR_rt_sigreturn: u32 = 139;
+pub const __NR_setpriority: u32 = 140;
+pub const __NR_getpriority: u32 = 141;
+pub const __NR_reboot: u32 = 142;
+pub const __NR_setregid: u32 = 143;
+pub const __NR_setgid: u32 = 144;
+pub const __NR_setreuid: u32 = 145;
+pub const __NR_setuid: u32 = 146;
+pub const __NR_setresuid: u32 = 147;
+pub const __NR_getresuid: u32 = 148;
+pub const __NR_setresgid: u32 = 149;
+pub const __NR_getresgid: u32 = 150;
+pub const __NR_setfsuid: u32 = 151;
+pub const __NR_setfsgid: u32 = 152;
+pub const __NR_times: u32 = 153;
+pub const __NR_setpgid: u32 = 154;
+pub const __NR_getpgid: u32 = 155;
+pub const __NR_getsid: u32 = 156;
+pub const __NR_setsid: u32 = 157;
+pub const __NR_getgroups: u32 = 158;
+pub const __NR_setgroups: u32 = 159;
+pub const __NR_uname: u32 = 160;
+pub const __NR_sethostname: u32 = 161;
+pub const __NR_setdomainname: u32 = 162;
+pub const __NR_getrusage: u32 = 165;
+pub const __NR_umask: u32 = 166;
+pub const __NR_prctl: u32 = 167;
+pub const __NR_getcpu: u32 = 168;
+pub const __NR_gettimeofday: u32 = 169;
+pub const __NR_settimeofday: u32 = 170;
+pub const __NR_adjtimex: u32 = 171;
+pub const __NR_getpid: u32 = 172;
+pub const __NR_getppid: u32 = 173;
+pub const __NR_getuid: u32 = 174;
+pub const __NR_geteuid: u32 = 175;
+pub const __NR_getgid: u32 = 176;
+pub const __NR_getegid: u32 = 177;
+pub const __NR_gettid: u32 = 178;
+pub const __NR_sysinfo: u32 = 179;
+pub const __NR_mq_open: u32 = 180;
+pub const __NR_mq_unlink: u32 = 181;
+pub const __NR_mq_timedsend: u32 = 182;
+pub const __NR_mq_timedreceive: u32 = 183;
+pub const __NR_mq_notify: u32 = 184;
+pub const __NR_mq_getsetattr: u32 = 185;
+pub const __NR_msgget: u32 = 186;
+pub const __NR_msgctl: u32 = 187;
+pub const __NR_msgrcv: u32 = 188;
+pub const __NR_msgsnd: u32 = 189;
+pub const __NR_semget: u32 = 190;
+pub const __NR_semctl: u32 = 191;
+pub const __NR_semtimedop: u32 = 192;
+pub const __NR_semop: u32 = 193;
+pub const __NR_shmget: u32 = 194;
+pub const __NR_shmctl: u32 = 195;
+pub const __NR_shmat: u32 = 196;
+pub const __NR_shmdt: u32 = 197;
+pub const __NR_socket: u32 = 198;
+pub const __NR_socketpair: u32 = 199;
+pub const __NR_bind: u32 = 200;
+pub const __NR_listen: u32 = 201;
+pub const __NR_accept: u32 = 202;
+pub const __NR_connect: u32 = 203;
+pub const __NR_getsockname: u32 = 204;
+pub const __NR_getpeername: u32 = 205;
+pub const __NR_sendto: u32 = 206;
+pub const __NR_recvfrom: u32 = 207;
+pub const __NR_setsockopt: u32 = 208;
+pub const __NR_getsockopt: u32 = 209;
+pub const __NR_shutdown: u32 = 210;
+pub const __NR_sendmsg: u32 = 211;
+pub const __NR_recvmsg: u32 = 212;
+pub const __NR_readahead: u32 = 213;
+pub const __NR_brk: u32 = 214;
+pub const __NR_munmap: u32 = 215;
+pub const __NR_mremap: u32 = 216;
+pub const __NR_add_key: u32 = 217;
+pub const __NR_request_key: u32 = 218;
+pub const __NR_keyctl: u32 = 219;
+pub const __NR_clone: u32 = 220;
+pub const __NR_execve: u32 = 221;
+pub const __NR_mmap: u32 = 222;
+pub const __NR_fadvise64: u32 = 223;
+pub const __NR_swapon: u32 = 224;
+pub const __NR_swapoff: u32 = 225;
+pub const __NR_mprotect: u32 = 226;
+pub const __NR_msync: u32 = 227;
+pub const __NR_mlock: u32 = 228;
+pub const __NR_munlock: u32 = 229;
+pub const __NR_mlockall: u32 = 230;
+pub const __NR_munlockall: u32 = 231;
+pub const __NR_mincore: u32 = 232;
+pub const __NR_madvise: u32 = 233;
+pub const __NR_remap_file_pages: u32 = 234;
+pub const __NR_mbind: u32 = 235;
+pub const __NR_get_mempolicy: u32 = 236;
+pub const __NR_set_mempolicy: u32 = 237;
+pub const __NR_migrate_pages: u32 = 238;
+pub const __NR_move_pages: u32 = 239;
+pub const __NR_rt_tgsigqueueinfo: u32 = 240;
+pub const __NR_perf_event_open: u32 = 241;
+pub const __NR_accept4: u32 = 242;
+pub const __NR_recvmmsg: u32 = 243;
+pub const __NR_wait4: u32 = 260;
+pub const __NR_prlimit64: u32 = 261;
+pub const __NR_fanotify_init: u32 = 262;
+pub const __NR_fanotify_mark: u32 = 263;
+pub const __NR_name_to_handle_at: u32 = 264;
+pub const __NR_open_by_handle_at: u32 = 265;
+pub const __NR_clock_adjtime: u32 = 266;
+pub const __NR_syncfs: u32 = 267;
+pub const __NR_setns: u32 = 268;
+pub const __NR_sendmmsg: u32 = 269;
+pub const __NR_process_vm_readv: u32 = 270;
+pub const __NR_process_vm_writev: u32 = 271;
+pub const __NR_kcmp: u32 = 272;
+pub const __NR_finit_module: u32 = 273;
+pub const __NR_sched_setattr: u32 = 274;
+pub const __NR_sched_getattr: u32 = 275;
+pub const __NR_renameat2: u32 = 276;
+pub const __NR_seccomp: u32 = 277;
+pub const __NR_getrandom: u32 = 278;
+pub const __NR_memfd_create: u32 = 279;
+pub const __NR_bpf: u32 = 280;
+pub const __NR_execveat: u32 = 281;
+pub const __NR_userfaultfd: u32 = 282;
+pub const __NR_membarrier: u32 = 283;
+pub const __NR_mlock2: u32 = 284;
+pub const __NR_copy_file_range: u32 = 285;
+pub const __NR_preadv2: u32 = 286;
+pub const __NR_pwritev2: u32 = 287;
+pub const __NR_pkey_mprotect: u32 = 288;
+pub const __NR_pkey_alloc: u32 = 289;
+pub const __NR_pkey_free: u32 = 290;
+pub const __NR_statx: u32 = 291;
+pub const __NR_io_pgetevents: u32 = 292;
+pub const __NR_rseq: u32 = 293;
+pub const __NR_kexec_file_load: u32 = 294;
+pub const __NR_pidfd_send_signal: u32 = 424;
+pub const __NR_io_uring_setup: u32 = 425;
+pub const __NR_io_uring_enter: u32 = 426;
+pub const __NR_io_uring_register: u32 = 427;
+pub const __NR_open_tree: u32 = 428;
+pub const __NR_move_mount: u32 = 429;
+pub const __NR_fsopen: u32 = 430;
+pub const __NR_fsconfig: u32 = 431;
+pub const __NR_fsmount: u32 = 432;
+pub const __NR_fspick: u32 = 433;
+pub const __NR_pidfd_open: u32 = 434;
+pub const __NR_clone3: u32 = 435;
+pub const __NR_close_range: u32 = 436;
+pub const __NR_openat2: u32 = 437;
+pub const __NR_pidfd_getfd: u32 = 438;
+pub const __NR_faccessat2: u32 = 439;
+pub const __NR_process_madvise: u32 = 440;
+pub const __NR_epoll_pwait2: u32 = 441;
+pub const __NR_mount_setattr: u32 = 442;
+pub const __NR_quotactl_fd: u32 = 443;
+pub const __NR_landlock_create_ruleset: u32 = 444;
+pub const __NR_landlock_add_rule: u32 = 445;
+pub const __NR_landlock_restrict_self: u32 = 446;
+pub const __NR_process_mrelease: u32 = 448;
+pub const __NR_futex_waitv: u32 = 449;
+pub const __NR_set_mempolicy_home_node: u32 = 450;
+pub const __NR_cachestat: u32 = 451;
+pub const __NR_fchmodat2: u32 = 452;
+pub const __NR_map_shadow_stack: u32 = 453;
+pub const __NR_futex_wake: u32 = 454;
+pub const __NR_futex_wait: u32 = 455;
+pub const __NR_futex_requeue: u32 = 456;
+pub const __NR_statmount: u32 = 457;
+pub const __NR_listmount: u32 = 458;
+pub const __NR_lsm_get_self_attr: u32 = 459;
+pub const __NR_lsm_set_self_attr: u32 = 460;
+pub const __NR_lsm_list_modules: u32 = 461;
+pub const __NR_mseal: u32 = 462;
+pub const __NR_setxattrat: u32 = 463;
+pub const __NR_getxattrat: u32 = 464;
+pub const __NR_listxattrat: u32 = 465;
+pub const __NR_removexattrat: u32 = 466;
+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 = 2048;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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 = 2048;
+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 = 526336;
+pub const TFD_CREATE_FLAGS: u32 = 526336;
+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 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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd {
+MEMBARRIER_CMD_QUERY = 0,
+MEMBARRIER_CMD_GLOBAL = 1,
+MEMBARRIER_CMD_GLOBAL_EXPEDITED = 2,
+MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 4,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED = 8,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 16,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 32,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 64,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 128,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 256,
+MEMBARRIER_CMD_GET_REGISTRATIONS = 512,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd_flag {
+MEMBARRIER_CMD_FLAG_CPU = 1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_get_policy_ex_arg__bindgen_ty_1 {
+pub version: __u8,
+pub v1: fscrypt_policy_v1,
+pub v2: fscrypt_policy_v2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_key_specifier__bindgen_ty_1 {
+pub __reserved: [__u8; 32usize],
+pub descriptor: [__u8; 8usize],
+pub identifier: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigval {
+pub sival_int: crate::ctypes::c_int,
+pub sival_ptr: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields {
+pub _kill: __sifields__bindgen_ty_1,
+pub _timer: __sifields__bindgen_ty_2,
+pub _rt: __sifields__bindgen_ty_3,
+pub _sigchld: __sifields__bindgen_ty_4,
+pub _sigfault: __sifields__bindgen_ty_5,
+pub _sigpoll: __sifields__bindgen_ty_6,
+pub _sigsys: __sifields__bindgen_ty_7,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields__bindgen_ty_5__bindgen_ty_1 {
+pub _trapno: crate::ctypes::c_int,
+pub _addr_lsb: crate::ctypes::c_short,
+pub _addr_bnd: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1,
+pub _addr_pkey: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2,
+pub _perf: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union siginfo__bindgen_ty_1 {
+pub __bindgen_anon_1: siginfo__bindgen_ty_1__bindgen_ty_1,
+pub _si_pad: [crate::ctypes::c_int; 32usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigevent__bindgen_ty_1 {
+pub _pad: [crate::ctypes::c_int; 12usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/loongarch64/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/if_arp.rs
new file mode 100644
index 0000000..fcb2f48
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/if_arp.rs
@@ -0,0 +1,2757 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 id: __u16,
+pub type_flags: __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 __BITS_PER_LONG_LONG: u32 = 64;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/loongarch64/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/if_ether.rs
new file mode 100644
index 0000000..c1f4e6d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/if_ether.rs
@@ -0,0 +1,170 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/loongarch64/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/if_packet.rs
new file mode 100644
index 0000000..76a0a3e
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/if_packet.rs
@@ -0,0 +1,311 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 id: __u16,
+pub type_flags: __u16,
+pub max_num_members: __u32,
+}
+pub const __LITTLE_ENDIAN: u32 = 1234;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/loongarch64/image.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/loongarch64/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/io_uring.rs
new file mode 100644
index 0000000..0558dcb
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/io_uring.rs
@@ -0,0 +1,1336 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/loongarch64/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/ioctl.rs
new file mode 100644
index 0000000..b64fa0f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/ioctl.rs
@@ -0,0 +1,1489 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub const FIONREAD: u32 = 21531;
+pub const FIONBIO: u32 = 21537;
+pub const FIOCLEX: u32 = 21585;
+pub const FIONCLEX: u32 = 21584;
+pub const FIOASYNC: u32 = 21586;
+pub const FIOQSIZE: u32 = 21600;
+pub const TCXONC: u32 = 21514;
+pub const TCFLSH: u32 = 21515;
+pub const TIOCSCTTY: u32 = 21518;
+pub const TIOCSPGRP: u32 = 21520;
+pub const TIOCOUTQ: u32 = 21521;
+pub const TIOCSTI: u32 = 21522;
+pub const TIOCSWINSZ: u32 = 21524;
+pub const TIOCMGET: u32 = 21525;
+pub const TIOCMBIS: u32 = 21526;
+pub const TIOCMBIC: u32 = 21527;
+pub const TIOCMSET: u32 = 21528;
+pub const TIOCSSOFTCAR: u32 = 21530;
+pub const TIOCLINUX: u32 = 21532;
+pub const TIOCCONS: u32 = 21533;
+pub const TIOCSSERIAL: u32 = 21535;
+pub const TIOCPKT: u32 = 21536;
+pub const TIOCNOTTY: u32 = 21538;
+pub const TIOCSETD: u32 = 21539;
+pub const TIOCSBRK: u32 = 21543;
+pub const TIOCCBRK: u32 = 21544;
+pub const TIOCSRS485: u32 = 21551;
+pub const TIOCSPTLCK: u32 = 1074025521;
+pub const TIOCSIG: u32 = 1074025526;
+pub const TIOCVHANGUP: u32 = 21559;
+pub const TIOCSERCONFIG: u32 = 21587;
+pub const TIOCSERGWILD: u32 = 21588;
+pub const TIOCSERSWILD: u32 = 21589;
+pub const TIOCSLCKTRMIOS: u32 = 21591;
+pub const TIOCSERGSTRUCT: u32 = 21592;
+pub const TIOCSERGETLSR: u32 = 21593;
+pub const TIOCSERGETMULTI: u32 = 21594;
+pub const TIOCSERSETMULTI: u32 = 21595;
+pub const TIOCMIWAIT: u32 = 21596;
+pub const TCGETS: u32 = 21505;
+pub const TCGETA: u32 = 21509;
+pub const TCSBRK: u32 = 21513;
+pub const TCSBRKP: u32 = 21541;
+pub const TCSETA: u32 = 21510;
+pub const TCSETAF: u32 = 21512;
+pub const TCSETAW: u32 = 21511;
+pub const TIOCEXCL: u32 = 21516;
+pub const TIOCNXCL: u32 = 21517;
+pub const TIOCGDEV: u32 = 2147767346;
+pub const TIOCGEXCL: u32 = 2147767360;
+pub const TIOCGICOUNT: u32 = 21597;
+pub const TIOCGLCKTRMIOS: u32 = 21590;
+pub const TIOCGPGRP: u32 = 21519;
+pub const TIOCGPKT: u32 = 2147767352;
+pub const TIOCGPTLCK: u32 = 2147767353;
+pub const TIOCGPTN: u32 = 2147767344;
+pub const TIOCGPTPEER: u32 = 21569;
+pub const TIOCGRS485: u32 = 21550;
+pub const TIOCGSERIAL: u32 = 21534;
+pub const TIOCGSID: u32 = 21545;
+pub const TIOCGSOFTCAR: u32 = 21529;
+pub const TIOCGWINSZ: u32 = 21523;
+pub const TCGETS2: u32 = 2150388778;
+pub const TCGETX: u32 = 21554;
+pub const TCSETS: u32 = 21506;
+pub const TCSETS2: u32 = 1076646955;
+pub const TCSETSF: u32 = 21508;
+pub const TCSETSF2: u32 = 1076646957;
+pub const TCSETSW: u32 = 21507;
+pub const TCSETSW2: u32 = 1076646956;
+pub const TCSETX: u32 = 21555;
+pub const TCSETXF: u32 = 21556;
+pub const TCSETXW: u32 = 21557;
+pub const TIOCGETD: u32 = 21540;
+pub const MTIOCGET: u32 = 2150657282;
+pub const BLKSSZGET: u32 = 4712;
+pub const BLKPBSZGET: u32 = 4731;
+pub const BLKROSET: u32 = 4701;
+pub const BLKROGET: u32 = 4702;
+pub const BLKRRPART: u32 = 4703;
+pub const BLKGETSIZE: u32 = 4704;
+pub const BLKFLSBUF: u32 = 4705;
+pub const BLKRASET: u32 = 4706;
+pub const BLKRAGET: u32 = 4707;
+pub const BLKFRASET: u32 = 4708;
+pub const BLKFRAGET: u32 = 4709;
+pub const BLKSECTSET: u32 = 4710;
+pub const BLKSECTGET: u32 = 4711;
+pub const BLKPG: u32 = 4713;
+pub const BLKBSZGET: u32 = 2148012656;
+pub const BLKBSZSET: u32 = 1074270833;
+pub const BLKGETSIZE64: u32 = 2148012658;
+pub const BLKTRACESETUP: u32 = 3225948787;
+pub const BLKTRACESTART: u32 = 4724;
+pub const BLKTRACESTOP: u32 = 4725;
+pub const BLKTRACETEARDOWN: u32 = 4726;
+pub const BLKDISCARD: u32 = 4727;
+pub const BLKIOMIN: u32 = 4728;
+pub const BLKIOOPT: u32 = 4729;
+pub const BLKALIGNOFF: u32 = 4730;
+pub const BLKDISCARDZEROES: u32 = 4732;
+pub const BLKSECDISCARD: u32 = 4733;
+pub const BLKROTATIONAL: u32 = 4734;
+pub const BLKZEROOUT: u32 = 4735;
+pub const UFFDIO_REGISTER: u32 = 3223366144;
+pub const UFFDIO_UNREGISTER: u32 = 2148575745;
+pub const UFFDIO_WAKE: u32 = 2148575746;
+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 = 46849;
+pub const NS_GET_PARENT: u32 = 46850;
+pub const NS_GET_NSTYPE: u32 = 46851;
+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 = 35073;
+pub const SIOCSPGRP: u32 = 35074;
+pub const FIOGETOWN: u32 = 35075;
+pub const SIOCGPGRP: u32 = 35076;
+pub const SIOCATMARK: u32 = 35077;
+pub const SIOCGSTAMP: u32 = 35078;
+pub const TIOCINQ: u32 = 21531;
+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 = 1;
+pub const FIGETBSZ: u32 = 2;
+pub const FIFREEZE: u32 = 3221510263;
+pub const FITHAW: u32 = 3221510264;
+pub const FITRIM: u32 = 3222820985;
+pub const FICLONE: u32 = 1074041865;
+pub const FICLONERANGE: u32 = 1075876877;
+pub const FIDEDUPERANGE: u32 = 3222836278;
+pub const FS_IOC_GETFLAGS: u32 = 2148034049;
+pub const FS_IOC_SETFLAGS: u32 = 1074292226;
+pub const FS_IOC_GETVERSION: u32 = 2148038145;
+pub const FS_IOC_SETVERSION: u32 = 1074296322;
+pub const FS_IOC_FIEMAP: u32 = 3223348747;
+pub const FS_IOC32_GETFLAGS: u32 = 2147771905;
+pub const FS_IOC32_SETFLAGS: u32 = 1074030082;
+pub const FS_IOC32_GETVERSION: u32 = 2147776001;
+pub const FS_IOC32_SETVERSION: u32 = 1074034178;
+pub const FS_IOC_FSGETXATTR: u32 = 2149341215;
+pub const FS_IOC_FSSETXATTR: u32 = 1075599392;
+pub const FS_IOC_GETFSLABEL: u32 = 2164298801;
+pub const FS_IOC_SETFSLABEL: u32 = 1090556978;
+pub const EXT4_IOC_GETVERSION: u32 = 2148034051;
+pub const EXT4_IOC_SETVERSION: u32 = 1074292228;
+pub const EXT4_IOC_GETVERSION_OLD: u32 = 2148038145;
+pub const EXT4_IOC_SETVERSION_OLD: u32 = 1074296322;
+pub const EXT4_IOC_GETRSVSZ: u32 = 2148034053;
+pub const EXT4_IOC_SETRSVSZ: u32 = 1074292230;
+pub const EXT4_IOC_GROUP_EXTEND: u32 = 1074292231;
+pub const EXT4_IOC_MIGRATE: u32 = 26121;
+pub const EXT4_IOC_ALLOC_DA_BLKS: u32 = 26124;
+pub const EXT4_IOC_RESIZE_FS: u32 = 1074292240;
+pub const EXT4_IOC_SWAP_BOOT: u32 = 26129;
+pub const EXT4_IOC_PRECACHE_EXTENTS: u32 = 26130;
+pub const EXT4_IOC_CLEAR_ES_CACHE: u32 = 26152;
+pub const EXT4_IOC_GETSTATE: u32 = 1074030121;
+pub const EXT4_IOC_GET_ES_CACHE: u32 = 3223348778;
+pub const EXT4_IOC_CHECKPOINT: u32 = 1074030123;
+pub const EXT4_IOC_SHUTDOWN: u32 = 2147768445;
+pub const EXT4_IOC32_GETVERSION: u32 = 2147771907;
+pub const EXT4_IOC32_SETVERSION: u32 = 1074030084;
+pub const EXT4_IOC32_GETRSVSZ: u32 = 2147771909;
+pub const EXT4_IOC32_SETRSVSZ: u32 = 1074030086;
+pub const EXT4_IOC32_GROUP_EXTEND: u32 = 1074030087;
+pub const EXT4_IOC32_GETVERSION_OLD: u32 = 2147776001;
+pub const EXT4_IOC32_SETVERSION_OLD: u32 = 1074034178;
+pub const VIDIOC_SUBDEV_QUERYSTD: u32 = 2148030015;
+pub const AUTOFS_DEV_IOCTL_CLOSEMOUNT: u32 = 3222836085;
+pub const LIRC_SET_SEND_CARRIER: u32 = 1074030867;
+pub const AUTOFS_IOC_PROTOSUBVER: u32 = 2147783527;
+pub const PTP_SYS_OFFSET_PRECISE: u32 = 3225435400;
+pub const FSI_SCOM_WRITE: u32 = 3223352066;
+pub const ATM_GETCIRANGE: u32 = 1074815370;
+pub const DMA_BUF_SET_NAME_B: u32 = 1074291201;
+pub const RIO_CM_EP_GET_LIST_SIZE: u32 = 3221512961;
+pub const TUNSETPERSIST: u32 = 1074025675;
+pub const FS_IOC_GET_ENCRYPTION_POLICY: u32 = 1074554389;
+pub const CEC_RECEIVE: u32 = 3224920326;
+pub const MGSL_IOCGPARAMS: u32 = 2150657281;
+pub const ENI_SETMULT: u32 = 1074815335;
+pub const RIO_GET_EVENT_MASK: u32 = 2147773710;
+pub const LIRC_GET_MAX_TIMEOUT: u32 = 2147772681;
+pub const USBDEVFS_CLAIMINTERFACE: u32 = 2147767567;
+pub const CHIOMOVE: u32 = 1075077889;
+pub const SONYPI_IOCGBATFLAGS: u32 = 2147579399;
+pub const BTRFS_IOC_SYNC: u32 = 37896;
+pub const VIDIOC_TRY_FMT: u32 = 3234879040;
+pub const LIRC_SET_REC_MODE: u32 = 1074030866;
+pub const VIDIOC_DQEVENT: u32 = 2156418649;
+pub const RPMSG_DESTROY_EPT_IOCTL: u32 = 46338;
+pub const UVCIOC_CTRL_MAP: u32 = 3227546912;
+pub const VHOST_SET_BACKEND_FEATURES: u32 = 1074310949;
+pub const VHOST_VSOCK_SET_GUEST_CID: u32 = 1074311008;
+pub const UI_SET_KEYBIT: u32 = 1074025829;
+pub const LIRC_SET_REC_TIMEOUT: u32 = 1074030872;
+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 = 1074310930;
+pub const RIO_ENABLE_DOORBELL_RANGE: u32 = 1074294025;
+pub const VIDIOC_TRY_EXT_CTRLS: u32 = 3223344713;
+pub const LIRC_GET_REC_MODE: u32 = 2147772674;
+pub const PPGETTIME: u32 = 2148561045;
+pub const BTRFS_IOC_RM_DEV: u32 = 1342215179;
+pub const ATM_SETBACKEND: u32 = 1073897970;
+pub const FSL_HV_IOCTL_PARTITION_START: u32 = 3222318851;
+pub const FBIO_WAITEVENT: u32 = 18056;
+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 = 601;
+pub const NVME_IOCTL_SUBMIT_IO: u32 = 1076907586;
+pub const NILFS_IOCTL_SYNC: u32 = 2148036234;
+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 = 2147787781;
+pub const NS_GETPSTAT: u32 = 3222298977;
+pub const UI_SET_PROPBIT: u32 = 1074025838;
+pub const TUNSETFILTEREBPF: u32 = 2147767521;
+pub const RIO_MPORT_MAINT_COMPTAG_SET: u32 = 1074031874;
+pub const AUTOFS_DEV_IOCTL_VERSION: u32 = 3222836081;
+pub const WDIOC_SETOPTIONS: u32 = 2147768068;
+pub const VHOST_SCSI_SET_ENDPOINT: u32 = 1088991040;
+pub const MGSL_IOCGTXIDLE: u32 = 27907;
+pub const ATM_ADDLECSADDR: u32 = 1074815374;
+pub const FSL_HV_IOCTL_GETPROP: u32 = 3223891719;
+pub const FDGETPRM: u32 = 2149581316;
+pub const HIDIOCAPPLICATION: u32 = 18434;
+pub const ENI_MEMDUMP: u32 = 1074815328;
+pub const PTP_SYS_OFFSET2: u32 = 1128283406;
+pub const VIDIOC_SUBDEV_G_DV_TIMINGS: u32 = 3229898328;
+pub const DMA_BUF_SET_NAME_A: u32 = 1074029057;
+pub const PTP_PIN_GETFUNC: u32 = 3227532550;
+pub const PTP_SYS_OFFSET_EXTENDED: u32 = 3300932873;
+pub const DFL_FPGA_PORT_UINT_SET_IRQ: u32 = 1074312776;
+pub const RTC_EPOCH_READ: u32 = 2148036621;
+pub const VIDIOC_SUBDEV_S_SELECTION: u32 = 3225441854;
+pub const VIDIOC_QUERY_EXT_CTRL: u32 = 3236451943;
+pub const ATM_GETLECSADDR: u32 = 1074815376;
+pub const FSL_HV_IOCTL_PARTITION_STOP: u32 = 3221794564;
+pub const SONET_GETDIAG: u32 = 2147770644;
+pub const ATMMPC_DATA: u32 = 25049;
+pub const IPMICTL_UNREGISTER_FOR_CMD_CHANS: u32 = 2148296989;
+pub const HIDIOCGCOLLECTIONINDEX: u32 = 1075333136;
+pub const RPMSG_CREATE_EPT_IOCTL: u32 = 1076409601;
+pub const GPIOHANDLE_GET_LINE_VALUES_IOCTL: u32 = 3225465864;
+pub const UI_DEV_SETUP: u32 = 1079792899;
+pub const ISST_IF_IO_CMD: u32 = 1074331138;
+pub const RIO_MPORT_MAINT_READ_REMOTE: u32 = 2149084423;
+pub const VIDIOC_OMAP3ISP_HIST_CFG: u32 = 3224393412;
+pub const BLKGETNRZONES: u32 = 2147750533;
+pub const VIDIOC_G_MODULATOR: u32 = 3225703990;
+pub const VBG_IOCTL_WRITE_CORE_DUMP: u32 = 3223082515;
+pub const USBDEVFS_SETINTERFACE: u32 = 2148029700;
+pub const PPPIOCGCHAN: u32 = 2147775543;
+pub const EVIOCGVERSION: u32 = 2147763457;
+pub const VHOST_NET_SET_BACKEND: u32 = 1074310960;
+pub const USBDEVFS_REAPURBNDELAY: u32 = 1074287885;
+pub const RNDZAPENTCNT: u32 = 20996;
+pub const VIDIOC_G_PARM: u32 = 3234616853;
+pub const TUNGETDEVNETNS: u32 = 21731;
+pub const LIRC_SET_MEASURE_CARRIER_MODE: u32 = 1074030877;
+pub const VHOST_SET_VRING_ERR: u32 = 1074310946;
+pub const VDUSE_VQ_SETUP: u32 = 1075872020;
+pub const AUTOFS_IOC_SETTIMEOUT: u32 = 3221787492;
+pub const VIDIOC_S_FREQUENCY: u32 = 1076647481;
+pub const F2FS_IOC_SEC_TRIM_FILE: u32 = 1075377428;
+pub const FS_IOC_REMOVE_ENCRYPTION_KEY: u32 = 3225445912;
+pub const WDIOC_GETPRETIMEOUT: u32 = 2147768073;
+pub const USBDEVFS_DROP_PRIVILEGES: u32 = 1074025758;
+pub const BTRFS_IOC_SNAP_CREATE_V2: u32 = 1342215191;
+pub const VHOST_VSOCK_SET_RUNNING: u32 = 1074048865;
+pub const STP_SET_OPTIONS: u32 = 1074275586;
+pub const FBIO_RADEON_GET_MIRROR: u32 = 2148024323;
+pub const IVTVFB_IOC_DMA_FRAME: u32 = 1075336896;
+pub const IPMICTL_SEND_COMMAND: u32 = 2150131981;
+pub const VIDIOC_G_ENC_INDEX: u32 = 2283296332;
+pub const DFL_FPGA_FME_PORT_PR: u32 = 46720;
+pub const CHIOSVOLTAG: u32 = 1076912914;
+pub const ATM_SETESIF: u32 = 1074815373;
+pub const FW_CDEV_IOC_SEND_RESPONSE: u32 = 1075323652;
+pub const PMU_IOC_GET_MODEL: u32 = 2148024835;
+pub const JSIOCGBTNMAP: u32 = 2214619700;
+pub const USBDEVFS_HUB_PORTINFO: u32 = 2155894035;
+pub const VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS: u32 = 3222820363;
+pub const FDCLRPRM: u32 = 577;
+pub const BTRFS_IOC_SCRUB: u32 = 3288372251;
+pub const USBDEVFS_DISCONNECT: u32 = 21782;
+pub const TUNSETVNETBE: u32 = 1074025694;
+pub const ATMTCP_REMOVE: u32 = 24975;
+pub const VHOST_VDPA_GET_CONFIG: u32 = 2148052851;
+pub const PPPIOCGNPMODE: u32 = 3221779532;
+pub const FDGETDRVPRM: u32 = 2155872785;
+pub const TUNSETVNETLE: u32 = 1074025692;
+pub const PHN_SETREG: u32 = 1074294790;
+pub const PPPIOCDETACH: u32 = 1074033724;
+pub const MMTIMER_GETRES: u32 = 2148035841;
+pub const VIDIOC_SUBDEV_ENUMSTD: u32 = 3225966105;
+pub const PPGETFLAGS: u32 = 2147774618;
+pub const VDUSE_DEV_GET_FEATURES: u32 = 2148040977;
+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 = 2148052512;
+pub const MEDIA_IOC_ENUM_LINKS: u32 = 3223878658;
+pub const F2FS_IOC_PRECACHE_EXTENTS: u32 = 62735;
+pub const DFL_FPGA_PORT_DMA_MAP: u32 = 46659;
+pub const MGSL_IOCGXCTRL: u32 = 27926;
+pub const FW_CDEV_IOC_SEND_REQUEST: u32 = 1076372225;
+pub const SONYPI_IOCGBLUE: u32 = 2147579400;
+pub const F2FS_IOC_DECOMPRESS_FILE: u32 = 62743;
+pub const I2OHTML: u32 = 3224398089;
+pub const VFIO_GET_API_VERSION: u32 = 15204;
+pub const IDT77105_GETSTATZ: u32 = 1074815283;
+pub const I2OPARMSET: u32 = 3223873795;
+pub const TEE_IOC_CANCEL: u32 = 2148049924;
+pub const PTP_SYS_OFFSET_PRECISE2: u32 = 3225435409;
+pub const DFL_FPGA_PORT_RESET: u32 = 46656;
+pub const PPPIOCGASYNCMAP: u32 = 2147775576;
+pub const EVIOCGKEYCODE_V2: u32 = 2150122756;
+pub const DM_DEV_SET_GEOMETRY: u32 = 3241737487;
+pub const HIDIOCSUSAGE: u32 = 1075333132;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323664;
+pub const PTP_EXTTS_REQUEST: u32 = 1074806018;
+pub const SWITCHTEC_IOCTL_EVENT_CTL: u32 = 3223869251;
+pub const WDIOC_SETPRETIMEOUT: u32 = 3221509896;
+pub const VHOST_SCSI_CLEAR_ENDPOINT: u32 = 1088991041;
+pub const JSIOCGAXES: u32 = 2147576337;
+pub const HIDIOCSFLAG: u32 = 1074022415;
+pub const PTP_PEROUT_REQUEST2: u32 = 1077427468;
+pub const PPWDATA: u32 = 1073836166;
+pub const PTP_CLOCK_GETCAPS: u32 = 2152742145;
+pub const FDGETMAXERRS: u32 = 2148794894;
+pub const TUNSETQUEUE: u32 = 1074025689;
+pub const PTP_ENABLE_PPS: u32 = 1074019588;
+pub const SIOCSIFATMTCP: u32 = 24960;
+pub const CEC_ADAP_G_LOG_ADDRS: u32 = 2153537795;
+pub const ND_IOCTL_ARS_CAP: u32 = 3223342593;
+pub const NBD_SET_BLKSIZE: u32 = 43777;
+pub const NBD_SET_TIMEOUT: u32 = 43785;
+pub const VHOST_SCSI_GET_ABI_VERSION: u32 = 1074048834;
+pub const RIO_UNMAP_INBOUND: u32 = 1074294034;
+pub const ATM_QUERYLOOP: u32 = 1074815316;
+pub const DFL_FPGA_GET_API_VERSION: u32 = 46592;
+pub const USBDEVFS_WAIT_FOR_RESUME: u32 = 21795;
+pub const FBIO_CURSOR: u32 = 3228059144;
+pub const RNDCLEARPOOL: u32 = 20998;
+pub const VIDIOC_QUERYSTD: u32 = 2148030015;
+pub const DMA_BUF_IOCTL_SYNC: u32 = 1074291200;
+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 = 2150651402;
+pub const PTP_ENABLE_PPS2: u32 = 1074019597;
+pub const PCITEST_CLEAR_IRQ: u32 = 20496;
+pub const IPMICTL_SET_GETS_EVENTS_CMD: u32 = 2147772688;
+pub const BTRFS_IOC_DEVICES_READY: u32 = 2415957031;
+pub const JSIOCGAXMAP: u32 = 2151705138;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER: u32 = 2148541196;
+pub const FW_CDEV_IOC_SET_ISO_CHANNELS: u32 = 1074799383;
+pub const RTC_WIE_OFF: u32 = 28688;
+pub const PPGETMODE: u32 = 2147774616;
+pub const VIDIOC_DBG_G_REGISTER: u32 = 3224917584;
+pub const PTP_SYS_OFFSET: u32 = 1128283397;
+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 = 37894;
+pub const INOTIFY_IOC_SETNEXTWD: u32 = 1074022656;
+pub const SNAPSHOT_GET_IMAGE_SIZE: u32 = 2148021006;
+pub const TUNDETACHFILTER: u32 = 1074812118;
+pub const ND_IOCTL_CLEAR_ERROR: u32 = 3223342596;
+pub const IOC_PR_CLEAR: u32 = 1074819277;
+pub const SCIF_READFROM: u32 = 3223876362;
+pub const PPPIOCGDEBUG: u32 = 2147775553;
+pub const BLKGETZONESZ: u32 = 2147750532;
+pub const HIDIOCGUSAGES: u32 = 3491514387;
+pub const SONYPI_IOCGTEMP: u32 = 2147579404;
+pub const UI_SET_MSCBIT: u32 = 1074025832;
+pub const APM_IOC_SUSPEND: u32 = 16642;
+pub const BTRFS_IOC_TREE_SEARCH: u32 = 3489698833;
+pub const RTC_PLL_GET: u32 = 2149609489;
+pub const RIO_CM_EP_GET_LIST: u32 = 3221512962;
+pub const USBDEVFS_DISCSIGNAL: u32 = 2148553998;
+pub const LIRC_GET_MIN_TIMEOUT: u32 = 2147772680;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY: u32 = 2174244674;
+pub const DM_TARGET_MSG: u32 = 3241737486;
+pub const SONYPI_IOCGBAT1REM: u32 = 2147644931;
+pub const EVIOCSFF: u32 = 1076905344;
+pub const TUNSETGROUP: u32 = 1074025678;
+pub const EVIOCGKEYCODE: u32 = 2148025604;
+pub const KCOV_REMOTE_ENABLE: u32 = 1075340134;
+pub const ND_IOCTL_GET_CONFIG_SIZE: u32 = 3222031876;
+pub const FDEJECT: u32 = 602;
+pub const TUNSETOFFLOAD: u32 = 1074025680;
+pub const PPPIOCCONNECT: u32 = 1074033722;
+pub const ATM_ADDADDR: u32 = 1074815368;
+pub const VDUSE_DEV_INJECT_CONFIG_IRQ: u32 = 33043;
+pub const AUTOFS_DEV_IOCTL_ASKUMOUNT: u32 = 3222836093;
+pub const VHOST_VDPA_GET_STATUS: u32 = 2147594097;
+pub const CCISS_PASSTHRU: u32 = 3227009547;
+pub const MGSL_IOCCLRMODCOUNT: u32 = 27919;
+pub const TEE_IOC_SUPPL_SEND: u32 = 2148574215;
+pub const ATMARPD_CTRL: u32 = 25057;
+pub const UI_ABS_SETUP: u32 = 1075598596;
+pub const UI_DEV_DESTROY: u32 = 21762;
+pub const BTRFS_IOC_QUOTA_CTL: u32 = 3222311976;
+pub const RTC_AIE_ON: u32 = 28673;
+pub const AUTOFS_IOC_EXPIRE: u32 = 2165085029;
+pub const PPPIOCSDEBUG: u32 = 1074033728;
+pub const GPIO_V2_LINE_SET_VALUES_IOCTL: u32 = 3222320143;
+pub const PPPIOCSMRU: u32 = 1074033746;
+pub const CCISS_DEREGDISK: u32 = 16908;
+pub const UI_DEV_CREATE: u32 = 21761;
+pub const FUSE_DEV_IOC_CLONE: u32 = 2147804416;
+pub const BTRFS_IOC_START_SYNC: u32 = 2148045848;
+pub const NILFS_IOCTL_DELETE_CHECKPOINT: u32 = 1074294401;
+pub const SNAPSHOT_AVAIL_SWAP_SIZE: u32 = 2148021011;
+pub const DM_TABLE_CLEAR: u32 = 3241737482;
+pub const CCISS_GETINTINFO: u32 = 2148024834;
+pub const PPPIOCSASYNCMAP: u32 = 1074033751;
+pub const I2OEVTGET: u32 = 2154326283;
+pub const NVME_IOCTL_RESET: u32 = 20036;
+pub const PPYIELD: u32 = 28813;
+pub const NVME_IOCTL_IO64_CMD: u32 = 3226488392;
+pub const TUNSETCARRIER: u32 = 1074025698;
+pub const DM_DEV_WAIT: u32 = 3241737480;
+pub const RTC_WIE_ON: u32 = 28687;
+pub const MEDIA_IOC_DEVICE_INFO: u32 = 3238034432;
+pub const RIO_CM_CHAN_CREATE: u32 = 3221381891;
+pub const MGSL_IOCSPARAMS: u32 = 1076915456;
+pub const RTC_SET_TIME: u32 = 1076129802;
+pub const VHOST_RESET_OWNER: u32 = 44802;
+pub const IOC_OPAL_PSID_REVERT_TPR: u32 = 1091072232;
+pub const AUTOFS_DEV_IOCTL_OPENMOUNT: u32 = 3222836084;
+pub const UDF_GETEABLOCK: u32 = 2148035649;
+pub const VFIO_IOMMU_MAP_DMA: u32 = 15217;
+pub const VIDIOC_SUBSCRIBE_EVENT: u32 = 1075861082;
+pub const HIDIOCGFLAG: u32 = 2147764238;
+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 = 1074835969;
+pub const CCISS_GETFIRMVER: u32 = 2147762696;
+pub const ND_IOCTL_ARS_START: u32 = 3223342594;
+pub const PPPIOCSMRRU: u32 = 1074033723;
+pub const CEC_ADAP_S_LOG_ADDRS: u32 = 3227279620;
+pub const RPROC_GET_SHUTDOWN_ON_RELEASE: u32 = 2147792642;
+pub const DMA_HEAP_IOCTL_ALLOC: u32 = 3222816768;
+pub const PPSETTIME: u32 = 1074819222;
+pub const RTC_ALM_READ: u32 = 2149871624;
+pub const VDUSE_SET_API_VERSION: u32 = 1074299137;
+pub const RIO_MPORT_MAINT_WRITE_REMOTE: u32 = 1075342600;
+pub const VIDIOC_SUBDEV_S_CROP: u32 = 3224917564;
+pub const USBDEVFS_CONNECT: u32 = 21783;
+pub const SYNC_IOC_FILE_INFO: u32 = 3224911364;
+pub const ATMARP_MKIP: u32 = 25058;
+pub const VFIO_IOMMU_SPAPR_TCE_GET_INFO: u32 = 15216;
+pub const CCISS_GETHEARTBEAT: u32 = 2147762694;
+pub const ATM_RSTADDR: u32 = 1074815367;
+pub const NBD_SET_SIZE: u32 = 43778;
+pub const UDF_GETVOLIDENT: u32 = 2148035650;
+pub const GPIO_V2_LINE_GET_VALUES_IOCTL: u32 = 3222320142;
+pub const MGSL_IOCSTXIDLE: u32 = 27906;
+pub const FSL_HV_IOCTL_SETPROP: u32 = 3223891720;
+pub const BTRFS_IOC_GET_DEV_STATS: u32 = 3288896564;
+pub const PPRSTATUS: u32 = 2147577985;
+pub const MGSL_IOCTXENABLE: u32 = 27908;
+pub const UDF_GETEASIZE: u32 = 2147773504;
+pub const NVME_IOCTL_ADMIN64_CMD: u32 = 3226488391;
+pub const VHOST_SET_OWNER: u32 = 44801;
+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 = 1074815371;
+pub const HPET_IE_ON: u32 = 26625;
+pub const PERF_EVENT_IOC_ID: u32 = 2148017159;
+pub const TUNSETSNDBUF: u32 = 1074025684;
+pub const PTP_PIN_SETFUNC: u32 = 1080048903;
+pub const PPPIOCDISCONN: u32 = 29753;
+pub const VIDIOC_QUERYCTRL: u32 = 3225703972;
+pub const PPEXCL: u32 = 28815;
+pub const PCITEST_MSI: u32 = 1074024451;
+pub const FDWERRORCLR: u32 = 598;
+pub const AUTOFS_IOC_FAIL: u32 = 37729;
+pub const USBDEVFS_IOCTL: u32 = 3222295826;
+pub const VIDIOC_S_STD: u32 = 1074288152;
+pub const F2FS_IOC_RESIZE_FS: u32 = 1074328848;
+pub const SONET_SETDIAG: u32 = 3221512466;
+pub const BTRFS_IOC_DEFRAG: u32 = 1342215170;
+pub const CCISS_GETDRIVVER: u32 = 2147762697;
+pub const IPMICTL_GET_TIMING_PARMS_CMD: u32 = 2148034839;
+pub const HPET_IRQFREQ: u32 = 1074292742;
+pub const ATM_GETESI: u32 = 1074815365;
+pub const CCISS_GETLUNINFO: u32 = 2148286993;
+pub const AUTOFS_DEV_IOCTL_ISMOUNTPOINT: u32 = 3222836094;
+pub const TEE_IOC_SHM_ALLOC: u32 = 3222316033;
+pub const PERF_EVENT_IOC_SET_BPF: u32 = 1074013192;
+pub const UDMABUF_CREATE_LIST: u32 = 1074296131;
+pub const VHOST_SET_LOG_BASE: u32 = 1074310916;
+pub const ZATM_GETPOOL: u32 = 1074815329;
+pub const BR2684_SETFILT: u32 = 1075601808;
+pub const RNDGETPOOL: u32 = 2148028930;
+pub const PPS_GETPARAMS: u32 = 2148036769;
+pub const IOC_PR_RESERVE: u32 = 1074819273;
+pub const VIDIOC_TRY_DECODER_CMD: u32 = 3225966177;
+pub const RIO_CM_CHAN_CLOSE: u32 = 1073898244;
+pub const VIDIOC_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const IOCTL_MEI_CONNECT_CLIENT_VTAG: u32 = 3222554628;
+pub const PMU_IOC_GET_BACKLIGHT: u32 = 2148024833;
+pub const USBDEVFS_GET_CAPABILITIES: u32 = 2147767578;
+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 = 16910;
+pub const FAT_IOCTL_SET_ATTRIBUTES: u32 = 1074033169;
+pub const VIDIOC_CREATE_BUFS: u32 = 3238024796;
+pub const CAPI_GET_VERSION: u32 = 3222291207;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY: u32 = 2228770626;
+pub const VFIO_EEH_PE_OP: u32 = 15225;
+pub const FW_CDEV_IOC_CREATE_ISO_CONTEXT: u32 = 3223331592;
+pub const F2FS_IOC_RELEASE_COMPRESS_BLOCKS: u32 = 2148070674;
+pub const NBD_SET_SIZE_BLOCKS: u32 = 43783;
+pub const IPMI_BMC_IOCTL_SET_SMS_ATN: u32 = 45312;
+pub const ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG: u32 = 3222319873;
+pub const VIDIOC_S_AUDOUT: u32 = 1077171762;
+pub const VIDIOC_S_FMT: u32 = 3234878981;
+pub const PPPIOCATTACH: u32 = 1074033725;
+pub const VHOST_GET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310948;
+pub const FS_IOC_MEASURE_VERITY: u32 = 3221513862;
+pub const CCISS_BIG_PASSTHRU: u32 = 3227533842;
+pub const IPMICTL_SET_MY_LUN_CMD: u32 = 2147772691;
+pub const PCITEST_LEGACY_IRQ: u32 = 20482;
+pub const USBDEVFS_SUBMITURB: u32 = 2151175434;
+pub const AUTOFS_IOC_READY: u32 = 37728;
+pub const BTRFS_IOC_SEND: u32 = 1078498342;
+pub const VIDIOC_G_EXT_CTRLS: u32 = 3223344711;
+pub const JSIOCSBTNMAP: u32 = 1140877875;
+pub const PPPIOCSFLAGS: u32 = 1074033753;
+pub const NVRAM_INIT: u32 = 28736;
+pub const RFKILL_IOCTL_NOINPUT: u32 = 20993;
+pub const BTRFS_IOC_BALANCE: u32 = 1342215180;
+pub const FS_IOC_GETFSMAP: u32 = 3233830971;
+pub const IPMICTL_GET_MY_CHANNEL_LUN_CMD: u32 = 2147772699;
+pub const STP_POLICY_ID_GET: u32 = 2148541697;
+pub const PPSETFLAGS: u32 = 1074032795;
+pub const CEC_ADAP_S_PHYS_ADDR: u32 = 1073897730;
+pub const ATMTCP_CREATE: u32 = 24974;
+pub const IPMI_BMC_IOCTL_FORCE_ABORT: u32 = 45314;
+pub const PPPIOCGXASYNCMAP: u32 = 2149610576;
+pub const VHOST_SET_VRING_CALL: u32 = 1074310945;
+pub const LIRC_GET_FEATURES: u32 = 2147772672;
+pub const GSMIOC_DISABLE_NET: u32 = 18179;
+pub const AUTOFS_IOC_CATATONIC: u32 = 37730;
+pub const NBD_DO_IT: u32 = 43779;
+pub const LIRC_SET_REC_CARRIER_RANGE: u32 = 1074030879;
+pub const IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772697;
+pub const EVIOCSCLOCKID: u32 = 1074021792;
+pub const USBDEVFS_FREE_STREAMS: u32 = 2148029725;
+pub const FSI_SCOM_RESET: u32 = 1074033411;
+pub const PMU_IOC_GRAB_BACKLIGHT: u32 = 2148024838;
+pub const VIDIOC_SUBDEV_S_FMT: u32 = 3227014661;
+pub const FDDEFPRM: u32 = 1075839555;
+pub const TEE_IOC_INVOKE: u32 = 2148574211;
+pub const USBDEVFS_BULK: u32 = 3222820098;
+pub const SCIF_VWRITETO: u32 = 3223876365;
+pub const SONYPI_IOCSBRT: u32 = 1073837568;
+pub const BTRFS_IOC_FILE_EXTENT_SAME: u32 = 3222836278;
+pub const RTC_PIE_ON: u32 = 28677;
+pub const BTRFS_IOC_SCAN_DEV: u32 = 1342215172;
+pub const PPPIOCXFERUNIT: u32 = 29774;
+pub const WDIOC_GETTIMEOUT: u32 = 2147768071;
+pub const BTRFS_IOC_SET_RECEIVED_SUBVOL: u32 = 3234370597;
+pub const DFL_FPGA_PORT_ERR_SET_IRQ: u32 = 1074312774;
+pub const FBIO_WAITFORVSYNC: u32 = 1074021920;
+pub const RTC_PIE_OFF: u32 = 28678;
+pub const EVIOCGRAB: u32 = 1074021776;
+pub const PMU_IOC_SET_BACKLIGHT: u32 = 1074283010;
+pub const EVIOCGREP: u32 = 2148025603;
+pub const PERF_EVENT_IOC_MODIFY_ATTRIBUTES: u32 = 1074275339;
+pub const UFFDIO_CONTINUE: u32 = 3223366151;
+pub const VDUSE_GET_API_VERSION: u32 = 2148040960;
+pub const RTC_RD_TIME: u32 = 2149871625;
+pub const FDMSGOFF: u32 = 582;
+pub const IPMICTL_REGISTER_FOR_CMD_CHANS: u32 = 2148296988;
+pub const CAPI_GET_ERRCODE: u32 = 2147631905;
+pub const PCITEST_SET_IRQTYPE: u32 = 1074024456;
+pub const VIDIOC_SUBDEV_S_EDID: u32 = 3223868969;
+pub const MATROXFB_SET_OUTPUT_MODE: u32 = 1074294522;
+pub const RIO_DEV_ADD: u32 = 1075866903;
+pub const VIDIOC_ENUM_FREQ_BANDS: u32 = 3225441893;
+pub const FBIO_RADEON_SET_MIRROR: u32 = 1074282500;
+pub const PCITEST_GET_IRQTYPE: u32 = 20489;
+pub const JSIOCGVERSION: u32 = 2147772929;
+pub const SONYPI_IOCSBLUE: u32 = 1073837577;
+pub const SNAPSHOT_PREF_IMAGE_SIZE: u32 = 13074;
+pub const F2FS_IOC_GET_FEATURES: u32 = 2147808524;
+pub const SCIF_REG: u32 = 3223876360;
+pub const NILFS_IOCTL_CLEAN_SEGMENTS: u32 = 1081634440;
+pub const FW_CDEV_IOC_INITIATE_BUS_RESET: u32 = 1074012933;
+pub const RIO_WAIT_FOR_ASYNC: u32 = 1074294038;
+pub const VHOST_SET_VRING_NUM: u32 = 1074310928;
+pub const AUTOFS_DEV_IOCTL_PROTOVER: u32 = 3222836082;
+pub const RIO_FREE_DMA: u32 = 1074294036;
+pub const MGSL_IOCRXENABLE: u32 = 27909;
+pub const IOCTL_VM_SOCKETS_GET_LOCAL_CID: u32 = 1977;
+pub const IPMICTL_SET_TIMING_PARMS_CMD: u32 = 2148034838;
+pub const PPPIOCGL2TPSTATS: u32 = 2152231990;
+pub const PERF_EVENT_IOC_PERIOD: u32 = 1074275332;
+pub const PTP_PIN_SETFUNC2: u32 = 1080048912;
+pub const CHIOEXCHANGE: u32 = 1075602178;
+pub const NILFS_IOCTL_GET_SUINFO: u32 = 2149084804;
+pub const CEC_DQEVENT: u32 = 3226493191;
+pub const UI_SET_SWBIT: u32 = 1074025837;
+pub const VHOST_VDPA_SET_CONFIG: u32 = 1074311028;
+pub const TUNSETIFF: u32 = 1074025674;
+pub const CHIOPOSITION: u32 = 1074553603;
+pub const IPMICTL_SET_MAINTENANCE_MODE_CMD: u32 = 1074030879;
+pub const BTRFS_IOC_DEFAULT_SUBVOL: u32 = 1074304019;
+pub const RIO_UNMAP_OUTBOUND: u32 = 1076391184;
+pub const CAPI_CLR_FLAGS: u32 = 2147762981;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323663;
+pub const MATROXFB_GET_OUTPUT_CONNECTION: u32 = 2148036344;
+pub const EVIOCSMASK: u32 = 1074808211;
+pub const BTRFS_IOC_FORGET_DEV: u32 = 1342215173;
+pub const CXL_MEM_QUERY_COMMANDS: u32 = 2148060673;
+pub const CEC_S_MODE: u32 = 1074028809;
+pub const MGSL_IOCSIF: u32 = 27914;
+pub const SWITCHTEC_IOCTL_PFF_TO_PORT: u32 = 3222034244;
+pub const PPSETMODE: u32 = 1074032768;
+pub const VFIO_DEVICE_SET_IRQS: u32 = 15214;
+pub const VIDIOC_PREPARE_BUF: u32 = 3227014749;
+pub const CEC_ADAP_G_CONNECTOR_INFO: u32 = 2151964938;
+pub const IOC_OPAL_WRITE_SHADOW_MBR: u32 = 1092645098;
+pub const VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: u32 = 3225441867;
+pub const UDMABUF_CREATE: u32 = 1075344706;
+pub const SONET_CLRDIAG: u32 = 3221512467;
+pub const PHN_SET_REG: u32 = 1074294785;
+pub const RNDADDTOENTCNT: u32 = 1074024961;
+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 = 28674;
+pub const VFIO_GROUP_SET_CONTAINER: u32 = 15208;
+pub const FW_CDEV_IOC_RECEIVE_PHY_PACKETS: u32 = 1074275094;
+pub const VFIO_IOMMU_SPAPR_TCE_REMOVE: u32 = 15224;
+pub const VFIO_IOMMU_GET_INFO: u32 = 15216;
+pub const DM_DEV_SUSPEND: u32 = 3241737478;
+pub const F2FS_IOC_GET_COMPRESS_OPTION: u32 = 2147677461;
+pub const FW_CDEV_IOC_STOP_ISO: u32 = 1074012939;
+pub const GPIO_V2_GET_LINEINFO_IOCTL: u32 = 3238048773;
+pub const ATMMPC_CTRL: u32 = 25048;
+pub const PPPIOCSXASYNCMAP: u32 = 1075868751;
+pub const CHIOGSTATUS: u32 = 1074815752;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE: u32 = 3222807309;
+pub const RIO_MPORT_MAINT_PORT_IDX_GET: u32 = 2147773699;
+pub const CAPI_SET_FLAGS: u32 = 2147762980;
+pub const VFIO_GROUP_GET_DEVICE_FD: u32 = 15210;
+pub const VHOST_SET_MEM_TABLE: u32 = 1074310915;
+pub const MATROXFB_SET_OUTPUT_CONNECTION: u32 = 1074294520;
+pub const DFL_FPGA_PORT_GET_REGION_INFO: u32 = 46658;
+pub const VHOST_GET_FEATURES: u32 = 2148052736;
+pub const LIRC_GET_REC_RESOLUTION: u32 = 2147772679;
+pub const PACKET_CTRL_CMD: u32 = 3222820865;
+pub const LIRC_SET_TRANSMITTER_MASK: u32 = 1074030871;
+pub const BTRFS_IOC_ADD_DEV: u32 = 1342215178;
+pub const JSIOCGCORR: u32 = 2149870114;
+pub const VIDIOC_G_FMT: u32 = 3234878980;
+pub const RTC_EPOCH_SET: u32 = 1074294798;
+pub const CAPI_GET_PROFILE: u32 = 3225436937;
+pub const ATM_GETLOOP: u32 = 1074815314;
+pub const SCIF_LISTEN: u32 = 1074033410;
+pub const NBD_CLEAR_QUE: u32 = 43781;
+pub const F2FS_IOC_MOVE_RANGE: u32 = 3223385353;
+pub const LIRC_GET_LENGTH: u32 = 2147772687;
+pub const I8K_SET_FAN: u32 = 3221776775;
+pub const FDSETMAXERRS: u32 = 1075053132;
+pub const VIDIOC_SUBDEV_QUERYCAP: u32 = 2151699968;
+pub const SNAPSHOT_SET_SWAP_AREA: u32 = 1074541325;
+pub const LIRC_GET_REC_TIMEOUT: u32 = 2147772708;
+pub const EVIOCRMFF: u32 = 1074021761;
+pub const GPIO_GET_LINEEVENT_IOCTL: u32 = 3224417284;
+pub const PPRDATA: u32 = 2147577989;
+pub const RIO_MPORT_GET_PROPERTIES: u32 = 2150657284;
+pub const TUNSETVNETHDRSZ: u32 = 1074025688;
+pub const GPIO_GET_LINEINFO_IOCTL: u32 = 3225990146;
+pub const GSMIOC_GETCONF: u32 = 2152482560;
+pub const LIRC_GET_SEND_MODE: u32 = 2147772673;
+pub const PPPIOCSACTIVE: u32 = 1074820166;
+pub const SIOCGSTAMPNS_NEW: u32 = 2148567303;
+pub const IPMICTL_RECEIVE_MSG: u32 = 3224398092;
+pub const LIRC_SET_SEND_DUTY_CYCLE: u32 = 1074030869;
+pub const UI_END_FF_ERASE: u32 = 1074550219;
+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 = 43786;
+pub const VFIO_DEVICE_GET_REGION_INFO: u32 = 15212;
+pub const REISERFS_IOC_UNPACK: u32 = 1074318593;
+pub const FW_CDEV_IOC_REMOVE_DESCRIPTOR: u32 = 1074012935;
+pub const RIO_SET_EVENT_MASK: u32 = 1074031885;
+pub const SNAPSHOT_ALLOC_SWAP_PAGE: u32 = 2148021012;
+pub const VDUSE_VQ_INJECT_IRQ: u32 = 1074037015;
+pub const I2OPASSTHRU: u32 = 2148559116;
+pub const IOC_OPAL_SET_PW: u32 = 1109422304;
+pub const FSI_SCOM_READ: u32 = 3223352065;
+pub const VHOST_VDPA_GET_DEVICE_ID: u32 = 2147790704;
+pub const VIDIOC_QBUF: u32 = 3227014671;
+pub const VIDIOC_S_TUNER: u32 = 1079268894;
+pub const TUNGETVNETHDRSZ: u32 = 2147767511;
+pub const CAPI_NCCI_GETUNIT: u32 = 2147762983;
+pub const DFL_FPGA_PORT_UINT_GET_IRQ_NUM: u32 = 2147792455;
+pub const VIDIOC_OMAP3ISP_STAT_EN: u32 = 3221771975;
+pub const GPIO_V2_LINE_SET_CONFIG_IOCTL: u32 = 3239097357;
+pub const TEE_IOC_VERSION: u32 = 2148312064;
+pub const VIDIOC_LOG_STATUS: u32 = 22086;
+pub const IPMICTL_SEND_COMMAND_SETTIME: u32 = 2150656277;
+pub const VHOST_SET_LOG_FD: u32 = 1074048775;
+pub const SCIF_SEND: u32 = 3222827782;
+pub const VIDIOC_SUBDEV_G_FMT: u32 = 3227014660;
+pub const NS_ADJBUFLEV: u32 = 24931;
+pub const VIDIOC_DBG_S_REGISTER: u32 = 1077433935;
+pub const NILFS_IOCTL_RESIZE: u32 = 1074294411;
+pub const PHN_GETREG: u32 = 3221778437;
+pub const I2OSWDL: u32 = 3224398085;
+pub const VBG_IOCTL_VMMDEV_REQUEST_BIG: u32 = 22019;
+pub const JSIOCGBUTTONS: u32 = 2147576338;
+pub const VFIO_IOMMU_ENABLE: u32 = 15219;
+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 = 1074048887;
+pub const VIDIOC_SUBDEV_G_CROP: u32 = 3224917563;
+pub const VIDIOC_S_CROP: u32 = 1075074620;
+pub const WDIOC_GETTEMP: u32 = 2147768067;
+pub const IOC_OPAL_ADD_USR_TO_LR: u32 = 1092120804;
+pub const UI_SET_LEDBIT: u32 = 1074025833;
+pub const NBD_SET_SOCK: u32 = 43776;
+pub const BTRFS_IOC_SNAP_DESTROY_V2: u32 = 1342215231;
+pub const HIDIOCGCOLLECTIONINFO: u32 = 3222292497;
+pub const I2OSWUL: u32 = 3224398086;
+pub const IOCTL_MEI_NOTIFY_GET: u32 = 2147764227;
+pub const FDFMTTRK: u32 = 1074528840;
+pub const MMTIMER_GETBITS: u32 = 27908;
+pub const VIDIOC_ENUMSTD: u32 = 3225966105;
+pub const VHOST_GET_VRING_BASE: u32 = 3221794578;
+pub const VFIO_DEVICE_IOEVENTFD: u32 = 15220;
+pub const ATMARP_SETENTRY: u32 = 25059;
+pub const CCISS_REVALIDVOLS: u32 = 16906;
+pub const MGSL_IOCLOOPTXDONE: u32 = 27913;
+pub const RTC_VL_READ: u32 = 2147774483;
+pub const ND_IOCTL_ARS_STATUS: u32 = 3224391171;
+pub const RIO_DEV_DEL: u32 = 1075866904;
+pub const VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: u32 = 3223606797;
+pub const VIDIOC_SUBDEV_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const SONYPI_IOCSFAN: u32 = 1073837579;
+pub const SPIOCSTYPE: u32 = 1074295041;
+pub const IPMICTL_REGISTER_FOR_CMD: u32 = 2147641614;
+pub const I8K_GET_FAN: u32 = 3221776774;
+pub const TUNGETVNETBE: u32 = 2147767519;
+pub const AUTOFS_DEV_IOCTL_FAIL: u32 = 3222836087;
+pub const UI_END_FF_UPLOAD: u32 = 1080579529;
+pub const TOSH_SMM: u32 = 3222828176;
+pub const SONYPI_IOCGBAT2REM: u32 = 2147644933;
+pub const F2FS_IOC_GET_COMPRESS_BLOCKS: u32 = 2148070673;
+pub const PPPIOCSNPMODE: u32 = 1074295883;
+pub const USBDEVFS_CONTROL: u32 = 3222820096;
+pub const HIDIOCGUSAGE: u32 = 3222816779;
+pub const TUNSETTXFILTER: u32 = 1074025681;
+pub const TUNGETVNETLE: u32 = 2147767517;
+pub const VIDIOC_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const BTRFS_IOC_INO_PATHS: u32 = 3224933411;
+pub const MGSL_IOCGXSYNC: u32 = 27924;
+pub const HIDIOCGFIELDINFO: u32 = 3224913930;
+pub const VIDIOC_SUBDEV_G_STD: u32 = 2148029975;
+pub const I2OVALIDATE: u32 = 2147772680;
+pub const VIDIOC_TRY_ENCODER_CMD: u32 = 3223869006;
+pub const NILFS_IOCTL_GET_CPINFO: u32 = 2149084802;
+pub const VIDIOC_G_FREQUENCY: u32 = 3224131128;
+pub const VFAT_IOCTL_READDIR_SHORT: u32 = 2184212994;
+pub const ND_IOCTL_GET_CONFIG_DATA: u32 = 3222031877;
+pub const F2FS_IOC_RESERVE_COMPRESS_BLOCKS: u32 = 2148070675;
+pub const FDGETDRVSTAT: u32 = 2152727058;
+pub const SYNC_IOC_MERGE: u32 = 3224387075;
+pub const VIDIOC_S_DV_TIMINGS: u32 = 3229898327;
+pub const PPPIOCBRIDGECHAN: u32 = 1074033717;
+pub const LIRC_SET_SEND_MODE: u32 = 1074030865;
+pub const RIO_ENABLE_PORTWRITE_RANGE: u32 = 1074818315;
+pub const ATM_GETTYPE: u32 = 1074815364;
+pub const PHN_GETREGS: u32 = 3223875591;
+pub const FDSETEMSGTRESH: u32 = 586;
+pub const NILFS_IOCTL_GET_VINFO: u32 = 3222826630;
+pub const MGSL_IOCWAITEVENT: u32 = 3221515528;
+pub const CAPI_INSTALLED: u32 = 2147631906;
+pub const EVIOCGMASK: u32 = 2148550034;
+pub const BTRFS_IOC_SUBVOL_GETFLAGS: u32 = 2148045849;
+pub const FSL_HV_IOCTL_PARTITION_GET_STATUS: u32 = 3222056706;
+pub const MEDIA_IOC_ENUM_ENTITIES: u32 = 3238034433;
+pub const GSMIOC_GETFIRST: u32 = 2147763972;
+pub const FW_CDEV_IOC_FLUSH_ISO: u32 = 1074012952;
+pub const VIDIOC_DBG_G_CHIP_INFO: u32 = 3234354790;
+pub const F2FS_IOC_RELEASE_VOLATILE_WRITE: u32 = 62724;
+pub const CAPI_GET_SERIAL: u32 = 3221504776;
+pub const FDSETDRVPRM: u32 = 1082131088;
+pub const IOC_OPAL_SAVE: u32 = 1092120796;
+pub const VIDIOC_G_DV_TIMINGS: u32 = 3229898328;
+pub const TUNSETIFINDEX: u32 = 1074025690;
+pub const CCISS_SETINTINFO: u32 = 1074283011;
+pub const CM_IOSDBGLVL: u32 = 1074291706;
+pub const RTC_VL_CLR: u32 = 28692;
+pub const VIDIOC_REQBUFS: u32 = 3222558216;
+pub const USBDEVFS_REAPURBNDELAY32: u32 = 1074025741;
+pub const TEE_IOC_SHM_REGISTER: u32 = 3222840329;
+pub const USBDEVFS_SETCONFIGURATION: u32 = 2147767557;
+pub const CCISS_GETNODENAME: u32 = 2148549124;
+pub const VIDIOC_SUBDEV_S_FRAME_INTERVAL: u32 = 3224393238;
+pub const VIDIOC_ENUM_FRAMESIZES: u32 = 3224131146;
+pub const VFIO_DEVICE_PCI_HOT_RESET: u32 = 15217;
+pub const FW_CDEV_IOC_SEND_BROADCAST_REQUEST: u32 = 1076372242;
+pub const LPSETTIMEOUT_NEW: u32 = 1074791951;
+pub const RIO_CM_MPORT_GET_LIST: u32 = 3221512971;
+pub const FW_CDEV_IOC_QUEUE_ISO: u32 = 3222807305;
+pub const FDRAWCMD: u32 = 600;
+pub const SCIF_UNREG: u32 = 3222303497;
+pub const PPPIOCGIDLE64: u32 = 2148561983;
+pub const USBDEVFS_RELEASEINTERFACE: u32 = 2147767568;
+pub const VIDIOC_CROPCAP: u32 = 3224131130;
+pub const DFL_FPGA_PORT_GET_INFO: u32 = 46657;
+pub const PHN_SET_REGS: u32 = 1074294787;
+pub const ATMLEC_DATA: u32 = 25041;
+pub const PPPOEIOCDFWD: u32 = 45313;
+pub const VIDIOC_S_SELECTION: u32 = 3225441887;
+pub const SNAPSHOT_FREE_SWAP_PAGES: u32 = 13065;
+pub const BTRFS_IOC_LOGICAL_INO: u32 = 3224933412;
+pub const VIDIOC_S_CTRL: u32 = 3221771804;
+pub const ZATM_SETPOOL: u32 = 1074815331;
+pub const MTIOCPOS: u32 = 2148035843;
+pub const PMU_IOC_SLEEP: u32 = 16896;
+pub const AUTOFS_DEV_IOCTL_PROTOSUBVER: u32 = 3222836083;
+pub const VBG_IOCTL_CHANGE_FILTER_MASK: u32 = 3223344652;
+pub const NILFS_IOCTL_GET_SUSTAT: u32 = 2150657669;
+pub const VIDIOC_QUERYCAP: u32 = 2154321408;
+pub const HPET_INFO: u32 = 2149083139;
+pub const VIDIOC_AM437X_CCDC_CFG: u32 = 1074288321;
+pub const DM_LIST_DEVICES: u32 = 3241737474;
+pub const TUNSETOWNER: u32 = 1074025676;
+pub const VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: u32 = 3223344654;
+pub const RNDADDENTROPY: u32 = 1074287107;
+pub const USBDEVFS_RESET: u32 = 21780;
+pub const BTRFS_IOC_SUBVOL_CREATE: u32 = 1342215182;
+pub const USBDEVFS_FORBID_SUSPEND: u32 = 21793;
+pub const FDGETDRVTYP: u32 = 2148532751;
+pub const PPWCONTROL: u32 = 1073836164;
+pub const VIDIOC_ENUM_FRAMEINTERVALS: u32 = 3224655435;
+pub const KCOV_DISABLE: u32 = 25445;
+pub const IOC_OPAL_ACTIVATE_LSP: u32 = 1092120799;
+pub const VHOST_VDPA_GET_IOVA_RANGE: u32 = 2148577144;
+pub const PPPIOCSPASS: u32 = 1074820167;
+pub const RIO_CM_CHAN_CONNECT: u32 = 1074291464;
+pub const I2OSWDEL: u32 = 3224398087;
+pub const FS_IOC_SET_ENCRYPTION_POLICY: u32 = 2148296211;
+pub const IOC_OPAL_MBR_DONE: u32 = 1091596521;
+pub const PPPIOCSMAXCID: u32 = 1074033745;
+pub const PPSETPHASE: u32 = 1074032788;
+pub const VHOST_VDPA_SET_VRING_ENABLE: u32 = 1074311029;
+pub const USBDEVFS_GET_SPEED: u32 = 21791;
+pub const SONET_GETFRAMING: u32 = 2147770646;
+pub const VIDIOC_QUERYBUF: u32 = 3227014665;
+pub const VIDIOC_S_EDID: u32 = 3223868969;
+pub const BTRFS_IOC_QGROUP_ASSIGN: u32 = 1075352617;
+pub const PPS_GETCAP: u32 = 2148036771;
+pub const SNAPSHOT_PLATFORM_SUPPORT: u32 = 13071;
+pub const LIRC_SET_REC_TIMEOUT_REPORTS: u32 = 1074030873;
+pub const SCIF_GET_NODEIDS: u32 = 3222827790;
+pub const NBD_DISCONNECT: u32 = 43784;
+pub const VIDIOC_SUBDEV_G_FRAME_INTERVAL: u32 = 3224393237;
+pub const VFIO_IOMMU_DISABLE: u32 = 15220;
+pub const SNAPSHOT_CREATE_IMAGE: u32 = 1074017041;
+pub const SNAPSHOT_POWER_OFF: u32 = 13072;
+pub const APM_IOC_STANDBY: u32 = 16641;
+pub const PPPIOCGUNIT: u32 = 2147775574;
+pub const AUTOFS_IOC_EXPIRE_MULTI: u32 = 1074041702;
+pub const SCIF_BIND: u32 = 3221779201;
+pub const IOC_WATCH_QUEUE_SET_SIZE: u32 = 22368;
+pub const NILFS_IOCTL_CHANGE_CPMODE: u32 = 1074818688;
+pub const IOC_OPAL_LOCK_UNLOCK: u32 = 1092120797;
+pub const F2FS_IOC_SET_PIN_FILE: u32 = 1074066701;
+pub const PPPIOCGRASYNCMAP: u32 = 2147775573;
+pub const MMTIMER_MMAPAVAIL: u32 = 27910;
+pub const I2OPASSTHRU32: u32 = 2148034828;
+pub const DFL_FPGA_FME_PORT_RELEASE: u32 = 1074050689;
+pub const VIDIOC_SUBDEV_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const UI_SET_SNDBIT: u32 = 1074025834;
+pub const VIDIOC_G_AUDOUT: u32 = 2150913585;
+pub const RTC_PLL_SET: u32 = 1075867666;
+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 = 1074048836;
+pub const VHOST_SET_VRING_ADDR: u32 = 1076408081;
+pub const VDUSE_CREATE_DEV: u32 = 1095794946;
+pub const FDFLUSH: u32 = 587;
+pub const VBG_IOCTL_WAIT_FOR_EVENTS: u32 = 3223344650;
+pub const DFL_FPGA_FME_ERR_SET_IRQ: u32 = 1074312836;
+pub const F2FS_IOC_GET_PIN_FILE: u32 = 2147808526;
+pub const SCIF_CONNECT: u32 = 3221779203;
+pub const BLKREPORTZONE: u32 = 3222278786;
+pub const AUTOFS_IOC_ASKUMOUNT: u32 = 2147783536;
+pub const ATM_ADDPARTY: u32 = 1074815476;
+pub const FDSETPRM: u32 = 1075839554;
+pub const ATM_GETSTATZ: u32 = 1074815313;
+pub const ISST_IF_MSR_COMMAND: u32 = 3221814788;
+pub const BTRFS_IOC_GET_SUBVOL_INFO: u32 = 2180551740;
+pub const VIDIOC_UNSUBSCRIBE_EVENT: u32 = 1075861083;
+pub const SEV_ISSUE_CMD: u32 = 3222295296;
+pub const GPIOHANDLE_SET_LINE_VALUES_IOCTL: u32 = 3225465865;
+pub const PCITEST_COPY: u32 = 1074286598;
+pub const IPMICTL_GET_MY_ADDRESS_CMD: u32 = 2147772690;
+pub const CHIOGPICKER: u32 = 2147771140;
+pub const CAPI_NCCI_OPENCOUNT: u32 = 2147762982;
+pub const CXL_MEM_SEND_COMMAND: u32 = 3224423938;
+pub const PERF_EVENT_IOC_SET_FILTER: u32 = 1074275334;
+pub const IOC_OPAL_REVERT_TPR: u32 = 1091072226;
+pub const CHIOGVPARAMS: u32 = 2154849043;
+pub const PTP_PEROUT_REQUEST: u32 = 1077427459;
+pub const FSI_SCOM_CHECK: u32 = 2147775232;
+pub const RTC_IRQP_READ: u32 = 2148036619;
+pub const RIO_MPORT_MAINT_READ_LOCAL: u32 = 2149084421;
+pub const HIDIOCGRDESCSIZE: u32 = 2147764225;
+pub const UI_GET_VERSION: u32 = 2147767597;
+pub const NILFS_IOCTL_GET_CPSTAT: u32 = 2149084803;
+pub const CCISS_GETBUSTYPES: u32 = 2147762695;
+pub const VFIO_IOMMU_SPAPR_TCE_CREATE: u32 = 15223;
+pub const VIDIOC_EXPBUF: u32 = 3225441808;
+pub const UI_SET_RELBIT: u32 = 1074025830;
+pub const VFIO_SET_IOMMU: u32 = 15206;
+pub const VIDIOC_S_MODULATOR: u32 = 1078220343;
+pub const TUNGETFILTER: u32 = 2148553947;
+pub const MEYEIOC_SYNC: u32 = 3221518019;
+pub const CCISS_SETNODENAME: u32 = 1074807301;
+pub const FBIO_GETCONTROL2: u32 = 2148025993;
+pub const TUNSETDEBUG: u32 = 1074025673;
+pub const DM_DEV_REMOVE: u32 = 3241737476;
+pub const HIDIOCSUSAGES: u32 = 1344030740;
+pub const FS_IOC_ADD_ENCRYPTION_KEY: u32 = 3226494487;
+pub const FBIOGET_VBLANK: u32 = 2149598738;
+pub const ATM_GETSTAT: u32 = 1074815312;
+pub const VIDIOC_G_JPEGCOMP: u32 = 2156680765;
+pub const TUNATTACHFILTER: u32 = 1074812117;
+pub const UI_SET_ABSBIT: u32 = 1074025831;
+pub const DFL_FPGA_PORT_ERR_GET_IRQ_NUM: u32 = 2147792453;
+pub const USBDEVFS_REAPURB32: u32 = 1074025740;
+pub const BTRFS_IOC_TRANS_END: u32 = 37895;
+pub const CAPI_REGISTER: u32 = 1074545409;
+pub const F2FS_IOC_COMPRESS_FILE: u32 = 62744;
+pub const USBDEVFS_DISCARDURB: u32 = 21771;
+pub const HE_GET_REG: u32 = 1074815328;
+pub const ATM_SETLOOP: u32 = 1074815315;
+pub const ATMSIGD_CTRL: u32 = 25072;
+pub const CIOC_KERNEL_VERSION: u32 = 3221775114;
+pub const BTRFS_IOC_CLONE_RANGE: u32 = 1075876877;
+pub const SNAPSHOT_UNFREEZE: u32 = 13058;
+pub const F2FS_IOC_START_VOLATILE_WRITE: u32 = 62723;
+pub const PMU_IOC_HAS_ADB: u32 = 2148024836;
+pub const I2OGETIOPS: u32 = 2149607680;
+pub const VIDIOC_S_FBUF: u32 = 1076909579;
+pub const PPRCONTROL: u32 = 2147577987;
+pub const CHIOSPICKER: u32 = 1074029317;
+pub const VFIO_IOMMU_SPAPR_REGISTER_MEMORY: u32 = 15221;
+pub const TUNGETSNDBUF: u32 = 2147767507;
+pub const GSMIOC_SETCONF: u32 = 1078740737;
+pub const IOC_PR_PREEMPT: u32 = 1075343563;
+pub const KCOV_INIT_TRACE: u32 = 2148033281;
+pub const SONYPI_IOCGBAT1CAP: u32 = 2147644930;
+pub const SWITCHTEC_IOCTL_FLASH_INFO: u32 = 2148554560;
+pub const MTIOCTOP: u32 = 1074294017;
+pub const VHOST_VDPA_SET_STATUS: u32 = 1073852274;
+pub const VHOST_SCSI_SET_EVENTS_MISSED: u32 = 1074048835;
+pub const VFIO_IOMMU_DIRTY_PAGES: u32 = 15221;
+pub const BTRFS_IOC_SCRUB_PROGRESS: u32 = 3288372253;
+pub const PPPIOCGMRU: u32 = 2147775571;
+pub const BTRFS_IOC_DEV_REPLACE: u32 = 3391657013;
+pub const PPPIOCGFLAGS: u32 = 2147775578;
+pub const NILFS_IOCTL_SET_SUINFO: u32 = 1075342989;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER2: u32 = 3222807316;
+pub const ATM_DELLECSADDR: u32 = 1074815375;
+pub const FW_CDEV_IOC_GET_SPEED: u32 = 8977;
+pub const PPPIOCGIDLE32: u32 = 2148037695;
+pub const VFIO_DEVICE_RESET: u32 = 15215;
+pub const GPIO_GET_LINEINFO_UNWATCH_IOCTL: u32 = 3221533708;
+pub const WDIOC_GETSTATUS: u32 = 2147768065;
+pub const BTRFS_IOC_SET_FEATURES: u32 = 1076925497;
+pub const IOCTL_MEI_CONNECT_CLIENT: u32 = 3222292481;
+pub const VIDIOC_OMAP3ISP_AEWB_CFG: u32 = 3223344835;
+pub const PCITEST_READ: u32 = 1074286597;
+pub const VFIO_GROUP_GET_STATUS: u32 = 15207;
+pub const MATROXFB_GET_ALL_OUTPUTS: u32 = 2148036347;
+pub const USBDEVFS_CLEAR_HALT: u32 = 2147767573;
+pub const VIDIOC_DECODER_CMD: u32 = 3225966176;
+pub const VIDIOC_G_AUDIO: u32 = 2150913569;
+pub const CCISS_RESCANDISK: u32 = 16912;
+pub const RIO_DISABLE_PORTWRITE_RANGE: u32 = 1074818316;
+pub const IOC_OPAL_SECURE_ERASE_LR: u32 = 1091596519;
+pub const USBDEVFS_REAPURB: u32 = 1074287884;
+pub const DFL_FPGA_CHECK_EXTENSION: u32 = 46593;
+pub const AUTOFS_IOC_PROTOVER: u32 = 2147783523;
+pub const FSL_HV_IOCTL_MEMCPY: u32 = 3223891717;
+pub const BTRFS_IOC_GET_FEATURES: u32 = 2149094457;
+pub const PCITEST_MSIX: u32 = 1074024455;
+pub const BTRFS_IOC_DEFRAG_RANGE: u32 = 1076925456;
+pub const UI_BEGIN_FF_ERASE: u32 = 3222033866;
+pub const DM_GET_TARGET_VERSION: u32 = 3241737489;
+pub const PPPIOCGIDLE: u32 = 2148561983;
+pub const NVRAM_SETCKS: u32 = 28737;
+pub const WDIOC_GETSUPPORT: u32 = 2150127360;
+pub const GSMIOC_ENABLE_NET: u32 = 1077167874;
+pub const GPIO_GET_CHIPINFO_IOCTL: u32 = 2151986177;
+pub const NE_ADD_VCPU: u32 = 3221532193;
+pub const EVIOCSKEYCODE_V2: u32 = 1076380932;
+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 = 1075342598;
+pub const I2OEVTREG: u32 = 1074555146;
+pub const I2OPARMGET: u32 = 3223873796;
+pub const EVIOCGID: u32 = 2148025602;
+pub const BTRFS_IOC_QGROUP_CREATE: u32 = 1074828330;
+pub const AUTOFS_DEV_IOCTL_SETPIPEFD: u32 = 3222836088;
+pub const VIDIOC_S_PARM: u32 = 3234616854;
+pub const TUNSETSTEERINGEBPF: u32 = 2147767520;
+pub const ATM_GETNAMES: u32 = 1074815363;
+pub const VIDIOC_QUERYMENU: u32 = 3224131109;
+pub const DFL_FPGA_PORT_DMA_UNMAP: u32 = 46660;
+pub const I2OLCTGET: u32 = 3222825218;
+pub const FS_IOC_GET_ENCRYPTION_PWSALT: u32 = 1074816532;
+pub const NS_SETBUFLEV: u32 = 1074815330;
+pub const BLKCLOSEZONE: u32 = 1074795143;
+pub const SONET_GETFRSENSE: u32 = 2147901719;
+pub const UI_SET_EVBIT: u32 = 1074025828;
+pub const DM_LIST_VERSIONS: u32 = 3241737485;
+pub const HIDIOCGSTRING: u32 = 2164541444;
+pub const PPPIOCATTCHAN: u32 = 1074033720;
+pub const VDUSE_DEV_SET_CONFIG: u32 = 1074299154;
+pub const TUNGETFEATURES: u32 = 2147767503;
+pub const VFIO_GROUP_UNSET_CONTAINER: u32 = 15209;
+pub const IPMICTL_SET_MY_ADDRESS_CMD: u32 = 2147772689;
+pub const CCISS_REGNEWDISK: u32 = 1074020877;
+pub const VIDIOC_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const PHN_SETREGS: u32 = 1076391944;
+pub const FAT_IOCTL_GET_ATTRIBUTES: u32 = 2147774992;
+pub const FSL_MC_SEND_MC_COMMAND: u32 = 3225440992;
+pub const TUNGETIFF: u32 = 2147767506;
+pub const PTP_CLOCK_GETCAPS2: u32 = 2152742154;
+pub const BTRFS_IOC_RESIZE: u32 = 1342215171;
+pub const VHOST_SET_VRING_ENDIAN: u32 = 1074310931;
+pub const PPS_KC_BIND: u32 = 1074294949;
+pub const F2FS_IOC_WRITE_CHECKPOINT: u32 = 62727;
+pub const UI_SET_FFBIT: u32 = 1074025835;
+pub const IPMICTL_GET_MY_LUN_CMD: u32 = 2147772692;
+pub const CEC_ADAP_G_PHYS_ADDR: u32 = 2147639553;
+pub const CEC_G_MODE: u32 = 2147770632;
+pub const USBDEVFS_RESETEP: u32 = 2147767555;
+pub const MEDIA_REQUEST_IOC_QUEUE: u32 = 31872;
+pub const USBDEVFS_ALLOC_STREAMS: u32 = 2148029724;
+pub const MGSL_IOCSXCTRL: u32 = 27925;
+pub const MEDIA_IOC_G_TOPOLOGY: u32 = 3225975812;
+pub const PPPIOCUNBRIDGECHAN: u32 = 29748;
+pub const F2FS_IOC_COMMIT_ATOMIC_WRITE: u32 = 62722;
+pub const ISST_IF_GET_PLATFORM_INFO: u32 = 2148072960;
+pub const SCIF_FENCE_MARK: u32 = 3222303503;
+pub const USBDEVFS_RELEASE_PORT: u32 = 2147767577;
+pub const VFIO_CHECK_EXTENSION: u32 = 15205;
+pub const BTRFS_IOC_QGROUP_LIMIT: u32 = 2150667307;
+pub const FAT_IOCTL_GET_VOLUME_ID: u32 = 2147774995;
+pub const UI_SET_PHYS: u32 = 1074287980;
+pub const FDWERRORGET: u32 = 2150105623;
+pub const VIDIOC_SUBDEV_G_EDID: u32 = 3223868968;
+pub const MGSL_IOCGSTATS: u32 = 27911;
+pub const RPROC_SET_SHUTDOWN_ON_RELEASE: u32 = 1074050817;
+pub const SIOCGSTAMP_NEW: u32 = 2148567302;
+pub const RTC_WKALM_RD: u32 = 2150133776;
+pub const PHN_GET_REG: u32 = 3221778432;
+pub const DELL_WMI_SMBIOS_CMD: u32 = 3224655616;
+pub const PHN_NOT_OH: u32 = 28676;
+pub const PPGETMODES: u32 = 2147774615;
+pub const CHIOGPARAMS: u32 = 2148819718;
+pub const VFIO_DEVICE_GET_GFX_DMABUF: u32 = 15219;
+pub const VHOST_SET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310947;
+pub const VIDIOC_SUBDEV_G_SELECTION: u32 = 3225441853;
+pub const BTRFS_IOC_RM_DEV_V2: u32 = 1342215226;
+pub const MGSL_IOCWAITGPIO: u32 = 3222301970;
+pub const PMU_IOC_CAN_SLEEP: u32 = 2148024837;
+pub const KCOV_ENABLE: u32 = 25444;
+pub const BTRFS_IOC_CLONE: u32 = 1074041865;
+pub const F2FS_IOC_DEFRAGMENT: u32 = 3222336776;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE: u32 = 1074012942;
+pub const AGPIOC_ALLOCATE: u32 = 3221766406;
+pub const NE_SET_USER_MEMORY_REGION: u32 = 1075359267;
+pub const MGSL_IOCTXABORT: u32 = 27910;
+pub const MGSL_IOCSGPIO: u32 = 1074818320;
+pub const LIRC_SET_REC_CARRIER: u32 = 1074030868;
+pub const F2FS_IOC_FLUSH_DEVICE: u32 = 1074328842;
+pub const SNAPSHOT_ATOMIC_RESTORE: u32 = 13060;
+pub const RTC_UIE_OFF: u32 = 28676;
+pub const BT_BMC_IOCTL_SMS_ATN: u32 = 45312;
+pub const NVME_IOCTL_ID: u32 = 20032;
+pub const NE_START_ENCLAVE: u32 = 3222318628;
+pub const VIDIOC_STREAMON: u32 = 1074026002;
+pub const FDPOLLDRVSTAT: u32 = 2152727059;
+pub const AUTOFS_DEV_IOCTL_READY: u32 = 3222836086;
+pub const VIDIOC_ENUMAUDOUT: u32 = 3224655426;
+pub const VIDIOC_SUBDEV_S_STD: u32 = 1074288152;
+pub const WDIOC_GETTIMELEFT: u32 = 2147768074;
+pub const ATM_GETLINKRATE: u32 = 1074815361;
+pub const RTC_WKALM_SET: u32 = 1076391951;
+pub const VHOST_GET_BACKEND_FEATURES: u32 = 2148052774;
+pub const ATMARP_ENCAP: u32 = 25061;
+pub const CAPI_GET_FLAGS: u32 = 2147762979;
+pub const IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772696;
+pub const DFL_FPGA_FME_PORT_ASSIGN: u32 = 1074050690;
+pub const NS_GET_OWNER_UID: u32 = 46852;
+pub const VIDIOC_OVERLAY: u32 = 1074025998;
+pub const BTRFS_IOC_WAIT_SYNC: u32 = 1074304022;
+pub const GPIOHANDLE_SET_CONFIG_IOCTL: u32 = 3226776586;
+pub const VHOST_GET_VRING_ENDIAN: u32 = 1074310932;
+pub const ATM_GETADDR: u32 = 1074815366;
+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 = 13067;
+pub const JSIOCSAXMAP: u32 = 1077963313;
+pub const F2FS_IOC_SET_COMPRESS_OPTION: u32 = 1073935638;
+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 = 15216;
+pub const VIDIOC_SUBDEV_ENUM_MBUS_CODE: u32 = 3224393218;
+pub const MMTIMER_GETOFFSET: u32 = 27904;
+pub const RIO_CM_CHAN_LISTEN: u32 = 1073898246;
+pub const ATM_SETSC: u32 = 1074029041;
+pub const F2FS_IOC_SHUTDOWN: u32 = 2147768445;
+pub const NVME_IOCTL_RESCAN: u32 = 20038;
+pub const BLKOPENZONE: u32 = 1074795142;
+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 = 25056;
+pub const IPMI_BMC_IOCTL_CLEAR_SMS_ATN: u32 = 45313;
+pub const HIDIOCGVERSION: u32 = 2147764225;
+pub const VIDIOC_S_INPUT: u32 = 3221509671;
+pub const VIDIOC_G_CROP: u32 = 3222558267;
+pub const LIRC_SET_WIDEBAND_RECEIVER: u32 = 1074030883;
+pub const EVIOCGEFFECTS: u32 = 2147763588;
+pub const UVCIOC_CTRL_QUERY: u32 = 3222304033;
+pub const IOC_OPAL_GENERIC_TABLE_RW: u32 = 1094217963;
+pub const FS_IOC_READ_VERITY_METADATA: u32 = 3223873159;
+pub const ND_IOCTL_SET_CONFIG_DATA: u32 = 3221769734;
+pub const USBDEVFS_GETDRIVER: u32 = 1090802952;
+pub const IDT77105_GETSTAT: u32 = 1074815282;
+pub const HIDIOCINITREPORT: u32 = 18437;
+pub const VFIO_DEVICE_GET_INFO: u32 = 15211;
+pub const RIO_CM_CHAN_RECEIVE: u32 = 3222299402;
+pub const RNDGETENTCNT: u32 = 2147766784;
+pub const PPPIOCNEWUNIT: u32 = 3221517374;
+pub const BTRFS_IOC_INO_LOOKUP: u32 = 3489698834;
+pub const FDRESET: u32 = 596;
+pub const IOC_PR_REGISTER: u32 = 1075343560;
+pub const HIDIOCSREPORT: u32 = 1074546696;
+pub const TEE_IOC_OPEN_SESSION: u32 = 2148574210;
+pub const TEE_IOC_SUPPL_RECV: u32 = 2148574214;
+pub const BTRFS_IOC_BALANCE_CTL: u32 = 1074041889;
+pub const GPIO_GET_LINEINFO_WATCH_IOCTL: u32 = 3225990155;
+pub const HIDIOCGRAWINFO: u32 = 2148026371;
+pub const PPPIOCSCOMPRESS: u32 = 1074820173;
+pub const USBDEVFS_CONNECTINFO: u32 = 1074287889;
+pub const BLKRESETZONE: u32 = 1074795139;
+pub const CHIOINITELEM: u32 = 25361;
+pub const NILFS_IOCTL_SET_ALLOC_RANGE: u32 = 1074818700;
+pub const AUTOFS_DEV_IOCTL_CATATONIC: u32 = 3222836089;
+pub const RIO_MPORT_MAINT_HDID_SET: u32 = 1073900801;
+pub const PPGETPHASE: u32 = 2147774617;
+pub const USBDEVFS_DISCONNECT_CLAIM: u32 = 2164806939;
+pub const FDMSGON: u32 = 581;
+pub const VIDIOC_G_SLICED_VBI_CAP: u32 = 3228849733;
+pub const BTRFS_IOC_BALANCE_V2: u32 = 3288372256;
+pub const MEDIA_REQUEST_IOC_REINIT: u32 = 31873;
+pub const IOC_OPAL_ERASE_LR: u32 = 1091596518;
+pub const FDFMTBEG: u32 = 583;
+pub const RNDRESEEDCRNG: u32 = 20999;
+pub const ISST_IF_GET_PHY_ID: u32 = 3221814785;
+pub const TUNSETNOCSUM: u32 = 1074025672;
+pub const SONET_GETSTAT: u32 = 2149867792;
+pub const TFD_IOC_SET_TICKS: u32 = 1074287616;
+pub const PPDATADIR: u32 = 1074032784;
+pub const IOC_OPAL_ENABLE_DISABLE_MBR: u32 = 1091596517;
+pub const GPIO_V2_GET_LINE_IOCTL: u32 = 3260068871;
+pub const RIO_CM_CHAN_SEND: u32 = 1074815753;
+pub const PPWCTLONIRQ: u32 = 1073836178;
+pub const SONYPI_IOCGBRT: u32 = 2147579392;
+pub const IOC_PR_RELEASE: u32 = 1074819274;
+pub const PPCLRIRQ: u32 = 2147774611;
+pub const IPMICTL_SET_MY_CHANNEL_LUN_CMD: u32 = 2147772698;
+pub const MGSL_IOCSXSYNC: u32 = 27923;
+pub const HPET_IE_OFF: u32 = 26626;
+pub const IOC_OPAL_ACTIVATE_USR: u32 = 1091596513;
+pub const SONET_SETFRAMING: u32 = 1074028821;
+pub const PERF_EVENT_IOC_PAUSE_OUTPUT: u32 = 1074013193;
+pub const BTRFS_IOC_LOGICAL_INO_V2: u32 = 3224933435;
+pub const VBG_IOCTL_HGCM_CONNECT: u32 = 3231471108;
+pub const BLKFINISHZONE: u32 = 1074795144;
+pub const EVIOCREVOKE: u32 = 1074021777;
+pub const VFIO_DEVICE_FEATURE: u32 = 15221;
+pub const CCISS_GETPCIINFO: u32 = 2148024833;
+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 = 1074026003;
+pub const VDUSE_DESTROY_DEV: u32 = 1090552067;
+pub const FDGETFDCSTAT: u32 = 2150105621;
+pub const CM_IOCGATR: u32 = 3221775105;
+pub const VIDIOC_S_PRIORITY: u32 = 1074026052;
+pub const SNAPSHOT_FREEZE: u32 = 13057;
+pub const VIDIOC_ENUMINPUT: u32 = 3226490394;
+pub const ZATM_GETPOOLZ: u32 = 1074815330;
+pub const RIO_DISABLE_DOORBELL_RANGE: u32 = 1074294026;
+pub const GPIO_V2_GET_LINEINFO_WATCH_IOCTL: u32 = 3238048774;
+pub const VIDIOC_G_STD: u32 = 2148029975;
+pub const USBDEVFS_ALLOW_SUSPEND: u32 = 21794;
+pub const SONET_GETSTATZ: u32 = 2149867793;
+pub const SCIF_ACCEPTREG: u32 = 3221779205;
+pub const VIDIOC_ENCODER_CMD: u32 = 3223869005;
+pub const PPPIOCSRASYNCMAP: u32 = 1074033748;
+pub const IOCTL_MEI_NOTIFY_SET: u32 = 1074022402;
+pub const BTRFS_IOC_QUOTA_RESCAN_STATUS: u32 = 2151715885;
+pub const F2FS_IOC_GARBAGE_COLLECT: u32 = 1074066694;
+pub const ATMLEC_CTRL: u32 = 25040;
+pub const MATROXFB_GET_AVAILABLE_OUTPUTS: u32 = 2148036345;
+pub const DM_DEV_CREATE: u32 = 3241737475;
+pub const VHOST_VDPA_GET_VRING_NUM: u32 = 2147659638;
+pub const VIDIOC_G_CTRL: u32 = 3221771803;
+pub const NBD_CLEAR_SOCK: u32 = 43780;
+pub const VFIO_DEVICE_QUERY_GFX_PLANE: u32 = 15218;
+pub const WDIOC_KEEPALIVE: u32 = 2147768069;
+pub const NVME_IOCTL_SUBSYS_RESET: u32 = 20037;
+pub const PTP_EXTTS_REQUEST2: u32 = 1074806027;
+pub const PCITEST_BAR: u32 = 20481;
+pub const MGSL_IOCGGPIO: u32 = 2148560145;
+pub const EVIOCSREP: u32 = 1074283779;
+pub const VFIO_DEVICE_GET_IRQ_INFO: u32 = 15213;
+pub const HPET_DPI: u32 = 26629;
+pub const VDUSE_VQ_SETUP_KICKFD: u32 = 1074299158;
+pub const ND_IOCTL_CALL: u32 = 3225439754;
+pub const HIDIOCGDEVINFO: u32 = 2149337091;
+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 = 2147767875;
+pub const ATM_NEWBACKENDIF: u32 = 1073897971;
+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 = 1076909650;
+pub const DM_TABLE_LOAD: u32 = 3241737481;
+pub const F2FS_IOC_START_ATOMIC_WRITE: u32 = 62721;
+pub const VIDIOC_G_OUTPUT: u32 = 2147767854;
+pub const ATM_DROPPARTY: u32 = 1074029045;
+pub const CHIOGELEM: u32 = 1080845072;
+pub const BTRFS_IOC_GET_SUPPORTED_FEATURES: u32 = 2152240185;
+pub const EVIOCSKEYCODE: u32 = 1074283780;
+pub const NE_GET_IMAGE_LOAD_INFO: u32 = 3222318626;
+pub const TUNSETLINK: u32 = 1074025677;
+pub const FW_CDEV_IOC_ADD_DESCRIPTOR: u32 = 3222807302;
+pub const BTRFS_IOC_SCRUB_CANCEL: u32 = 37916;
+pub const PPS_SETPARAMS: u32 = 1074294946;
+pub const IOC_OPAL_LR_SETUP: u32 = 1093169379;
+pub const FW_CDEV_IOC_DEALLOCATE: u32 = 1074012931;
+pub const WDIOC_SETTIMEOUT: u32 = 3221509894;
+pub const IOC_WATCH_QUEUE_SET_FILTER: u32 = 22369;
+pub const CAPI_GET_MANUFACTURER: u32 = 3221504774;
+pub const VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY: u32 = 15222;
+pub const ASPEED_P2A_CTRL_IOCTL_SET_WINDOW: u32 = 1074836224;
+pub const VIDIOC_G_EDID: u32 = 3223868968;
+pub const F2FS_IOC_GARBAGE_COLLECT_RANGE: u32 = 1075377419;
+pub const RIO_MAP_INBOUND: u32 = 3223874833;
+pub const IOC_OPAL_TAKE_OWNERSHIP: u32 = 1091072222;
+pub const USBDEVFS_CLAIM_PORT: u32 = 2147767576;
+pub const VIDIOC_S_AUDIO: u32 = 1077171746;
+pub const FS_IOC_GET_ENCRYPTION_NONCE: u32 = 2148558363;
+pub const FW_CDEV_IOC_SEND_STREAM_PACKET: u32 = 1076372243;
+pub const BTRFS_IOC_SNAP_DESTROY: u32 = 1342215183;
+pub const SNAPSHOT_FREE: u32 = 13061;
+pub const I8K_GET_SPEED: u32 = 3221776773;
+pub const HIDIOCGREPORT: u32 = 1074546695;
+pub const HPET_EPI: u32 = 26628;
+pub const JSIOCSCORR: u32 = 1076128289;
+pub const IOC_PR_PREEMPT_ABORT: u32 = 1075343564;
+pub const RIO_MAP_OUTBOUND: u32 = 3223874831;
+pub const ATM_SETESI: u32 = 1074815372;
+pub const FW_CDEV_IOC_START_ISO: u32 = 1074799370;
+pub const ATM_DELADDR: u32 = 1074815369;
+pub const PPFCONTROL: u32 = 1073901710;
+pub const SONYPI_IOCGFAN: u32 = 2147579402;
+pub const RTC_IRQP_SET: u32 = 1074294796;
+pub const PCITEST_WRITE: u32 = 1074286596;
+pub const PPCLAIM: u32 = 28811;
+pub const VIDIOC_S_JPEGCOMP: u32 = 1082938942;
+pub const IPMICTL_UNREGISTER_FOR_CMD: u32 = 2147641615;
+pub const VHOST_SET_FEATURES: u32 = 1074310912;
+pub const TOSHIBA_ACPI_SCI: u32 = 3222828177;
+pub const VIDIOC_DQBUF: u32 = 3227014673;
+pub const BTRFS_IOC_BALANCE_PROGRESS: u32 = 2214630434;
+pub const BTRFS_IOC_SUBVOL_SETFLAGS: u32 = 1074304026;
+pub const ATMLEC_MCAST: u32 = 25042;
+pub const MMTIMER_GETFREQ: u32 = 2148035842;
+pub const VIDIOC_G_SELECTION: u32 = 3225441886;
+pub const RTC_ALM_SET: u32 = 1076129799;
+pub const PPPOEIOCSFWD: u32 = 1074311424;
+pub const IPMICTL_GET_MAINTENANCE_MODE_CMD: u32 = 2147772702;
+pub const FS_IOC_ENABLE_VERITY: u32 = 1082156677;
+pub const NILFS_IOCTL_GET_BDESCS: u32 = 3222826631;
+pub const FDFMTEND: u32 = 585;
+pub const DMA_BUF_SET_NAME: u32 = 1074291201;
+pub const UI_BEGIN_FF_UPLOAD: u32 = 3228063176;
+pub const RTC_UIE_ON: u32 = 28675;
+pub const PPRELEASE: u32 = 28812;
+pub const VFIO_IOMMU_UNMAP_DMA: u32 = 15218;
+pub const VIDIOC_OMAP3ISP_PRV_CFG: u32 = 3228587714;
+pub const GPIO_GET_LINEHANDLE_IOCTL: u32 = 3245126659;
+pub const VFAT_IOCTL_READDIR_BOTH: u32 = 2184212993;
+pub const NVME_IOCTL_ADMIN_CMD: u32 = 3225964097;
+pub const VHOST_SET_VRING_KICK: u32 = 1074310944;
+pub const BTRFS_IOC_SUBVOL_CREATE_V2: u32 = 1342215192;
+pub const BTRFS_IOC_SNAP_CREATE: u32 = 1342215169;
+pub const SONYPI_IOCGBAT2CAP: u32 = 2147644932;
+pub const PPNEGOT: u32 = 1074032785;
+pub const NBD_PRINT_DEBUG: u32 = 43782;
+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 = 2214630431;
+pub const VIDIOC_ENUM_FMT: u32 = 3225441794;
+pub const VIDIOC_G_INPUT: u32 = 2147767846;
+pub const VTPM_PROXY_IOC_NEW_DEV: u32 = 3222577408;
+pub const DFL_FPGA_FME_ERR_GET_IRQ_NUM: u32 = 2147792515;
+pub const ND_IOCTL_DIMM_FLAGS: u32 = 3221769731;
+pub const BTRFS_IOC_QUOTA_RESCAN: u32 = 1077974060;
+pub const MMTIMER_GETCOUNTER: u32 = 2148035849;
+pub const MATROXFB_GET_OUTPUT_MODE: u32 = 3221778170;
+pub const BTRFS_IOC_QUOTA_RESCAN_WAIT: u32 = 37934;
+pub const RIO_CM_CHAN_BIND: u32 = 1074291461;
+pub const HIDIOCGRDESC: u32 = 2416199682;
+pub const MGSL_IOCGIF: u32 = 27915;
+pub const VIDIOC_S_OUTPUT: u32 = 3221509679;
+pub const HIDIOCGREPORTINFO: u32 = 3222030345;
+pub const WDIOC_GETBOOTSTATUS: u32 = 2147768066;
+pub const VDUSE_VQ_GET_INFO: u32 = 3224404245;
+pub const ACRN_IOCTL_ASSIGN_PCIDEV: u32 = 1076142677;
+pub const BLKGETDISKSEQ: u32 = 2148012672;
+pub const ACRN_IOCTL_PM_GET_CPU_STATE: u32 = 3221791328;
+pub const ACRN_IOCTL_DESTROY_VM: u32 = 41489;
+pub const ACRN_IOCTL_SET_PTDEV_INTR: u32 = 1075094099;
+pub const ACRN_IOCTL_CREATE_IOREQ_CLIENT: u32 = 41522;
+pub const ACRN_IOCTL_IRQFD: u32 = 1075356273;
+pub const ACRN_IOCTL_CREATE_VM: u32 = 3224412688;
+pub const ACRN_IOCTL_INJECT_MSI: u32 = 1074831907;
+pub const ACRN_IOCTL_ATTACH_IOREQ_CLIENT: u32 = 41523;
+pub const ACRN_IOCTL_RESET_PTDEV_INTR: u32 = 1075094100;
+pub const ACRN_IOCTL_NOTIFY_REQUEST_FINISH: u32 = 1074307633;
+pub const ACRN_IOCTL_SET_IRQLINE: u32 = 1074307621;
+pub const ACRN_IOCTL_START_VM: u32 = 41490;
+pub const ACRN_IOCTL_SET_VCPU_REGS: u32 = 1093181974;
+pub const ACRN_IOCTL_SET_MEMSEG: u32 = 1075880513;
+pub const ACRN_IOCTL_PAUSE_VM: u32 = 41491;
+pub const ACRN_IOCTL_CLEAR_VM_IOREQ: u32 = 41525;
+pub const ACRN_IOCTL_UNSET_MEMSEG: u32 = 1075880514;
+pub const ACRN_IOCTL_IOEVENTFD: u32 = 1075880560;
+pub const ACRN_IOCTL_DEASSIGN_PCIDEV: u32 = 1076142678;
+pub const ACRN_IOCTL_RESET_VM: u32 = 41493;
+pub const ACRN_IOCTL_DESTROY_IOREQ_CLIENT: u32 = 41524;
+pub const ACRN_IOCTL_VM_INTR_MONITOR: u32 = 1074307620;
diff --git a/vendor/linux-raw-sys-0.9.4/src/loongarch64/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/landlock.rs
new file mode 100644
index 0000000..0548e2d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/landlock.rs
@@ -0,0 +1,100 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/loongarch64/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/loop_device.rs
new file mode 100644
index 0000000..754d71e
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/loop_device.rs
@@ -0,0 +1,134 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+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_daddr_t = crate::ctypes::c_int;
+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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/loongarch64/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/mempolicy.rs
new file mode 100644
index 0000000..ad4957c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/mempolicy.rs
@@ -0,0 +1,175 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
+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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/loongarch64/net.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/net.rs
new file mode 100644
index 0000000..6890cdd
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/net.rs
@@ -0,0 +1,3427 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 34usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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 SIOCGSTAMP_OLD: u32 = 35078;
+pub const SIOCGSTAMPNS_OLD: u32 = 35079;
+pub const SOL_SOCKET: u32 = 1;
+pub const SO_DEBUG: u32 = 1;
+pub const SO_REUSEADDR: u32 = 2;
+pub const SO_TYPE: u32 = 3;
+pub const SO_ERROR: u32 = 4;
+pub const SO_DONTROUTE: u32 = 5;
+pub const SO_BROADCAST: u32 = 6;
+pub const SO_SNDBUF: u32 = 7;
+pub const SO_RCVBUF: u32 = 8;
+pub const SO_SNDBUFFORCE: u32 = 32;
+pub const SO_RCVBUFFORCE: u32 = 33;
+pub const SO_KEEPALIVE: u32 = 9;
+pub const SO_OOBINLINE: u32 = 10;
+pub const SO_NO_CHECK: u32 = 11;
+pub const SO_PRIORITY: u32 = 12;
+pub const SO_LINGER: u32 = 13;
+pub const SO_BSDCOMPAT: u32 = 14;
+pub const SO_REUSEPORT: u32 = 15;
+pub const SO_PASSCRED: u32 = 16;
+pub const SO_PEERCRED: u32 = 17;
+pub const SO_RCVLOWAT: u32 = 18;
+pub const SO_SNDLOWAT: u32 = 19;
+pub const SO_RCVTIMEO_OLD: u32 = 20;
+pub const SO_SNDTIMEO_OLD: u32 = 21;
+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_ACCEPTCONN: u32 = 30;
+pub const SO_PEERSEC: u32 = 31;
+pub const SO_PASSSEC: u32 = 34;
+pub const SO_MARK: u32 = 36;
+pub const SO_PROTOCOL: u32 = 38;
+pub const SO_DOMAIN: u32 = 39;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+pub const SO_TIMESTAMP: u32 = 29;
+pub const SO_TIMESTAMPNS: u32 = 35;
+pub const SO_TIMESTAMPING: u32 = 37;
+pub const SO_RCVTIMEO: u32 = 20;
+pub const SO_SNDTIMEO: u32 = 21;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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 = 1;
+pub const SOCK_DGRAM: u32 = 2;
+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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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 = 32768,
+TCP_FLAG_ECE = 16384,
+TCP_FLAG_URG = 8192,
+TCP_FLAG_ACK = 4096,
+TCP_FLAG_PSH = 2048,
+TCP_FLAG_RST = 1024,
+TCP_FLAG_SYN = 512,
+TCP_FLAG_FIN = 256,
+TCP_RESERVED_BITS = 15,
+TCP_DATA_OFFSET = 240,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn ihl(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_ihl(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(ihl: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let ihl: u8 = unsafe { ::core::mem::transmute(ihl) };
+ihl as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl ipv6hdr {
+#[inline]
+pub fn priority(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_priority(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(priority: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let priority: u8 = unsafe { ::core::mem::transmute(priority) };
+priority as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcphdr {
+#[inline]
+pub fn res1(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_res1(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn doff(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_doff(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn fin(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_fin(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn syn(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_syn(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn rst(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_rst(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn psh(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_psh(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ack(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ack(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn urg(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_urg(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ece(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ece(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn cwr(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_cwr(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(res1: __u16, doff: __u16, fin: __u16, syn: __u16, rst: __u16, psh: __u16, ack: __u16, urg: __u16, ece: __u16, cwr: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let res1: u16 = unsafe { ::core::mem::transmute(res1) };
+res1 as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let doff: u16 = unsafe { ::core::mem::transmute(doff) };
+doff as u64
+});
+__bindgen_bitfield_unit.set(8usize, 1u8, {
+let fin: u16 = unsafe { ::core::mem::transmute(fin) };
+fin as u64
+});
+__bindgen_bitfield_unit.set(9usize, 1u8, {
+let syn: u16 = unsafe { ::core::mem::transmute(syn) };
+syn as u64
+});
+__bindgen_bitfield_unit.set(10usize, 1u8, {
+let rst: u16 = unsafe { ::core::mem::transmute(rst) };
+rst as u64
+});
+__bindgen_bitfield_unit.set(11usize, 1u8, {
+let psh: u16 = unsafe { ::core::mem::transmute(psh) };
+psh as u64
+});
+__bindgen_bitfield_unit.set(12usize, 1u8, {
+let ack: u16 = unsafe { ::core::mem::transmute(ack) };
+ack as u64
+});
+__bindgen_bitfield_unit.set(13usize, 1u8, {
+let urg: u16 = unsafe { ::core::mem::transmute(urg) };
+urg as u64
+});
+__bindgen_bitfield_unit.set(14usize, 1u8, {
+let ece: u16 = unsafe { ::core::mem::transmute(ece) };
+ece as u64
+});
+__bindgen_bitfield_unit.set(15usize, 1u8, {
+let cwr: u16 = unsafe { ::core::mem::transmute(cwr) };
+cwr 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/loongarch64/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/netlink.rs
new file mode 100644
index 0000000..0fafa7a
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/netlink.rs
@@ -0,0 +1,2946 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_nl {
+pub nl_family: __kernel_sa_family_t,
+pub nl_pad: crate::ctypes::c_ushort,
+pub nl_pid: __u32,
+pub nl_groups: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsghdr {
+pub nlmsg_len: __u32,
+pub nlmsg_type: __u16,
+pub nlmsg_flags: __u16,
+pub nlmsg_seq: __u32,
+pub nlmsg_pid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsgerr {
+pub error: crate::ctypes::c_int,
+pub msg: nlmsghdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_pktinfo {
+pub group: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_req {
+pub nm_block_size: crate::ctypes::c_uint,
+pub nm_block_nr: crate::ctypes::c_uint,
+pub nm_frame_size: crate::ctypes::c_uint,
+pub nm_frame_nr: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_hdr {
+pub nm_status: crate::ctypes::c_uint,
+pub nm_len: crate::ctypes::c_uint,
+pub nm_group: __u32,
+pub nm_pid: __u32,
+pub nm_uid: __u32,
+pub nm_gid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlattr {
+pub nla_len: __u16,
+pub nla_type: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nla_bitfield32 {
+pub value: __u32,
+pub selector: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats {
+pub rx_packets: __u32,
+pub tx_packets: __u32,
+pub rx_bytes: __u32,
+pub tx_bytes: __u32,
+pub rx_errors: __u32,
+pub tx_errors: __u32,
+pub rx_dropped: __u32,
+pub tx_dropped: __u32,
+pub multicast: __u32,
+pub collisions: __u32,
+pub rx_length_errors: __u32,
+pub rx_over_errors: __u32,
+pub rx_crc_errors: __u32,
+pub rx_frame_errors: __u32,
+pub rx_fifo_errors: __u32,
+pub rx_missed_errors: __u32,
+pub tx_aborted_errors: __u32,
+pub tx_carrier_errors: __u32,
+pub tx_fifo_errors: __u32,
+pub tx_heartbeat_errors: __u32,
+pub tx_window_errors: __u32,
+pub rx_compressed: __u32,
+pub tx_compressed: __u32,
+pub rx_nohandler: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+pub collisions: __u64,
+pub rx_length_errors: __u64,
+pub rx_over_errors: __u64,
+pub rx_crc_errors: __u64,
+pub rx_frame_errors: __u64,
+pub rx_fifo_errors: __u64,
+pub rx_missed_errors: __u64,
+pub tx_aborted_errors: __u64,
+pub tx_carrier_errors: __u64,
+pub tx_fifo_errors: __u64,
+pub tx_heartbeat_errors: __u64,
+pub tx_window_errors: __u64,
+pub rx_compressed: __u64,
+pub tx_compressed: __u64,
+pub rx_nohandler: __u64,
+pub rx_otherhost_dropped: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_hw_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_ifmap {
+pub mem_start: __u64,
+pub mem_end: __u64,
+pub base_addr: __u64,
+pub irq: __u16,
+pub dma: __u8,
+pub port: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_bridge_id {
+pub prio: [__u8; 2usize],
+pub addr: [__u8; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_cacheinfo {
+pub max_reasm_len: __u32,
+pub tstamp: __u32,
+pub reachable_time: __u32,
+pub retrans_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_qos_mapping {
+pub from: __u32,
+pub to: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tunnel_msg {
+pub family: __u8,
+pub flags: __u8,
+pub reserved2: __u16,
+pub ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vxlan_port_range {
+pub low: __be16,
+pub high: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_mac {
+pub vf: __u32,
+pub mac: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_broadcast {
+pub broadcast: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan_info {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+pub vlan_proto: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_tx_rate {
+pub vf: __u32,
+pub rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rate {
+pub vf: __u32,
+pub min_tx_rate: __u32,
+pub max_tx_rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_spoofchk {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_guid {
+pub vf: __u32,
+pub guid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_link_state {
+pub vf: __u32,
+pub link_state: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rss_query_en {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_trust {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_port_vsi {
+pub vsi_mgr_id: __u8,
+pub vsi_type_id: [__u8; 3usize],
+pub vsi_type_version: __u8,
+pub pad: [__u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_stats_msg {
+pub family: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub ifindex: __u32,
+pub filter_mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_rmnet_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifaddrmsg {
+pub ifa_family: __u8,
+pub ifa_prefixlen: __u8,
+pub ifa_flags: __u8,
+pub ifa_scope: __u8,
+pub ifa_index: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifa_cacheinfo {
+pub ifa_prefered: __u32,
+pub ifa_valid: __u32,
+pub cstamp: __u32,
+pub tstamp: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndmsg {
+pub ndm_family: __u8,
+pub ndm_pad1: __u8,
+pub ndm_pad2: __u16,
+pub ndm_ifindex: __s32,
+pub ndm_state: __u16,
+pub ndm_flags: __u8,
+pub ndm_type: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nda_cacheinfo {
+pub ndm_confirmed: __u32,
+pub ndm_used: __u32,
+pub ndm_updated: __u32,
+pub ndm_refcnt: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_stats {
+pub ndts_allocs: __u64,
+pub ndts_destroys: __u64,
+pub ndts_hash_grows: __u64,
+pub ndts_res_failed: __u64,
+pub ndts_lookups: __u64,
+pub ndts_hits: __u64,
+pub ndts_rcv_probes_mcast: __u64,
+pub ndts_rcv_probes_ucast: __u64,
+pub ndts_periodic_gc_runs: __u64,
+pub ndts_forced_gc_runs: __u64,
+pub ndts_table_fulls: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndtmsg {
+pub ndtm_family: __u8,
+pub ndtm_pad1: __u8,
+pub ndtm_pad2: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_config {
+pub ndtc_key_len: __u16,
+pub ndtc_entry_size: __u16,
+pub ndtc_entries: __u32,
+pub ndtc_last_flush: __u32,
+pub ndtc_last_rand: __u32,
+pub ndtc_hash_rnd: __u32,
+pub ndtc_hash_mask: __u32,
+pub ndtc_hash_chain_gc: __u32,
+pub ndtc_proxy_qlen: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtattr {
+pub rta_len: crate::ctypes::c_ushort,
+pub rta_type: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtmsg {
+pub rtm_family: crate::ctypes::c_uchar,
+pub rtm_dst_len: crate::ctypes::c_uchar,
+pub rtm_src_len: crate::ctypes::c_uchar,
+pub rtm_tos: crate::ctypes::c_uchar,
+pub rtm_table: crate::ctypes::c_uchar,
+pub rtm_protocol: crate::ctypes::c_uchar,
+pub rtm_scope: crate::ctypes::c_uchar,
+pub rtm_type: crate::ctypes::c_uchar,
+pub rtm_flags: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnexthop {
+pub rtnh_len: crate::ctypes::c_ushort,
+pub rtnh_flags: crate::ctypes::c_uchar,
+pub rtnh_hops: crate::ctypes::c_uchar,
+pub rtnh_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct rtvia {
+pub rtvia_family: __kernel_sa_family_t,
+pub rtvia_addr: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_cacheinfo {
+pub rta_clntref: __u32,
+pub rta_lastuse: __u32,
+pub rta_expires: __s32,
+pub rta_error: __u32,
+pub rta_used: __u32,
+pub rta_id: __u32,
+pub rta_ts: __u32,
+pub rta_tsage: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rta_session {
+pub proto: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub u: rta_session__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_1 {
+pub sport: __u16,
+pub dport: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_2 {
+pub type_: __u8,
+pub code: __u8,
+pub ident: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_mfc_stats {
+pub mfcs_packets: __u64,
+pub mfcs_bytes: __u64,
+pub mfcs_wrong_if: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtgenmsg {
+pub rtgen_family: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifinfomsg {
+pub ifi_family: crate::ctypes::c_uchar,
+pub __ifi_pad: crate::ctypes::c_uchar,
+pub ifi_type: crate::ctypes::c_ushort,
+pub ifi_index: crate::ctypes::c_int,
+pub ifi_flags: crate::ctypes::c_uint,
+pub ifi_change: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefixmsg {
+pub prefix_family: crate::ctypes::c_uchar,
+pub prefix_pad1: crate::ctypes::c_uchar,
+pub prefix_pad2: crate::ctypes::c_ushort,
+pub prefix_ifindex: crate::ctypes::c_int,
+pub prefix_type: crate::ctypes::c_uchar,
+pub prefix_len: crate::ctypes::c_uchar,
+pub prefix_flags: crate::ctypes::c_uchar,
+pub prefix_pad3: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefix_cacheinfo {
+pub preferred_time: __u32,
+pub valid_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcmsg {
+pub tcm_family: crate::ctypes::c_uchar,
+pub tcm__pad1: crate::ctypes::c_uchar,
+pub tcm__pad2: crate::ctypes::c_ushort,
+pub tcm_ifindex: crate::ctypes::c_int,
+pub tcm_handle: __u32,
+pub tcm_parent: __u32,
+pub tcm_info: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nduseroptmsg {
+pub nduseropt_family: crate::ctypes::c_uchar,
+pub nduseropt_pad1: crate::ctypes::c_uchar,
+pub nduseropt_opts_len: crate::ctypes::c_ushort,
+pub nduseropt_ifindex: crate::ctypes::c_int,
+pub nduseropt_icmp_type: __u8,
+pub nduseropt_icmp_code: __u8,
+pub nduseropt_pad2: crate::ctypes::c_ushort,
+pub nduseropt_pad3: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcamsg {
+pub tca_family: crate::ctypes::c_uchar,
+pub tca__pad1: crate::ctypes::c_uchar,
+pub tca__pad2: crate::ctypes::c_ushort,
+}
+pub const _K_SS_MAXSIZE: u32 = 128;
+pub const SOCK_SNDBUF_LOCK: u32 = 1;
+pub const SOCK_RCVBUF_LOCK: u32 = 2;
+pub const SOCK_BUF_LOCK_MASK: u32 = 3;
+pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
+pub const SOCK_TXREHASH_DISABLED: u32 = 0;
+pub const SOCK_TXREHASH_ENABLED: u32 = 1;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/loongarch64/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/prctl.rs
new file mode 100644
index 0000000..cccf5cc
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/prctl.rs
@@ -0,0 +1,262 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/loongarch64/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/ptrace.rs
new file mode 100644
index 0000000..e36f555
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/ptrace.rs
@@ -0,0 +1,842 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_pt_regs {
+pub regs: [crate::ctypes::c_ulong; 32usize],
+pub orig_a0: crate::ctypes::c_ulong,
+pub csr_era: crate::ctypes::c_ulong,
+pub csr_badv: crate::ctypes::c_ulong,
+pub reserved: [crate::ctypes::c_ulong; 10usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_fp_state {
+pub fpr: [u64; 32usize],
+pub fcc: u64,
+pub fcsr: u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_lsx_state {
+pub vregs: [u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_lasx_state {
+pub vregs: [u64; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_lbt_state {
+pub scr: [u64; 4usize],
+pub eflags: u32,
+pub ftop: u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_watch_state {
+pub dbg_info: u64,
+pub dbg_regs: [user_watch_state__bindgen_ty_1; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_watch_state__bindgen_ty_1 {
+pub addr: u64,
+pub mask: u64,
+pub ctrl: u32,
+pub pad: u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const GPR_BASE: u32 = 0;
+pub const GPR_NUM: u32 = 32;
+pub const GPR_END: u32 = 31;
+pub const ARG0: u32 = 32;
+pub const PC: u32 = 33;
+pub const BADVADDR: u32 = 34;
+pub const NUM_FPU_REGS: u32 = 32;
+pub const PTRACE_SYSEMU: u32 = 31;
+pub const PTRACE_SYSEMU_SINGLESTEP: u32 = 32;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/loongarch64/system.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/system.rs
new file mode 100644
index 0000000..dd95fee
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/system.rs
@@ -0,0 +1,132 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug)]
+pub struct sysinfo {
+pub uptime: __kernel_long_t,
+pub loads: [__kernel_ulong_t; 3usize],
+pub totalram: __kernel_ulong_t,
+pub freeram: __kernel_ulong_t,
+pub sharedram: __kernel_ulong_t,
+pub bufferram: __kernel_ulong_t,
+pub totalswap: __kernel_ulong_t,
+pub freeswap: __kernel_ulong_t,
+pub procs: __u16,
+pub pad: __u16,
+pub totalhigh: __kernel_ulong_t,
+pub freehigh: __kernel_ulong_t,
+pub mem_unit: __u32,
+pub _f: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct oldold_utsname {
+pub sysname: [crate::ctypes::c_char; 9usize],
+pub nodename: [crate::ctypes::c_char; 9usize],
+pub release: [crate::ctypes::c_char; 9usize],
+pub version: [crate::ctypes::c_char; 9usize],
+pub machine: [crate::ctypes::c_char; 9usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct old_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct new_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+pub domainname: [crate::ctypes::c_char; 65usize],
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/loongarch64/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/loongarch64/xdp.rs
new file mode 100644
index 0000000..132f82c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/loongarch64/xdp.rs
@@ -0,0 +1,191 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/mips/bootparam.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/bootparam.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/mips/btrfs.rs
new file mode 100644
index 0000000..221cfc2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/btrfs.rs
@@ -0,0 +1,1876 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 _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 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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/mips/elf_uapi.rs
new file mode 100644
index 0000000..58a860e
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/elf_uapi.rs
@@ -0,0 +1,532 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips/errno.rs b/vendor/linux-raw-sys-0.9.4/src/mips/errno.rs
new file mode 100644
index 0000000..0f7ab95
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/errno.rs
@@ -0,0 +1,137 @@
+/* automatically generated by rust-bindgen 0.71.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.9.4/src/mips/general.rs b/vendor/linux-raw-sys-0.9.4/src/mips/general.rs
new file mode 100644
index 0000000..6bc39d8
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/general.rs
@@ -0,0 +1,3489 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_ino_t = __kernel_ulong_t;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
+pub type __kernel_uid_t = crate::ctypes::c_uint;
+pub type __kernel_gid_t = crate::ctypes::c_uint;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_old_uid_t = __kernel_uid_t;
+pub type __kernel_old_gid_t = __kernel_gid_t;
+pub type __kernel_old_dev_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type cap_user_header_t = *mut __user_cap_header_struct;
+pub type cap_user_data_t = *mut __user_cap_data_struct;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+pub type old_sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type fsid_t = __kernel_fsid_t;
+pub type __fsword_t = __u32;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 32usize],
+}
+#[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,
+pub l_sysid: crate::ctypes::c_long,
+pub pad: [crate::ctypes::c_long; 4usize],
+}
+#[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 epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 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; 4usize],
+}
+#[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; 4usize],
+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; 4usize],
+pub _pkey: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3 {
+pub _data: crate::ctypes::c_ulong,
+pub _type: __u32,
+pub _flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_6 {
+pub _band: crate::ctypes::c_long,
+pub _fd: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_7 {
+pub _call_addr: *mut crate::ctypes::c_void,
+pub _syscall: crate::ctypes::c_int,
+pub _arch: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct siginfo {
+pub __bindgen_anon_1: siginfo__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct siginfo__bindgen_ty_1__bindgen_ty_1 {
+pub si_signo: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub si_errno: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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 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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulonglong,
+pub d_off: crate::ctypes::c_longlong,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_uint,
+pub st_pad1: [crate::ctypes::c_long; 3usize],
+pub st_ino: __kernel_ino_t,
+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_pad2: [crate::ctypes::c_long; 2usize],
+pub st_size: crate::ctypes::c_long,
+pub st_pad3: crate::ctypes::c_long,
+pub st_atime: crate::ctypes::c_long,
+pub st_atime_nsec: crate::ctypes::c_long,
+pub st_mtime: crate::ctypes::c_long,
+pub st_mtime_nsec: crate::ctypes::c_long,
+pub st_ctime: crate::ctypes::c_long,
+pub st_ctime_nsec: crate::ctypes::c_long,
+pub st_blksize: crate::ctypes::c_long,
+pub st_blocks: crate::ctypes::c_long,
+pub st_pad4: [crate::ctypes::c_long; 14usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat64 {
+pub st_dev: crate::ctypes::c_ulong,
+pub st_pad0: [crate::ctypes::c_ulong; 3usize],
+pub st_ino: crate::ctypes::c_ulonglong,
+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_ulong,
+pub st_pad1: [crate::ctypes::c_ulong; 3usize],
+pub st_size: crate::ctypes::c_longlong,
+pub st_atime: crate::ctypes::c_long,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_long,
+pub st_mtime_nsec: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_long,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub st_blksize: crate::ctypes::c_ulong,
+pub st_pad2: crate::ctypes::c_ulong,
+pub st_blocks: crate::ctypes::c_longlong,
+}
+#[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: __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; 4usize],
+}
+#[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 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 F_GETLK64: u32 = 33;
+pub const F_SETLK64: u32 = 34;
+pub const F_SETLKW64: u32 = 35;
+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_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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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_DROPPABLE: u32 = 8;
+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 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 RLIM_INFINITY: u32 = 2147483647;
+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 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_EXT: u32 = 7;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 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 UIO_FASTIOV: u32 = 8;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const __NR_Linux: u32 = 4000;
+pub const __NR_syscall: u32 = 4000;
+pub const __NR_exit: u32 = 4001;
+pub const __NR_fork: u32 = 4002;
+pub const __NR_read: u32 = 4003;
+pub const __NR_write: u32 = 4004;
+pub const __NR_open: u32 = 4005;
+pub const __NR_close: u32 = 4006;
+pub const __NR_waitpid: u32 = 4007;
+pub const __NR_creat: u32 = 4008;
+pub const __NR_link: u32 = 4009;
+pub const __NR_unlink: u32 = 4010;
+pub const __NR_execve: u32 = 4011;
+pub const __NR_chdir: u32 = 4012;
+pub const __NR_time: u32 = 4013;
+pub const __NR_mknod: u32 = 4014;
+pub const __NR_chmod: u32 = 4015;
+pub const __NR_lchown: u32 = 4016;
+pub const __NR_break: u32 = 4017;
+pub const __NR_unused18: u32 = 4018;
+pub const __NR_lseek: u32 = 4019;
+pub const __NR_getpid: u32 = 4020;
+pub const __NR_mount: u32 = 4021;
+pub const __NR_umount: u32 = 4022;
+pub const __NR_setuid: u32 = 4023;
+pub const __NR_getuid: u32 = 4024;
+pub const __NR_stime: u32 = 4025;
+pub const __NR_ptrace: u32 = 4026;
+pub const __NR_alarm: u32 = 4027;
+pub const __NR_unused28: u32 = 4028;
+pub const __NR_pause: u32 = 4029;
+pub const __NR_utime: u32 = 4030;
+pub const __NR_stty: u32 = 4031;
+pub const __NR_gtty: u32 = 4032;
+pub const __NR_access: u32 = 4033;
+pub const __NR_nice: u32 = 4034;
+pub const __NR_ftime: u32 = 4035;
+pub const __NR_sync: u32 = 4036;
+pub const __NR_kill: u32 = 4037;
+pub const __NR_rename: u32 = 4038;
+pub const __NR_mkdir: u32 = 4039;
+pub const __NR_rmdir: u32 = 4040;
+pub const __NR_dup: u32 = 4041;
+pub const __NR_pipe: u32 = 4042;
+pub const __NR_times: u32 = 4043;
+pub const __NR_prof: u32 = 4044;
+pub const __NR_brk: u32 = 4045;
+pub const __NR_setgid: u32 = 4046;
+pub const __NR_getgid: u32 = 4047;
+pub const __NR_signal: u32 = 4048;
+pub const __NR_geteuid: u32 = 4049;
+pub const __NR_getegid: u32 = 4050;
+pub const __NR_acct: u32 = 4051;
+pub const __NR_umount2: u32 = 4052;
+pub const __NR_lock: u32 = 4053;
+pub const __NR_ioctl: u32 = 4054;
+pub const __NR_fcntl: u32 = 4055;
+pub const __NR_mpx: u32 = 4056;
+pub const __NR_setpgid: u32 = 4057;
+pub const __NR_ulimit: u32 = 4058;
+pub const __NR_unused59: u32 = 4059;
+pub const __NR_umask: u32 = 4060;
+pub const __NR_chroot: u32 = 4061;
+pub const __NR_ustat: u32 = 4062;
+pub const __NR_dup2: u32 = 4063;
+pub const __NR_getppid: u32 = 4064;
+pub const __NR_getpgrp: u32 = 4065;
+pub const __NR_setsid: u32 = 4066;
+pub const __NR_sigaction: u32 = 4067;
+pub const __NR_sgetmask: u32 = 4068;
+pub const __NR_ssetmask: u32 = 4069;
+pub const __NR_setreuid: u32 = 4070;
+pub const __NR_setregid: u32 = 4071;
+pub const __NR_sigsuspend: u32 = 4072;
+pub const __NR_sigpending: u32 = 4073;
+pub const __NR_sethostname: u32 = 4074;
+pub const __NR_setrlimit: u32 = 4075;
+pub const __NR_getrlimit: u32 = 4076;
+pub const __NR_getrusage: u32 = 4077;
+pub const __NR_gettimeofday: u32 = 4078;
+pub const __NR_settimeofday: u32 = 4079;
+pub const __NR_getgroups: u32 = 4080;
+pub const __NR_setgroups: u32 = 4081;
+pub const __NR_reserved82: u32 = 4082;
+pub const __NR_symlink: u32 = 4083;
+pub const __NR_unused84: u32 = 4084;
+pub const __NR_readlink: u32 = 4085;
+pub const __NR_uselib: u32 = 4086;
+pub const __NR_swapon: u32 = 4087;
+pub const __NR_reboot: u32 = 4088;
+pub const __NR_readdir: u32 = 4089;
+pub const __NR_mmap: u32 = 4090;
+pub const __NR_munmap: u32 = 4091;
+pub const __NR_truncate: u32 = 4092;
+pub const __NR_ftruncate: u32 = 4093;
+pub const __NR_fchmod: u32 = 4094;
+pub const __NR_fchown: u32 = 4095;
+pub const __NR_getpriority: u32 = 4096;
+pub const __NR_setpriority: u32 = 4097;
+pub const __NR_profil: u32 = 4098;
+pub const __NR_statfs: u32 = 4099;
+pub const __NR_fstatfs: u32 = 4100;
+pub const __NR_ioperm: u32 = 4101;
+pub const __NR_socketcall: u32 = 4102;
+pub const __NR_syslog: u32 = 4103;
+pub const __NR_setitimer: u32 = 4104;
+pub const __NR_getitimer: u32 = 4105;
+pub const __NR_stat: u32 = 4106;
+pub const __NR_lstat: u32 = 4107;
+pub const __NR_fstat: u32 = 4108;
+pub const __NR_unused109: u32 = 4109;
+pub const __NR_iopl: u32 = 4110;
+pub const __NR_vhangup: u32 = 4111;
+pub const __NR_idle: u32 = 4112;
+pub const __NR_vm86: u32 = 4113;
+pub const __NR_wait4: u32 = 4114;
+pub const __NR_swapoff: u32 = 4115;
+pub const __NR_sysinfo: u32 = 4116;
+pub const __NR_ipc: u32 = 4117;
+pub const __NR_fsync: u32 = 4118;
+pub const __NR_sigreturn: u32 = 4119;
+pub const __NR_clone: u32 = 4120;
+pub const __NR_setdomainname: u32 = 4121;
+pub const __NR_uname: u32 = 4122;
+pub const __NR_modify_ldt: u32 = 4123;
+pub const __NR_adjtimex: u32 = 4124;
+pub const __NR_mprotect: u32 = 4125;
+pub const __NR_sigprocmask: u32 = 4126;
+pub const __NR_create_module: u32 = 4127;
+pub const __NR_init_module: u32 = 4128;
+pub const __NR_delete_module: u32 = 4129;
+pub const __NR_get_kernel_syms: u32 = 4130;
+pub const __NR_quotactl: u32 = 4131;
+pub const __NR_getpgid: u32 = 4132;
+pub const __NR_fchdir: u32 = 4133;
+pub const __NR_bdflush: u32 = 4134;
+pub const __NR_sysfs: u32 = 4135;
+pub const __NR_personality: u32 = 4136;
+pub const __NR_afs_syscall: u32 = 4137;
+pub const __NR_setfsuid: u32 = 4138;
+pub const __NR_setfsgid: u32 = 4139;
+pub const __NR__llseek: u32 = 4140;
+pub const __NR_getdents: u32 = 4141;
+pub const __NR__newselect: u32 = 4142;
+pub const __NR_flock: u32 = 4143;
+pub const __NR_msync: u32 = 4144;
+pub const __NR_readv: u32 = 4145;
+pub const __NR_writev: u32 = 4146;
+pub const __NR_cacheflush: u32 = 4147;
+pub const __NR_cachectl: u32 = 4148;
+pub const __NR_sysmips: u32 = 4149;
+pub const __NR_unused150: u32 = 4150;
+pub const __NR_getsid: u32 = 4151;
+pub const __NR_fdatasync: u32 = 4152;
+pub const __NR__sysctl: u32 = 4153;
+pub const __NR_mlock: u32 = 4154;
+pub const __NR_munlock: u32 = 4155;
+pub const __NR_mlockall: u32 = 4156;
+pub const __NR_munlockall: u32 = 4157;
+pub const __NR_sched_setparam: u32 = 4158;
+pub const __NR_sched_getparam: u32 = 4159;
+pub const __NR_sched_setscheduler: u32 = 4160;
+pub const __NR_sched_getscheduler: u32 = 4161;
+pub const __NR_sched_yield: u32 = 4162;
+pub const __NR_sched_get_priority_max: u32 = 4163;
+pub const __NR_sched_get_priority_min: u32 = 4164;
+pub const __NR_sched_rr_get_interval: u32 = 4165;
+pub const __NR_nanosleep: u32 = 4166;
+pub const __NR_mremap: u32 = 4167;
+pub const __NR_accept: u32 = 4168;
+pub const __NR_bind: u32 = 4169;
+pub const __NR_connect: u32 = 4170;
+pub const __NR_getpeername: u32 = 4171;
+pub const __NR_getsockname: u32 = 4172;
+pub const __NR_getsockopt: u32 = 4173;
+pub const __NR_listen: u32 = 4174;
+pub const __NR_recv: u32 = 4175;
+pub const __NR_recvfrom: u32 = 4176;
+pub const __NR_recvmsg: u32 = 4177;
+pub const __NR_send: u32 = 4178;
+pub const __NR_sendmsg: u32 = 4179;
+pub const __NR_sendto: u32 = 4180;
+pub const __NR_setsockopt: u32 = 4181;
+pub const __NR_shutdown: u32 = 4182;
+pub const __NR_socket: u32 = 4183;
+pub const __NR_socketpair: u32 = 4184;
+pub const __NR_setresuid: u32 = 4185;
+pub const __NR_getresuid: u32 = 4186;
+pub const __NR_query_module: u32 = 4187;
+pub const __NR_poll: u32 = 4188;
+pub const __NR_nfsservctl: u32 = 4189;
+pub const __NR_setresgid: u32 = 4190;
+pub const __NR_getresgid: u32 = 4191;
+pub const __NR_prctl: u32 = 4192;
+pub const __NR_rt_sigreturn: u32 = 4193;
+pub const __NR_rt_sigaction: u32 = 4194;
+pub const __NR_rt_sigprocmask: u32 = 4195;
+pub const __NR_rt_sigpending: u32 = 4196;
+pub const __NR_rt_sigtimedwait: u32 = 4197;
+pub const __NR_rt_sigqueueinfo: u32 = 4198;
+pub const __NR_rt_sigsuspend: u32 = 4199;
+pub const __NR_pread64: u32 = 4200;
+pub const __NR_pwrite64: u32 = 4201;
+pub const __NR_chown: u32 = 4202;
+pub const __NR_getcwd: u32 = 4203;
+pub const __NR_capget: u32 = 4204;
+pub const __NR_capset: u32 = 4205;
+pub const __NR_sigaltstack: u32 = 4206;
+pub const __NR_sendfile: u32 = 4207;
+pub const __NR_getpmsg: u32 = 4208;
+pub const __NR_putpmsg: u32 = 4209;
+pub const __NR_mmap2: u32 = 4210;
+pub const __NR_truncate64: u32 = 4211;
+pub const __NR_ftruncate64: u32 = 4212;
+pub const __NR_stat64: u32 = 4213;
+pub const __NR_lstat64: u32 = 4214;
+pub const __NR_fstat64: u32 = 4215;
+pub const __NR_pivot_root: u32 = 4216;
+pub const __NR_mincore: u32 = 4217;
+pub const __NR_madvise: u32 = 4218;
+pub const __NR_getdents64: u32 = 4219;
+pub const __NR_fcntl64: u32 = 4220;
+pub const __NR_reserved221: u32 = 4221;
+pub const __NR_gettid: u32 = 4222;
+pub const __NR_readahead: u32 = 4223;
+pub const __NR_setxattr: u32 = 4224;
+pub const __NR_lsetxattr: u32 = 4225;
+pub const __NR_fsetxattr: u32 = 4226;
+pub const __NR_getxattr: u32 = 4227;
+pub const __NR_lgetxattr: u32 = 4228;
+pub const __NR_fgetxattr: u32 = 4229;
+pub const __NR_listxattr: u32 = 4230;
+pub const __NR_llistxattr: u32 = 4231;
+pub const __NR_flistxattr: u32 = 4232;
+pub const __NR_removexattr: u32 = 4233;
+pub const __NR_lremovexattr: u32 = 4234;
+pub const __NR_fremovexattr: u32 = 4235;
+pub const __NR_tkill: u32 = 4236;
+pub const __NR_sendfile64: u32 = 4237;
+pub const __NR_futex: u32 = 4238;
+pub const __NR_sched_setaffinity: u32 = 4239;
+pub const __NR_sched_getaffinity: u32 = 4240;
+pub const __NR_io_setup: u32 = 4241;
+pub const __NR_io_destroy: u32 = 4242;
+pub const __NR_io_getevents: u32 = 4243;
+pub const __NR_io_submit: u32 = 4244;
+pub const __NR_io_cancel: u32 = 4245;
+pub const __NR_exit_group: u32 = 4246;
+pub const __NR_lookup_dcookie: u32 = 4247;
+pub const __NR_epoll_create: u32 = 4248;
+pub const __NR_epoll_ctl: u32 = 4249;
+pub const __NR_epoll_wait: u32 = 4250;
+pub const __NR_remap_file_pages: u32 = 4251;
+pub const __NR_set_tid_address: u32 = 4252;
+pub const __NR_restart_syscall: u32 = 4253;
+pub const __NR_fadvise64: u32 = 4254;
+pub const __NR_statfs64: u32 = 4255;
+pub const __NR_fstatfs64: u32 = 4256;
+pub const __NR_timer_create: u32 = 4257;
+pub const __NR_timer_settime: u32 = 4258;
+pub const __NR_timer_gettime: u32 = 4259;
+pub const __NR_timer_getoverrun: u32 = 4260;
+pub const __NR_timer_delete: u32 = 4261;
+pub const __NR_clock_settime: u32 = 4262;
+pub const __NR_clock_gettime: u32 = 4263;
+pub const __NR_clock_getres: u32 = 4264;
+pub const __NR_clock_nanosleep: u32 = 4265;
+pub const __NR_tgkill: u32 = 4266;
+pub const __NR_utimes: u32 = 4267;
+pub const __NR_mbind: u32 = 4268;
+pub const __NR_get_mempolicy: u32 = 4269;
+pub const __NR_set_mempolicy: u32 = 4270;
+pub const __NR_mq_open: u32 = 4271;
+pub const __NR_mq_unlink: u32 = 4272;
+pub const __NR_mq_timedsend: u32 = 4273;
+pub const __NR_mq_timedreceive: u32 = 4274;
+pub const __NR_mq_notify: u32 = 4275;
+pub const __NR_mq_getsetattr: u32 = 4276;
+pub const __NR_vserver: u32 = 4277;
+pub const __NR_waitid: u32 = 4278;
+pub const __NR_add_key: u32 = 4280;
+pub const __NR_request_key: u32 = 4281;
+pub const __NR_keyctl: u32 = 4282;
+pub const __NR_set_thread_area: u32 = 4283;
+pub const __NR_inotify_init: u32 = 4284;
+pub const __NR_inotify_add_watch: u32 = 4285;
+pub const __NR_inotify_rm_watch: u32 = 4286;
+pub const __NR_migrate_pages: u32 = 4287;
+pub const __NR_openat: u32 = 4288;
+pub const __NR_mkdirat: u32 = 4289;
+pub const __NR_mknodat: u32 = 4290;
+pub const __NR_fchownat: u32 = 4291;
+pub const __NR_futimesat: u32 = 4292;
+pub const __NR_fstatat64: u32 = 4293;
+pub const __NR_unlinkat: u32 = 4294;
+pub const __NR_renameat: u32 = 4295;
+pub const __NR_linkat: u32 = 4296;
+pub const __NR_symlinkat: u32 = 4297;
+pub const __NR_readlinkat: u32 = 4298;
+pub const __NR_fchmodat: u32 = 4299;
+pub const __NR_faccessat: u32 = 4300;
+pub const __NR_pselect6: u32 = 4301;
+pub const __NR_ppoll: u32 = 4302;
+pub const __NR_unshare: u32 = 4303;
+pub const __NR_splice: u32 = 4304;
+pub const __NR_sync_file_range: u32 = 4305;
+pub const __NR_tee: u32 = 4306;
+pub const __NR_vmsplice: u32 = 4307;
+pub const __NR_move_pages: u32 = 4308;
+pub const __NR_set_robust_list: u32 = 4309;
+pub const __NR_get_robust_list: u32 = 4310;
+pub const __NR_kexec_load: u32 = 4311;
+pub const __NR_getcpu: u32 = 4312;
+pub const __NR_epoll_pwait: u32 = 4313;
+pub const __NR_ioprio_set: u32 = 4314;
+pub const __NR_ioprio_get: u32 = 4315;
+pub const __NR_utimensat: u32 = 4316;
+pub const __NR_signalfd: u32 = 4317;
+pub const __NR_timerfd: u32 = 4318;
+pub const __NR_eventfd: u32 = 4319;
+pub const __NR_fallocate: u32 = 4320;
+pub const __NR_timerfd_create: u32 = 4321;
+pub const __NR_timerfd_gettime: u32 = 4322;
+pub const __NR_timerfd_settime: u32 = 4323;
+pub const __NR_signalfd4: u32 = 4324;
+pub const __NR_eventfd2: u32 = 4325;
+pub const __NR_epoll_create1: u32 = 4326;
+pub const __NR_dup3: u32 = 4327;
+pub const __NR_pipe2: u32 = 4328;
+pub const __NR_inotify_init1: u32 = 4329;
+pub const __NR_preadv: u32 = 4330;
+pub const __NR_pwritev: u32 = 4331;
+pub const __NR_rt_tgsigqueueinfo: u32 = 4332;
+pub const __NR_perf_event_open: u32 = 4333;
+pub const __NR_accept4: u32 = 4334;
+pub const __NR_recvmmsg: u32 = 4335;
+pub const __NR_fanotify_init: u32 = 4336;
+pub const __NR_fanotify_mark: u32 = 4337;
+pub const __NR_prlimit64: u32 = 4338;
+pub const __NR_name_to_handle_at: u32 = 4339;
+pub const __NR_open_by_handle_at: u32 = 4340;
+pub const __NR_clock_adjtime: u32 = 4341;
+pub const __NR_syncfs: u32 = 4342;
+pub const __NR_sendmmsg: u32 = 4343;
+pub const __NR_setns: u32 = 4344;
+pub const __NR_process_vm_readv: u32 = 4345;
+pub const __NR_process_vm_writev: u32 = 4346;
+pub const __NR_kcmp: u32 = 4347;
+pub const __NR_finit_module: u32 = 4348;
+pub const __NR_sched_setattr: u32 = 4349;
+pub const __NR_sched_getattr: u32 = 4350;
+pub const __NR_renameat2: u32 = 4351;
+pub const __NR_seccomp: u32 = 4352;
+pub const __NR_getrandom: u32 = 4353;
+pub const __NR_memfd_create: u32 = 4354;
+pub const __NR_bpf: u32 = 4355;
+pub const __NR_execveat: u32 = 4356;
+pub const __NR_userfaultfd: u32 = 4357;
+pub const __NR_membarrier: u32 = 4358;
+pub const __NR_mlock2: u32 = 4359;
+pub const __NR_copy_file_range: u32 = 4360;
+pub const __NR_preadv2: u32 = 4361;
+pub const __NR_pwritev2: u32 = 4362;
+pub const __NR_pkey_mprotect: u32 = 4363;
+pub const __NR_pkey_alloc: u32 = 4364;
+pub const __NR_pkey_free: u32 = 4365;
+pub const __NR_statx: u32 = 4366;
+pub const __NR_rseq: u32 = 4367;
+pub const __NR_io_pgetevents: u32 = 4368;
+pub const __NR_semget: u32 = 4393;
+pub const __NR_semctl: u32 = 4394;
+pub const __NR_shmget: u32 = 4395;
+pub const __NR_shmctl: u32 = 4396;
+pub const __NR_shmat: u32 = 4397;
+pub const __NR_shmdt: u32 = 4398;
+pub const __NR_msgget: u32 = 4399;
+pub const __NR_msgsnd: u32 = 4400;
+pub const __NR_msgrcv: u32 = 4401;
+pub const __NR_msgctl: u32 = 4402;
+pub const __NR_clock_gettime64: u32 = 4403;
+pub const __NR_clock_settime64: u32 = 4404;
+pub const __NR_clock_adjtime64: u32 = 4405;
+pub const __NR_clock_getres_time64: u32 = 4406;
+pub const __NR_clock_nanosleep_time64: u32 = 4407;
+pub const __NR_timer_gettime64: u32 = 4408;
+pub const __NR_timer_settime64: u32 = 4409;
+pub const __NR_timerfd_gettime64: u32 = 4410;
+pub const __NR_timerfd_settime64: u32 = 4411;
+pub const __NR_utimensat_time64: u32 = 4412;
+pub const __NR_pselect6_time64: u32 = 4413;
+pub const __NR_ppoll_time64: u32 = 4414;
+pub const __NR_io_pgetevents_time64: u32 = 4416;
+pub const __NR_recvmmsg_time64: u32 = 4417;
+pub const __NR_mq_timedsend_time64: u32 = 4418;
+pub const __NR_mq_timedreceive_time64: u32 = 4419;
+pub const __NR_semtimedop_time64: u32 = 4420;
+pub const __NR_rt_sigtimedwait_time64: u32 = 4421;
+pub const __NR_futex_time64: u32 = 4422;
+pub const __NR_sched_rr_get_interval_time64: u32 = 4423;
+pub const __NR_pidfd_send_signal: u32 = 4424;
+pub const __NR_io_uring_setup: u32 = 4425;
+pub const __NR_io_uring_enter: u32 = 4426;
+pub const __NR_io_uring_register: u32 = 4427;
+pub const __NR_open_tree: u32 = 4428;
+pub const __NR_move_mount: u32 = 4429;
+pub const __NR_fsopen: u32 = 4430;
+pub const __NR_fsconfig: u32 = 4431;
+pub const __NR_fsmount: u32 = 4432;
+pub const __NR_fspick: u32 = 4433;
+pub const __NR_pidfd_open: u32 = 4434;
+pub const __NR_clone3: u32 = 4435;
+pub const __NR_close_range: u32 = 4436;
+pub const __NR_openat2: u32 = 4437;
+pub const __NR_pidfd_getfd: u32 = 4438;
+pub const __NR_faccessat2: u32 = 4439;
+pub const __NR_process_madvise: u32 = 4440;
+pub const __NR_epoll_pwait2: u32 = 4441;
+pub const __NR_mount_setattr: u32 = 4442;
+pub const __NR_quotactl_fd: u32 = 4443;
+pub const __NR_landlock_create_ruleset: u32 = 4444;
+pub const __NR_landlock_add_rule: u32 = 4445;
+pub const __NR_landlock_restrict_self: u32 = 4446;
+pub const __NR_process_mrelease: u32 = 4448;
+pub const __NR_futex_waitv: u32 = 4449;
+pub const __NR_set_mempolicy_home_node: u32 = 4450;
+pub const __NR_cachestat: u32 = 4451;
+pub const __NR_fchmodat2: u32 = 4452;
+pub const __NR_map_shadow_stack: u32 = 4453;
+pub const __NR_futex_wake: u32 = 4454;
+pub const __NR_futex_wait: u32 = 4455;
+pub const __NR_futex_requeue: u32 = 4456;
+pub const __NR_statmount: u32 = 4457;
+pub const __NR_listmount: u32 = 4458;
+pub const __NR_lsm_get_self_attr: u32 = 4459;
+pub const __NR_lsm_set_self_attr: u32 = 4460;
+pub const __NR_lsm_list_modules: u32 = 4461;
+pub const __NR_mseal: u32 = 4462;
+pub const __NR_setxattrat: u32 = 4463;
+pub const __NR_getxattrat: u32 = 4464;
+pub const __NR_listxattrat: u32 = 4465;
+pub const __NR_removexattrat: u32 = 4466;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[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; 13usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/mips/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/mips/if_arp.rs
new file mode 100644
index 0000000..8f2e3e2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/if_arp.rs
@@ -0,0 +1,2765 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/mips/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/mips/if_ether.rs
new file mode 100644
index 0000000..94ef74c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/if_ether.rs
@@ -0,0 +1,178 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/mips/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/mips/if_packet.rs
new file mode 100644
index 0000000..2c41fcb
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/if_packet.rs
@@ -0,0 +1,319 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/mips/image.rs b/vendor/linux-raw-sys-0.9.4/src/mips/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/mips/io_uring.rs
new file mode 100644
index 0000000..aa54494
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/io_uring.rs
@@ -0,0 +1,1344 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/mips/ioctl.rs
new file mode 100644
index 0000000..4e1d2b7
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/ioctl.rs
@@ -0,0 +1,1496 @@
+/* automatically generated by rust-bindgen 0.71.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 = 1075604738;
+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 = 1074008688;
+pub const BLKBSZSET: u32 = 2147750513;
+pub const BLKGETSIZE64: u32 = 1074008690;
+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: u32 = 4294967295;
+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 = 1074030081;
+pub const FS_IOC_SETFLAGS: u32 = 2147771906;
+pub const FS_IOC_GETVERSION: u32 = 1074034177;
+pub const FS_IOC_SETVERSION: u32 = 2147776002;
+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 = 1074030083;
+pub const EXT4_IOC_SETVERSION: u32 = 2147771908;
+pub const EXT4_IOC_GETVERSION_OLD: u32 = 1074034177;
+pub const EXT4_IOC_SETVERSION_OLD: u32 = 2147776002;
+pub const EXT4_IOC_GETRSVSZ: u32 = 1074030085;
+pub const EXT4_IOC_SETRSVSZ: u32 = 2147771910;
+pub const EXT4_IOC_GROUP_EXTEND: u32 = 2147771911;
+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 = 2148295050;
+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 = 1075866881;
+pub const ENI_SETMULT: u32 = 2148295015;
+pub const RIO_GET_EVENT_MASK: u32 = 1074031886;
+pub const LIRC_GET_MAX_TIMEOUT: u32 = 1074030857;
+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 = 3234616896;
+pub const LIRC_SET_REC_MODE: u32 = 2147772690;
+pub const VIDIOC_DQEVENT: u32 = 1082152537;
+pub const RPMSG_DESTROY_EPT_IOCTL: u32 = 536917250;
+pub const UVCIOC_CTRL_MAP: u32 = 3227022624;
+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 = 3222820425;
+pub const LIRC_GET_REC_MODE: u32 = 1074030850;
+pub const PPGETTIME: u32 = 1074294933;
+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 = 3222825227;
+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 = 3222036833;
+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 = 2148295054;
+pub const FSL_HV_IOCTL_GETPROP: u32 = 3223891719;
+pub const FDGETPRM: u32 = 1075577348;
+pub const HIDIOCAPPLICATION: u32 = 536889346;
+pub const ENI_MEMDUMP: u32 = 2148295008;
+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 = 1074032653;
+pub const VIDIOC_SUBDEV_S_SELECTION: u32 = 3225441854;
+pub const VIDIOC_QUERY_EXT_CTRL: u32 = 3236451943;
+pub const ATM_GETLECSADDR: u32 = 2148295056;
+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 = 2147810818;
+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 = 2147767565;
+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 = 3221525348;
+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 = 1074020355;
+pub const IVTVFB_IOC_DMA_FRAME: u32 = 2148292288;
+pub const IPMICTL_SEND_COMMAND: u32 = 1075079437;
+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 = 2148295053;
+pub const FW_CDEV_IOC_SEND_RESPONSE: u32 = 2149065476;
+pub const PMU_IOC_GET_MODEL: u32 = 1074020867;
+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 = 1079509521;
+pub const TUNSETVNETLE: u32 = 2147767516;
+pub const PHN_SETREG: u32 = 2148036614;
+pub const PPPIOCDETACH: u32 = 2147775548;
+pub const MMTIMER_GETRES: u32 = 1074031873;
+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 = 3221766944;
+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 = 3223092226;
+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 = 3223087369;
+pub const VFIO_GET_API_VERSION: u32 = 536886116;
+pub const IDT77105_GETSTATZ: u32 = 2148294963;
+pub const I2OPARMSET: u32 = 3222825219;
+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 = 2148294996;
+pub const DFL_FPGA_GET_API_VERSION: u32 = 536917504;
+pub const USBDEVFS_WAIT_FOR_RESUME: u32 = 536892707;
+pub const FBIO_CURSOR: u32 = 3225961992;
+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 = 1076647434;
+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 = 2148029654;
+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 = 1075605521;
+pub const RIO_CM_EP_GET_LIST: u32 = 3221512962;
+pub const USBDEVFS_DISCSIGNAL: u32 = 1074287886;
+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 = 2150385024;
+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 = 2148295048;
+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 = 3226747403;
+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 = 2149608704;
+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 = 1074031681;
+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 = 2148036758;
+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 = 2148295047;
+pub const NBD_SET_SIZE: u32 = 536914690;
+pub const UDF_GETVOLIDENT: u32 = 1074031682;
+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 = 3222038785;
+pub const ATM_SETCIRANGE: u32 = 2148295051;
+pub const HPET_IE_ON: u32 = 536897537;
+pub const PERF_EVENT_IOC_ID: u32 = 1074013191;
+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 = 3222033682;
+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 = 2147772422;
+pub const ATM_GETESI: u32 = 2148295045;
+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 = 2148295009;
+pub const BR2684_SETFILT: u32 = 2149343632;
+pub const RNDGETPOOL: u32 = 1074287106;
+pub const PPS_GETPARAMS: u32 = 1074032801;
+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 = 1074020865;
+pub const USBDEVFS_GET_CAPABILITIES: u32 = 1074025754;
+pub const SCIF_WRITETO: u32 = 3223876363;
+pub const UDF_RELOCATE_BLOCKS: u32 = 3221515331;
+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 = 3237500508;
+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 = 3234616837;
+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 = 3227009554;
+pub const IPMICTL_SET_MY_LUN_CMD: u32 = 1074030867;
+pub const PCITEST_LEGACY_IRQ: u32 = 536891394;
+pub const USBDEVFS_SUBMITURB: u32 = 1076647178;
+pub const AUTOFS_IOC_READY: u32 = 536908640;
+pub const BTRFS_IOC_SEND: u32 = 2152240166;
+pub const VIDIOC_G_EXT_CTRLS: u32 = 3222820423;
+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 = 1074020870;
+pub const VIDIOC_SUBDEV_S_FMT: u32 = 3227014661;
+pub const FDDEFPRM: u32 = 2149319235;
+pub const TEE_IOC_INVOKE: u32 = 1074832387;
+pub const USBDEVFS_BULK: u32 = 3222295810;
+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 = 2147762690;
+pub const EVIOCGREP: u32 = 1074283779;
+pub const PERF_EVENT_IOC_MODIFY_ATTRIBUTES: u32 = 2147755019;
+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 = 3223606825;
+pub const MATROXFB_SET_OUTPUT_MODE: u32 = 2147774202;
+pub const RIO_DEV_ADD: u32 = 2149608727;
+pub const VIDIOC_ENUM_FREQ_BANDS: u32 = 3225441893;
+pub const FBIO_RADEON_SET_MIRROR: u32 = 2147762180;
+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 = 1074032376;
+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 = 3225704029;
+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 = 2147774465;
+pub const RNDADDTOENTCNT: u32 = 2147766785;
+pub const VBG_IOCTL_CHECK_BALLOON: u32 = 3223344657;
+pub const VIDIOC_OMAP3ISP_STAT_REQ: u32 = 3222820550;
+pub const PPS_FETCH: u32 = 3221516452;
+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 = 2148033288;
+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 = 2147774200;
+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 = 3234616836;
+pub const RTC_EPOCH_SET: u32 = 2147774478;
+pub const CAPI_GET_PROFILE: u32 = 3225436937;
+pub const ATM_GETLOOP: u32 = 2148294994;
+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 = 3221514631;
+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 = 2148037702;
+pub const SIOCGSTAMPNS_NEW: u32 = 1074825479;
+pub const IPMICTL_RECEIVE_MSG: u32 = 3222825228;
+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 = 2147798273;
+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 = 1074293004;
+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 = 3225703951;
+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 = 3221509831;
+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 = 1075603733;
+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 = 3223087365;
+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 = 3223087366;
+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 = 2147774721;
+pub const IPMICTL_REGISTER_FOR_CMD: u32 = 1073899790;
+pub const I8K_GET_FAN: u32 = 3221514630;
+pub const TUNGETVNETBE: u32 = 1074025695;
+pub const AUTOFS_DEV_IOCTL_FAIL: u32 = 3222836087;
+pub const UI_END_FF_UPLOAD: u32 = 2153797065;
+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 = 3222295808;
+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 = 1108898306;
+pub const ND_IOCTL_GET_CONFIG_DATA: u32 = 3222031877;
+pub const F2FS_IOC_RESERVE_COMPRESS_BLOCKS: u32 = 1074328851;
+pub const FDGETDRVSTAT: u32 = 1077150226;
+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 = 2148295044;
+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 = 2153251472;
+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 = 2147774467;
+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 = 2148295011;
+pub const MTIOCPOS: u32 = 1074031875;
+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 = 1074554883;
+pub const VIDIOC_AM437X_CCDC_CFG: u32 = 2147768001;
+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 = 2148037703;
+pub const RIO_CM_CHAN_CONNECT: u32 = 2148033288;
+pub const I2OSWDEL: u32 = 3223087367;
+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 = 3225703945;
+pub const VIDIOC_S_EDID: u32 = 3223606825;
+pub const BTRFS_IOC_QGROUP_ASSIGN: u32 = 2149094441;
+pub const PPS_GETCAP: u32 = 1074032803;
+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 = 2149347346;
+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 = 2148033012;
+pub const FDSETPRM: u32 = 2149319234;
+pub const ATM_GETSTATZ: u32 = 2148294993;
+pub const ISST_IF_MSR_COMMAND: u32 = 3221552644;
+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 = 2147766278;
+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 = 2147755014;
+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 = 1074032651;
+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 = 1074287835;
+pub const CCISS_SETNODENAME: u32 = 2148549125;
+pub const FBIO_GETCONTROL2: u32 = 1074022025;
+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 = 2148294992;
+pub const VIDIOC_G_JPEGCOMP: u32 = 1082938941;
+pub const TUNATTACHFILTER: u32 = 2148029653;
+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 = 2148295008;
+pub const ATM_SETLOOP: u32 = 2148294995;
+pub const ATMSIGD_CTRL: u32 = 536895984;
+pub const CIOC_KERNEL_VERSION: u32 = 3221512970;
+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 = 1074020868;
+pub const I2OGETIOPS: u32 = 1075865856;
+pub const VIDIOC_S_FBUF: u32 = 2150389259;
+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 = 1074029313;
+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 = 2148295055;
+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 = 2147766277;
+pub const VFIO_GROUP_GET_STATUS: u32 = 536886119;
+pub const MATROXFB_GET_ALL_OUTPUTS: u32 = 1074032379;
+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 = 2147767564;
+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 = 1074295871;
+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 = 3222825220;
+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 = 2148032899;
+pub const VIDIOC_QUERYMENU: u32 = 3224131109;
+pub const DFL_FPGA_PORT_DMA_UNMAP: u32 = 536917572;
+pub const I2OLCTGET: u32 = 3222038786;
+pub const FS_IOC_GET_ENCRYPTION_PWSALT: u32 = 2148558356;
+pub const NS_SETBUFLEV: u32 = 2148295010;
+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 = 2147774629;
+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 = 1074068992;
+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 = 2147767660;
+pub const FDWERRORGET: u32 = 1075315223;
+pub const VIDIOC_SUBDEV_G_EDID: u32 = 3223606824;
+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 = 3221516288;
+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 = 1074020869;
+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 = 3221504262;
+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 = 1077150227;
+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 = 2148295041;
+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 = 2148295046;
+pub const PHN_GET_REGS: u32 = 3221516290;
+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 = 3222041889;
+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 = 2148294962;
+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 = 2148299853;
+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 = 3221552641;
+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 = 3221552643;
+pub const SCIF_ACCEPTREQ: u32 = 3222303492;
+pub const PERF_EVENT_IOC_QUERY_BPF: u32 = 3221496842;
+pub const VIDIOC_STREAMOFF: u32 = 2147767827;
+pub const VDUSE_DESTROY_DEV: u32 = 2164293891;
+pub const FDGETFDCSTAT: u32 = 1075839509;
+pub const VIDIOC_S_PRIORITY: u32 = 2147767876;
+pub const SNAPSHOT_FREEZE: u32 = 536883969;
+pub const VIDIOC_ENUMINPUT: u32 = 3226490394;
+pub const ZATM_GETPOOLZ: u32 = 2148295010;
+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 = 1074032377;
+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 = 3222820424;
+pub const VIDIOC_SUBDEV_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const VIDIOC_OMAP3ISP_CCDC_CFG: u32 = 3223344833;
+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 = 2147774626;
+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 = 3223606824;
+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 = 3221514629;
+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 = 2148295052;
+pub const FW_CDEV_IOC_START_ISO: u32 = 2148541194;
+pub const ATM_DELADDR: u32 = 2148295049;
+pub const PPFCONTROL: u32 = 2147643534;
+pub const SONYPI_IOCGFAN: u32 = 1073837578;
+pub const RTC_IRQP_SET: u32 = 2147774476;
+pub const PCITEST_WRITE: u32 = 2147766276;
+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 = 3225703953;
+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 = 1074031874;
+pub const VIDIOC_G_SELECTION: u32 = 3225441886;
+pub const RTC_ALM_SET: u32 = 2149871623;
+pub const PPPOEIOCSFWD: u32 = 2147791104;
+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 = 2147770881;
+pub const UI_BEGIN_FF_UPLOAD: u32 = 3227538888;
+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 = 3225179842;
+pub const GPIO_GET_LINEHANDLE_IOCTL: u32 = 3245126659;
+pub const VFAT_IOCTL_READDIR_BOTH: u32 = 1108898305;
+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 = 1074031881;
+pub const MATROXFB_GET_OUTPUT_MODE: u32 = 3221516026;
+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 = 2147787300;
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/mips/landlock.rs
new file mode 100644
index 0000000..6349a9d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/landlock.rs
@@ -0,0 +1,108 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/mips/loop_device.rs
new file mode 100644
index 0000000..b52ca70
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/loop_device.rs
@@ -0,0 +1,142 @@
+/* automatically generated by rust-bindgen 0.71.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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/mips/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/mips/mempolicy.rs
new file mode 100644
index 0000000..62d469b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/mempolicy.rs
@@ -0,0 +1,177 @@
+/* automatically generated by rust-bindgen 0.71.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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips/net.rs b/vendor/linux-raw-sys-0.9.4/src/mips/net.rs
new file mode 100644
index 0000000..ba0a96a
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/net.rs
@@ -0,0 +1,3450 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u32; 67usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/mips/netlink.rs
new file mode 100644
index 0000000..58bc1ba
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/netlink.rs
@@ -0,0 +1,2954 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_nl {
+pub nl_family: __kernel_sa_family_t,
+pub nl_pad: crate::ctypes::c_ushort,
+pub nl_pid: __u32,
+pub nl_groups: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsghdr {
+pub nlmsg_len: __u32,
+pub nlmsg_type: __u16,
+pub nlmsg_flags: __u16,
+pub nlmsg_seq: __u32,
+pub nlmsg_pid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsgerr {
+pub error: crate::ctypes::c_int,
+pub msg: nlmsghdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_pktinfo {
+pub group: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_req {
+pub nm_block_size: crate::ctypes::c_uint,
+pub nm_block_nr: crate::ctypes::c_uint,
+pub nm_frame_size: crate::ctypes::c_uint,
+pub nm_frame_nr: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_hdr {
+pub nm_status: crate::ctypes::c_uint,
+pub nm_len: crate::ctypes::c_uint,
+pub nm_group: __u32,
+pub nm_pid: __u32,
+pub nm_uid: __u32,
+pub nm_gid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlattr {
+pub nla_len: __u16,
+pub nla_type: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nla_bitfield32 {
+pub value: __u32,
+pub selector: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats {
+pub rx_packets: __u32,
+pub tx_packets: __u32,
+pub rx_bytes: __u32,
+pub tx_bytes: __u32,
+pub rx_errors: __u32,
+pub tx_errors: __u32,
+pub rx_dropped: __u32,
+pub tx_dropped: __u32,
+pub multicast: __u32,
+pub collisions: __u32,
+pub rx_length_errors: __u32,
+pub rx_over_errors: __u32,
+pub rx_crc_errors: __u32,
+pub rx_frame_errors: __u32,
+pub rx_fifo_errors: __u32,
+pub rx_missed_errors: __u32,
+pub tx_aborted_errors: __u32,
+pub tx_carrier_errors: __u32,
+pub tx_fifo_errors: __u32,
+pub tx_heartbeat_errors: __u32,
+pub tx_window_errors: __u32,
+pub rx_compressed: __u32,
+pub tx_compressed: __u32,
+pub rx_nohandler: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+pub collisions: __u64,
+pub rx_length_errors: __u64,
+pub rx_over_errors: __u64,
+pub rx_crc_errors: __u64,
+pub rx_frame_errors: __u64,
+pub rx_fifo_errors: __u64,
+pub rx_missed_errors: __u64,
+pub tx_aborted_errors: __u64,
+pub tx_carrier_errors: __u64,
+pub tx_fifo_errors: __u64,
+pub tx_heartbeat_errors: __u64,
+pub tx_window_errors: __u64,
+pub rx_compressed: __u64,
+pub tx_compressed: __u64,
+pub rx_nohandler: __u64,
+pub rx_otherhost_dropped: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_hw_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_ifmap {
+pub mem_start: __u64,
+pub mem_end: __u64,
+pub base_addr: __u64,
+pub irq: __u16,
+pub dma: __u8,
+pub port: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_bridge_id {
+pub prio: [__u8; 2usize],
+pub addr: [__u8; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_cacheinfo {
+pub max_reasm_len: __u32,
+pub tstamp: __u32,
+pub reachable_time: __u32,
+pub retrans_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_qos_mapping {
+pub from: __u32,
+pub to: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tunnel_msg {
+pub family: __u8,
+pub flags: __u8,
+pub reserved2: __u16,
+pub ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vxlan_port_range {
+pub low: __be16,
+pub high: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_mac {
+pub vf: __u32,
+pub mac: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_broadcast {
+pub broadcast: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan_info {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+pub vlan_proto: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_tx_rate {
+pub vf: __u32,
+pub rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rate {
+pub vf: __u32,
+pub min_tx_rate: __u32,
+pub max_tx_rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_spoofchk {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_guid {
+pub vf: __u32,
+pub guid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_link_state {
+pub vf: __u32,
+pub link_state: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rss_query_en {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_trust {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_port_vsi {
+pub vsi_mgr_id: __u8,
+pub vsi_type_id: [__u8; 3usize],
+pub vsi_type_version: __u8,
+pub pad: [__u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_stats_msg {
+pub family: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub ifindex: __u32,
+pub filter_mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_rmnet_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifaddrmsg {
+pub ifa_family: __u8,
+pub ifa_prefixlen: __u8,
+pub ifa_flags: __u8,
+pub ifa_scope: __u8,
+pub ifa_index: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifa_cacheinfo {
+pub ifa_prefered: __u32,
+pub ifa_valid: __u32,
+pub cstamp: __u32,
+pub tstamp: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndmsg {
+pub ndm_family: __u8,
+pub ndm_pad1: __u8,
+pub ndm_pad2: __u16,
+pub ndm_ifindex: __s32,
+pub ndm_state: __u16,
+pub ndm_flags: __u8,
+pub ndm_type: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nda_cacheinfo {
+pub ndm_confirmed: __u32,
+pub ndm_used: __u32,
+pub ndm_updated: __u32,
+pub ndm_refcnt: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_stats {
+pub ndts_allocs: __u64,
+pub ndts_destroys: __u64,
+pub ndts_hash_grows: __u64,
+pub ndts_res_failed: __u64,
+pub ndts_lookups: __u64,
+pub ndts_hits: __u64,
+pub ndts_rcv_probes_mcast: __u64,
+pub ndts_rcv_probes_ucast: __u64,
+pub ndts_periodic_gc_runs: __u64,
+pub ndts_forced_gc_runs: __u64,
+pub ndts_table_fulls: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndtmsg {
+pub ndtm_family: __u8,
+pub ndtm_pad1: __u8,
+pub ndtm_pad2: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_config {
+pub ndtc_key_len: __u16,
+pub ndtc_entry_size: __u16,
+pub ndtc_entries: __u32,
+pub ndtc_last_flush: __u32,
+pub ndtc_last_rand: __u32,
+pub ndtc_hash_rnd: __u32,
+pub ndtc_hash_mask: __u32,
+pub ndtc_hash_chain_gc: __u32,
+pub ndtc_proxy_qlen: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtattr {
+pub rta_len: crate::ctypes::c_ushort,
+pub rta_type: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtmsg {
+pub rtm_family: crate::ctypes::c_uchar,
+pub rtm_dst_len: crate::ctypes::c_uchar,
+pub rtm_src_len: crate::ctypes::c_uchar,
+pub rtm_tos: crate::ctypes::c_uchar,
+pub rtm_table: crate::ctypes::c_uchar,
+pub rtm_protocol: crate::ctypes::c_uchar,
+pub rtm_scope: crate::ctypes::c_uchar,
+pub rtm_type: crate::ctypes::c_uchar,
+pub rtm_flags: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnexthop {
+pub rtnh_len: crate::ctypes::c_ushort,
+pub rtnh_flags: crate::ctypes::c_uchar,
+pub rtnh_hops: crate::ctypes::c_uchar,
+pub rtnh_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct rtvia {
+pub rtvia_family: __kernel_sa_family_t,
+pub rtvia_addr: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_cacheinfo {
+pub rta_clntref: __u32,
+pub rta_lastuse: __u32,
+pub rta_expires: __s32,
+pub rta_error: __u32,
+pub rta_used: __u32,
+pub rta_id: __u32,
+pub rta_ts: __u32,
+pub rta_tsage: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rta_session {
+pub proto: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub u: rta_session__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_1 {
+pub sport: __u16,
+pub dport: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_2 {
+pub type_: __u8,
+pub code: __u8,
+pub ident: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_mfc_stats {
+pub mfcs_packets: __u64,
+pub mfcs_bytes: __u64,
+pub mfcs_wrong_if: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtgenmsg {
+pub rtgen_family: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifinfomsg {
+pub ifi_family: crate::ctypes::c_uchar,
+pub __ifi_pad: crate::ctypes::c_uchar,
+pub ifi_type: crate::ctypes::c_ushort,
+pub ifi_index: crate::ctypes::c_int,
+pub ifi_flags: crate::ctypes::c_uint,
+pub ifi_change: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefixmsg {
+pub prefix_family: crate::ctypes::c_uchar,
+pub prefix_pad1: crate::ctypes::c_uchar,
+pub prefix_pad2: crate::ctypes::c_ushort,
+pub prefix_ifindex: crate::ctypes::c_int,
+pub prefix_type: crate::ctypes::c_uchar,
+pub prefix_len: crate::ctypes::c_uchar,
+pub prefix_flags: crate::ctypes::c_uchar,
+pub prefix_pad3: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefix_cacheinfo {
+pub preferred_time: __u32,
+pub valid_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcmsg {
+pub tcm_family: crate::ctypes::c_uchar,
+pub tcm__pad1: crate::ctypes::c_uchar,
+pub tcm__pad2: crate::ctypes::c_ushort,
+pub tcm_ifindex: crate::ctypes::c_int,
+pub tcm_handle: __u32,
+pub tcm_parent: __u32,
+pub tcm_info: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nduseroptmsg {
+pub nduseropt_family: crate::ctypes::c_uchar,
+pub nduseropt_pad1: crate::ctypes::c_uchar,
+pub nduseropt_opts_len: crate::ctypes::c_ushort,
+pub nduseropt_ifindex: crate::ctypes::c_int,
+pub nduseropt_icmp_type: __u8,
+pub nduseropt_icmp_code: __u8,
+pub nduseropt_pad2: crate::ctypes::c_ushort,
+pub nduseropt_pad3: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcamsg {
+pub tca_family: crate::ctypes::c_uchar,
+pub tca__pad1: crate::ctypes::c_uchar,
+pub tca__pad2: crate::ctypes::c_ushort,
+}
+pub const _K_SS_MAXSIZE: u32 = 128;
+pub const SOCK_SNDBUF_LOCK: u32 = 1;
+pub const SOCK_RCVBUF_LOCK: u32 = 2;
+pub const SOCK_BUF_LOCK_MASK: u32 = 3;
+pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
+pub const SOCK_TXREHASH_DISABLED: u32 = 0;
+pub const SOCK_TXREHASH_ENABLED: u32 = 1;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/mips/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/mips/prctl.rs
new file mode 100644
index 0000000..62fe1e1
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/prctl.rs
@@ -0,0 +1,270 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/mips/ptrace.rs
new file mode 100644
index 0000000..55cee2e
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/ptrace.rs
@@ -0,0 +1,866 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pt_regs {
+pub regs: [__u64; 32usize],
+pub lo: __u64,
+pub hi: __u64,
+pub cp0_epc: __u64,
+pub cp0_badvaddr: __u64,
+pub cp0_status: __u64,
+pub cp0_cause: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct mips32_watch_regs {
+pub watchlo: [crate::ctypes::c_uint; 8usize],
+pub watchhi: [crate::ctypes::c_ushort; 8usize],
+pub watch_masks: [crate::ctypes::c_ushort; 8usize],
+pub num_valid: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mips64_watch_regs {
+pub watchlo: [crate::ctypes::c_ulonglong; 8usize],
+pub watchhi: [crate::ctypes::c_ushort; 8usize],
+pub watch_masks: [crate::ctypes::c_ushort; 8usize],
+pub num_valid: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pt_watch_regs {
+pub style: pt_watch_style,
+pub __bindgen_anon_1: pt_watch_regs__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const FPR_BASE: u32 = 32;
+pub const PC: u32 = 64;
+pub const CAUSE: u32 = 65;
+pub const BADVADDR: u32 = 66;
+pub const MMHI: u32 = 67;
+pub const MMLO: u32 = 68;
+pub const FPC_CSR: u32 = 69;
+pub const FPC_EIR: u32 = 70;
+pub const DSP_BASE: u32 = 71;
+pub const DSP_CONTROL: u32 = 77;
+pub const ACX: u32 = 78;
+pub const PTRACE_GETREGS: u32 = 12;
+pub const PTRACE_SETREGS: u32 = 13;
+pub const PTRACE_GETFPREGS: u32 = 14;
+pub const PTRACE_SETFPREGS: u32 = 15;
+pub const PTRACE_OLDSETOPTIONS: u32 = 21;
+pub const PTRACE_GET_THREAD_AREA: u32 = 25;
+pub const PTRACE_SET_THREAD_AREA: u32 = 26;
+pub const PTRACE_PEEKTEXT_3264: u32 = 192;
+pub const PTRACE_PEEKDATA_3264: u32 = 193;
+pub const PTRACE_POKETEXT_3264: u32 = 194;
+pub const PTRACE_POKEDATA_3264: u32 = 195;
+pub const PTRACE_GET_THREAD_AREA_3264: u32 = 196;
+pub const PTRACE_GET_WATCH_REGS: u32 = 208;
+pub const PTRACE_SET_WATCH_REGS: u32 = 209;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum pt_watch_style {
+pt_watch_style_mips32 = 0,
+pt_watch_style_mips64 = 1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pt_watch_regs__bindgen_ty_1 {
+pub mips32: mips32_watch_regs,
+pub mips64: mips64_watch_regs,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips/system.rs b/vendor/linux-raw-sys-0.9.4/src/mips/system.rs
new file mode 100644
index 0000000..71c4047
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/system.rs
@@ -0,0 +1,110 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 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: [crate::ctypes::c_char; 8usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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;
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/mips/xdp.rs
new file mode 100644
index 0000000..257df9d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips/xdp.rs
@@ -0,0 +1,199 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips32r6/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/bootparam.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/bootparam.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips32r6/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/btrfs.rs
new file mode 100644
index 0000000..221cfc2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/btrfs.rs
@@ -0,0 +1,1876 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 _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 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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips32r6/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/elf_uapi.rs
new file mode 100644
index 0000000..58a860e
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/elf_uapi.rs
@@ -0,0 +1,532 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips32r6/errno.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/errno.rs
new file mode 100644
index 0000000..0f7ab95
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/errno.rs
@@ -0,0 +1,137 @@
+/* automatically generated by rust-bindgen 0.71.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.9.4/src/mips32r6/general.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/general.rs
new file mode 100644
index 0000000..6bc39d8
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/general.rs
@@ -0,0 +1,3489 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_ino_t = __kernel_ulong_t;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
+pub type __kernel_uid_t = crate::ctypes::c_uint;
+pub type __kernel_gid_t = crate::ctypes::c_uint;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_old_uid_t = __kernel_uid_t;
+pub type __kernel_old_gid_t = __kernel_gid_t;
+pub type __kernel_old_dev_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type cap_user_header_t = *mut __user_cap_header_struct;
+pub type cap_user_data_t = *mut __user_cap_data_struct;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+pub type old_sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type fsid_t = __kernel_fsid_t;
+pub type __fsword_t = __u32;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 32usize],
+}
+#[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,
+pub l_sysid: crate::ctypes::c_long,
+pub pad: [crate::ctypes::c_long; 4usize],
+}
+#[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 epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 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; 4usize],
+}
+#[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; 4usize],
+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; 4usize],
+pub _pkey: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3 {
+pub _data: crate::ctypes::c_ulong,
+pub _type: __u32,
+pub _flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_6 {
+pub _band: crate::ctypes::c_long,
+pub _fd: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_7 {
+pub _call_addr: *mut crate::ctypes::c_void,
+pub _syscall: crate::ctypes::c_int,
+pub _arch: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct siginfo {
+pub __bindgen_anon_1: siginfo__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct siginfo__bindgen_ty_1__bindgen_ty_1 {
+pub si_signo: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub si_errno: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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 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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulonglong,
+pub d_off: crate::ctypes::c_longlong,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_uint,
+pub st_pad1: [crate::ctypes::c_long; 3usize],
+pub st_ino: __kernel_ino_t,
+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_pad2: [crate::ctypes::c_long; 2usize],
+pub st_size: crate::ctypes::c_long,
+pub st_pad3: crate::ctypes::c_long,
+pub st_atime: crate::ctypes::c_long,
+pub st_atime_nsec: crate::ctypes::c_long,
+pub st_mtime: crate::ctypes::c_long,
+pub st_mtime_nsec: crate::ctypes::c_long,
+pub st_ctime: crate::ctypes::c_long,
+pub st_ctime_nsec: crate::ctypes::c_long,
+pub st_blksize: crate::ctypes::c_long,
+pub st_blocks: crate::ctypes::c_long,
+pub st_pad4: [crate::ctypes::c_long; 14usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat64 {
+pub st_dev: crate::ctypes::c_ulong,
+pub st_pad0: [crate::ctypes::c_ulong; 3usize],
+pub st_ino: crate::ctypes::c_ulonglong,
+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_ulong,
+pub st_pad1: [crate::ctypes::c_ulong; 3usize],
+pub st_size: crate::ctypes::c_longlong,
+pub st_atime: crate::ctypes::c_long,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_long,
+pub st_mtime_nsec: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_long,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub st_blksize: crate::ctypes::c_ulong,
+pub st_pad2: crate::ctypes::c_ulong,
+pub st_blocks: crate::ctypes::c_longlong,
+}
+#[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: __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; 4usize],
+}
+#[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 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 F_GETLK64: u32 = 33;
+pub const F_SETLK64: u32 = 34;
+pub const F_SETLKW64: u32 = 35;
+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_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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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_DROPPABLE: u32 = 8;
+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 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 RLIM_INFINITY: u32 = 2147483647;
+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 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_EXT: u32 = 7;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 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 UIO_FASTIOV: u32 = 8;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const __NR_Linux: u32 = 4000;
+pub const __NR_syscall: u32 = 4000;
+pub const __NR_exit: u32 = 4001;
+pub const __NR_fork: u32 = 4002;
+pub const __NR_read: u32 = 4003;
+pub const __NR_write: u32 = 4004;
+pub const __NR_open: u32 = 4005;
+pub const __NR_close: u32 = 4006;
+pub const __NR_waitpid: u32 = 4007;
+pub const __NR_creat: u32 = 4008;
+pub const __NR_link: u32 = 4009;
+pub const __NR_unlink: u32 = 4010;
+pub const __NR_execve: u32 = 4011;
+pub const __NR_chdir: u32 = 4012;
+pub const __NR_time: u32 = 4013;
+pub const __NR_mknod: u32 = 4014;
+pub const __NR_chmod: u32 = 4015;
+pub const __NR_lchown: u32 = 4016;
+pub const __NR_break: u32 = 4017;
+pub const __NR_unused18: u32 = 4018;
+pub const __NR_lseek: u32 = 4019;
+pub const __NR_getpid: u32 = 4020;
+pub const __NR_mount: u32 = 4021;
+pub const __NR_umount: u32 = 4022;
+pub const __NR_setuid: u32 = 4023;
+pub const __NR_getuid: u32 = 4024;
+pub const __NR_stime: u32 = 4025;
+pub const __NR_ptrace: u32 = 4026;
+pub const __NR_alarm: u32 = 4027;
+pub const __NR_unused28: u32 = 4028;
+pub const __NR_pause: u32 = 4029;
+pub const __NR_utime: u32 = 4030;
+pub const __NR_stty: u32 = 4031;
+pub const __NR_gtty: u32 = 4032;
+pub const __NR_access: u32 = 4033;
+pub const __NR_nice: u32 = 4034;
+pub const __NR_ftime: u32 = 4035;
+pub const __NR_sync: u32 = 4036;
+pub const __NR_kill: u32 = 4037;
+pub const __NR_rename: u32 = 4038;
+pub const __NR_mkdir: u32 = 4039;
+pub const __NR_rmdir: u32 = 4040;
+pub const __NR_dup: u32 = 4041;
+pub const __NR_pipe: u32 = 4042;
+pub const __NR_times: u32 = 4043;
+pub const __NR_prof: u32 = 4044;
+pub const __NR_brk: u32 = 4045;
+pub const __NR_setgid: u32 = 4046;
+pub const __NR_getgid: u32 = 4047;
+pub const __NR_signal: u32 = 4048;
+pub const __NR_geteuid: u32 = 4049;
+pub const __NR_getegid: u32 = 4050;
+pub const __NR_acct: u32 = 4051;
+pub const __NR_umount2: u32 = 4052;
+pub const __NR_lock: u32 = 4053;
+pub const __NR_ioctl: u32 = 4054;
+pub const __NR_fcntl: u32 = 4055;
+pub const __NR_mpx: u32 = 4056;
+pub const __NR_setpgid: u32 = 4057;
+pub const __NR_ulimit: u32 = 4058;
+pub const __NR_unused59: u32 = 4059;
+pub const __NR_umask: u32 = 4060;
+pub const __NR_chroot: u32 = 4061;
+pub const __NR_ustat: u32 = 4062;
+pub const __NR_dup2: u32 = 4063;
+pub const __NR_getppid: u32 = 4064;
+pub const __NR_getpgrp: u32 = 4065;
+pub const __NR_setsid: u32 = 4066;
+pub const __NR_sigaction: u32 = 4067;
+pub const __NR_sgetmask: u32 = 4068;
+pub const __NR_ssetmask: u32 = 4069;
+pub const __NR_setreuid: u32 = 4070;
+pub const __NR_setregid: u32 = 4071;
+pub const __NR_sigsuspend: u32 = 4072;
+pub const __NR_sigpending: u32 = 4073;
+pub const __NR_sethostname: u32 = 4074;
+pub const __NR_setrlimit: u32 = 4075;
+pub const __NR_getrlimit: u32 = 4076;
+pub const __NR_getrusage: u32 = 4077;
+pub const __NR_gettimeofday: u32 = 4078;
+pub const __NR_settimeofday: u32 = 4079;
+pub const __NR_getgroups: u32 = 4080;
+pub const __NR_setgroups: u32 = 4081;
+pub const __NR_reserved82: u32 = 4082;
+pub const __NR_symlink: u32 = 4083;
+pub const __NR_unused84: u32 = 4084;
+pub const __NR_readlink: u32 = 4085;
+pub const __NR_uselib: u32 = 4086;
+pub const __NR_swapon: u32 = 4087;
+pub const __NR_reboot: u32 = 4088;
+pub const __NR_readdir: u32 = 4089;
+pub const __NR_mmap: u32 = 4090;
+pub const __NR_munmap: u32 = 4091;
+pub const __NR_truncate: u32 = 4092;
+pub const __NR_ftruncate: u32 = 4093;
+pub const __NR_fchmod: u32 = 4094;
+pub const __NR_fchown: u32 = 4095;
+pub const __NR_getpriority: u32 = 4096;
+pub const __NR_setpriority: u32 = 4097;
+pub const __NR_profil: u32 = 4098;
+pub const __NR_statfs: u32 = 4099;
+pub const __NR_fstatfs: u32 = 4100;
+pub const __NR_ioperm: u32 = 4101;
+pub const __NR_socketcall: u32 = 4102;
+pub const __NR_syslog: u32 = 4103;
+pub const __NR_setitimer: u32 = 4104;
+pub const __NR_getitimer: u32 = 4105;
+pub const __NR_stat: u32 = 4106;
+pub const __NR_lstat: u32 = 4107;
+pub const __NR_fstat: u32 = 4108;
+pub const __NR_unused109: u32 = 4109;
+pub const __NR_iopl: u32 = 4110;
+pub const __NR_vhangup: u32 = 4111;
+pub const __NR_idle: u32 = 4112;
+pub const __NR_vm86: u32 = 4113;
+pub const __NR_wait4: u32 = 4114;
+pub const __NR_swapoff: u32 = 4115;
+pub const __NR_sysinfo: u32 = 4116;
+pub const __NR_ipc: u32 = 4117;
+pub const __NR_fsync: u32 = 4118;
+pub const __NR_sigreturn: u32 = 4119;
+pub const __NR_clone: u32 = 4120;
+pub const __NR_setdomainname: u32 = 4121;
+pub const __NR_uname: u32 = 4122;
+pub const __NR_modify_ldt: u32 = 4123;
+pub const __NR_adjtimex: u32 = 4124;
+pub const __NR_mprotect: u32 = 4125;
+pub const __NR_sigprocmask: u32 = 4126;
+pub const __NR_create_module: u32 = 4127;
+pub const __NR_init_module: u32 = 4128;
+pub const __NR_delete_module: u32 = 4129;
+pub const __NR_get_kernel_syms: u32 = 4130;
+pub const __NR_quotactl: u32 = 4131;
+pub const __NR_getpgid: u32 = 4132;
+pub const __NR_fchdir: u32 = 4133;
+pub const __NR_bdflush: u32 = 4134;
+pub const __NR_sysfs: u32 = 4135;
+pub const __NR_personality: u32 = 4136;
+pub const __NR_afs_syscall: u32 = 4137;
+pub const __NR_setfsuid: u32 = 4138;
+pub const __NR_setfsgid: u32 = 4139;
+pub const __NR__llseek: u32 = 4140;
+pub const __NR_getdents: u32 = 4141;
+pub const __NR__newselect: u32 = 4142;
+pub const __NR_flock: u32 = 4143;
+pub const __NR_msync: u32 = 4144;
+pub const __NR_readv: u32 = 4145;
+pub const __NR_writev: u32 = 4146;
+pub const __NR_cacheflush: u32 = 4147;
+pub const __NR_cachectl: u32 = 4148;
+pub const __NR_sysmips: u32 = 4149;
+pub const __NR_unused150: u32 = 4150;
+pub const __NR_getsid: u32 = 4151;
+pub const __NR_fdatasync: u32 = 4152;
+pub const __NR__sysctl: u32 = 4153;
+pub const __NR_mlock: u32 = 4154;
+pub const __NR_munlock: u32 = 4155;
+pub const __NR_mlockall: u32 = 4156;
+pub const __NR_munlockall: u32 = 4157;
+pub const __NR_sched_setparam: u32 = 4158;
+pub const __NR_sched_getparam: u32 = 4159;
+pub const __NR_sched_setscheduler: u32 = 4160;
+pub const __NR_sched_getscheduler: u32 = 4161;
+pub const __NR_sched_yield: u32 = 4162;
+pub const __NR_sched_get_priority_max: u32 = 4163;
+pub const __NR_sched_get_priority_min: u32 = 4164;
+pub const __NR_sched_rr_get_interval: u32 = 4165;
+pub const __NR_nanosleep: u32 = 4166;
+pub const __NR_mremap: u32 = 4167;
+pub const __NR_accept: u32 = 4168;
+pub const __NR_bind: u32 = 4169;
+pub const __NR_connect: u32 = 4170;
+pub const __NR_getpeername: u32 = 4171;
+pub const __NR_getsockname: u32 = 4172;
+pub const __NR_getsockopt: u32 = 4173;
+pub const __NR_listen: u32 = 4174;
+pub const __NR_recv: u32 = 4175;
+pub const __NR_recvfrom: u32 = 4176;
+pub const __NR_recvmsg: u32 = 4177;
+pub const __NR_send: u32 = 4178;
+pub const __NR_sendmsg: u32 = 4179;
+pub const __NR_sendto: u32 = 4180;
+pub const __NR_setsockopt: u32 = 4181;
+pub const __NR_shutdown: u32 = 4182;
+pub const __NR_socket: u32 = 4183;
+pub const __NR_socketpair: u32 = 4184;
+pub const __NR_setresuid: u32 = 4185;
+pub const __NR_getresuid: u32 = 4186;
+pub const __NR_query_module: u32 = 4187;
+pub const __NR_poll: u32 = 4188;
+pub const __NR_nfsservctl: u32 = 4189;
+pub const __NR_setresgid: u32 = 4190;
+pub const __NR_getresgid: u32 = 4191;
+pub const __NR_prctl: u32 = 4192;
+pub const __NR_rt_sigreturn: u32 = 4193;
+pub const __NR_rt_sigaction: u32 = 4194;
+pub const __NR_rt_sigprocmask: u32 = 4195;
+pub const __NR_rt_sigpending: u32 = 4196;
+pub const __NR_rt_sigtimedwait: u32 = 4197;
+pub const __NR_rt_sigqueueinfo: u32 = 4198;
+pub const __NR_rt_sigsuspend: u32 = 4199;
+pub const __NR_pread64: u32 = 4200;
+pub const __NR_pwrite64: u32 = 4201;
+pub const __NR_chown: u32 = 4202;
+pub const __NR_getcwd: u32 = 4203;
+pub const __NR_capget: u32 = 4204;
+pub const __NR_capset: u32 = 4205;
+pub const __NR_sigaltstack: u32 = 4206;
+pub const __NR_sendfile: u32 = 4207;
+pub const __NR_getpmsg: u32 = 4208;
+pub const __NR_putpmsg: u32 = 4209;
+pub const __NR_mmap2: u32 = 4210;
+pub const __NR_truncate64: u32 = 4211;
+pub const __NR_ftruncate64: u32 = 4212;
+pub const __NR_stat64: u32 = 4213;
+pub const __NR_lstat64: u32 = 4214;
+pub const __NR_fstat64: u32 = 4215;
+pub const __NR_pivot_root: u32 = 4216;
+pub const __NR_mincore: u32 = 4217;
+pub const __NR_madvise: u32 = 4218;
+pub const __NR_getdents64: u32 = 4219;
+pub const __NR_fcntl64: u32 = 4220;
+pub const __NR_reserved221: u32 = 4221;
+pub const __NR_gettid: u32 = 4222;
+pub const __NR_readahead: u32 = 4223;
+pub const __NR_setxattr: u32 = 4224;
+pub const __NR_lsetxattr: u32 = 4225;
+pub const __NR_fsetxattr: u32 = 4226;
+pub const __NR_getxattr: u32 = 4227;
+pub const __NR_lgetxattr: u32 = 4228;
+pub const __NR_fgetxattr: u32 = 4229;
+pub const __NR_listxattr: u32 = 4230;
+pub const __NR_llistxattr: u32 = 4231;
+pub const __NR_flistxattr: u32 = 4232;
+pub const __NR_removexattr: u32 = 4233;
+pub const __NR_lremovexattr: u32 = 4234;
+pub const __NR_fremovexattr: u32 = 4235;
+pub const __NR_tkill: u32 = 4236;
+pub const __NR_sendfile64: u32 = 4237;
+pub const __NR_futex: u32 = 4238;
+pub const __NR_sched_setaffinity: u32 = 4239;
+pub const __NR_sched_getaffinity: u32 = 4240;
+pub const __NR_io_setup: u32 = 4241;
+pub const __NR_io_destroy: u32 = 4242;
+pub const __NR_io_getevents: u32 = 4243;
+pub const __NR_io_submit: u32 = 4244;
+pub const __NR_io_cancel: u32 = 4245;
+pub const __NR_exit_group: u32 = 4246;
+pub const __NR_lookup_dcookie: u32 = 4247;
+pub const __NR_epoll_create: u32 = 4248;
+pub const __NR_epoll_ctl: u32 = 4249;
+pub const __NR_epoll_wait: u32 = 4250;
+pub const __NR_remap_file_pages: u32 = 4251;
+pub const __NR_set_tid_address: u32 = 4252;
+pub const __NR_restart_syscall: u32 = 4253;
+pub const __NR_fadvise64: u32 = 4254;
+pub const __NR_statfs64: u32 = 4255;
+pub const __NR_fstatfs64: u32 = 4256;
+pub const __NR_timer_create: u32 = 4257;
+pub const __NR_timer_settime: u32 = 4258;
+pub const __NR_timer_gettime: u32 = 4259;
+pub const __NR_timer_getoverrun: u32 = 4260;
+pub const __NR_timer_delete: u32 = 4261;
+pub const __NR_clock_settime: u32 = 4262;
+pub const __NR_clock_gettime: u32 = 4263;
+pub const __NR_clock_getres: u32 = 4264;
+pub const __NR_clock_nanosleep: u32 = 4265;
+pub const __NR_tgkill: u32 = 4266;
+pub const __NR_utimes: u32 = 4267;
+pub const __NR_mbind: u32 = 4268;
+pub const __NR_get_mempolicy: u32 = 4269;
+pub const __NR_set_mempolicy: u32 = 4270;
+pub const __NR_mq_open: u32 = 4271;
+pub const __NR_mq_unlink: u32 = 4272;
+pub const __NR_mq_timedsend: u32 = 4273;
+pub const __NR_mq_timedreceive: u32 = 4274;
+pub const __NR_mq_notify: u32 = 4275;
+pub const __NR_mq_getsetattr: u32 = 4276;
+pub const __NR_vserver: u32 = 4277;
+pub const __NR_waitid: u32 = 4278;
+pub const __NR_add_key: u32 = 4280;
+pub const __NR_request_key: u32 = 4281;
+pub const __NR_keyctl: u32 = 4282;
+pub const __NR_set_thread_area: u32 = 4283;
+pub const __NR_inotify_init: u32 = 4284;
+pub const __NR_inotify_add_watch: u32 = 4285;
+pub const __NR_inotify_rm_watch: u32 = 4286;
+pub const __NR_migrate_pages: u32 = 4287;
+pub const __NR_openat: u32 = 4288;
+pub const __NR_mkdirat: u32 = 4289;
+pub const __NR_mknodat: u32 = 4290;
+pub const __NR_fchownat: u32 = 4291;
+pub const __NR_futimesat: u32 = 4292;
+pub const __NR_fstatat64: u32 = 4293;
+pub const __NR_unlinkat: u32 = 4294;
+pub const __NR_renameat: u32 = 4295;
+pub const __NR_linkat: u32 = 4296;
+pub const __NR_symlinkat: u32 = 4297;
+pub const __NR_readlinkat: u32 = 4298;
+pub const __NR_fchmodat: u32 = 4299;
+pub const __NR_faccessat: u32 = 4300;
+pub const __NR_pselect6: u32 = 4301;
+pub const __NR_ppoll: u32 = 4302;
+pub const __NR_unshare: u32 = 4303;
+pub const __NR_splice: u32 = 4304;
+pub const __NR_sync_file_range: u32 = 4305;
+pub const __NR_tee: u32 = 4306;
+pub const __NR_vmsplice: u32 = 4307;
+pub const __NR_move_pages: u32 = 4308;
+pub const __NR_set_robust_list: u32 = 4309;
+pub const __NR_get_robust_list: u32 = 4310;
+pub const __NR_kexec_load: u32 = 4311;
+pub const __NR_getcpu: u32 = 4312;
+pub const __NR_epoll_pwait: u32 = 4313;
+pub const __NR_ioprio_set: u32 = 4314;
+pub const __NR_ioprio_get: u32 = 4315;
+pub const __NR_utimensat: u32 = 4316;
+pub const __NR_signalfd: u32 = 4317;
+pub const __NR_timerfd: u32 = 4318;
+pub const __NR_eventfd: u32 = 4319;
+pub const __NR_fallocate: u32 = 4320;
+pub const __NR_timerfd_create: u32 = 4321;
+pub const __NR_timerfd_gettime: u32 = 4322;
+pub const __NR_timerfd_settime: u32 = 4323;
+pub const __NR_signalfd4: u32 = 4324;
+pub const __NR_eventfd2: u32 = 4325;
+pub const __NR_epoll_create1: u32 = 4326;
+pub const __NR_dup3: u32 = 4327;
+pub const __NR_pipe2: u32 = 4328;
+pub const __NR_inotify_init1: u32 = 4329;
+pub const __NR_preadv: u32 = 4330;
+pub const __NR_pwritev: u32 = 4331;
+pub const __NR_rt_tgsigqueueinfo: u32 = 4332;
+pub const __NR_perf_event_open: u32 = 4333;
+pub const __NR_accept4: u32 = 4334;
+pub const __NR_recvmmsg: u32 = 4335;
+pub const __NR_fanotify_init: u32 = 4336;
+pub const __NR_fanotify_mark: u32 = 4337;
+pub const __NR_prlimit64: u32 = 4338;
+pub const __NR_name_to_handle_at: u32 = 4339;
+pub const __NR_open_by_handle_at: u32 = 4340;
+pub const __NR_clock_adjtime: u32 = 4341;
+pub const __NR_syncfs: u32 = 4342;
+pub const __NR_sendmmsg: u32 = 4343;
+pub const __NR_setns: u32 = 4344;
+pub const __NR_process_vm_readv: u32 = 4345;
+pub const __NR_process_vm_writev: u32 = 4346;
+pub const __NR_kcmp: u32 = 4347;
+pub const __NR_finit_module: u32 = 4348;
+pub const __NR_sched_setattr: u32 = 4349;
+pub const __NR_sched_getattr: u32 = 4350;
+pub const __NR_renameat2: u32 = 4351;
+pub const __NR_seccomp: u32 = 4352;
+pub const __NR_getrandom: u32 = 4353;
+pub const __NR_memfd_create: u32 = 4354;
+pub const __NR_bpf: u32 = 4355;
+pub const __NR_execveat: u32 = 4356;
+pub const __NR_userfaultfd: u32 = 4357;
+pub const __NR_membarrier: u32 = 4358;
+pub const __NR_mlock2: u32 = 4359;
+pub const __NR_copy_file_range: u32 = 4360;
+pub const __NR_preadv2: u32 = 4361;
+pub const __NR_pwritev2: u32 = 4362;
+pub const __NR_pkey_mprotect: u32 = 4363;
+pub const __NR_pkey_alloc: u32 = 4364;
+pub const __NR_pkey_free: u32 = 4365;
+pub const __NR_statx: u32 = 4366;
+pub const __NR_rseq: u32 = 4367;
+pub const __NR_io_pgetevents: u32 = 4368;
+pub const __NR_semget: u32 = 4393;
+pub const __NR_semctl: u32 = 4394;
+pub const __NR_shmget: u32 = 4395;
+pub const __NR_shmctl: u32 = 4396;
+pub const __NR_shmat: u32 = 4397;
+pub const __NR_shmdt: u32 = 4398;
+pub const __NR_msgget: u32 = 4399;
+pub const __NR_msgsnd: u32 = 4400;
+pub const __NR_msgrcv: u32 = 4401;
+pub const __NR_msgctl: u32 = 4402;
+pub const __NR_clock_gettime64: u32 = 4403;
+pub const __NR_clock_settime64: u32 = 4404;
+pub const __NR_clock_adjtime64: u32 = 4405;
+pub const __NR_clock_getres_time64: u32 = 4406;
+pub const __NR_clock_nanosleep_time64: u32 = 4407;
+pub const __NR_timer_gettime64: u32 = 4408;
+pub const __NR_timer_settime64: u32 = 4409;
+pub const __NR_timerfd_gettime64: u32 = 4410;
+pub const __NR_timerfd_settime64: u32 = 4411;
+pub const __NR_utimensat_time64: u32 = 4412;
+pub const __NR_pselect6_time64: u32 = 4413;
+pub const __NR_ppoll_time64: u32 = 4414;
+pub const __NR_io_pgetevents_time64: u32 = 4416;
+pub const __NR_recvmmsg_time64: u32 = 4417;
+pub const __NR_mq_timedsend_time64: u32 = 4418;
+pub const __NR_mq_timedreceive_time64: u32 = 4419;
+pub const __NR_semtimedop_time64: u32 = 4420;
+pub const __NR_rt_sigtimedwait_time64: u32 = 4421;
+pub const __NR_futex_time64: u32 = 4422;
+pub const __NR_sched_rr_get_interval_time64: u32 = 4423;
+pub const __NR_pidfd_send_signal: u32 = 4424;
+pub const __NR_io_uring_setup: u32 = 4425;
+pub const __NR_io_uring_enter: u32 = 4426;
+pub const __NR_io_uring_register: u32 = 4427;
+pub const __NR_open_tree: u32 = 4428;
+pub const __NR_move_mount: u32 = 4429;
+pub const __NR_fsopen: u32 = 4430;
+pub const __NR_fsconfig: u32 = 4431;
+pub const __NR_fsmount: u32 = 4432;
+pub const __NR_fspick: u32 = 4433;
+pub const __NR_pidfd_open: u32 = 4434;
+pub const __NR_clone3: u32 = 4435;
+pub const __NR_close_range: u32 = 4436;
+pub const __NR_openat2: u32 = 4437;
+pub const __NR_pidfd_getfd: u32 = 4438;
+pub const __NR_faccessat2: u32 = 4439;
+pub const __NR_process_madvise: u32 = 4440;
+pub const __NR_epoll_pwait2: u32 = 4441;
+pub const __NR_mount_setattr: u32 = 4442;
+pub const __NR_quotactl_fd: u32 = 4443;
+pub const __NR_landlock_create_ruleset: u32 = 4444;
+pub const __NR_landlock_add_rule: u32 = 4445;
+pub const __NR_landlock_restrict_self: u32 = 4446;
+pub const __NR_process_mrelease: u32 = 4448;
+pub const __NR_futex_waitv: u32 = 4449;
+pub const __NR_set_mempolicy_home_node: u32 = 4450;
+pub const __NR_cachestat: u32 = 4451;
+pub const __NR_fchmodat2: u32 = 4452;
+pub const __NR_map_shadow_stack: u32 = 4453;
+pub const __NR_futex_wake: u32 = 4454;
+pub const __NR_futex_wait: u32 = 4455;
+pub const __NR_futex_requeue: u32 = 4456;
+pub const __NR_statmount: u32 = 4457;
+pub const __NR_listmount: u32 = 4458;
+pub const __NR_lsm_get_self_attr: u32 = 4459;
+pub const __NR_lsm_set_self_attr: u32 = 4460;
+pub const __NR_lsm_list_modules: u32 = 4461;
+pub const __NR_mseal: u32 = 4462;
+pub const __NR_setxattrat: u32 = 4463;
+pub const __NR_getxattrat: u32 = 4464;
+pub const __NR_listxattrat: u32 = 4465;
+pub const __NR_removexattrat: u32 = 4466;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[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; 13usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/mips32r6/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/if_arp.rs
new file mode 100644
index 0000000..8f2e3e2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/if_arp.rs
@@ -0,0 +1,2765 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/mips32r6/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/if_ether.rs
new file mode 100644
index 0000000..94ef74c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/if_ether.rs
@@ -0,0 +1,178 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/mips32r6/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/if_packet.rs
new file mode 100644
index 0000000..2c41fcb
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/if_packet.rs
@@ -0,0 +1,319 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/mips32r6/image.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips32r6/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/io_uring.rs
new file mode 100644
index 0000000..aa54494
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/io_uring.rs
@@ -0,0 +1,1344 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips32r6/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/ioctl.rs
new file mode 100644
index 0000000..4e1d2b7
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/ioctl.rs
@@ -0,0 +1,1496 @@
+/* automatically generated by rust-bindgen 0.71.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 = 1075604738;
+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 = 1074008688;
+pub const BLKBSZSET: u32 = 2147750513;
+pub const BLKGETSIZE64: u32 = 1074008690;
+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: u32 = 4294967295;
+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 = 1074030081;
+pub const FS_IOC_SETFLAGS: u32 = 2147771906;
+pub const FS_IOC_GETVERSION: u32 = 1074034177;
+pub const FS_IOC_SETVERSION: u32 = 2147776002;
+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 = 1074030083;
+pub const EXT4_IOC_SETVERSION: u32 = 2147771908;
+pub const EXT4_IOC_GETVERSION_OLD: u32 = 1074034177;
+pub const EXT4_IOC_SETVERSION_OLD: u32 = 2147776002;
+pub const EXT4_IOC_GETRSVSZ: u32 = 1074030085;
+pub const EXT4_IOC_SETRSVSZ: u32 = 2147771910;
+pub const EXT4_IOC_GROUP_EXTEND: u32 = 2147771911;
+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 = 2148295050;
+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 = 1075866881;
+pub const ENI_SETMULT: u32 = 2148295015;
+pub const RIO_GET_EVENT_MASK: u32 = 1074031886;
+pub const LIRC_GET_MAX_TIMEOUT: u32 = 1074030857;
+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 = 3234616896;
+pub const LIRC_SET_REC_MODE: u32 = 2147772690;
+pub const VIDIOC_DQEVENT: u32 = 1082152537;
+pub const RPMSG_DESTROY_EPT_IOCTL: u32 = 536917250;
+pub const UVCIOC_CTRL_MAP: u32 = 3227022624;
+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 = 3222820425;
+pub const LIRC_GET_REC_MODE: u32 = 1074030850;
+pub const PPGETTIME: u32 = 1074294933;
+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 = 3222825227;
+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 = 3222036833;
+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 = 2148295054;
+pub const FSL_HV_IOCTL_GETPROP: u32 = 3223891719;
+pub const FDGETPRM: u32 = 1075577348;
+pub const HIDIOCAPPLICATION: u32 = 536889346;
+pub const ENI_MEMDUMP: u32 = 2148295008;
+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 = 1074032653;
+pub const VIDIOC_SUBDEV_S_SELECTION: u32 = 3225441854;
+pub const VIDIOC_QUERY_EXT_CTRL: u32 = 3236451943;
+pub const ATM_GETLECSADDR: u32 = 2148295056;
+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 = 2147810818;
+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 = 2147767565;
+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 = 3221525348;
+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 = 1074020355;
+pub const IVTVFB_IOC_DMA_FRAME: u32 = 2148292288;
+pub const IPMICTL_SEND_COMMAND: u32 = 1075079437;
+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 = 2148295053;
+pub const FW_CDEV_IOC_SEND_RESPONSE: u32 = 2149065476;
+pub const PMU_IOC_GET_MODEL: u32 = 1074020867;
+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 = 1079509521;
+pub const TUNSETVNETLE: u32 = 2147767516;
+pub const PHN_SETREG: u32 = 2148036614;
+pub const PPPIOCDETACH: u32 = 2147775548;
+pub const MMTIMER_GETRES: u32 = 1074031873;
+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 = 3221766944;
+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 = 3223092226;
+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 = 3223087369;
+pub const VFIO_GET_API_VERSION: u32 = 536886116;
+pub const IDT77105_GETSTATZ: u32 = 2148294963;
+pub const I2OPARMSET: u32 = 3222825219;
+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 = 2148294996;
+pub const DFL_FPGA_GET_API_VERSION: u32 = 536917504;
+pub const USBDEVFS_WAIT_FOR_RESUME: u32 = 536892707;
+pub const FBIO_CURSOR: u32 = 3225961992;
+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 = 1076647434;
+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 = 2148029654;
+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 = 1075605521;
+pub const RIO_CM_EP_GET_LIST: u32 = 3221512962;
+pub const USBDEVFS_DISCSIGNAL: u32 = 1074287886;
+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 = 2150385024;
+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 = 2148295048;
+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 = 3226747403;
+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 = 2149608704;
+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 = 1074031681;
+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 = 2148036758;
+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 = 2148295047;
+pub const NBD_SET_SIZE: u32 = 536914690;
+pub const UDF_GETVOLIDENT: u32 = 1074031682;
+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 = 3222038785;
+pub const ATM_SETCIRANGE: u32 = 2148295051;
+pub const HPET_IE_ON: u32 = 536897537;
+pub const PERF_EVENT_IOC_ID: u32 = 1074013191;
+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 = 3222033682;
+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 = 2147772422;
+pub const ATM_GETESI: u32 = 2148295045;
+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 = 2148295009;
+pub const BR2684_SETFILT: u32 = 2149343632;
+pub const RNDGETPOOL: u32 = 1074287106;
+pub const PPS_GETPARAMS: u32 = 1074032801;
+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 = 1074020865;
+pub const USBDEVFS_GET_CAPABILITIES: u32 = 1074025754;
+pub const SCIF_WRITETO: u32 = 3223876363;
+pub const UDF_RELOCATE_BLOCKS: u32 = 3221515331;
+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 = 3237500508;
+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 = 3234616837;
+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 = 3227009554;
+pub const IPMICTL_SET_MY_LUN_CMD: u32 = 1074030867;
+pub const PCITEST_LEGACY_IRQ: u32 = 536891394;
+pub const USBDEVFS_SUBMITURB: u32 = 1076647178;
+pub const AUTOFS_IOC_READY: u32 = 536908640;
+pub const BTRFS_IOC_SEND: u32 = 2152240166;
+pub const VIDIOC_G_EXT_CTRLS: u32 = 3222820423;
+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 = 1074020870;
+pub const VIDIOC_SUBDEV_S_FMT: u32 = 3227014661;
+pub const FDDEFPRM: u32 = 2149319235;
+pub const TEE_IOC_INVOKE: u32 = 1074832387;
+pub const USBDEVFS_BULK: u32 = 3222295810;
+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 = 2147762690;
+pub const EVIOCGREP: u32 = 1074283779;
+pub const PERF_EVENT_IOC_MODIFY_ATTRIBUTES: u32 = 2147755019;
+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 = 3223606825;
+pub const MATROXFB_SET_OUTPUT_MODE: u32 = 2147774202;
+pub const RIO_DEV_ADD: u32 = 2149608727;
+pub const VIDIOC_ENUM_FREQ_BANDS: u32 = 3225441893;
+pub const FBIO_RADEON_SET_MIRROR: u32 = 2147762180;
+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 = 1074032376;
+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 = 3225704029;
+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 = 2147774465;
+pub const RNDADDTOENTCNT: u32 = 2147766785;
+pub const VBG_IOCTL_CHECK_BALLOON: u32 = 3223344657;
+pub const VIDIOC_OMAP3ISP_STAT_REQ: u32 = 3222820550;
+pub const PPS_FETCH: u32 = 3221516452;
+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 = 2148033288;
+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 = 2147774200;
+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 = 3234616836;
+pub const RTC_EPOCH_SET: u32 = 2147774478;
+pub const CAPI_GET_PROFILE: u32 = 3225436937;
+pub const ATM_GETLOOP: u32 = 2148294994;
+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 = 3221514631;
+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 = 2148037702;
+pub const SIOCGSTAMPNS_NEW: u32 = 1074825479;
+pub const IPMICTL_RECEIVE_MSG: u32 = 3222825228;
+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 = 2147798273;
+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 = 1074293004;
+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 = 3225703951;
+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 = 3221509831;
+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 = 1075603733;
+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 = 3223087365;
+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 = 3223087366;
+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 = 2147774721;
+pub const IPMICTL_REGISTER_FOR_CMD: u32 = 1073899790;
+pub const I8K_GET_FAN: u32 = 3221514630;
+pub const TUNGETVNETBE: u32 = 1074025695;
+pub const AUTOFS_DEV_IOCTL_FAIL: u32 = 3222836087;
+pub const UI_END_FF_UPLOAD: u32 = 2153797065;
+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 = 3222295808;
+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 = 1108898306;
+pub const ND_IOCTL_GET_CONFIG_DATA: u32 = 3222031877;
+pub const F2FS_IOC_RESERVE_COMPRESS_BLOCKS: u32 = 1074328851;
+pub const FDGETDRVSTAT: u32 = 1077150226;
+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 = 2148295044;
+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 = 2153251472;
+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 = 2147774467;
+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 = 2148295011;
+pub const MTIOCPOS: u32 = 1074031875;
+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 = 1074554883;
+pub const VIDIOC_AM437X_CCDC_CFG: u32 = 2147768001;
+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 = 2148037703;
+pub const RIO_CM_CHAN_CONNECT: u32 = 2148033288;
+pub const I2OSWDEL: u32 = 3223087367;
+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 = 3225703945;
+pub const VIDIOC_S_EDID: u32 = 3223606825;
+pub const BTRFS_IOC_QGROUP_ASSIGN: u32 = 2149094441;
+pub const PPS_GETCAP: u32 = 1074032803;
+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 = 2149347346;
+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 = 2148033012;
+pub const FDSETPRM: u32 = 2149319234;
+pub const ATM_GETSTATZ: u32 = 2148294993;
+pub const ISST_IF_MSR_COMMAND: u32 = 3221552644;
+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 = 2147766278;
+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 = 2147755014;
+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 = 1074032651;
+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 = 1074287835;
+pub const CCISS_SETNODENAME: u32 = 2148549125;
+pub const FBIO_GETCONTROL2: u32 = 1074022025;
+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 = 2148294992;
+pub const VIDIOC_G_JPEGCOMP: u32 = 1082938941;
+pub const TUNATTACHFILTER: u32 = 2148029653;
+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 = 2148295008;
+pub const ATM_SETLOOP: u32 = 2148294995;
+pub const ATMSIGD_CTRL: u32 = 536895984;
+pub const CIOC_KERNEL_VERSION: u32 = 3221512970;
+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 = 1074020868;
+pub const I2OGETIOPS: u32 = 1075865856;
+pub const VIDIOC_S_FBUF: u32 = 2150389259;
+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 = 1074029313;
+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 = 2148295055;
+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 = 2147766277;
+pub const VFIO_GROUP_GET_STATUS: u32 = 536886119;
+pub const MATROXFB_GET_ALL_OUTPUTS: u32 = 1074032379;
+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 = 2147767564;
+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 = 1074295871;
+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 = 3222825220;
+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 = 2148032899;
+pub const VIDIOC_QUERYMENU: u32 = 3224131109;
+pub const DFL_FPGA_PORT_DMA_UNMAP: u32 = 536917572;
+pub const I2OLCTGET: u32 = 3222038786;
+pub const FS_IOC_GET_ENCRYPTION_PWSALT: u32 = 2148558356;
+pub const NS_SETBUFLEV: u32 = 2148295010;
+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 = 2147774629;
+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 = 1074068992;
+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 = 2147767660;
+pub const FDWERRORGET: u32 = 1075315223;
+pub const VIDIOC_SUBDEV_G_EDID: u32 = 3223606824;
+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 = 3221516288;
+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 = 1074020869;
+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 = 3221504262;
+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 = 1077150227;
+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 = 2148295041;
+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 = 2148295046;
+pub const PHN_GET_REGS: u32 = 3221516290;
+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 = 3222041889;
+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 = 2148294962;
+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 = 2148299853;
+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 = 3221552641;
+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 = 3221552643;
+pub const SCIF_ACCEPTREQ: u32 = 3222303492;
+pub const PERF_EVENT_IOC_QUERY_BPF: u32 = 3221496842;
+pub const VIDIOC_STREAMOFF: u32 = 2147767827;
+pub const VDUSE_DESTROY_DEV: u32 = 2164293891;
+pub const FDGETFDCSTAT: u32 = 1075839509;
+pub const VIDIOC_S_PRIORITY: u32 = 2147767876;
+pub const SNAPSHOT_FREEZE: u32 = 536883969;
+pub const VIDIOC_ENUMINPUT: u32 = 3226490394;
+pub const ZATM_GETPOOLZ: u32 = 2148295010;
+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 = 1074032377;
+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 = 3222820424;
+pub const VIDIOC_SUBDEV_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const VIDIOC_OMAP3ISP_CCDC_CFG: u32 = 3223344833;
+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 = 2147774626;
+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 = 3223606824;
+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 = 3221514629;
+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 = 2148295052;
+pub const FW_CDEV_IOC_START_ISO: u32 = 2148541194;
+pub const ATM_DELADDR: u32 = 2148295049;
+pub const PPFCONTROL: u32 = 2147643534;
+pub const SONYPI_IOCGFAN: u32 = 1073837578;
+pub const RTC_IRQP_SET: u32 = 2147774476;
+pub const PCITEST_WRITE: u32 = 2147766276;
+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 = 3225703953;
+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 = 1074031874;
+pub const VIDIOC_G_SELECTION: u32 = 3225441886;
+pub const RTC_ALM_SET: u32 = 2149871623;
+pub const PPPOEIOCSFWD: u32 = 2147791104;
+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 = 2147770881;
+pub const UI_BEGIN_FF_UPLOAD: u32 = 3227538888;
+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 = 3225179842;
+pub const GPIO_GET_LINEHANDLE_IOCTL: u32 = 3245126659;
+pub const VFAT_IOCTL_READDIR_BOTH: u32 = 1108898305;
+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 = 1074031881;
+pub const MATROXFB_GET_OUTPUT_MODE: u32 = 3221516026;
+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 = 2147787300;
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips32r6/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/landlock.rs
new file mode 100644
index 0000000..6349a9d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/landlock.rs
@@ -0,0 +1,108 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips32r6/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/loop_device.rs
new file mode 100644
index 0000000..b52ca70
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/loop_device.rs
@@ -0,0 +1,142 @@
+/* automatically generated by rust-bindgen 0.71.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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/mips32r6/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/mempolicy.rs
new file mode 100644
index 0000000..62d469b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/mempolicy.rs
@@ -0,0 +1,177 @@
+/* automatically generated by rust-bindgen 0.71.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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips32r6/net.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/net.rs
new file mode 100644
index 0000000..ba0a96a
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/net.rs
@@ -0,0 +1,3450 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u32; 67usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips32r6/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/netlink.rs
new file mode 100644
index 0000000..58bc1ba
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/netlink.rs
@@ -0,0 +1,2954 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_nl {
+pub nl_family: __kernel_sa_family_t,
+pub nl_pad: crate::ctypes::c_ushort,
+pub nl_pid: __u32,
+pub nl_groups: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsghdr {
+pub nlmsg_len: __u32,
+pub nlmsg_type: __u16,
+pub nlmsg_flags: __u16,
+pub nlmsg_seq: __u32,
+pub nlmsg_pid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsgerr {
+pub error: crate::ctypes::c_int,
+pub msg: nlmsghdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_pktinfo {
+pub group: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_req {
+pub nm_block_size: crate::ctypes::c_uint,
+pub nm_block_nr: crate::ctypes::c_uint,
+pub nm_frame_size: crate::ctypes::c_uint,
+pub nm_frame_nr: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_hdr {
+pub nm_status: crate::ctypes::c_uint,
+pub nm_len: crate::ctypes::c_uint,
+pub nm_group: __u32,
+pub nm_pid: __u32,
+pub nm_uid: __u32,
+pub nm_gid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlattr {
+pub nla_len: __u16,
+pub nla_type: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nla_bitfield32 {
+pub value: __u32,
+pub selector: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats {
+pub rx_packets: __u32,
+pub tx_packets: __u32,
+pub rx_bytes: __u32,
+pub tx_bytes: __u32,
+pub rx_errors: __u32,
+pub tx_errors: __u32,
+pub rx_dropped: __u32,
+pub tx_dropped: __u32,
+pub multicast: __u32,
+pub collisions: __u32,
+pub rx_length_errors: __u32,
+pub rx_over_errors: __u32,
+pub rx_crc_errors: __u32,
+pub rx_frame_errors: __u32,
+pub rx_fifo_errors: __u32,
+pub rx_missed_errors: __u32,
+pub tx_aborted_errors: __u32,
+pub tx_carrier_errors: __u32,
+pub tx_fifo_errors: __u32,
+pub tx_heartbeat_errors: __u32,
+pub tx_window_errors: __u32,
+pub rx_compressed: __u32,
+pub tx_compressed: __u32,
+pub rx_nohandler: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+pub collisions: __u64,
+pub rx_length_errors: __u64,
+pub rx_over_errors: __u64,
+pub rx_crc_errors: __u64,
+pub rx_frame_errors: __u64,
+pub rx_fifo_errors: __u64,
+pub rx_missed_errors: __u64,
+pub tx_aborted_errors: __u64,
+pub tx_carrier_errors: __u64,
+pub tx_fifo_errors: __u64,
+pub tx_heartbeat_errors: __u64,
+pub tx_window_errors: __u64,
+pub rx_compressed: __u64,
+pub tx_compressed: __u64,
+pub rx_nohandler: __u64,
+pub rx_otherhost_dropped: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_hw_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_ifmap {
+pub mem_start: __u64,
+pub mem_end: __u64,
+pub base_addr: __u64,
+pub irq: __u16,
+pub dma: __u8,
+pub port: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_bridge_id {
+pub prio: [__u8; 2usize],
+pub addr: [__u8; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_cacheinfo {
+pub max_reasm_len: __u32,
+pub tstamp: __u32,
+pub reachable_time: __u32,
+pub retrans_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_qos_mapping {
+pub from: __u32,
+pub to: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tunnel_msg {
+pub family: __u8,
+pub flags: __u8,
+pub reserved2: __u16,
+pub ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vxlan_port_range {
+pub low: __be16,
+pub high: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_mac {
+pub vf: __u32,
+pub mac: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_broadcast {
+pub broadcast: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan_info {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+pub vlan_proto: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_tx_rate {
+pub vf: __u32,
+pub rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rate {
+pub vf: __u32,
+pub min_tx_rate: __u32,
+pub max_tx_rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_spoofchk {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_guid {
+pub vf: __u32,
+pub guid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_link_state {
+pub vf: __u32,
+pub link_state: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rss_query_en {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_trust {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_port_vsi {
+pub vsi_mgr_id: __u8,
+pub vsi_type_id: [__u8; 3usize],
+pub vsi_type_version: __u8,
+pub pad: [__u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_stats_msg {
+pub family: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub ifindex: __u32,
+pub filter_mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_rmnet_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifaddrmsg {
+pub ifa_family: __u8,
+pub ifa_prefixlen: __u8,
+pub ifa_flags: __u8,
+pub ifa_scope: __u8,
+pub ifa_index: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifa_cacheinfo {
+pub ifa_prefered: __u32,
+pub ifa_valid: __u32,
+pub cstamp: __u32,
+pub tstamp: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndmsg {
+pub ndm_family: __u8,
+pub ndm_pad1: __u8,
+pub ndm_pad2: __u16,
+pub ndm_ifindex: __s32,
+pub ndm_state: __u16,
+pub ndm_flags: __u8,
+pub ndm_type: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nda_cacheinfo {
+pub ndm_confirmed: __u32,
+pub ndm_used: __u32,
+pub ndm_updated: __u32,
+pub ndm_refcnt: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_stats {
+pub ndts_allocs: __u64,
+pub ndts_destroys: __u64,
+pub ndts_hash_grows: __u64,
+pub ndts_res_failed: __u64,
+pub ndts_lookups: __u64,
+pub ndts_hits: __u64,
+pub ndts_rcv_probes_mcast: __u64,
+pub ndts_rcv_probes_ucast: __u64,
+pub ndts_periodic_gc_runs: __u64,
+pub ndts_forced_gc_runs: __u64,
+pub ndts_table_fulls: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndtmsg {
+pub ndtm_family: __u8,
+pub ndtm_pad1: __u8,
+pub ndtm_pad2: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_config {
+pub ndtc_key_len: __u16,
+pub ndtc_entry_size: __u16,
+pub ndtc_entries: __u32,
+pub ndtc_last_flush: __u32,
+pub ndtc_last_rand: __u32,
+pub ndtc_hash_rnd: __u32,
+pub ndtc_hash_mask: __u32,
+pub ndtc_hash_chain_gc: __u32,
+pub ndtc_proxy_qlen: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtattr {
+pub rta_len: crate::ctypes::c_ushort,
+pub rta_type: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtmsg {
+pub rtm_family: crate::ctypes::c_uchar,
+pub rtm_dst_len: crate::ctypes::c_uchar,
+pub rtm_src_len: crate::ctypes::c_uchar,
+pub rtm_tos: crate::ctypes::c_uchar,
+pub rtm_table: crate::ctypes::c_uchar,
+pub rtm_protocol: crate::ctypes::c_uchar,
+pub rtm_scope: crate::ctypes::c_uchar,
+pub rtm_type: crate::ctypes::c_uchar,
+pub rtm_flags: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnexthop {
+pub rtnh_len: crate::ctypes::c_ushort,
+pub rtnh_flags: crate::ctypes::c_uchar,
+pub rtnh_hops: crate::ctypes::c_uchar,
+pub rtnh_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct rtvia {
+pub rtvia_family: __kernel_sa_family_t,
+pub rtvia_addr: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_cacheinfo {
+pub rta_clntref: __u32,
+pub rta_lastuse: __u32,
+pub rta_expires: __s32,
+pub rta_error: __u32,
+pub rta_used: __u32,
+pub rta_id: __u32,
+pub rta_ts: __u32,
+pub rta_tsage: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rta_session {
+pub proto: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub u: rta_session__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_1 {
+pub sport: __u16,
+pub dport: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_2 {
+pub type_: __u8,
+pub code: __u8,
+pub ident: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_mfc_stats {
+pub mfcs_packets: __u64,
+pub mfcs_bytes: __u64,
+pub mfcs_wrong_if: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtgenmsg {
+pub rtgen_family: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifinfomsg {
+pub ifi_family: crate::ctypes::c_uchar,
+pub __ifi_pad: crate::ctypes::c_uchar,
+pub ifi_type: crate::ctypes::c_ushort,
+pub ifi_index: crate::ctypes::c_int,
+pub ifi_flags: crate::ctypes::c_uint,
+pub ifi_change: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefixmsg {
+pub prefix_family: crate::ctypes::c_uchar,
+pub prefix_pad1: crate::ctypes::c_uchar,
+pub prefix_pad2: crate::ctypes::c_ushort,
+pub prefix_ifindex: crate::ctypes::c_int,
+pub prefix_type: crate::ctypes::c_uchar,
+pub prefix_len: crate::ctypes::c_uchar,
+pub prefix_flags: crate::ctypes::c_uchar,
+pub prefix_pad3: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefix_cacheinfo {
+pub preferred_time: __u32,
+pub valid_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcmsg {
+pub tcm_family: crate::ctypes::c_uchar,
+pub tcm__pad1: crate::ctypes::c_uchar,
+pub tcm__pad2: crate::ctypes::c_ushort,
+pub tcm_ifindex: crate::ctypes::c_int,
+pub tcm_handle: __u32,
+pub tcm_parent: __u32,
+pub tcm_info: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nduseroptmsg {
+pub nduseropt_family: crate::ctypes::c_uchar,
+pub nduseropt_pad1: crate::ctypes::c_uchar,
+pub nduseropt_opts_len: crate::ctypes::c_ushort,
+pub nduseropt_ifindex: crate::ctypes::c_int,
+pub nduseropt_icmp_type: __u8,
+pub nduseropt_icmp_code: __u8,
+pub nduseropt_pad2: crate::ctypes::c_ushort,
+pub nduseropt_pad3: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcamsg {
+pub tca_family: crate::ctypes::c_uchar,
+pub tca__pad1: crate::ctypes::c_uchar,
+pub tca__pad2: crate::ctypes::c_ushort,
+}
+pub const _K_SS_MAXSIZE: u32 = 128;
+pub const SOCK_SNDBUF_LOCK: u32 = 1;
+pub const SOCK_RCVBUF_LOCK: u32 = 2;
+pub const SOCK_BUF_LOCK_MASK: u32 = 3;
+pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
+pub const SOCK_TXREHASH_DISABLED: u32 = 0;
+pub const SOCK_TXREHASH_ENABLED: u32 = 1;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/mips32r6/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/prctl.rs
new file mode 100644
index 0000000..62fe1e1
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/prctl.rs
@@ -0,0 +1,270 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips32r6/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/ptrace.rs
new file mode 100644
index 0000000..55cee2e
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/ptrace.rs
@@ -0,0 +1,866 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pt_regs {
+pub regs: [__u64; 32usize],
+pub lo: __u64,
+pub hi: __u64,
+pub cp0_epc: __u64,
+pub cp0_badvaddr: __u64,
+pub cp0_status: __u64,
+pub cp0_cause: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct mips32_watch_regs {
+pub watchlo: [crate::ctypes::c_uint; 8usize],
+pub watchhi: [crate::ctypes::c_ushort; 8usize],
+pub watch_masks: [crate::ctypes::c_ushort; 8usize],
+pub num_valid: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mips64_watch_regs {
+pub watchlo: [crate::ctypes::c_ulonglong; 8usize],
+pub watchhi: [crate::ctypes::c_ushort; 8usize],
+pub watch_masks: [crate::ctypes::c_ushort; 8usize],
+pub num_valid: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pt_watch_regs {
+pub style: pt_watch_style,
+pub __bindgen_anon_1: pt_watch_regs__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const FPR_BASE: u32 = 32;
+pub const PC: u32 = 64;
+pub const CAUSE: u32 = 65;
+pub const BADVADDR: u32 = 66;
+pub const MMHI: u32 = 67;
+pub const MMLO: u32 = 68;
+pub const FPC_CSR: u32 = 69;
+pub const FPC_EIR: u32 = 70;
+pub const DSP_BASE: u32 = 71;
+pub const DSP_CONTROL: u32 = 77;
+pub const ACX: u32 = 78;
+pub const PTRACE_GETREGS: u32 = 12;
+pub const PTRACE_SETREGS: u32 = 13;
+pub const PTRACE_GETFPREGS: u32 = 14;
+pub const PTRACE_SETFPREGS: u32 = 15;
+pub const PTRACE_OLDSETOPTIONS: u32 = 21;
+pub const PTRACE_GET_THREAD_AREA: u32 = 25;
+pub const PTRACE_SET_THREAD_AREA: u32 = 26;
+pub const PTRACE_PEEKTEXT_3264: u32 = 192;
+pub const PTRACE_PEEKDATA_3264: u32 = 193;
+pub const PTRACE_POKETEXT_3264: u32 = 194;
+pub const PTRACE_POKEDATA_3264: u32 = 195;
+pub const PTRACE_GET_THREAD_AREA_3264: u32 = 196;
+pub const PTRACE_GET_WATCH_REGS: u32 = 208;
+pub const PTRACE_SET_WATCH_REGS: u32 = 209;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum pt_watch_style {
+pt_watch_style_mips32 = 0,
+pt_watch_style_mips64 = 1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pt_watch_regs__bindgen_ty_1 {
+pub mips32: mips32_watch_regs,
+pub mips64: mips64_watch_regs,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips32r6/system.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/system.rs
new file mode 100644
index 0000000..71c4047
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/system.rs
@@ -0,0 +1,110 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 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: [crate::ctypes::c_char; 8usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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;
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips32r6/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/mips32r6/xdp.rs
new file mode 100644
index 0000000..257df9d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips32r6/xdp.rs
@@ -0,0 +1,199 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/bootparam.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/bootparam.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/btrfs.rs
new file mode 100644
index 0000000..d28a05c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/btrfs.rs
@@ -0,0 +1,1878 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 _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 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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/elf_uapi.rs
new file mode 100644
index 0000000..8b44e67
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/elf_uapi.rs
@@ -0,0 +1,534 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64/errno.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/errno.rs
new file mode 100644
index 0000000..0f7ab95
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/errno.rs
@@ -0,0 +1,137 @@
+/* automatically generated by rust-bindgen 0.71.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.9.4/src/mips64/general.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/general.rs
new file mode 100644
index 0000000..327926c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/general.rs
@@ -0,0 +1,3408 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub type __s8 = crate::ctypes::c_schar;
+pub type __u8 = crate::ctypes::c_uchar;
+pub type __s16 = crate::ctypes::c_short;
+pub type __u16 = crate::ctypes::c_ushort;
+pub type __s32 = crate::ctypes::c_int;
+pub type __u32 = crate::ctypes::c_uint;
+pub type __s64 = crate::ctypes::c_long;
+pub type __u64 = crate::ctypes::c_ulong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_ino_t = __kernel_ulong_t;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
+pub type __kernel_uid_t = crate::ctypes::c_uint;
+pub type __kernel_gid_t = crate::ctypes::c_uint;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_old_uid_t = __kernel_uid_t;
+pub type __kernel_old_gid_t = __kernel_gid_t;
+pub type __kernel_old_dev_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = __kernel_ulong_t;
+pub type __kernel_ssize_t = __kernel_long_t;
+pub type __kernel_ptrdiff_t = __kernel_long_t;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type cap_user_header_t = *mut __user_cap_header_struct;
+pub type cap_user_data_t = *mut __user_cap_data_struct;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+pub type old_sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type fsid_t = __kernel_fsid_t;
+pub type __fsword_t = __u32;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fsid_t {
+pub val: [crate::ctypes::c_int; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __user_cap_header_struct {
+pub version: __u32,
+pub pid: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __user_cap_data_struct {
+pub effective: __u32,
+pub permitted: __u32,
+pub inheritable: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_cap_data {
+pub magic_etc: __le32,
+pub data: [vfs_cap_data__bindgen_ty_1; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_cap_data__bindgen_ty_1 {
+pub permitted: __le32,
+pub inheritable: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_ns_cap_data {
+pub magic_etc: __le32,
+pub data: [vfs_ns_cap_data__bindgen_ty_1; 2usize],
+pub rootid: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_ns_cap_data__bindgen_ty_1 {
+pub permitted: __le32,
+pub inheritable: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct f_owner_ex {
+pub type_: crate::ctypes::c_int,
+pub pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct flock {
+pub l_type: crate::ctypes::c_short,
+pub l_whence: crate::ctypes::c_short,
+pub l_start: __kernel_off_t,
+pub l_len: __kernel_off_t,
+pub l_pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct flock64 {
+pub l_type: crate::ctypes::c_short,
+pub l_whence: crate::ctypes::c_short,
+pub l_start: __kernel_loff_t,
+pub l_len: __kernel_loff_t,
+pub l_pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct open_how {
+pub flags: __u64,
+pub mode: __u64,
+pub resolve: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct epoll_event {
+pub events: __poll_t,
+pub data: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 rusage {
+pub ru_utime: __kernel_old_timeval,
+pub ru_stime: __kernel_old_timeval,
+pub ru_maxrss: __kernel_long_t,
+pub ru_ixrss: __kernel_long_t,
+pub ru_idrss: __kernel_long_t,
+pub ru_isrss: __kernel_long_t,
+pub ru_minflt: __kernel_long_t,
+pub ru_majflt: __kernel_long_t,
+pub ru_nswap: __kernel_long_t,
+pub ru_inblock: __kernel_long_t,
+pub ru_oublock: __kernel_long_t,
+pub ru_msgsnd: __kernel_long_t,
+pub ru_msgrcv: __kernel_long_t,
+pub ru_nsignals: __kernel_long_t,
+pub ru_nvcsw: __kernel_long_t,
+pub ru_nivcsw: __kernel_long_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rlimit {
+pub rlim_cur: __kernel_ulong_t,
+pub rlim_max: __kernel_ulong_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rlimit64 {
+pub rlim_cur: __u64,
+pub rlim_max: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct clone_args {
+pub flags: __u64,
+pub pidfd: __u64,
+pub child_tid: __u64,
+pub parent_tid: __u64,
+pub exit_signal: __u64,
+pub stack: __u64,
+pub stack_size: __u64,
+pub tls: __u64,
+pub set_tid: __u64,
+pub set_tid_size: __u64,
+pub cgroup: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigset_t {
+pub sig: [crate::ctypes::c_ulong; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaction {
+pub sa_flags: crate::ctypes::c_uint,
+pub sa_handler: __sighandler_t,
+pub sa_mask: sigset_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaltstack {
+pub ss_sp: *mut crate::ctypes::c_void,
+pub ss_size: __kernel_size_t,
+pub ss_flags: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_1 {
+pub _pid: __kernel_pid_t,
+pub _uid: __kernel_uid32_t,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __sifields__bindgen_ty_2 {
+pub _tid: __kernel_timer_t,
+pub _overrun: crate::ctypes::c_int,
+pub _sigval: sigval_t,
+pub _sys_private: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __sifields__bindgen_ty_3 {
+pub _pid: __kernel_pid_t,
+pub _uid: __kernel_uid32_t,
+pub _sigval: sigval_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_4 {
+pub _pid: __kernel_pid_t,
+pub _uid: __kernel_uid32_t,
+pub _status: crate::ctypes::c_int,
+pub _utime: __kernel_clock_t,
+pub _stime: __kernel_clock_t,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __sifields__bindgen_ty_5 {
+pub _addr: *mut crate::ctypes::c_void,
+pub __bindgen_anon_1: __sifields__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1 {
+pub _dummy_bnd: [crate::ctypes::c_char; 8usize],
+pub _lower: *mut crate::ctypes::c_void,
+pub _upper: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2 {
+pub _dummy_pkey: [crate::ctypes::c_char; 8usize],
+pub _pkey: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3 {
+pub _data: crate::ctypes::c_ulong,
+pub _type: __u32,
+pub _flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_6 {
+pub _band: crate::ctypes::c_long,
+pub _fd: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_7 {
+pub _call_addr: *mut crate::ctypes::c_void,
+pub _syscall: crate::ctypes::c_int,
+pub _arch: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct siginfo {
+pub __bindgen_anon_1: siginfo__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct siginfo__bindgen_ty_1__bindgen_ty_1 {
+pub si_signo: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub si_errno: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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 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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulong,
+pub d_off: crate::ctypes::c_long,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_uint,
+pub st_pad0: [crate::ctypes::c_uint; 3usize],
+pub st_ino: crate::ctypes::c_ulong,
+pub st_mode: __kernel_mode_t,
+pub st_nlink: __u32,
+pub st_uid: __kernel_uid32_t,
+pub st_gid: __kernel_gid32_t,
+pub st_rdev: crate::ctypes::c_uint,
+pub st_pad1: [crate::ctypes::c_uint; 3usize],
+pub st_size: crate::ctypes::c_long,
+pub st_atime: crate::ctypes::c_uint,
+pub st_atime_nsec: crate::ctypes::c_uint,
+pub st_mtime: crate::ctypes::c_uint,
+pub st_mtime_nsec: crate::ctypes::c_uint,
+pub st_ctime: crate::ctypes::c_uint,
+pub st_ctime_nsec: crate::ctypes::c_uint,
+pub st_blksize: crate::ctypes::c_uint,
+pub st_pad2: crate::ctypes::c_uint,
+pub st_blocks: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: crate::ctypes::c_long,
+pub f_bsize: crate::ctypes::c_long,
+pub f_frsize: crate::ctypes::c_long,
+pub f_blocks: crate::ctypes::c_long,
+pub f_bfree: crate::ctypes::c_long,
+pub f_files: crate::ctypes::c_long,
+pub f_ffree: crate::ctypes::c_long,
+pub f_bavail: crate::ctypes::c_long,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: crate::ctypes::c_long,
+pub f_flags: crate::ctypes::c_long,
+pub f_spare: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: crate::ctypes::c_long,
+pub f_bsize: crate::ctypes::c_long,
+pub f_frsize: crate::ctypes::c_long,
+pub f_blocks: crate::ctypes::c_long,
+pub f_bfree: crate::ctypes::c_long,
+pub f_files: crate::ctypes::c_long,
+pub f_ffree: crate::ctypes::c_long,
+pub f_bavail: crate::ctypes::c_long,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: crate::ctypes::c_long,
+pub f_flags: crate::ctypes::c_long,
+pub f_spare: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct compat_statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_frsize: __u32,
+pub __pad: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_bavail: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_desc {
+pub entry_number: crate::ctypes::c_uint,
+pub base_addr: crate::ctypes::c_uint,
+pub limit: crate::ctypes::c_uint,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub __bindgen_padding_0: [u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct kernel_sigset_t {
+pub sig: [crate::ctypes::c_ulong; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct kernel_sigaction {
+pub sa_handler_kernel: __kernel_sighandler_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_mask: kernel_sigset_t,
+}
+pub const LINUX_VERSION_CODE: u32 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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_DROPPABLE: u32 = 8;
+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 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_EXT: u32 = 7;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 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 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 __NR_cachestat: u32 = 5451;
+pub const __NR_fchmodat2: u32 = 5452;
+pub const __NR_map_shadow_stack: u32 = 5453;
+pub const __NR_futex_wake: u32 = 5454;
+pub const __NR_futex_wait: u32 = 5455;
+pub const __NR_futex_requeue: u32 = 5456;
+pub const __NR_statmount: u32 = 5457;
+pub const __NR_listmount: u32 = 5458;
+pub const __NR_lsm_get_self_attr: u32 = 5459;
+pub const __NR_lsm_set_self_attr: u32 = 5460;
+pub const __NR_lsm_list_modules: u32 = 5461;
+pub const __NR_mseal: u32 = 5462;
+pub const __NR_setxattrat: u32 = 5463;
+pub const __NR_getxattrat: u32 = 5464;
+pub const __NR_listxattrat: u32 = 5465;
+pub const __NR_removexattrat: u32 = 5466;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd {
+MEMBARRIER_CMD_QUERY = 0,
+MEMBARRIER_CMD_GLOBAL = 1,
+MEMBARRIER_CMD_GLOBAL_EXPEDITED = 2,
+MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 4,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED = 8,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 16,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 32,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 64,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 128,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 256,
+MEMBARRIER_CMD_GET_REGISTRATIONS = 512,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd_flag {
+MEMBARRIER_CMD_FLAG_CPU = 1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_get_policy_ex_arg__bindgen_ty_1 {
+pub version: __u8,
+pub v1: fscrypt_policy_v1,
+pub v2: fscrypt_policy_v2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_key_specifier__bindgen_ty_1 {
+pub __reserved: [__u8; 32usize],
+pub descriptor: [__u8; 8usize],
+pub identifier: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigval {
+pub sival_int: crate::ctypes::c_int,
+pub sival_ptr: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields {
+pub _kill: __sifields__bindgen_ty_1,
+pub _timer: __sifields__bindgen_ty_2,
+pub _rt: __sifields__bindgen_ty_3,
+pub _sigchld: __sifields__bindgen_ty_4,
+pub _sigfault: __sifields__bindgen_ty_5,
+pub _sigpoll: __sifields__bindgen_ty_6,
+pub _sigsys: __sifields__bindgen_ty_7,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields__bindgen_ty_5__bindgen_ty_1 {
+pub _trapno: crate::ctypes::c_int,
+pub _addr_lsb: crate::ctypes::c_short,
+pub _addr_bnd: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1,
+pub _addr_pkey: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2,
+pub _perf: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union siginfo__bindgen_ty_1 {
+pub __bindgen_anon_1: siginfo__bindgen_ty_1__bindgen_ty_1,
+pub _si_pad: [crate::ctypes::c_int; 32usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigevent__bindgen_ty_1 {
+pub _pad: [crate::ctypes::c_int; 12usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/mips64/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/if_arp.rs
new file mode 100644
index 0000000..39b6dc5
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/if_arp.rs
@@ -0,0 +1,2767 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/mips64/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/if_ether.rs
new file mode 100644
index 0000000..e6be97f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/if_ether.rs
@@ -0,0 +1,180 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/mips64/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/if_packet.rs
new file mode 100644
index 0000000..5ffa4a3
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/if_packet.rs
@@ -0,0 +1,321 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/mips64/image.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/io_uring.rs
new file mode 100644
index 0000000..752ad21
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/io_uring.rs
@@ -0,0 +1,1346 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/ioctl.rs
new file mode 100644
index 0000000..078f31b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/ioctl.rs
@@ -0,0 +1,1496 @@
+/* automatically generated by rust-bindgen 0.71.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 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.9.4/src/mips64/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/landlock.rs
new file mode 100644
index 0000000..5dcfce1
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/landlock.rs
@@ -0,0 +1,110 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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 landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/loop_device.rs
new file mode 100644
index 0000000..48aca93
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/loop_device.rs
@@ -0,0 +1,144 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/mips64/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/mempolicy.rs
new file mode 100644
index 0000000..62d469b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/mempolicy.rs
@@ -0,0 +1,177 @@
+/* automatically generated by rust-bindgen 0.71.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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64/net.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/net.rs
new file mode 100644
index 0000000..4fc0e22
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/net.rs
@@ -0,0 +1,3458 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 34usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/netlink.rs
new file mode 100644
index 0000000..2a34d25
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/netlink.rs
@@ -0,0 +1,2956 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_nl {
+pub nl_family: __kernel_sa_family_t,
+pub nl_pad: crate::ctypes::c_ushort,
+pub nl_pid: __u32,
+pub nl_groups: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsghdr {
+pub nlmsg_len: __u32,
+pub nlmsg_type: __u16,
+pub nlmsg_flags: __u16,
+pub nlmsg_seq: __u32,
+pub nlmsg_pid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsgerr {
+pub error: crate::ctypes::c_int,
+pub msg: nlmsghdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_pktinfo {
+pub group: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_req {
+pub nm_block_size: crate::ctypes::c_uint,
+pub nm_block_nr: crate::ctypes::c_uint,
+pub nm_frame_size: crate::ctypes::c_uint,
+pub nm_frame_nr: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_hdr {
+pub nm_status: crate::ctypes::c_uint,
+pub nm_len: crate::ctypes::c_uint,
+pub nm_group: __u32,
+pub nm_pid: __u32,
+pub nm_uid: __u32,
+pub nm_gid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlattr {
+pub nla_len: __u16,
+pub nla_type: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nla_bitfield32 {
+pub value: __u32,
+pub selector: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats {
+pub rx_packets: __u32,
+pub tx_packets: __u32,
+pub rx_bytes: __u32,
+pub tx_bytes: __u32,
+pub rx_errors: __u32,
+pub tx_errors: __u32,
+pub rx_dropped: __u32,
+pub tx_dropped: __u32,
+pub multicast: __u32,
+pub collisions: __u32,
+pub rx_length_errors: __u32,
+pub rx_over_errors: __u32,
+pub rx_crc_errors: __u32,
+pub rx_frame_errors: __u32,
+pub rx_fifo_errors: __u32,
+pub rx_missed_errors: __u32,
+pub tx_aborted_errors: __u32,
+pub tx_carrier_errors: __u32,
+pub tx_fifo_errors: __u32,
+pub tx_heartbeat_errors: __u32,
+pub tx_window_errors: __u32,
+pub rx_compressed: __u32,
+pub tx_compressed: __u32,
+pub rx_nohandler: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+pub collisions: __u64,
+pub rx_length_errors: __u64,
+pub rx_over_errors: __u64,
+pub rx_crc_errors: __u64,
+pub rx_frame_errors: __u64,
+pub rx_fifo_errors: __u64,
+pub rx_missed_errors: __u64,
+pub tx_aborted_errors: __u64,
+pub tx_carrier_errors: __u64,
+pub tx_fifo_errors: __u64,
+pub tx_heartbeat_errors: __u64,
+pub tx_window_errors: __u64,
+pub rx_compressed: __u64,
+pub tx_compressed: __u64,
+pub rx_nohandler: __u64,
+pub rx_otherhost_dropped: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_hw_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_ifmap {
+pub mem_start: __u64,
+pub mem_end: __u64,
+pub base_addr: __u64,
+pub irq: __u16,
+pub dma: __u8,
+pub port: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_bridge_id {
+pub prio: [__u8; 2usize],
+pub addr: [__u8; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_cacheinfo {
+pub max_reasm_len: __u32,
+pub tstamp: __u32,
+pub reachable_time: __u32,
+pub retrans_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_qos_mapping {
+pub from: __u32,
+pub to: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tunnel_msg {
+pub family: __u8,
+pub flags: __u8,
+pub reserved2: __u16,
+pub ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vxlan_port_range {
+pub low: __be16,
+pub high: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_mac {
+pub vf: __u32,
+pub mac: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_broadcast {
+pub broadcast: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan_info {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+pub vlan_proto: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_tx_rate {
+pub vf: __u32,
+pub rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rate {
+pub vf: __u32,
+pub min_tx_rate: __u32,
+pub max_tx_rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_spoofchk {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_guid {
+pub vf: __u32,
+pub guid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_link_state {
+pub vf: __u32,
+pub link_state: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rss_query_en {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_trust {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_port_vsi {
+pub vsi_mgr_id: __u8,
+pub vsi_type_id: [__u8; 3usize],
+pub vsi_type_version: __u8,
+pub pad: [__u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_stats_msg {
+pub family: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub ifindex: __u32,
+pub filter_mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_rmnet_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifaddrmsg {
+pub ifa_family: __u8,
+pub ifa_prefixlen: __u8,
+pub ifa_flags: __u8,
+pub ifa_scope: __u8,
+pub ifa_index: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifa_cacheinfo {
+pub ifa_prefered: __u32,
+pub ifa_valid: __u32,
+pub cstamp: __u32,
+pub tstamp: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndmsg {
+pub ndm_family: __u8,
+pub ndm_pad1: __u8,
+pub ndm_pad2: __u16,
+pub ndm_ifindex: __s32,
+pub ndm_state: __u16,
+pub ndm_flags: __u8,
+pub ndm_type: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nda_cacheinfo {
+pub ndm_confirmed: __u32,
+pub ndm_used: __u32,
+pub ndm_updated: __u32,
+pub ndm_refcnt: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_stats {
+pub ndts_allocs: __u64,
+pub ndts_destroys: __u64,
+pub ndts_hash_grows: __u64,
+pub ndts_res_failed: __u64,
+pub ndts_lookups: __u64,
+pub ndts_hits: __u64,
+pub ndts_rcv_probes_mcast: __u64,
+pub ndts_rcv_probes_ucast: __u64,
+pub ndts_periodic_gc_runs: __u64,
+pub ndts_forced_gc_runs: __u64,
+pub ndts_table_fulls: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndtmsg {
+pub ndtm_family: __u8,
+pub ndtm_pad1: __u8,
+pub ndtm_pad2: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_config {
+pub ndtc_key_len: __u16,
+pub ndtc_entry_size: __u16,
+pub ndtc_entries: __u32,
+pub ndtc_last_flush: __u32,
+pub ndtc_last_rand: __u32,
+pub ndtc_hash_rnd: __u32,
+pub ndtc_hash_mask: __u32,
+pub ndtc_hash_chain_gc: __u32,
+pub ndtc_proxy_qlen: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtattr {
+pub rta_len: crate::ctypes::c_ushort,
+pub rta_type: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtmsg {
+pub rtm_family: crate::ctypes::c_uchar,
+pub rtm_dst_len: crate::ctypes::c_uchar,
+pub rtm_src_len: crate::ctypes::c_uchar,
+pub rtm_tos: crate::ctypes::c_uchar,
+pub rtm_table: crate::ctypes::c_uchar,
+pub rtm_protocol: crate::ctypes::c_uchar,
+pub rtm_scope: crate::ctypes::c_uchar,
+pub rtm_type: crate::ctypes::c_uchar,
+pub rtm_flags: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnexthop {
+pub rtnh_len: crate::ctypes::c_ushort,
+pub rtnh_flags: crate::ctypes::c_uchar,
+pub rtnh_hops: crate::ctypes::c_uchar,
+pub rtnh_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct rtvia {
+pub rtvia_family: __kernel_sa_family_t,
+pub rtvia_addr: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_cacheinfo {
+pub rta_clntref: __u32,
+pub rta_lastuse: __u32,
+pub rta_expires: __s32,
+pub rta_error: __u32,
+pub rta_used: __u32,
+pub rta_id: __u32,
+pub rta_ts: __u32,
+pub rta_tsage: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rta_session {
+pub proto: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub u: rta_session__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_1 {
+pub sport: __u16,
+pub dport: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_2 {
+pub type_: __u8,
+pub code: __u8,
+pub ident: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_mfc_stats {
+pub mfcs_packets: __u64,
+pub mfcs_bytes: __u64,
+pub mfcs_wrong_if: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtgenmsg {
+pub rtgen_family: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifinfomsg {
+pub ifi_family: crate::ctypes::c_uchar,
+pub __ifi_pad: crate::ctypes::c_uchar,
+pub ifi_type: crate::ctypes::c_ushort,
+pub ifi_index: crate::ctypes::c_int,
+pub ifi_flags: crate::ctypes::c_uint,
+pub ifi_change: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefixmsg {
+pub prefix_family: crate::ctypes::c_uchar,
+pub prefix_pad1: crate::ctypes::c_uchar,
+pub prefix_pad2: crate::ctypes::c_ushort,
+pub prefix_ifindex: crate::ctypes::c_int,
+pub prefix_type: crate::ctypes::c_uchar,
+pub prefix_len: crate::ctypes::c_uchar,
+pub prefix_flags: crate::ctypes::c_uchar,
+pub prefix_pad3: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefix_cacheinfo {
+pub preferred_time: __u32,
+pub valid_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcmsg {
+pub tcm_family: crate::ctypes::c_uchar,
+pub tcm__pad1: crate::ctypes::c_uchar,
+pub tcm__pad2: crate::ctypes::c_ushort,
+pub tcm_ifindex: crate::ctypes::c_int,
+pub tcm_handle: __u32,
+pub tcm_parent: __u32,
+pub tcm_info: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nduseroptmsg {
+pub nduseropt_family: crate::ctypes::c_uchar,
+pub nduseropt_pad1: crate::ctypes::c_uchar,
+pub nduseropt_opts_len: crate::ctypes::c_ushort,
+pub nduseropt_ifindex: crate::ctypes::c_int,
+pub nduseropt_icmp_type: __u8,
+pub nduseropt_icmp_code: __u8,
+pub nduseropt_pad2: crate::ctypes::c_ushort,
+pub nduseropt_pad3: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcamsg {
+pub tca_family: crate::ctypes::c_uchar,
+pub tca__pad1: crate::ctypes::c_uchar,
+pub tca__pad2: crate::ctypes::c_ushort,
+}
+pub const _K_SS_MAXSIZE: u32 = 128;
+pub const SOCK_SNDBUF_LOCK: u32 = 1;
+pub const SOCK_RCVBUF_LOCK: u32 = 2;
+pub const SOCK_BUF_LOCK_MASK: u32 = 3;
+pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
+pub const SOCK_TXREHASH_DISABLED: u32 = 0;
+pub const SOCK_TXREHASH_ENABLED: u32 = 1;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/mips64/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/prctl.rs
new file mode 100644
index 0000000..d0121f8
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/prctl.rs
@@ -0,0 +1,272 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/ptrace.rs
new file mode 100644
index 0000000..75c836b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/ptrace.rs
@@ -0,0 +1,868 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pt_regs {
+pub regs: [__u64; 32usize],
+pub lo: __u64,
+pub hi: __u64,
+pub cp0_epc: __u64,
+pub cp0_badvaddr: __u64,
+pub cp0_status: __u64,
+pub cp0_cause: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct mips32_watch_regs {
+pub watchlo: [crate::ctypes::c_uint; 8usize],
+pub watchhi: [crate::ctypes::c_ushort; 8usize],
+pub watch_masks: [crate::ctypes::c_ushort; 8usize],
+pub num_valid: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mips64_watch_regs {
+pub watchlo: [crate::ctypes::c_ulonglong; 8usize],
+pub watchhi: [crate::ctypes::c_ushort; 8usize],
+pub watch_masks: [crate::ctypes::c_ushort; 8usize],
+pub num_valid: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pt_watch_regs {
+pub style: pt_watch_style,
+pub __bindgen_anon_1: pt_watch_regs__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const FPR_BASE: u32 = 32;
+pub const PC: u32 = 64;
+pub const CAUSE: u32 = 65;
+pub const BADVADDR: u32 = 66;
+pub const MMHI: u32 = 67;
+pub const MMLO: u32 = 68;
+pub const FPC_CSR: u32 = 69;
+pub const FPC_EIR: u32 = 70;
+pub const DSP_BASE: u32 = 71;
+pub const DSP_CONTROL: u32 = 77;
+pub const ACX: u32 = 78;
+pub const PTRACE_GETREGS: u32 = 12;
+pub const PTRACE_SETREGS: u32 = 13;
+pub const PTRACE_GETFPREGS: u32 = 14;
+pub const PTRACE_SETFPREGS: u32 = 15;
+pub const PTRACE_OLDSETOPTIONS: u32 = 21;
+pub const PTRACE_GET_THREAD_AREA: u32 = 25;
+pub const PTRACE_SET_THREAD_AREA: u32 = 26;
+pub const PTRACE_PEEKTEXT_3264: u32 = 192;
+pub const PTRACE_PEEKDATA_3264: u32 = 193;
+pub const PTRACE_POKETEXT_3264: u32 = 194;
+pub const PTRACE_POKEDATA_3264: u32 = 195;
+pub const PTRACE_GET_THREAD_AREA_3264: u32 = 196;
+pub const PTRACE_GET_WATCH_REGS: u32 = 208;
+pub const PTRACE_SET_WATCH_REGS: u32 = 209;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum pt_watch_style {
+pt_watch_style_mips32 = 0,
+pt_watch_style_mips64 = 1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pt_watch_regs__bindgen_ty_1 {
+pub mips32: mips32_watch_regs,
+pub mips64: mips64_watch_regs,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64/system.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/system.rs
new file mode 100644
index 0000000..b7a8d4d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/system.rs
@@ -0,0 +1,142 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug)]
+pub struct sysinfo {
+pub uptime: __kernel_long_t,
+pub loads: [__kernel_ulong_t; 3usize],
+pub totalram: __kernel_ulong_t,
+pub freeram: __kernel_ulong_t,
+pub sharedram: __kernel_ulong_t,
+pub bufferram: __kernel_ulong_t,
+pub totalswap: __kernel_ulong_t,
+pub freeswap: __kernel_ulong_t,
+pub procs: __u16,
+pub pad: __u16,
+pub totalhigh: __kernel_ulong_t,
+pub freehigh: __kernel_ulong_t,
+pub mem_unit: __u32,
+pub _f: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct oldold_utsname {
+pub sysname: [crate::ctypes::c_char; 9usize],
+pub nodename: [crate::ctypes::c_char; 9usize],
+pub release: [crate::ctypes::c_char; 9usize],
+pub version: [crate::ctypes::c_char; 9usize],
+pub machine: [crate::ctypes::c_char; 9usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct old_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct new_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+pub domainname: [crate::ctypes::c_char; 65usize],
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const _MIPS_ISA_MIPS1: u32 = 1;
+pub const _MIPS_ISA_MIPS2: u32 = 2;
+pub const _MIPS_ISA_MIPS3: u32 = 3;
+pub const _MIPS_ISA_MIPS4: u32 = 4;
+pub const _MIPS_ISA_MIPS5: u32 = 5;
+pub const _MIPS_ISA_MIPS32: u32 = 6;
+pub const _MIPS_ISA_MIPS64: u32 = 7;
+pub const _MIPS_SIM_ABI32: u32 = 1;
+pub const _MIPS_SIM_NABI32: u32 = 2;
+pub const _MIPS_SIM_ABI64: u32 = 3;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/mips64/xdp.rs
new file mode 100644
index 0000000..6ea92c8
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64/xdp.rs
@@ -0,0 +1,201 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64r6/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/bootparam.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/bootparam.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64r6/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/btrfs.rs
new file mode 100644
index 0000000..d28a05c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/btrfs.rs
@@ -0,0 +1,1878 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 _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 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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64r6/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/elf_uapi.rs
new file mode 100644
index 0000000..8b44e67
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/elf_uapi.rs
@@ -0,0 +1,534 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64r6/errno.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/errno.rs
new file mode 100644
index 0000000..0f7ab95
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/errno.rs
@@ -0,0 +1,137 @@
+/* automatically generated by rust-bindgen 0.71.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.9.4/src/mips64r6/general.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/general.rs
new file mode 100644
index 0000000..327926c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/general.rs
@@ -0,0 +1,3408 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub type __s8 = crate::ctypes::c_schar;
+pub type __u8 = crate::ctypes::c_uchar;
+pub type __s16 = crate::ctypes::c_short;
+pub type __u16 = crate::ctypes::c_ushort;
+pub type __s32 = crate::ctypes::c_int;
+pub type __u32 = crate::ctypes::c_uint;
+pub type __s64 = crate::ctypes::c_long;
+pub type __u64 = crate::ctypes::c_ulong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_ino_t = __kernel_ulong_t;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_int;
+pub type __kernel_uid_t = crate::ctypes::c_uint;
+pub type __kernel_gid_t = crate::ctypes::c_uint;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_old_uid_t = __kernel_uid_t;
+pub type __kernel_old_gid_t = __kernel_gid_t;
+pub type __kernel_old_dev_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = __kernel_ulong_t;
+pub type __kernel_ssize_t = __kernel_long_t;
+pub type __kernel_ptrdiff_t = __kernel_long_t;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type cap_user_header_t = *mut __user_cap_header_struct;
+pub type cap_user_data_t = *mut __user_cap_data_struct;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+pub type old_sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type fsid_t = __kernel_fsid_t;
+pub type __fsword_t = __u32;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fsid_t {
+pub val: [crate::ctypes::c_int; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __user_cap_header_struct {
+pub version: __u32,
+pub pid: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __user_cap_data_struct {
+pub effective: __u32,
+pub permitted: __u32,
+pub inheritable: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_cap_data {
+pub magic_etc: __le32,
+pub data: [vfs_cap_data__bindgen_ty_1; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_cap_data__bindgen_ty_1 {
+pub permitted: __le32,
+pub inheritable: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_ns_cap_data {
+pub magic_etc: __le32,
+pub data: [vfs_ns_cap_data__bindgen_ty_1; 2usize],
+pub rootid: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_ns_cap_data__bindgen_ty_1 {
+pub permitted: __le32,
+pub inheritable: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct f_owner_ex {
+pub type_: crate::ctypes::c_int,
+pub pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct flock {
+pub l_type: crate::ctypes::c_short,
+pub l_whence: crate::ctypes::c_short,
+pub l_start: __kernel_off_t,
+pub l_len: __kernel_off_t,
+pub l_pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct flock64 {
+pub l_type: crate::ctypes::c_short,
+pub l_whence: crate::ctypes::c_short,
+pub l_start: __kernel_loff_t,
+pub l_len: __kernel_loff_t,
+pub l_pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct open_how {
+pub flags: __u64,
+pub mode: __u64,
+pub resolve: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct epoll_event {
+pub events: __poll_t,
+pub data: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 rusage {
+pub ru_utime: __kernel_old_timeval,
+pub ru_stime: __kernel_old_timeval,
+pub ru_maxrss: __kernel_long_t,
+pub ru_ixrss: __kernel_long_t,
+pub ru_idrss: __kernel_long_t,
+pub ru_isrss: __kernel_long_t,
+pub ru_minflt: __kernel_long_t,
+pub ru_majflt: __kernel_long_t,
+pub ru_nswap: __kernel_long_t,
+pub ru_inblock: __kernel_long_t,
+pub ru_oublock: __kernel_long_t,
+pub ru_msgsnd: __kernel_long_t,
+pub ru_msgrcv: __kernel_long_t,
+pub ru_nsignals: __kernel_long_t,
+pub ru_nvcsw: __kernel_long_t,
+pub ru_nivcsw: __kernel_long_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rlimit {
+pub rlim_cur: __kernel_ulong_t,
+pub rlim_max: __kernel_ulong_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rlimit64 {
+pub rlim_cur: __u64,
+pub rlim_max: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct clone_args {
+pub flags: __u64,
+pub pidfd: __u64,
+pub child_tid: __u64,
+pub parent_tid: __u64,
+pub exit_signal: __u64,
+pub stack: __u64,
+pub stack_size: __u64,
+pub tls: __u64,
+pub set_tid: __u64,
+pub set_tid_size: __u64,
+pub cgroup: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigset_t {
+pub sig: [crate::ctypes::c_ulong; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaction {
+pub sa_flags: crate::ctypes::c_uint,
+pub sa_handler: __sighandler_t,
+pub sa_mask: sigset_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaltstack {
+pub ss_sp: *mut crate::ctypes::c_void,
+pub ss_size: __kernel_size_t,
+pub ss_flags: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_1 {
+pub _pid: __kernel_pid_t,
+pub _uid: __kernel_uid32_t,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __sifields__bindgen_ty_2 {
+pub _tid: __kernel_timer_t,
+pub _overrun: crate::ctypes::c_int,
+pub _sigval: sigval_t,
+pub _sys_private: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __sifields__bindgen_ty_3 {
+pub _pid: __kernel_pid_t,
+pub _uid: __kernel_uid32_t,
+pub _sigval: sigval_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_4 {
+pub _pid: __kernel_pid_t,
+pub _uid: __kernel_uid32_t,
+pub _status: crate::ctypes::c_int,
+pub _utime: __kernel_clock_t,
+pub _stime: __kernel_clock_t,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __sifields__bindgen_ty_5 {
+pub _addr: *mut crate::ctypes::c_void,
+pub __bindgen_anon_1: __sifields__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1 {
+pub _dummy_bnd: [crate::ctypes::c_char; 8usize],
+pub _lower: *mut crate::ctypes::c_void,
+pub _upper: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2 {
+pub _dummy_pkey: [crate::ctypes::c_char; 8usize],
+pub _pkey: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3 {
+pub _data: crate::ctypes::c_ulong,
+pub _type: __u32,
+pub _flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_6 {
+pub _band: crate::ctypes::c_long,
+pub _fd: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __sifields__bindgen_ty_7 {
+pub _call_addr: *mut crate::ctypes::c_void,
+pub _syscall: crate::ctypes::c_int,
+pub _arch: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct siginfo {
+pub __bindgen_anon_1: siginfo__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct siginfo__bindgen_ty_1__bindgen_ty_1 {
+pub si_signo: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub si_errno: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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 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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulong,
+pub d_off: crate::ctypes::c_long,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_uint,
+pub st_pad0: [crate::ctypes::c_uint; 3usize],
+pub st_ino: crate::ctypes::c_ulong,
+pub st_mode: __kernel_mode_t,
+pub st_nlink: __u32,
+pub st_uid: __kernel_uid32_t,
+pub st_gid: __kernel_gid32_t,
+pub st_rdev: crate::ctypes::c_uint,
+pub st_pad1: [crate::ctypes::c_uint; 3usize],
+pub st_size: crate::ctypes::c_long,
+pub st_atime: crate::ctypes::c_uint,
+pub st_atime_nsec: crate::ctypes::c_uint,
+pub st_mtime: crate::ctypes::c_uint,
+pub st_mtime_nsec: crate::ctypes::c_uint,
+pub st_ctime: crate::ctypes::c_uint,
+pub st_ctime_nsec: crate::ctypes::c_uint,
+pub st_blksize: crate::ctypes::c_uint,
+pub st_pad2: crate::ctypes::c_uint,
+pub st_blocks: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: crate::ctypes::c_long,
+pub f_bsize: crate::ctypes::c_long,
+pub f_frsize: crate::ctypes::c_long,
+pub f_blocks: crate::ctypes::c_long,
+pub f_bfree: crate::ctypes::c_long,
+pub f_files: crate::ctypes::c_long,
+pub f_ffree: crate::ctypes::c_long,
+pub f_bavail: crate::ctypes::c_long,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: crate::ctypes::c_long,
+pub f_flags: crate::ctypes::c_long,
+pub f_spare: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: crate::ctypes::c_long,
+pub f_bsize: crate::ctypes::c_long,
+pub f_frsize: crate::ctypes::c_long,
+pub f_blocks: crate::ctypes::c_long,
+pub f_bfree: crate::ctypes::c_long,
+pub f_files: crate::ctypes::c_long,
+pub f_ffree: crate::ctypes::c_long,
+pub f_bavail: crate::ctypes::c_long,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: crate::ctypes::c_long,
+pub f_flags: crate::ctypes::c_long,
+pub f_spare: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct compat_statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_frsize: __u32,
+pub __pad: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_bavail: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_desc {
+pub entry_number: crate::ctypes::c_uint,
+pub base_addr: crate::ctypes::c_uint,
+pub limit: crate::ctypes::c_uint,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub __bindgen_padding_0: [u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct kernel_sigset_t {
+pub sig: [crate::ctypes::c_ulong; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct kernel_sigaction {
+pub sa_handler_kernel: __kernel_sighandler_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_mask: kernel_sigset_t,
+}
+pub const LINUX_VERSION_CODE: u32 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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_DROPPABLE: u32 = 8;
+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 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_EXT: u32 = 7;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 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 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 __NR_cachestat: u32 = 5451;
+pub const __NR_fchmodat2: u32 = 5452;
+pub const __NR_map_shadow_stack: u32 = 5453;
+pub const __NR_futex_wake: u32 = 5454;
+pub const __NR_futex_wait: u32 = 5455;
+pub const __NR_futex_requeue: u32 = 5456;
+pub const __NR_statmount: u32 = 5457;
+pub const __NR_listmount: u32 = 5458;
+pub const __NR_lsm_get_self_attr: u32 = 5459;
+pub const __NR_lsm_set_self_attr: u32 = 5460;
+pub const __NR_lsm_list_modules: u32 = 5461;
+pub const __NR_mseal: u32 = 5462;
+pub const __NR_setxattrat: u32 = 5463;
+pub const __NR_getxattrat: u32 = 5464;
+pub const __NR_listxattrat: u32 = 5465;
+pub const __NR_removexattrat: u32 = 5466;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd {
+MEMBARRIER_CMD_QUERY = 0,
+MEMBARRIER_CMD_GLOBAL = 1,
+MEMBARRIER_CMD_GLOBAL_EXPEDITED = 2,
+MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 4,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED = 8,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 16,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 32,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 64,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 128,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 256,
+MEMBARRIER_CMD_GET_REGISTRATIONS = 512,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd_flag {
+MEMBARRIER_CMD_FLAG_CPU = 1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_get_policy_ex_arg__bindgen_ty_1 {
+pub version: __u8,
+pub v1: fscrypt_policy_v1,
+pub v2: fscrypt_policy_v2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_key_specifier__bindgen_ty_1 {
+pub __reserved: [__u8; 32usize],
+pub descriptor: [__u8; 8usize],
+pub identifier: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigval {
+pub sival_int: crate::ctypes::c_int,
+pub sival_ptr: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields {
+pub _kill: __sifields__bindgen_ty_1,
+pub _timer: __sifields__bindgen_ty_2,
+pub _rt: __sifields__bindgen_ty_3,
+pub _sigchld: __sifields__bindgen_ty_4,
+pub _sigfault: __sifields__bindgen_ty_5,
+pub _sigpoll: __sifields__bindgen_ty_6,
+pub _sigsys: __sifields__bindgen_ty_7,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields__bindgen_ty_5__bindgen_ty_1 {
+pub _trapno: crate::ctypes::c_int,
+pub _addr_lsb: crate::ctypes::c_short,
+pub _addr_bnd: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1,
+pub _addr_pkey: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2,
+pub _perf: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union siginfo__bindgen_ty_1 {
+pub __bindgen_anon_1: siginfo__bindgen_ty_1__bindgen_ty_1,
+pub _si_pad: [crate::ctypes::c_int; 32usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigevent__bindgen_ty_1 {
+pub _pad: [crate::ctypes::c_int; 12usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/mips64r6/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/if_arp.rs
new file mode 100644
index 0000000..39b6dc5
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/if_arp.rs
@@ -0,0 +1,2767 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/mips64r6/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/if_ether.rs
new file mode 100644
index 0000000..e6be97f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/if_ether.rs
@@ -0,0 +1,180 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/mips64r6/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/if_packet.rs
new file mode 100644
index 0000000..5ffa4a3
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/if_packet.rs
@@ -0,0 +1,321 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/mips64r6/image.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64r6/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/io_uring.rs
new file mode 100644
index 0000000..752ad21
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/io_uring.rs
@@ -0,0 +1,1346 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64r6/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/ioctl.rs
new file mode 100644
index 0000000..078f31b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/ioctl.rs
@@ -0,0 +1,1496 @@
+/* automatically generated by rust-bindgen 0.71.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 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.9.4/src/mips64r6/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/landlock.rs
new file mode 100644
index 0000000..5dcfce1
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/landlock.rs
@@ -0,0 +1,110 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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 landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64r6/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/loop_device.rs
new file mode 100644
index 0000000..48aca93
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/loop_device.rs
@@ -0,0 +1,144 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/mips64r6/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/mempolicy.rs
new file mode 100644
index 0000000..62d469b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/mempolicy.rs
@@ -0,0 +1,177 @@
+/* automatically generated by rust-bindgen 0.71.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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64r6/net.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/net.rs
new file mode 100644
index 0000000..4fc0e22
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/net.rs
@@ -0,0 +1,3458 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 34usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64r6/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/netlink.rs
new file mode 100644
index 0000000..2a34d25
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/netlink.rs
@@ -0,0 +1,2956 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_nl {
+pub nl_family: __kernel_sa_family_t,
+pub nl_pad: crate::ctypes::c_ushort,
+pub nl_pid: __u32,
+pub nl_groups: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsghdr {
+pub nlmsg_len: __u32,
+pub nlmsg_type: __u16,
+pub nlmsg_flags: __u16,
+pub nlmsg_seq: __u32,
+pub nlmsg_pid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsgerr {
+pub error: crate::ctypes::c_int,
+pub msg: nlmsghdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_pktinfo {
+pub group: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_req {
+pub nm_block_size: crate::ctypes::c_uint,
+pub nm_block_nr: crate::ctypes::c_uint,
+pub nm_frame_size: crate::ctypes::c_uint,
+pub nm_frame_nr: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_hdr {
+pub nm_status: crate::ctypes::c_uint,
+pub nm_len: crate::ctypes::c_uint,
+pub nm_group: __u32,
+pub nm_pid: __u32,
+pub nm_uid: __u32,
+pub nm_gid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlattr {
+pub nla_len: __u16,
+pub nla_type: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nla_bitfield32 {
+pub value: __u32,
+pub selector: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats {
+pub rx_packets: __u32,
+pub tx_packets: __u32,
+pub rx_bytes: __u32,
+pub tx_bytes: __u32,
+pub rx_errors: __u32,
+pub tx_errors: __u32,
+pub rx_dropped: __u32,
+pub tx_dropped: __u32,
+pub multicast: __u32,
+pub collisions: __u32,
+pub rx_length_errors: __u32,
+pub rx_over_errors: __u32,
+pub rx_crc_errors: __u32,
+pub rx_frame_errors: __u32,
+pub rx_fifo_errors: __u32,
+pub rx_missed_errors: __u32,
+pub tx_aborted_errors: __u32,
+pub tx_carrier_errors: __u32,
+pub tx_fifo_errors: __u32,
+pub tx_heartbeat_errors: __u32,
+pub tx_window_errors: __u32,
+pub rx_compressed: __u32,
+pub tx_compressed: __u32,
+pub rx_nohandler: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+pub collisions: __u64,
+pub rx_length_errors: __u64,
+pub rx_over_errors: __u64,
+pub rx_crc_errors: __u64,
+pub rx_frame_errors: __u64,
+pub rx_fifo_errors: __u64,
+pub rx_missed_errors: __u64,
+pub tx_aborted_errors: __u64,
+pub tx_carrier_errors: __u64,
+pub tx_fifo_errors: __u64,
+pub tx_heartbeat_errors: __u64,
+pub tx_window_errors: __u64,
+pub rx_compressed: __u64,
+pub tx_compressed: __u64,
+pub rx_nohandler: __u64,
+pub rx_otherhost_dropped: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_hw_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_ifmap {
+pub mem_start: __u64,
+pub mem_end: __u64,
+pub base_addr: __u64,
+pub irq: __u16,
+pub dma: __u8,
+pub port: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_bridge_id {
+pub prio: [__u8; 2usize],
+pub addr: [__u8; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_cacheinfo {
+pub max_reasm_len: __u32,
+pub tstamp: __u32,
+pub reachable_time: __u32,
+pub retrans_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_qos_mapping {
+pub from: __u32,
+pub to: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tunnel_msg {
+pub family: __u8,
+pub flags: __u8,
+pub reserved2: __u16,
+pub ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vxlan_port_range {
+pub low: __be16,
+pub high: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_mac {
+pub vf: __u32,
+pub mac: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_broadcast {
+pub broadcast: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan_info {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+pub vlan_proto: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_tx_rate {
+pub vf: __u32,
+pub rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rate {
+pub vf: __u32,
+pub min_tx_rate: __u32,
+pub max_tx_rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_spoofchk {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_guid {
+pub vf: __u32,
+pub guid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_link_state {
+pub vf: __u32,
+pub link_state: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rss_query_en {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_trust {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_port_vsi {
+pub vsi_mgr_id: __u8,
+pub vsi_type_id: [__u8; 3usize],
+pub vsi_type_version: __u8,
+pub pad: [__u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_stats_msg {
+pub family: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub ifindex: __u32,
+pub filter_mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_rmnet_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifaddrmsg {
+pub ifa_family: __u8,
+pub ifa_prefixlen: __u8,
+pub ifa_flags: __u8,
+pub ifa_scope: __u8,
+pub ifa_index: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifa_cacheinfo {
+pub ifa_prefered: __u32,
+pub ifa_valid: __u32,
+pub cstamp: __u32,
+pub tstamp: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndmsg {
+pub ndm_family: __u8,
+pub ndm_pad1: __u8,
+pub ndm_pad2: __u16,
+pub ndm_ifindex: __s32,
+pub ndm_state: __u16,
+pub ndm_flags: __u8,
+pub ndm_type: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nda_cacheinfo {
+pub ndm_confirmed: __u32,
+pub ndm_used: __u32,
+pub ndm_updated: __u32,
+pub ndm_refcnt: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_stats {
+pub ndts_allocs: __u64,
+pub ndts_destroys: __u64,
+pub ndts_hash_grows: __u64,
+pub ndts_res_failed: __u64,
+pub ndts_lookups: __u64,
+pub ndts_hits: __u64,
+pub ndts_rcv_probes_mcast: __u64,
+pub ndts_rcv_probes_ucast: __u64,
+pub ndts_periodic_gc_runs: __u64,
+pub ndts_forced_gc_runs: __u64,
+pub ndts_table_fulls: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndtmsg {
+pub ndtm_family: __u8,
+pub ndtm_pad1: __u8,
+pub ndtm_pad2: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_config {
+pub ndtc_key_len: __u16,
+pub ndtc_entry_size: __u16,
+pub ndtc_entries: __u32,
+pub ndtc_last_flush: __u32,
+pub ndtc_last_rand: __u32,
+pub ndtc_hash_rnd: __u32,
+pub ndtc_hash_mask: __u32,
+pub ndtc_hash_chain_gc: __u32,
+pub ndtc_proxy_qlen: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtattr {
+pub rta_len: crate::ctypes::c_ushort,
+pub rta_type: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtmsg {
+pub rtm_family: crate::ctypes::c_uchar,
+pub rtm_dst_len: crate::ctypes::c_uchar,
+pub rtm_src_len: crate::ctypes::c_uchar,
+pub rtm_tos: crate::ctypes::c_uchar,
+pub rtm_table: crate::ctypes::c_uchar,
+pub rtm_protocol: crate::ctypes::c_uchar,
+pub rtm_scope: crate::ctypes::c_uchar,
+pub rtm_type: crate::ctypes::c_uchar,
+pub rtm_flags: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnexthop {
+pub rtnh_len: crate::ctypes::c_ushort,
+pub rtnh_flags: crate::ctypes::c_uchar,
+pub rtnh_hops: crate::ctypes::c_uchar,
+pub rtnh_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct rtvia {
+pub rtvia_family: __kernel_sa_family_t,
+pub rtvia_addr: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_cacheinfo {
+pub rta_clntref: __u32,
+pub rta_lastuse: __u32,
+pub rta_expires: __s32,
+pub rta_error: __u32,
+pub rta_used: __u32,
+pub rta_id: __u32,
+pub rta_ts: __u32,
+pub rta_tsage: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rta_session {
+pub proto: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub u: rta_session__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_1 {
+pub sport: __u16,
+pub dport: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_2 {
+pub type_: __u8,
+pub code: __u8,
+pub ident: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_mfc_stats {
+pub mfcs_packets: __u64,
+pub mfcs_bytes: __u64,
+pub mfcs_wrong_if: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtgenmsg {
+pub rtgen_family: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifinfomsg {
+pub ifi_family: crate::ctypes::c_uchar,
+pub __ifi_pad: crate::ctypes::c_uchar,
+pub ifi_type: crate::ctypes::c_ushort,
+pub ifi_index: crate::ctypes::c_int,
+pub ifi_flags: crate::ctypes::c_uint,
+pub ifi_change: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefixmsg {
+pub prefix_family: crate::ctypes::c_uchar,
+pub prefix_pad1: crate::ctypes::c_uchar,
+pub prefix_pad2: crate::ctypes::c_ushort,
+pub prefix_ifindex: crate::ctypes::c_int,
+pub prefix_type: crate::ctypes::c_uchar,
+pub prefix_len: crate::ctypes::c_uchar,
+pub prefix_flags: crate::ctypes::c_uchar,
+pub prefix_pad3: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefix_cacheinfo {
+pub preferred_time: __u32,
+pub valid_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcmsg {
+pub tcm_family: crate::ctypes::c_uchar,
+pub tcm__pad1: crate::ctypes::c_uchar,
+pub tcm__pad2: crate::ctypes::c_ushort,
+pub tcm_ifindex: crate::ctypes::c_int,
+pub tcm_handle: __u32,
+pub tcm_parent: __u32,
+pub tcm_info: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nduseroptmsg {
+pub nduseropt_family: crate::ctypes::c_uchar,
+pub nduseropt_pad1: crate::ctypes::c_uchar,
+pub nduseropt_opts_len: crate::ctypes::c_ushort,
+pub nduseropt_ifindex: crate::ctypes::c_int,
+pub nduseropt_icmp_type: __u8,
+pub nduseropt_icmp_code: __u8,
+pub nduseropt_pad2: crate::ctypes::c_ushort,
+pub nduseropt_pad3: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcamsg {
+pub tca_family: crate::ctypes::c_uchar,
+pub tca__pad1: crate::ctypes::c_uchar,
+pub tca__pad2: crate::ctypes::c_ushort,
+}
+pub const _K_SS_MAXSIZE: u32 = 128;
+pub const SOCK_SNDBUF_LOCK: u32 = 1;
+pub const SOCK_RCVBUF_LOCK: u32 = 2;
+pub const SOCK_BUF_LOCK_MASK: u32 = 3;
+pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
+pub const SOCK_TXREHASH_DISABLED: u32 = 0;
+pub const SOCK_TXREHASH_ENABLED: u32 = 1;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/mips64r6/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/prctl.rs
new file mode 100644
index 0000000..d0121f8
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/prctl.rs
@@ -0,0 +1,272 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64r6/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/ptrace.rs
new file mode 100644
index 0000000..75c836b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/ptrace.rs
@@ -0,0 +1,868 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pt_regs {
+pub regs: [__u64; 32usize],
+pub lo: __u64,
+pub hi: __u64,
+pub cp0_epc: __u64,
+pub cp0_badvaddr: __u64,
+pub cp0_status: __u64,
+pub cp0_cause: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct mips32_watch_regs {
+pub watchlo: [crate::ctypes::c_uint; 8usize],
+pub watchhi: [crate::ctypes::c_ushort; 8usize],
+pub watch_masks: [crate::ctypes::c_ushort; 8usize],
+pub num_valid: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mips64_watch_regs {
+pub watchlo: [crate::ctypes::c_ulonglong; 8usize],
+pub watchhi: [crate::ctypes::c_ushort; 8usize],
+pub watch_masks: [crate::ctypes::c_ushort; 8usize],
+pub num_valid: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct pt_watch_regs {
+pub style: pt_watch_style,
+pub __bindgen_anon_1: pt_watch_regs__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const FPR_BASE: u32 = 32;
+pub const PC: u32 = 64;
+pub const CAUSE: u32 = 65;
+pub const BADVADDR: u32 = 66;
+pub const MMHI: u32 = 67;
+pub const MMLO: u32 = 68;
+pub const FPC_CSR: u32 = 69;
+pub const FPC_EIR: u32 = 70;
+pub const DSP_BASE: u32 = 71;
+pub const DSP_CONTROL: u32 = 77;
+pub const ACX: u32 = 78;
+pub const PTRACE_GETREGS: u32 = 12;
+pub const PTRACE_SETREGS: u32 = 13;
+pub const PTRACE_GETFPREGS: u32 = 14;
+pub const PTRACE_SETFPREGS: u32 = 15;
+pub const PTRACE_OLDSETOPTIONS: u32 = 21;
+pub const PTRACE_GET_THREAD_AREA: u32 = 25;
+pub const PTRACE_SET_THREAD_AREA: u32 = 26;
+pub const PTRACE_PEEKTEXT_3264: u32 = 192;
+pub const PTRACE_PEEKDATA_3264: u32 = 193;
+pub const PTRACE_POKETEXT_3264: u32 = 194;
+pub const PTRACE_POKEDATA_3264: u32 = 195;
+pub const PTRACE_GET_THREAD_AREA_3264: u32 = 196;
+pub const PTRACE_GET_WATCH_REGS: u32 = 208;
+pub const PTRACE_SET_WATCH_REGS: u32 = 209;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum pt_watch_style {
+pt_watch_style_mips32 = 0,
+pt_watch_style_mips64 = 1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pt_watch_regs__bindgen_ty_1 {
+pub mips32: mips32_watch_regs,
+pub mips64: mips64_watch_regs,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64r6/system.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/system.rs
new file mode 100644
index 0000000..b7a8d4d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/system.rs
@@ -0,0 +1,142 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug)]
+pub struct sysinfo {
+pub uptime: __kernel_long_t,
+pub loads: [__kernel_ulong_t; 3usize],
+pub totalram: __kernel_ulong_t,
+pub freeram: __kernel_ulong_t,
+pub sharedram: __kernel_ulong_t,
+pub bufferram: __kernel_ulong_t,
+pub totalswap: __kernel_ulong_t,
+pub freeswap: __kernel_ulong_t,
+pub procs: __u16,
+pub pad: __u16,
+pub totalhigh: __kernel_ulong_t,
+pub freehigh: __kernel_ulong_t,
+pub mem_unit: __u32,
+pub _f: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct oldold_utsname {
+pub sysname: [crate::ctypes::c_char; 9usize],
+pub nodename: [crate::ctypes::c_char; 9usize],
+pub release: [crate::ctypes::c_char; 9usize],
+pub version: [crate::ctypes::c_char; 9usize],
+pub machine: [crate::ctypes::c_char; 9usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct old_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct new_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+pub domainname: [crate::ctypes::c_char; 65usize],
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const _MIPS_ISA_MIPS1: u32 = 1;
+pub const _MIPS_ISA_MIPS2: u32 = 2;
+pub const _MIPS_ISA_MIPS3: u32 = 3;
+pub const _MIPS_ISA_MIPS4: u32 = 4;
+pub const _MIPS_ISA_MIPS5: u32 = 5;
+pub const _MIPS_ISA_MIPS32: u32 = 6;
+pub const _MIPS_ISA_MIPS64: u32 = 7;
+pub const _MIPS_SIM_ABI32: u32 = 1;
+pub const _MIPS_SIM_NABI32: u32 = 2;
+pub const _MIPS_SIM_ABI64: u32 = 3;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/mips64r6/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/mips64r6/xdp.rs
new file mode 100644
index 0000000..6ea92c8
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/mips64r6/xdp.rs
@@ -0,0 +1,201 @@
+/* automatically generated by rust-bindgen 0.71.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 __s128 = i128;
+pub type __u128 = u128;
+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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/bootparam.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/bootparam.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/btrfs.rs
new file mode 100644
index 0000000..6962b74
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/btrfs.rs
@@ -0,0 +1,1872 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_short;
+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_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/elf_uapi.rs
new file mode 100644
index 0000000..91576e4
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/elf_uapi.rs
@@ -0,0 +1,528 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_short;
+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_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc/errno.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/errno.rs
new file mode 100644
index 0000000..5b018a2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/errno.rs
@@ -0,0 +1,135 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc/general.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/general.rs
new file mode 100644
index 0000000..289f8de
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/general.rs
@@ -0,0 +1,3412 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_short;
+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_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type cap_user_header_t = *mut __user_cap_header_struct;
+pub type cap_user_data_t = *mut __user_cap_data_struct;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+pub type old_sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type __fsword_t = __u32;
+pub type termios2 = termios;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 32usize],
+}
+#[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 epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 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 old_sigaction {
+pub sa_handler: __sighandler_t,
+pub sa_mask: old_sigset_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_restorer: __sigrestore_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaction {
+pub sa_handler: __sighandler_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_restorer: __sigrestore_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_flags: crate::ctypes::c_int,
+pub ss_size: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sig_dbg_op {
+pub dbg_type: crate::ctypes::c_int,
+pub dbg_value: crate::ctypes::c_ulong,
+}
+#[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; 4usize],
+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; 4usize],
+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_errno: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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_cc: [cc_t; 19usize],
+pub c_line: cc_t,
+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_cc: [cc_t; 19usize],
+pub c_line: cc_t,
+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_short,
+}
+#[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_uchar,
+pub c_cc: [crate::ctypes::c_uchar; 10usize],
+}
+#[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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulonglong,
+pub d_off: crate::ctypes::c_longlong,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __old_kernel_stat {
+pub st_dev: crate::ctypes::c_ushort,
+pub st_ino: crate::ctypes::c_ushort,
+pub st_mode: crate::ctypes::c_ushort,
+pub st_nlink: crate::ctypes::c_ushort,
+pub st_uid: crate::ctypes::c_ushort,
+pub st_gid: crate::ctypes::c_ushort,
+pub st_rdev: crate::ctypes::c_ushort,
+pub st_size: crate::ctypes::c_ulong,
+pub st_atime: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_ulong,
+pub st_ino: __kernel_ino_t,
+pub st_mode: __kernel_mode_t,
+pub st_nlink: crate::ctypes::c_ushort,
+pub st_uid: __kernel_uid32_t,
+pub st_gid: __kernel_gid32_t,
+pub st_rdev: crate::ctypes::c_ulong,
+pub st_size: crate::ctypes::c_long,
+pub st_blksize: crate::ctypes::c_ulong,
+pub st_blocks: crate::ctypes::c_ulong,
+pub st_atime: crate::ctypes::c_ulong,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_ulong,
+pub st_mtime_nsec: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_ulong,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub __unused4: crate::ctypes::c_ulong,
+pub __unused5: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat64 {
+pub st_dev: crate::ctypes::c_ulonglong,
+pub st_ino: crate::ctypes::c_ulonglong,
+pub st_mode: crate::ctypes::c_uint,
+pub st_nlink: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_uint,
+pub st_gid: crate::ctypes::c_uint,
+pub st_rdev: crate::ctypes::c_ulonglong,
+pub __pad2: crate::ctypes::c_ushort,
+pub st_size: crate::ctypes::c_longlong,
+pub st_blksize: crate::ctypes::c_int,
+pub st_blocks: crate::ctypes::c_longlong,
+pub st_atime: crate::ctypes::c_int,
+pub st_atime_nsec: crate::ctypes::c_uint,
+pub st_mtime: crate::ctypes::c_int,
+pub st_mtime_nsec: crate::ctypes::c_uint,
+pub st_ctime: crate::ctypes::c_int,
+pub st_ctime_nsec: crate::ctypes::c_uint,
+pub __unused4: crate::ctypes::c_uint,
+pub __unused5: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u32,
+pub f_bfree: __u32,
+pub f_bavail: __u32,
+pub f_files: __u32,
+pub f_ffree: __u32,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct compat_statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[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_restorer: __sigrestore_t,
+pub sa_mask: kernel_sigset_t,
+}
+pub const LINUX_VERSION_CODE: u32 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+pub const LINUX_VERSION_SUBLEVEL: u32 = 0;
+pub const AT_DCACHEBSIZE: u32 = 19;
+pub const AT_ICACHEBSIZE: u32 = 20;
+pub const AT_UCACHEBSIZE: u32 = 21;
+pub const AT_IGNOREPPC: u32 = 22;
+pub const AT_SYSINFO_EHDR: u32 = 33;
+pub const AT_L1I_CACHESIZE: u32 = 40;
+pub const AT_L1I_CACHEGEOMETRY: u32 = 41;
+pub const AT_L1D_CACHESIZE: u32 = 42;
+pub const AT_L1D_CACHEGEOMETRY: u32 = 43;
+pub const AT_L2_CACHESIZE: u32 = 44;
+pub const AT_L2_CACHEGEOMETRY: u32 = 45;
+pub const AT_L3_CACHESIZE: u32 = 46;
+pub const AT_L3_CACHEGEOMETRY: u32 = 47;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const AT_VECTOR_SIZE_ARCH: u32 = 15;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+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_DIRECTORY: u32 = 16384;
+pub const O_NOFOLLOW: u32 = 32768;
+pub const O_LARGEFILE: u32 = 65536;
+pub const O_DIRECT: u32 = 131072;
+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_CREAT: u32 = 64;
+pub const O_EXCL: u32 = 128;
+pub const O_NOCTTY: u32 = 256;
+pub const O_TRUNC: u32 = 512;
+pub const O_APPEND: u32 = 1024;
+pub const O_NONBLOCK: u32 = 2048;
+pub const O_DSYNC: u32 = 4096;
+pub const FASYNC: u32 = 8192;
+pub const O_NOATIME: u32 = 262144;
+pub const O_CLOEXEC: u32 = 524288;
+pub const __O_SYNC: u32 = 1048576;
+pub const O_SYNC: u32 = 1052672;
+pub const O_PATH: u32 = 2097152;
+pub const __O_TMPFILE: u32 = 4194304;
+pub const O_TMPFILE: u32 = 4210688;
+pub const O_NDELAY: u32 = 2048;
+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_GETLK: u32 = 5;
+pub const F_SETLK: u32 = 6;
+pub const F_SETLKW: u32 = 7;
+pub const F_SETOWN: u32 = 8;
+pub const F_GETOWN: u32 = 9;
+pub const F_SETSIG: u32 = 10;
+pub const F_GETSIG: u32 = 11;
+pub const F_GETLK64: u32 = 12;
+pub const F_SETLK64: u32 = 13;
+pub const F_SETLKW64: u32 = 14;
+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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 = 2048;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+pub const PROT_READ: u32 = 1;
+pub const PROT_WRITE: u32 = 2;
+pub const PROT_EXEC: u32 = 4;
+pub const PROT_SEM: u32 = 8;
+pub const PROT_NONE: u32 = 0;
+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_ANONYMOUS: u32 = 32;
+pub const MAP_POPULATE: u32 = 32768;
+pub const MAP_NONBLOCK: u32 = 65536;
+pub const MAP_STACK: u32 = 131072;
+pub const MAP_HUGETLB: u32 = 262144;
+pub const MAP_SYNC: u32 = 524288;
+pub const MAP_FIXED_NOREPLACE: u32 = 1048576;
+pub const MAP_UNINITIALIZED: u32 = 67108864;
+pub const MLOCK_ONFAULT: u32 = 1;
+pub const MS_ASYNC: u32 = 1;
+pub const MS_INVALIDATE: u32 = 2;
+pub const MS_SYNC: u32 = 4;
+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_HWPOISON: u32 = 100;
+pub const MADV_SOFT_OFFLINE: u32 = 101;
+pub const MADV_MERGEABLE: u32 = 12;
+pub const MADV_UNMERGEABLE: u32 = 13;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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 PROT_SAO: u32 = 16;
+pub const MAP_RENAME: u32 = 32;
+pub const MAP_NORESERVE: u32 = 64;
+pub const MAP_LOCKED: u32 = 128;
+pub const MAP_GROWSDOWN: u32 = 256;
+pub const MAP_DENYWRITE: u32 = 2048;
+pub const MAP_EXECUTABLE: u32 = 4096;
+pub const MCL_CURRENT: u32 = 8192;
+pub const MCL_FUTURE: u32 = 16384;
+pub const MCL_ONFAULT: u32 = 32768;
+pub const PKEY_DISABLE_EXECUTE: u32 = 4;
+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_DROPPABLE: u32 = 8;
+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 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 POLLWRNORM: u32 = 256;
+pub const POLLWRBAND: u32 = 512;
+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 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_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_RSS: u32 = 5;
+pub const RLIMIT_NPROC: u32 = 6;
+pub const RLIMIT_NOFILE: u32 = 7;
+pub const RLIMIT_MEMLOCK: u32 = 8;
+pub const RLIMIT_AS: u32 = 9;
+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_EXT: u32 = 7;
+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 = 64;
+pub const _NSIG_BPW: u32 = 32;
+pub const _NSIG_WORDS: u32 = 2;
+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 SIGABRT: u32 = 6;
+pub const SIGIOT: u32 = 6;
+pub const SIGBUS: u32 = 7;
+pub const SIGFPE: u32 = 8;
+pub const SIGKILL: u32 = 9;
+pub const SIGUSR1: u32 = 10;
+pub const SIGSEGV: u32 = 11;
+pub const SIGUSR2: u32 = 12;
+pub const SIGPIPE: u32 = 13;
+pub const SIGALRM: u32 = 14;
+pub const SIGTERM: u32 = 15;
+pub const SIGSTKFLT: u32 = 16;
+pub const SIGCHLD: u32 = 17;
+pub const SIGCONT: u32 = 18;
+pub const SIGSTOP: u32 = 19;
+pub const SIGTSTP: u32 = 20;
+pub const SIGTTIN: u32 = 21;
+pub const SIGTTOU: u32 = 22;
+pub const SIGURG: u32 = 23;
+pub const SIGXCPU: u32 = 24;
+pub const SIGXFSZ: u32 = 25;
+pub const SIGVTALRM: u32 = 26;
+pub const SIGPROF: u32 = 27;
+pub const SIGWINCH: u32 = 28;
+pub const SIGIO: u32 = 29;
+pub const SIGPOLL: u32 = 29;
+pub const SIGPWR: u32 = 30;
+pub const SIGSYS: u32 = 31;
+pub const SIGUNUSED: u32 = 31;
+pub const SIGRTMIN: u32 = 32;
+pub const SIGRTMAX: u32 = 64;
+pub const SA_RESTORER: u32 = 67108864;
+pub const MINSIGSTKSZ: u32 = 2048;
+pub const SIGSTKSZ: u32 = 8192;
+pub const SA_NOCLDSTOP: u32 = 1;
+pub const SA_NOCLDWAIT: u32 = 2;
+pub const SA_SIGINFO: u32 = 4;
+pub const SA_UNSUPPORTED: u32 = 1024;
+pub const SA_EXPOSE_TAGBITS: u32 = 2048;
+pub const SA_ONSTACK: u32 = 134217728;
+pub const SA_RESTART: u32 = 268435456;
+pub const SA_NODEFER: u32 = 1073741824;
+pub const SA_RESETHAND: u32 = 2147483648;
+pub const SA_NOMASK: u32 = 1073741824;
+pub const SA_ONESHOT: u32 = 2147483648;
+pub const SIG_BLOCK: u32 = 0;
+pub const SIG_UNBLOCK: u32 = 1;
+pub const SIG_SETMASK: u32 = 2;
+pub const SIG_DBG_SINGLE_STEPPING: u32 = 1;
+pub const SIG_DBG_BRANCH_TRACING: u32 = 2;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+pub const TIOCM_LE: u32 = 1;
+pub const TIOCM_DTR: u32 = 2;
+pub const TIOCM_RTS: u32 = 4;
+pub const TIOCM_ST: u32 = 8;
+pub const TIOCM_SR: u32 = 16;
+pub const TIOCM_CTS: u32 = 32;
+pub const TIOCM_CAR: u32 = 64;
+pub const TIOCM_RNG: u32 = 128;
+pub const TIOCM_DSR: u32 = 256;
+pub const TIOCM_CD: u32 = 64;
+pub const TIOCM_RI: u32 = 128;
+pub const TIOCM_OUT1: u32 = 8192;
+pub const TIOCM_OUT2: u32 = 16384;
+pub const TIOCM_LOOP: u32 = 32768;
+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 TIOCSER_TEMT: u32 = 1;
+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 = 19;
+pub const VINTR: u32 = 0;
+pub const VQUIT: u32 = 1;
+pub const VERASE: u32 = 2;
+pub const VKILL: u32 = 3;
+pub const VEOF: u32 = 4;
+pub const VMIN: u32 = 5;
+pub const VEOL: u32 = 6;
+pub const VTIME: u32 = 7;
+pub const VEOL2: u32 = 8;
+pub const VSWTC: u32 = 9;
+pub const VWERASE: u32 = 10;
+pub const VREPRINT: u32 = 11;
+pub const VSUSP: u32 = 12;
+pub const VSTART: u32 = 13;
+pub const VSTOP: u32 = 14;
+pub const VLNEXT: u32 = 15;
+pub const VDISCARD: u32 = 16;
+pub const IXON: u32 = 512;
+pub const IXOFF: u32 = 1024;
+pub const IUCLC: u32 = 4096;
+pub const IMAXBEL: u32 = 8192;
+pub const IUTF8: u32 = 16384;
+pub const ONLCR: u32 = 2;
+pub const OLCUC: u32 = 4;
+pub const NLDLY: u32 = 768;
+pub const NL0: u32 = 0;
+pub const NL1: u32 = 256;
+pub const NL2: u32 = 512;
+pub const NL3: u32 = 768;
+pub const TABDLY: u32 = 3072;
+pub const TAB0: u32 = 0;
+pub const TAB1: u32 = 1024;
+pub const TAB2: u32 = 2048;
+pub const TAB3: u32 = 3072;
+pub const XTABS: u32 = 3072;
+pub const CRDLY: u32 = 12288;
+pub const CR0: u32 = 0;
+pub const CR1: u32 = 4096;
+pub const CR2: u32 = 8192;
+pub const CR3: u32 = 12288;
+pub const FFDLY: u32 = 16384;
+pub const FF0: u32 = 0;
+pub const FF1: u32 = 16384;
+pub const BSDLY: u32 = 32768;
+pub const BS0: u32 = 0;
+pub const BS1: u32 = 32768;
+pub const VTDLY: u32 = 65536;
+pub const VT0: u32 = 0;
+pub const VT1: u32 = 65536;
+pub const CBAUD: u32 = 255;
+pub const CBAUDEX: u32 = 0;
+pub const BOTHER: u32 = 31;
+pub const B57600: u32 = 16;
+pub const B115200: u32 = 17;
+pub const B230400: u32 = 18;
+pub const B460800: u32 = 19;
+pub const B500000: u32 = 20;
+pub const B576000: u32 = 21;
+pub const B921600: u32 = 22;
+pub const B1000000: u32 = 23;
+pub const B1152000: u32 = 24;
+pub const B1500000: u32 = 25;
+pub const B2000000: u32 = 26;
+pub const B2500000: u32 = 27;
+pub const B3000000: u32 = 28;
+pub const B3500000: u32 = 29;
+pub const B4000000: u32 = 30;
+pub const CSIZE: u32 = 768;
+pub const CS5: u32 = 0;
+pub const CS6: u32 = 256;
+pub const CS7: u32 = 512;
+pub const CS8: u32 = 768;
+pub const CSTOPB: u32 = 1024;
+pub const CREAD: u32 = 2048;
+pub const PARENB: u32 = 4096;
+pub const PARODD: u32 = 8192;
+pub const HUPCL: u32 = 16384;
+pub const CLOCAL: u32 = 32768;
+pub const CIBAUD: u32 = 16711680;
+pub const ISIG: u32 = 128;
+pub const ICANON: u32 = 256;
+pub const XCASE: u32 = 16384;
+pub const ECHO: u32 = 8;
+pub const ECHOE: u32 = 2;
+pub const ECHOK: u32 = 4;
+pub const ECHONL: u32 = 16;
+pub const NOFLSH: u32 = 2147483648;
+pub const TOSTOP: u32 = 4194304;
+pub const ECHOCTL: u32 = 64;
+pub const ECHOPRT: u32 = 32;
+pub const ECHOKE: u32 = 1;
+pub const FLUSHO: u32 = 8388608;
+pub const PENDIN: u32 = 536870912;
+pub const IEXTEN: u32 = 1024;
+pub const EXTPROC: u32 = 268435456;
+pub const TCSANOW: u32 = 0;
+pub const TCSADRAIN: u32 = 1;
+pub const TCSAFLUSH: u32 = 2;
+pub const NCC: u32 = 10;
+pub const _VINTR: u32 = 0;
+pub const _VQUIT: u32 = 1;
+pub const _VERASE: u32 = 2;
+pub const _VKILL: u32 = 3;
+pub const _VEOF: u32 = 4;
+pub const _VMIN: u32 = 5;
+pub const _VEOL: u32 = 6;
+pub const _VTIME: u32 = 7;
+pub const _VEOL2: u32 = 8;
+pub const _VSWTC: u32 = 9;
+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 UIO_FASTIOV: u32 = 8;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const __NR_restart_syscall: u32 = 0;
+pub const __NR_exit: u32 = 1;
+pub const __NR_fork: u32 = 2;
+pub const __NR_read: u32 = 3;
+pub const __NR_write: u32 = 4;
+pub const __NR_open: u32 = 5;
+pub const __NR_close: u32 = 6;
+pub const __NR_waitpid: u32 = 7;
+pub const __NR_creat: u32 = 8;
+pub const __NR_link: u32 = 9;
+pub const __NR_unlink: u32 = 10;
+pub const __NR_execve: u32 = 11;
+pub const __NR_chdir: u32 = 12;
+pub const __NR_time: u32 = 13;
+pub const __NR_mknod: u32 = 14;
+pub const __NR_chmod: u32 = 15;
+pub const __NR_lchown: u32 = 16;
+pub const __NR_break: u32 = 17;
+pub const __NR_oldstat: u32 = 18;
+pub const __NR_lseek: u32 = 19;
+pub const __NR_getpid: u32 = 20;
+pub const __NR_mount: u32 = 21;
+pub const __NR_umount: u32 = 22;
+pub const __NR_setuid: u32 = 23;
+pub const __NR_getuid: u32 = 24;
+pub const __NR_stime: u32 = 25;
+pub const __NR_ptrace: u32 = 26;
+pub const __NR_alarm: u32 = 27;
+pub const __NR_oldfstat: u32 = 28;
+pub const __NR_pause: u32 = 29;
+pub const __NR_utime: u32 = 30;
+pub const __NR_stty: u32 = 31;
+pub const __NR_gtty: u32 = 32;
+pub const __NR_access: u32 = 33;
+pub const __NR_nice: u32 = 34;
+pub const __NR_ftime: u32 = 35;
+pub const __NR_sync: u32 = 36;
+pub const __NR_kill: u32 = 37;
+pub const __NR_rename: u32 = 38;
+pub const __NR_mkdir: u32 = 39;
+pub const __NR_rmdir: u32 = 40;
+pub const __NR_dup: u32 = 41;
+pub const __NR_pipe: u32 = 42;
+pub const __NR_times: u32 = 43;
+pub const __NR_prof: u32 = 44;
+pub const __NR_brk: u32 = 45;
+pub const __NR_setgid: u32 = 46;
+pub const __NR_getgid: u32 = 47;
+pub const __NR_signal: u32 = 48;
+pub const __NR_geteuid: u32 = 49;
+pub const __NR_getegid: u32 = 50;
+pub const __NR_acct: u32 = 51;
+pub const __NR_umount2: u32 = 52;
+pub const __NR_lock: u32 = 53;
+pub const __NR_ioctl: u32 = 54;
+pub const __NR_fcntl: u32 = 55;
+pub const __NR_mpx: u32 = 56;
+pub const __NR_setpgid: u32 = 57;
+pub const __NR_ulimit: u32 = 58;
+pub const __NR_oldolduname: u32 = 59;
+pub const __NR_umask: u32 = 60;
+pub const __NR_chroot: u32 = 61;
+pub const __NR_ustat: u32 = 62;
+pub const __NR_dup2: u32 = 63;
+pub const __NR_getppid: u32 = 64;
+pub const __NR_getpgrp: u32 = 65;
+pub const __NR_setsid: u32 = 66;
+pub const __NR_sigaction: u32 = 67;
+pub const __NR_sgetmask: u32 = 68;
+pub const __NR_ssetmask: u32 = 69;
+pub const __NR_setreuid: u32 = 70;
+pub const __NR_setregid: u32 = 71;
+pub const __NR_sigsuspend: u32 = 72;
+pub const __NR_sigpending: u32 = 73;
+pub const __NR_sethostname: u32 = 74;
+pub const __NR_setrlimit: u32 = 75;
+pub const __NR_getrlimit: u32 = 76;
+pub const __NR_getrusage: u32 = 77;
+pub const __NR_gettimeofday: u32 = 78;
+pub const __NR_settimeofday: u32 = 79;
+pub const __NR_getgroups: u32 = 80;
+pub const __NR_setgroups: u32 = 81;
+pub const __NR_select: u32 = 82;
+pub const __NR_symlink: u32 = 83;
+pub const __NR_oldlstat: u32 = 84;
+pub const __NR_readlink: u32 = 85;
+pub const __NR_uselib: u32 = 86;
+pub const __NR_swapon: u32 = 87;
+pub const __NR_reboot: u32 = 88;
+pub const __NR_readdir: u32 = 89;
+pub const __NR_mmap: u32 = 90;
+pub const __NR_munmap: u32 = 91;
+pub const __NR_truncate: u32 = 92;
+pub const __NR_ftruncate: u32 = 93;
+pub const __NR_fchmod: u32 = 94;
+pub const __NR_fchown: u32 = 95;
+pub const __NR_getpriority: u32 = 96;
+pub const __NR_setpriority: u32 = 97;
+pub const __NR_profil: u32 = 98;
+pub const __NR_statfs: u32 = 99;
+pub const __NR_fstatfs: u32 = 100;
+pub const __NR_ioperm: u32 = 101;
+pub const __NR_socketcall: u32 = 102;
+pub const __NR_syslog: u32 = 103;
+pub const __NR_setitimer: u32 = 104;
+pub const __NR_getitimer: u32 = 105;
+pub const __NR_stat: u32 = 106;
+pub const __NR_lstat: u32 = 107;
+pub const __NR_fstat: u32 = 108;
+pub const __NR_olduname: u32 = 109;
+pub const __NR_iopl: u32 = 110;
+pub const __NR_vhangup: u32 = 111;
+pub const __NR_idle: u32 = 112;
+pub const __NR_vm86: u32 = 113;
+pub const __NR_wait4: u32 = 114;
+pub const __NR_swapoff: u32 = 115;
+pub const __NR_sysinfo: u32 = 116;
+pub const __NR_ipc: u32 = 117;
+pub const __NR_fsync: u32 = 118;
+pub const __NR_sigreturn: u32 = 119;
+pub const __NR_clone: u32 = 120;
+pub const __NR_setdomainname: u32 = 121;
+pub const __NR_uname: u32 = 122;
+pub const __NR_modify_ldt: u32 = 123;
+pub const __NR_adjtimex: u32 = 124;
+pub const __NR_mprotect: u32 = 125;
+pub const __NR_sigprocmask: u32 = 126;
+pub const __NR_create_module: u32 = 127;
+pub const __NR_init_module: u32 = 128;
+pub const __NR_delete_module: u32 = 129;
+pub const __NR_get_kernel_syms: u32 = 130;
+pub const __NR_quotactl: u32 = 131;
+pub const __NR_getpgid: u32 = 132;
+pub const __NR_fchdir: u32 = 133;
+pub const __NR_bdflush: u32 = 134;
+pub const __NR_sysfs: u32 = 135;
+pub const __NR_personality: u32 = 136;
+pub const __NR_afs_syscall: u32 = 137;
+pub const __NR_setfsuid: u32 = 138;
+pub const __NR_setfsgid: u32 = 139;
+pub const __NR__llseek: u32 = 140;
+pub const __NR_getdents: u32 = 141;
+pub const __NR__newselect: u32 = 142;
+pub const __NR_flock: u32 = 143;
+pub const __NR_msync: u32 = 144;
+pub const __NR_readv: u32 = 145;
+pub const __NR_writev: u32 = 146;
+pub const __NR_getsid: u32 = 147;
+pub const __NR_fdatasync: u32 = 148;
+pub const __NR__sysctl: u32 = 149;
+pub const __NR_mlock: u32 = 150;
+pub const __NR_munlock: u32 = 151;
+pub const __NR_mlockall: u32 = 152;
+pub const __NR_munlockall: u32 = 153;
+pub const __NR_sched_setparam: u32 = 154;
+pub const __NR_sched_getparam: u32 = 155;
+pub const __NR_sched_setscheduler: u32 = 156;
+pub const __NR_sched_getscheduler: u32 = 157;
+pub const __NR_sched_yield: u32 = 158;
+pub const __NR_sched_get_priority_max: u32 = 159;
+pub const __NR_sched_get_priority_min: u32 = 160;
+pub const __NR_sched_rr_get_interval: u32 = 161;
+pub const __NR_nanosleep: u32 = 162;
+pub const __NR_mremap: u32 = 163;
+pub const __NR_setresuid: u32 = 164;
+pub const __NR_getresuid: u32 = 165;
+pub const __NR_query_module: u32 = 166;
+pub const __NR_poll: u32 = 167;
+pub const __NR_nfsservctl: u32 = 168;
+pub const __NR_setresgid: u32 = 169;
+pub const __NR_getresgid: u32 = 170;
+pub const __NR_prctl: u32 = 171;
+pub const __NR_rt_sigreturn: u32 = 172;
+pub const __NR_rt_sigaction: u32 = 173;
+pub const __NR_rt_sigprocmask: u32 = 174;
+pub const __NR_rt_sigpending: u32 = 175;
+pub const __NR_rt_sigtimedwait: u32 = 176;
+pub const __NR_rt_sigqueueinfo: u32 = 177;
+pub const __NR_rt_sigsuspend: u32 = 178;
+pub const __NR_pread64: u32 = 179;
+pub const __NR_pwrite64: u32 = 180;
+pub const __NR_chown: u32 = 181;
+pub const __NR_getcwd: u32 = 182;
+pub const __NR_capget: u32 = 183;
+pub const __NR_capset: u32 = 184;
+pub const __NR_sigaltstack: u32 = 185;
+pub const __NR_sendfile: u32 = 186;
+pub const __NR_getpmsg: u32 = 187;
+pub const __NR_putpmsg: u32 = 188;
+pub const __NR_vfork: u32 = 189;
+pub const __NR_ugetrlimit: u32 = 190;
+pub const __NR_readahead: u32 = 191;
+pub const __NR_mmap2: u32 = 192;
+pub const __NR_truncate64: u32 = 193;
+pub const __NR_ftruncate64: u32 = 194;
+pub const __NR_stat64: u32 = 195;
+pub const __NR_lstat64: u32 = 196;
+pub const __NR_fstat64: u32 = 197;
+pub const __NR_pciconfig_read: u32 = 198;
+pub const __NR_pciconfig_write: u32 = 199;
+pub const __NR_pciconfig_iobase: u32 = 200;
+pub const __NR_multiplexer: u32 = 201;
+pub const __NR_getdents64: u32 = 202;
+pub const __NR_pivot_root: u32 = 203;
+pub const __NR_fcntl64: u32 = 204;
+pub const __NR_madvise: u32 = 205;
+pub const __NR_mincore: u32 = 206;
+pub const __NR_gettid: u32 = 207;
+pub const __NR_tkill: u32 = 208;
+pub const __NR_setxattr: u32 = 209;
+pub const __NR_lsetxattr: u32 = 210;
+pub const __NR_fsetxattr: u32 = 211;
+pub const __NR_getxattr: u32 = 212;
+pub const __NR_lgetxattr: u32 = 213;
+pub const __NR_fgetxattr: u32 = 214;
+pub const __NR_listxattr: u32 = 215;
+pub const __NR_llistxattr: u32 = 216;
+pub const __NR_flistxattr: u32 = 217;
+pub const __NR_removexattr: u32 = 218;
+pub const __NR_lremovexattr: u32 = 219;
+pub const __NR_fremovexattr: u32 = 220;
+pub const __NR_futex: u32 = 221;
+pub const __NR_sched_setaffinity: u32 = 222;
+pub const __NR_sched_getaffinity: u32 = 223;
+pub const __NR_tuxcall: u32 = 225;
+pub const __NR_sendfile64: u32 = 226;
+pub const __NR_io_setup: u32 = 227;
+pub const __NR_io_destroy: u32 = 228;
+pub const __NR_io_getevents: u32 = 229;
+pub const __NR_io_submit: u32 = 230;
+pub const __NR_io_cancel: u32 = 231;
+pub const __NR_set_tid_address: u32 = 232;
+pub const __NR_fadvise64: u32 = 233;
+pub const __NR_exit_group: u32 = 234;
+pub const __NR_lookup_dcookie: u32 = 235;
+pub const __NR_epoll_create: u32 = 236;
+pub const __NR_epoll_ctl: u32 = 237;
+pub const __NR_epoll_wait: u32 = 238;
+pub const __NR_remap_file_pages: u32 = 239;
+pub const __NR_timer_create: u32 = 240;
+pub const __NR_timer_settime: u32 = 241;
+pub const __NR_timer_gettime: u32 = 242;
+pub const __NR_timer_getoverrun: u32 = 243;
+pub const __NR_timer_delete: u32 = 244;
+pub const __NR_clock_settime: u32 = 245;
+pub const __NR_clock_gettime: u32 = 246;
+pub const __NR_clock_getres: u32 = 247;
+pub const __NR_clock_nanosleep: u32 = 248;
+pub const __NR_swapcontext: u32 = 249;
+pub const __NR_tgkill: u32 = 250;
+pub const __NR_utimes: u32 = 251;
+pub const __NR_statfs64: u32 = 252;
+pub const __NR_fstatfs64: u32 = 253;
+pub const __NR_fadvise64_64: u32 = 254;
+pub const __NR_rtas: u32 = 255;
+pub const __NR_sys_debug_setcontext: u32 = 256;
+pub const __NR_migrate_pages: u32 = 258;
+pub const __NR_mbind: u32 = 259;
+pub const __NR_get_mempolicy: u32 = 260;
+pub const __NR_set_mempolicy: u32 = 261;
+pub const __NR_mq_open: u32 = 262;
+pub const __NR_mq_unlink: u32 = 263;
+pub const __NR_mq_timedsend: u32 = 264;
+pub const __NR_mq_timedreceive: u32 = 265;
+pub const __NR_mq_notify: u32 = 266;
+pub const __NR_mq_getsetattr: u32 = 267;
+pub const __NR_kexec_load: u32 = 268;
+pub const __NR_add_key: u32 = 269;
+pub const __NR_request_key: u32 = 270;
+pub const __NR_keyctl: u32 = 271;
+pub const __NR_waitid: u32 = 272;
+pub const __NR_ioprio_set: u32 = 273;
+pub const __NR_ioprio_get: u32 = 274;
+pub const __NR_inotify_init: u32 = 275;
+pub const __NR_inotify_add_watch: u32 = 276;
+pub const __NR_inotify_rm_watch: u32 = 277;
+pub const __NR_spu_run: u32 = 278;
+pub const __NR_spu_create: u32 = 279;
+pub const __NR_pselect6: u32 = 280;
+pub const __NR_ppoll: u32 = 281;
+pub const __NR_unshare: u32 = 282;
+pub const __NR_splice: u32 = 283;
+pub const __NR_tee: u32 = 284;
+pub const __NR_vmsplice: u32 = 285;
+pub const __NR_openat: u32 = 286;
+pub const __NR_mkdirat: u32 = 287;
+pub const __NR_mknodat: u32 = 288;
+pub const __NR_fchownat: u32 = 289;
+pub const __NR_futimesat: u32 = 290;
+pub const __NR_fstatat64: u32 = 291;
+pub const __NR_unlinkat: u32 = 292;
+pub const __NR_renameat: u32 = 293;
+pub const __NR_linkat: u32 = 294;
+pub const __NR_symlinkat: u32 = 295;
+pub const __NR_readlinkat: u32 = 296;
+pub const __NR_fchmodat: u32 = 297;
+pub const __NR_faccessat: u32 = 298;
+pub const __NR_get_robust_list: u32 = 299;
+pub const __NR_set_robust_list: u32 = 300;
+pub const __NR_move_pages: u32 = 301;
+pub const __NR_getcpu: u32 = 302;
+pub const __NR_epoll_pwait: u32 = 303;
+pub const __NR_utimensat: u32 = 304;
+pub const __NR_signalfd: u32 = 305;
+pub const __NR_timerfd_create: u32 = 306;
+pub const __NR_eventfd: u32 = 307;
+pub const __NR_sync_file_range2: u32 = 308;
+pub const __NR_fallocate: u32 = 309;
+pub const __NR_subpage_prot: u32 = 310;
+pub const __NR_timerfd_settime: u32 = 311;
+pub const __NR_timerfd_gettime: u32 = 312;
+pub const __NR_signalfd4: u32 = 313;
+pub const __NR_eventfd2: u32 = 314;
+pub const __NR_epoll_create1: u32 = 315;
+pub const __NR_dup3: u32 = 316;
+pub const __NR_pipe2: u32 = 317;
+pub const __NR_inotify_init1: u32 = 318;
+pub const __NR_perf_event_open: u32 = 319;
+pub const __NR_preadv: u32 = 320;
+pub const __NR_pwritev: u32 = 321;
+pub const __NR_rt_tgsigqueueinfo: u32 = 322;
+pub const __NR_fanotify_init: u32 = 323;
+pub const __NR_fanotify_mark: u32 = 324;
+pub const __NR_prlimit64: u32 = 325;
+pub const __NR_socket: u32 = 326;
+pub const __NR_bind: u32 = 327;
+pub const __NR_connect: u32 = 328;
+pub const __NR_listen: u32 = 329;
+pub const __NR_accept: u32 = 330;
+pub const __NR_getsockname: u32 = 331;
+pub const __NR_getpeername: u32 = 332;
+pub const __NR_socketpair: u32 = 333;
+pub const __NR_send: u32 = 334;
+pub const __NR_sendto: u32 = 335;
+pub const __NR_recv: u32 = 336;
+pub const __NR_recvfrom: u32 = 337;
+pub const __NR_shutdown: u32 = 338;
+pub const __NR_setsockopt: u32 = 339;
+pub const __NR_getsockopt: u32 = 340;
+pub const __NR_sendmsg: u32 = 341;
+pub const __NR_recvmsg: u32 = 342;
+pub const __NR_recvmmsg: u32 = 343;
+pub const __NR_accept4: u32 = 344;
+pub const __NR_name_to_handle_at: u32 = 345;
+pub const __NR_open_by_handle_at: u32 = 346;
+pub const __NR_clock_adjtime: u32 = 347;
+pub const __NR_syncfs: u32 = 348;
+pub const __NR_sendmmsg: u32 = 349;
+pub const __NR_setns: u32 = 350;
+pub const __NR_process_vm_readv: u32 = 351;
+pub const __NR_process_vm_writev: u32 = 352;
+pub const __NR_finit_module: u32 = 353;
+pub const __NR_kcmp: u32 = 354;
+pub const __NR_sched_setattr: u32 = 355;
+pub const __NR_sched_getattr: u32 = 356;
+pub const __NR_renameat2: u32 = 357;
+pub const __NR_seccomp: u32 = 358;
+pub const __NR_getrandom: u32 = 359;
+pub const __NR_memfd_create: u32 = 360;
+pub const __NR_bpf: u32 = 361;
+pub const __NR_execveat: u32 = 362;
+pub const __NR_switch_endian: u32 = 363;
+pub const __NR_userfaultfd: u32 = 364;
+pub const __NR_membarrier: u32 = 365;
+pub const __NR_mlock2: u32 = 378;
+pub const __NR_copy_file_range: u32 = 379;
+pub const __NR_preadv2: u32 = 380;
+pub const __NR_pwritev2: u32 = 381;
+pub const __NR_kexec_file_load: u32 = 382;
+pub const __NR_statx: u32 = 383;
+pub const __NR_pkey_alloc: u32 = 384;
+pub const __NR_pkey_free: u32 = 385;
+pub const __NR_pkey_mprotect: u32 = 386;
+pub const __NR_rseq: u32 = 387;
+pub const __NR_io_pgetevents: u32 = 388;
+pub const __NR_semget: u32 = 393;
+pub const __NR_semctl: u32 = 394;
+pub const __NR_shmget: u32 = 395;
+pub const __NR_shmctl: u32 = 396;
+pub const __NR_shmat: u32 = 397;
+pub const __NR_shmdt: u32 = 398;
+pub const __NR_msgget: u32 = 399;
+pub const __NR_msgsnd: u32 = 400;
+pub const __NR_msgrcv: u32 = 401;
+pub const __NR_msgctl: u32 = 402;
+pub const __NR_clock_gettime64: u32 = 403;
+pub const __NR_clock_settime64: u32 = 404;
+pub const __NR_clock_adjtime64: u32 = 405;
+pub const __NR_clock_getres_time64: u32 = 406;
+pub const __NR_clock_nanosleep_time64: u32 = 407;
+pub const __NR_timer_gettime64: u32 = 408;
+pub const __NR_timer_settime64: u32 = 409;
+pub const __NR_timerfd_gettime64: u32 = 410;
+pub const __NR_timerfd_settime64: u32 = 411;
+pub const __NR_utimensat_time64: u32 = 412;
+pub const __NR_pselect6_time64: u32 = 413;
+pub const __NR_ppoll_time64: u32 = 414;
+pub const __NR_io_pgetevents_time64: u32 = 416;
+pub const __NR_recvmmsg_time64: u32 = 417;
+pub const __NR_mq_timedsend_time64: u32 = 418;
+pub const __NR_mq_timedreceive_time64: u32 = 419;
+pub const __NR_semtimedop_time64: u32 = 420;
+pub const __NR_rt_sigtimedwait_time64: u32 = 421;
+pub const __NR_futex_time64: u32 = 422;
+pub const __NR_sched_rr_get_interval_time64: u32 = 423;
+pub const __NR_pidfd_send_signal: u32 = 424;
+pub const __NR_io_uring_setup: u32 = 425;
+pub const __NR_io_uring_enter: u32 = 426;
+pub const __NR_io_uring_register: u32 = 427;
+pub const __NR_open_tree: u32 = 428;
+pub const __NR_move_mount: u32 = 429;
+pub const __NR_fsopen: u32 = 430;
+pub const __NR_fsconfig: u32 = 431;
+pub const __NR_fsmount: u32 = 432;
+pub const __NR_fspick: u32 = 433;
+pub const __NR_pidfd_open: u32 = 434;
+pub const __NR_clone3: u32 = 435;
+pub const __NR_close_range: u32 = 436;
+pub const __NR_openat2: u32 = 437;
+pub const __NR_pidfd_getfd: u32 = 438;
+pub const __NR_faccessat2: u32 = 439;
+pub const __NR_process_madvise: u32 = 440;
+pub const __NR_epoll_pwait2: u32 = 441;
+pub const __NR_mount_setattr: u32 = 442;
+pub const __NR_quotactl_fd: u32 = 443;
+pub const __NR_landlock_create_ruleset: u32 = 444;
+pub const __NR_landlock_add_rule: u32 = 445;
+pub const __NR_landlock_restrict_self: u32 = 446;
+pub const __NR_process_mrelease: u32 = 448;
+pub const __NR_futex_waitv: u32 = 449;
+pub const __NR_set_mempolicy_home_node: u32 = 450;
+pub const __NR_cachestat: u32 = 451;
+pub const __NR_fchmodat2: u32 = 452;
+pub const __NR_map_shadow_stack: u32 = 453;
+pub const __NR_futex_wake: u32 = 454;
+pub const __NR_futex_wait: u32 = 455;
+pub const __NR_futex_requeue: u32 = 456;
+pub const __NR_statmount: u32 = 457;
+pub const __NR_listmount: u32 = 458;
+pub const __NR_lsm_get_self_attr: u32 = 459;
+pub const __NR_lsm_set_self_attr: u32 = 460;
+pub const __NR_lsm_list_modules: u32 = 461;
+pub const __NR_mseal: u32 = 462;
+pub const __NR_setxattrat: u32 = 463;
+pub const __NR_getxattrat: u32 = 464;
+pub const __NR_listxattrat: u32 = 465;
+pub const __NR_removexattrat: u32 = 466;
+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 = 2048;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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 = 2048;
+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 = 526336;
+pub const TFD_CREATE_FLAGS: u32 = 526336;
+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 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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[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; 13usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/powerpc/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/if_arp.rs
new file mode 100644
index 0000000..05a75ec
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/if_arp.rs
@@ -0,0 +1,2761 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_short;
+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_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/powerpc/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/if_ether.rs
new file mode 100644
index 0000000..796bee0
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/if_ether.rs
@@ -0,0 +1,174 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_short;
+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_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/powerpc/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/if_packet.rs
new file mode 100644
index 0000000..e328557
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/if_packet.rs
@@ -0,0 +1,315 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_short;
+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_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/powerpc/image.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/io_uring.rs
new file mode 100644
index 0000000..645b64d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/io_uring.rs
@@ -0,0 +1,1340 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_short;
+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_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/ioctl.rs
new file mode 100644
index 0000000..a19e6b1
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/ioctl.rs
@@ -0,0 +1,1501 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub const FIONREAD: u32 = 1074030207;
+pub const FIONBIO: u32 = 2147772030;
+pub const FIOCLEX: u32 = 536897025;
+pub const FIONCLEX: u32 = 536897026;
+pub const FIOASYNC: u32 = 2147772029;
+pub const FIOQSIZE: u32 = 1074292352;
+pub const TCXONC: u32 = 536900638;
+pub const TCFLSH: u32 = 536900639;
+pub const TIOCSCTTY: u32 = 21518;
+pub const TIOCSPGRP: u32 = 2147775606;
+pub const TIOCOUTQ: u32 = 1074033779;
+pub const TIOCSTI: u32 = 21522;
+pub const TIOCSWINSZ: u32 = 2148037735;
+pub const TIOCMGET: u32 = 21525;
+pub const TIOCMBIS: u32 = 21526;
+pub const TIOCMBIC: u32 = 21527;
+pub const TIOCMSET: u32 = 21528;
+pub const TIOCSSOFTCAR: u32 = 21530;
+pub const TIOCLINUX: u32 = 21532;
+pub const TIOCCONS: u32 = 21533;
+pub const TIOCSSERIAL: u32 = 21535;
+pub const TIOCPKT: u32 = 21536;
+pub const TIOCNOTTY: u32 = 21538;
+pub const TIOCSETD: u32 = 21539;
+pub const TIOCSBRK: u32 = 21543;
+pub const TIOCCBRK: u32 = 21544;
+pub const TIOCSRS485: u32 = 21551;
+pub const TIOCSPTLCK: u32 = 2147767345;
+pub const TIOCSIG: u32 = 2147767350;
+pub const TIOCVHANGUP: u32 = 21559;
+pub const TIOCSERCONFIG: u32 = 21587;
+pub const TIOCSERGWILD: u32 = 21588;
+pub const TIOCSERSWILD: u32 = 21589;
+pub const TIOCSLCKTRMIOS: u32 = 21591;
+pub const TIOCSERGSTRUCT: u32 = 21592;
+pub const TIOCSERGETLSR: u32 = 21593;
+pub const TIOCSERGETMULTI: u32 = 21594;
+pub const TIOCSERSETMULTI: u32 = 21595;
+pub const TIOCMIWAIT: u32 = 21596;
+pub const TCGETS: u32 = 1076655123;
+pub const TCGETA: u32 = 1075082263;
+pub const TCSBRK: u32 = 536900637;
+pub const TCSBRKP: u32 = 21541;
+pub const TCSETA: u32 = 2148824088;
+pub const TCSETAF: u32 = 2148824092;
+pub const TCSETAW: u32 = 2148824089;
+pub const TIOCEXCL: u32 = 21516;
+pub const TIOCNXCL: u32 = 21517;
+pub const TIOCGDEV: u32 = 1074025522;
+pub const TIOCGEXCL: u32 = 1074025536;
+pub const TIOCGICOUNT: u32 = 21597;
+pub const TIOCGLCKTRMIOS: u32 = 21590;
+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 TIOCGRS485: u32 = 21550;
+pub const TIOCGSERIAL: u32 = 21534;
+pub const TIOCGSID: u32 = 21545;
+pub const TIOCGSOFTCAR: u32 = 21529;
+pub const TIOCGWINSZ: u32 = 1074295912;
+pub const TCSETS: u32 = 2150396948;
+pub const TCSETSF: u32 = 2150396950;
+pub const TCSETSW: u32 = 2150396949;
+pub const TIOCGETC: u32 = 1074164754;
+pub const TIOCGETD: u32 = 21540;
+pub const TIOCGETP: u32 = 1074164744;
+pub const TIOCGLTC: u32 = 1074164852;
+pub const MTIOCGET: u32 = 1075604738;
+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 = 1074008688;
+pub const BLKBSZSET: u32 = 2147750513;
+pub const BLKGETSIZE64: u32 = 1074008690;
+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: u32 = 4294967295;
+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 = 35073;
+pub const SIOCSPGRP: u32 = 35074;
+pub const FIOGETOWN: u32 = 35075;
+pub const SIOCGPGRP: u32 = 35076;
+pub const SIOCATMARK: u32 = 35077;
+pub const SIOCGSTAMP: u32 = 35078;
+pub const TIOCINQ: u32 = 1074030207;
+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 = 1074030081;
+pub const FS_IOC_SETFLAGS: u32 = 2147771906;
+pub const FS_IOC_GETVERSION: u32 = 1074034177;
+pub const FS_IOC_SETVERSION: u32 = 2147776002;
+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 = 1074030083;
+pub const EXT4_IOC_SETVERSION: u32 = 2147771908;
+pub const EXT4_IOC_GETVERSION_OLD: u32 = 1074034177;
+pub const EXT4_IOC_SETVERSION_OLD: u32 = 2147776002;
+pub const EXT4_IOC_GETRSVSZ: u32 = 1074030085;
+pub const EXT4_IOC_SETRSVSZ: u32 = 2147771910;
+pub const EXT4_IOC_GROUP_EXTEND: u32 = 2147771911;
+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 = 2148295050;
+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 = 1075866881;
+pub const ENI_SETMULT: u32 = 2148295015;
+pub const RIO_GET_EVENT_MASK: u32 = 1074031886;
+pub const LIRC_GET_MAX_TIMEOUT: u32 = 1074030857;
+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 = 3234616896;
+pub const LIRC_SET_REC_MODE: u32 = 2147772690;
+pub const VIDIOC_DQEVENT: u32 = 1082152537;
+pub const RPMSG_DESTROY_EPT_IOCTL: u32 = 536917250;
+pub const UVCIOC_CTRL_MAP: u32 = 3227022624;
+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 = 3222820425;
+pub const LIRC_GET_REC_MODE: u32 = 1074030850;
+pub const PPGETTIME: u32 = 1074294933;
+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 = 3222825227;
+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 = 3222036833;
+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 = 2148295054;
+pub const FSL_HV_IOCTL_GETPROP: u32 = 3223891719;
+pub const FDGETPRM: u32 = 1075577348;
+pub const HIDIOCAPPLICATION: u32 = 536889346;
+pub const ENI_MEMDUMP: u32 = 2148295008;
+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 = 1074032653;
+pub const VIDIOC_SUBDEV_S_SELECTION: u32 = 3225441854;
+pub const VIDIOC_QUERY_EXT_CTRL: u32 = 3236451943;
+pub const ATM_GETLECSADDR: u32 = 2148295056;
+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 = 2147810818;
+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 = 2147767565;
+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 = 3221525348;
+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 = 1074020355;
+pub const IVTVFB_IOC_DMA_FRAME: u32 = 2148292288;
+pub const IPMICTL_SEND_COMMAND: u32 = 1075079437;
+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 = 2148295053;
+pub const FW_CDEV_IOC_SEND_RESPONSE: u32 = 2149065476;
+pub const PMU_IOC_GET_MODEL: u32 = 1074020867;
+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 = 1079509521;
+pub const TUNSETVNETLE: u32 = 2147767516;
+pub const PHN_SETREG: u32 = 2148036614;
+pub const PPPIOCDETACH: u32 = 2147775548;
+pub const MMTIMER_GETRES: u32 = 1074031873;
+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 = 3221766944;
+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 = 3223092226;
+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 = 3223087369;
+pub const VFIO_GET_API_VERSION: u32 = 536886116;
+pub const IDT77105_GETSTATZ: u32 = 2148294963;
+pub const I2OPARMSET: u32 = 3222825219;
+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 = 2148294996;
+pub const DFL_FPGA_GET_API_VERSION: u32 = 536917504;
+pub const USBDEVFS_WAIT_FOR_RESUME: u32 = 536892707;
+pub const FBIO_CURSOR: u32 = 3225961992;
+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 = 1076647434;
+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 = 2148029654;
+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 = 1075605521;
+pub const RIO_CM_EP_GET_LIST: u32 = 3221512962;
+pub const USBDEVFS_DISCSIGNAL: u32 = 1074287886;
+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 = 2150385024;
+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 = 2148295048;
+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 = 3226747403;
+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 = 2149608704;
+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 = 1074031681;
+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 = 2148036758;
+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 = 2148295047;
+pub const NBD_SET_SIZE: u32 = 536914690;
+pub const UDF_GETVOLIDENT: u32 = 1074031682;
+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 = 3222038785;
+pub const ATM_SETCIRANGE: u32 = 2148295051;
+pub const HPET_IE_ON: u32 = 536897537;
+pub const PERF_EVENT_IOC_ID: u32 = 1074013191;
+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 = 3222033682;
+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 = 2147772422;
+pub const ATM_GETESI: u32 = 2148295045;
+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 = 2148295009;
+pub const BR2684_SETFILT: u32 = 2149343632;
+pub const RNDGETPOOL: u32 = 1074287106;
+pub const PPS_GETPARAMS: u32 = 1074032801;
+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 = 1074020865;
+pub const USBDEVFS_GET_CAPABILITIES: u32 = 1074025754;
+pub const SCIF_WRITETO: u32 = 3223876363;
+pub const UDF_RELOCATE_BLOCKS: u32 = 3221515331;
+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 = 3237500508;
+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 = 3234616837;
+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 = 3227009554;
+pub const IPMICTL_SET_MY_LUN_CMD: u32 = 1074030867;
+pub const PCITEST_LEGACY_IRQ: u32 = 536891394;
+pub const USBDEVFS_SUBMITURB: u32 = 1076647178;
+pub const AUTOFS_IOC_READY: u32 = 536908640;
+pub const BTRFS_IOC_SEND: u32 = 2152240166;
+pub const VIDIOC_G_EXT_CTRLS: u32 = 3222820423;
+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 = 1074020870;
+pub const VIDIOC_SUBDEV_S_FMT: u32 = 3227014661;
+pub const FDDEFPRM: u32 = 2149319235;
+pub const TEE_IOC_INVOKE: u32 = 1074832387;
+pub const USBDEVFS_BULK: u32 = 3222295810;
+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 = 2147762690;
+pub const EVIOCGREP: u32 = 1074283779;
+pub const PERF_EVENT_IOC_MODIFY_ATTRIBUTES: u32 = 2147755019;
+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 = 3223606825;
+pub const MATROXFB_SET_OUTPUT_MODE: u32 = 2147774202;
+pub const RIO_DEV_ADD: u32 = 2149608727;
+pub const VIDIOC_ENUM_FREQ_BANDS: u32 = 3225441893;
+pub const FBIO_RADEON_SET_MIRROR: u32 = 2147762180;
+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 = 1074032376;
+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 = 3225704029;
+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 = 2147774465;
+pub const RNDADDTOENTCNT: u32 = 2147766785;
+pub const VBG_IOCTL_CHECK_BALLOON: u32 = 3223344657;
+pub const VIDIOC_OMAP3ISP_STAT_REQ: u32 = 3222820550;
+pub const PPS_FETCH: u32 = 3221516452;
+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 = 2148033288;
+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 = 2147774200;
+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 = 3234616836;
+pub const RTC_EPOCH_SET: u32 = 2147774478;
+pub const CAPI_GET_PROFILE: u32 = 3225436937;
+pub const ATM_GETLOOP: u32 = 2148294994;
+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 = 3221514631;
+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 = 2148037702;
+pub const SIOCGSTAMPNS_NEW: u32 = 1074825479;
+pub const IPMICTL_RECEIVE_MSG: u32 = 3222825228;
+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 = 2147798273;
+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 = 1074293004;
+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 = 3225703951;
+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 = 3221509831;
+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 = 1075603733;
+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 = 3223087365;
+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 = 3223087366;
+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 = 2147774721;
+pub const IPMICTL_REGISTER_FOR_CMD: u32 = 1073899790;
+pub const I8K_GET_FAN: u32 = 3221514630;
+pub const TUNGETVNETBE: u32 = 1074025695;
+pub const AUTOFS_DEV_IOCTL_FAIL: u32 = 3222836087;
+pub const UI_END_FF_UPLOAD: u32 = 2153797065;
+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 = 3222295808;
+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 = 1108898306;
+pub const ND_IOCTL_GET_CONFIG_DATA: u32 = 3222031877;
+pub const F2FS_IOC_RESERVE_COMPRESS_BLOCKS: u32 = 1074328851;
+pub const FDGETDRVSTAT: u32 = 1077150226;
+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 = 2148295044;
+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 = 2153251472;
+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 = 2147774467;
+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 = 2148295011;
+pub const MTIOCPOS: u32 = 1074031875;
+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 = 1074554883;
+pub const VIDIOC_AM437X_CCDC_CFG: u32 = 2147768001;
+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 = 2148037703;
+pub const RIO_CM_CHAN_CONNECT: u32 = 2148033288;
+pub const I2OSWDEL: u32 = 3223087367;
+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 = 3225703945;
+pub const VIDIOC_S_EDID: u32 = 3223606825;
+pub const BTRFS_IOC_QGROUP_ASSIGN: u32 = 2149094441;
+pub const PPS_GETCAP: u32 = 1074032803;
+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 = 2149347346;
+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 = 2148033012;
+pub const FDSETPRM: u32 = 2149319234;
+pub const ATM_GETSTATZ: u32 = 2148294993;
+pub const ISST_IF_MSR_COMMAND: u32 = 3221552644;
+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 = 2147766278;
+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 = 2147755014;
+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 = 1074032651;
+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 = 1074287835;
+pub const CCISS_SETNODENAME: u32 = 2148549125;
+pub const FBIO_GETCONTROL2: u32 = 1074022025;
+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 = 2148294992;
+pub const VIDIOC_G_JPEGCOMP: u32 = 1082938941;
+pub const TUNATTACHFILTER: u32 = 2148029653;
+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 = 2148295008;
+pub const ATM_SETLOOP: u32 = 2148294995;
+pub const ATMSIGD_CTRL: u32 = 536895984;
+pub const CIOC_KERNEL_VERSION: u32 = 3221512970;
+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 = 1074020868;
+pub const I2OGETIOPS: u32 = 1075865856;
+pub const VIDIOC_S_FBUF: u32 = 2150389259;
+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 = 1074029313;
+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 = 2148295055;
+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 = 2147766277;
+pub const VFIO_GROUP_GET_STATUS: u32 = 536886119;
+pub const MATROXFB_GET_ALL_OUTPUTS: u32 = 1074032379;
+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 = 2147767564;
+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 = 1074295871;
+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 = 3222825220;
+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 = 2148032899;
+pub const VIDIOC_QUERYMENU: u32 = 3224131109;
+pub const DFL_FPGA_PORT_DMA_UNMAP: u32 = 536917572;
+pub const I2OLCTGET: u32 = 3222038786;
+pub const FS_IOC_GET_ENCRYPTION_PWSALT: u32 = 2148558356;
+pub const NS_SETBUFLEV: u32 = 2148295010;
+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 = 2147774629;
+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 = 1074068992;
+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 = 2147767660;
+pub const FDWERRORGET: u32 = 1075315223;
+pub const VIDIOC_SUBDEV_G_EDID: u32 = 3223606824;
+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 = 3221516288;
+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 = 1074020869;
+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 = 3221504262;
+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 = 1077150227;
+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 = 2148295041;
+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 = 2148295046;
+pub const PHN_GET_REGS: u32 = 3221516290;
+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 = 3222041889;
+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 = 2148294962;
+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 = 2148299853;
+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 = 3221552641;
+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 = 3221552643;
+pub const SCIF_ACCEPTREQ: u32 = 3222303492;
+pub const PERF_EVENT_IOC_QUERY_BPF: u32 = 3221496842;
+pub const VIDIOC_STREAMOFF: u32 = 2147767827;
+pub const VDUSE_DESTROY_DEV: u32 = 2164293891;
+pub const FDGETFDCSTAT: u32 = 1075839509;
+pub const VIDIOC_S_PRIORITY: u32 = 2147767876;
+pub const SNAPSHOT_FREEZE: u32 = 536883969;
+pub const VIDIOC_ENUMINPUT: u32 = 3226490394;
+pub const ZATM_GETPOOLZ: u32 = 2148295010;
+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 = 1074032377;
+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 = 3222820424;
+pub const VIDIOC_SUBDEV_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const VIDIOC_OMAP3ISP_CCDC_CFG: u32 = 3223344833;
+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 = 2147774626;
+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 = 3223606824;
+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 = 3221514629;
+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 = 2148295052;
+pub const FW_CDEV_IOC_START_ISO: u32 = 2148541194;
+pub const ATM_DELADDR: u32 = 2148295049;
+pub const PPFCONTROL: u32 = 2147643534;
+pub const SONYPI_IOCGFAN: u32 = 1073837578;
+pub const RTC_IRQP_SET: u32 = 2147774476;
+pub const PCITEST_WRITE: u32 = 2147766276;
+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 = 3225703953;
+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 = 1074031874;
+pub const VIDIOC_G_SELECTION: u32 = 3225441886;
+pub const RTC_ALM_SET: u32 = 2149871623;
+pub const PPPOEIOCSFWD: u32 = 2147791104;
+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 = 2147770881;
+pub const UI_BEGIN_FF_UPLOAD: u32 = 3227538888;
+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 = 3225179842;
+pub const GPIO_GET_LINEHANDLE_IOCTL: u32 = 3245126659;
+pub const VFAT_IOCTL_READDIR_BOTH: u32 = 1108898305;
+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 = 1074031881;
+pub const MATROXFB_GET_OUTPUT_MODE: u32 = 3221516026;
+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 = 2147787300;
+pub const TCGETS2: u32 = 1076655123;
+pub const TCSETS2: u32 = 2150396948;
+pub const TCSETSF2: u32 = 2150396950;
+pub const TCSETSW2: u32 = 2150396949;
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/landlock.rs
new file mode 100644
index 0000000..fcdd724
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/landlock.rs
@@ -0,0 +1,104 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_short;
+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_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/loop_device.rs
new file mode 100644
index 0000000..bb39cfd
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/loop_device.rs
@@ -0,0 +1,138 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub type __kernel_ipc_pid_t = crate::ctypes::c_short;
+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_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/powerpc/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/mempolicy.rs
new file mode 100644
index 0000000..ad4957c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/mempolicy.rs
@@ -0,0 +1,175 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
+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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc/net.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/net.rs
new file mode 100644
index 0000000..ea4b85b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/net.rs
@@ -0,0 +1,3425 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_short;
+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_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u32; 67usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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 SO_RCVLOWAT: u32 = 16;
+pub const SO_SNDLOWAT: u32 = 17;
+pub const SO_RCVTIMEO_OLD: u32 = 18;
+pub const SO_SNDTIMEO_OLD: u32 = 19;
+pub const SO_PASSCRED: u32 = 20;
+pub const SO_PEERCRED: u32 = 21;
+pub const SIOCGSTAMP_OLD: u32 = 35078;
+pub const SIOCGSTAMPNS_OLD: u32 = 35079;
+pub const SOL_SOCKET: u32 = 1;
+pub const SO_DEBUG: u32 = 1;
+pub const SO_REUSEADDR: u32 = 2;
+pub const SO_TYPE: u32 = 3;
+pub const SO_ERROR: u32 = 4;
+pub const SO_DONTROUTE: u32 = 5;
+pub const SO_BROADCAST: u32 = 6;
+pub const SO_SNDBUF: u32 = 7;
+pub const SO_RCVBUF: u32 = 8;
+pub const SO_SNDBUFFORCE: u32 = 32;
+pub const SO_RCVBUFFORCE: u32 = 33;
+pub const SO_KEEPALIVE: u32 = 9;
+pub const SO_OOBINLINE: u32 = 10;
+pub const SO_NO_CHECK: u32 = 11;
+pub const SO_PRIORITY: u32 = 12;
+pub const SO_LINGER: u32 = 13;
+pub const SO_BSDCOMPAT: u32 = 14;
+pub const SO_REUSEPORT: u32 = 15;
+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_ACCEPTCONN: u32 = 30;
+pub const SO_PEERSEC: u32 = 31;
+pub const SO_PASSSEC: u32 = 34;
+pub const SO_MARK: u32 = 36;
+pub const SO_PROTOCOL: u32 = 38;
+pub const SO_DOMAIN: u32 = 39;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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 = 1;
+pub const SOCK_DGRAM: u32 = 2;
+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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/netlink.rs
new file mode 100644
index 0000000..5132460
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/netlink.rs
@@ -0,0 +1,2950 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_short;
+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_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/powerpc/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/prctl.rs
new file mode 100644
index 0000000..0cc7803
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/prctl.rs
@@ -0,0 +1,266 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_short;
+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_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/ptrace.rs
new file mode 100644
index 0000000..ead3269
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/ptrace.rs
@@ -0,0 +1,926 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_short;
+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_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pt_regs {
+pub gpr: [crate::ctypes::c_ulong; 32usize],
+pub nip: crate::ctypes::c_ulong,
+pub msr: crate::ctypes::c_ulong,
+pub orig_gpr3: crate::ctypes::c_ulong,
+pub ctr: crate::ctypes::c_ulong,
+pub link: crate::ctypes::c_ulong,
+pub xer: crate::ctypes::c_ulong,
+pub ccr: crate::ctypes::c_ulong,
+pub mq: crate::ctypes::c_ulong,
+pub trap: crate::ctypes::c_ulong,
+pub dar: crate::ctypes::c_ulong,
+pub dsisr: crate::ctypes::c_ulong,
+pub result: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ppc_debug_info {
+pub version: __u32,
+pub num_instruction_bps: __u32,
+pub num_data_bps: __u32,
+pub num_condition_regs: __u32,
+pub data_bp_alignment: __u32,
+pub sizeof_condition: __u32,
+pub features: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ppc_hw_breakpoint {
+pub version: __u32,
+pub trigger_type: __u32,
+pub addr_mode: __u32,
+pub condition_mode: __u32,
+pub addr: __u64,
+pub addr2: __u64,
+pub condition_value: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const PT_R0: u32 = 0;
+pub const PT_R1: u32 = 1;
+pub const PT_R2: u32 = 2;
+pub const PT_R3: u32 = 3;
+pub const PT_R4: u32 = 4;
+pub const PT_R5: u32 = 5;
+pub const PT_R6: u32 = 6;
+pub const PT_R7: u32 = 7;
+pub const PT_R8: u32 = 8;
+pub const PT_R9: u32 = 9;
+pub const PT_R10: u32 = 10;
+pub const PT_R11: u32 = 11;
+pub const PT_R12: u32 = 12;
+pub const PT_R13: u32 = 13;
+pub const PT_R14: u32 = 14;
+pub const PT_R15: u32 = 15;
+pub const PT_R16: u32 = 16;
+pub const PT_R17: u32 = 17;
+pub const PT_R18: u32 = 18;
+pub const PT_R19: u32 = 19;
+pub const PT_R20: u32 = 20;
+pub const PT_R21: u32 = 21;
+pub const PT_R22: u32 = 22;
+pub const PT_R23: u32 = 23;
+pub const PT_R24: u32 = 24;
+pub const PT_R25: u32 = 25;
+pub const PT_R26: u32 = 26;
+pub const PT_R27: u32 = 27;
+pub const PT_R28: u32 = 28;
+pub const PT_R29: u32 = 29;
+pub const PT_R30: u32 = 30;
+pub const PT_R31: u32 = 31;
+pub const PT_NIP: u32 = 32;
+pub const PT_MSR: u32 = 33;
+pub const PT_ORIG_R3: u32 = 34;
+pub const PT_CTR: u32 = 35;
+pub const PT_LNK: u32 = 36;
+pub const PT_XER: u32 = 37;
+pub const PT_CCR: u32 = 38;
+pub const PT_MQ: u32 = 39;
+pub const PT_TRAP: u32 = 40;
+pub const PT_DAR: u32 = 41;
+pub const PT_DSISR: u32 = 42;
+pub const PT_RESULT: u32 = 43;
+pub const PT_DSCR: u32 = 44;
+pub const PT_REGS_COUNT: u32 = 44;
+pub const PT_FPR0: u32 = 48;
+pub const PT_FPR31: u32 = 110;
+pub const PT_FPSCR: u32 = 113;
+pub const PTRACE_GETVRREGS: u32 = 18;
+pub const PTRACE_SETVRREGS: u32 = 19;
+pub const PTRACE_GETEVRREGS: u32 = 20;
+pub const PTRACE_SETEVRREGS: u32 = 21;
+pub const PTRACE_GETVSRREGS: u32 = 27;
+pub const PTRACE_SETVSRREGS: u32 = 28;
+pub const PTRACE_SYSEMU: u32 = 29;
+pub const PTRACE_SYSEMU_SINGLESTEP: u32 = 30;
+pub const PTRACE_GET_DEBUGREG: u32 = 25;
+pub const PTRACE_SET_DEBUGREG: u32 = 26;
+pub const PTRACE_GETREGS: u32 = 12;
+pub const PTRACE_SETREGS: u32 = 13;
+pub const PTRACE_GETFPREGS: u32 = 14;
+pub const PTRACE_SETFPREGS: u32 = 15;
+pub const PTRACE_GETREGS64: u32 = 22;
+pub const PTRACE_SETREGS64: u32 = 23;
+pub const PPC_PTRACE_PEEKTEXT_3264: u32 = 149;
+pub const PPC_PTRACE_PEEKDATA_3264: u32 = 148;
+pub const PPC_PTRACE_POKETEXT_3264: u32 = 147;
+pub const PPC_PTRACE_POKEDATA_3264: u32 = 146;
+pub const PPC_PTRACE_PEEKUSR_3264: u32 = 145;
+pub const PPC_PTRACE_POKEUSR_3264: u32 = 144;
+pub const PTRACE_SINGLEBLOCK: u32 = 256;
+pub const PPC_PTRACE_GETHWDBGINFO: u32 = 137;
+pub const PPC_PTRACE_SETHWDEBUG: u32 = 136;
+pub const PPC_PTRACE_DELHWDEBUG: u32 = 135;
+pub const PPC_DEBUG_FEATURE_INSN_BP_RANGE: u32 = 1;
+pub const PPC_DEBUG_FEATURE_INSN_BP_MASK: u32 = 2;
+pub const PPC_DEBUG_FEATURE_DATA_BP_RANGE: u32 = 4;
+pub const PPC_DEBUG_FEATURE_DATA_BP_MASK: u32 = 8;
+pub const PPC_DEBUG_FEATURE_DATA_BP_DAWR: u32 = 16;
+pub const PPC_DEBUG_FEATURE_DATA_BP_ARCH_31: u32 = 32;
+pub const PPC_BREAKPOINT_TRIGGER_EXECUTE: u32 = 1;
+pub const PPC_BREAKPOINT_TRIGGER_READ: u32 = 2;
+pub const PPC_BREAKPOINT_TRIGGER_WRITE: u32 = 4;
+pub const PPC_BREAKPOINT_TRIGGER_RW: u32 = 6;
+pub const PPC_BREAKPOINT_MODE_EXACT: u32 = 0;
+pub const PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE: u32 = 1;
+pub const PPC_BREAKPOINT_MODE_RANGE_EXCLUSIVE: u32 = 2;
+pub const PPC_BREAKPOINT_MODE_MASK: u32 = 3;
+pub const PPC_BREAKPOINT_CONDITION_MODE: u32 = 3;
+pub const PPC_BREAKPOINT_CONDITION_NONE: u32 = 0;
+pub const PPC_BREAKPOINT_CONDITION_AND: u32 = 1;
+pub const PPC_BREAKPOINT_CONDITION_EXACT: u32 = 1;
+pub const PPC_BREAKPOINT_CONDITION_OR: u32 = 2;
+pub const PPC_BREAKPOINT_CONDITION_AND_OR: u32 = 3;
+pub const PPC_BREAKPOINT_CONDITION_BE_ALL: u32 = 16711680;
+pub const PPC_BREAKPOINT_CONDITION_BE_SHIFT: u32 = 16;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc/system.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/system.rs
new file mode 100644
index 0000000..c7fa9cb
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/system.rs
@@ -0,0 +1,106 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_short;
+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_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+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: [crate::ctypes::c_char; 8usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc/xdp.rs
new file mode 100644
index 0000000..f48ccc7
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc/xdp.rs
@@ -0,0 +1,195 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_short;
+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_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc64/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/bootparam.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/bootparam.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc64/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/btrfs.rs
new file mode 100644
index 0000000..099b954
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/btrfs.rs
@@ -0,0 +1,1874 @@
+/* automatically generated by rust-bindgen 0.71.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_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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 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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc64/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/elf_uapi.rs
new file mode 100644
index 0000000..495c30c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/elf_uapi.rs
@@ -0,0 +1,530 @@
+/* automatically generated by rust-bindgen 0.71.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_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc64/errno.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/errno.rs
new file mode 100644
index 0000000..5b018a2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/errno.rs
@@ -0,0 +1,135 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc64/general.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/general.rs
new file mode 100644
index 0000000..cc4d96f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/general.rs
@@ -0,0 +1,3361 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub type __s8 = crate::ctypes::c_schar;
+pub type __u8 = crate::ctypes::c_uchar;
+pub type __s16 = crate::ctypes::c_short;
+pub type __u16 = crate::ctypes::c_ushort;
+pub type __s32 = crate::ctypes::c_int;
+pub type __u32 = crate::ctypes::c_uint;
+pub type __s64 = crate::ctypes::c_long;
+pub type __u64 = crate::ctypes::c_ulong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type cap_user_header_t = *mut __user_cap_header_struct;
+pub type cap_user_data_t = *mut __user_cap_data_struct;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+pub type old_sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type __fsword_t = __kernel_long_t;
+pub type termios2 = termios;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 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; 1usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct old_sigaction {
+pub sa_handler: __sighandler_t,
+pub sa_mask: old_sigset_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_restorer: __sigrestore_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaction {
+pub sa_handler: __sighandler_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_restorer: __sigrestore_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_flags: crate::ctypes::c_int,
+pub ss_size: __kernel_size_t,
+}
+#[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_errno: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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_cc: [cc_t; 19usize],
+pub c_line: cc_t,
+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_cc: [cc_t; 19usize],
+pub c_line: cc_t,
+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_short,
+}
+#[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_uchar,
+pub c_cc: [crate::ctypes::c_uchar; 10usize],
+}
+#[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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulong,
+pub d_off: crate::ctypes::c_long,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_ulong,
+pub st_ino: __kernel_ino_t,
+pub st_nlink: crate::ctypes::c_ulong,
+pub st_mode: __kernel_mode_t,
+pub st_uid: __kernel_uid32_t,
+pub st_gid: __kernel_gid32_t,
+pub st_rdev: crate::ctypes::c_ulong,
+pub st_size: crate::ctypes::c_long,
+pub st_blksize: crate::ctypes::c_ulong,
+pub st_blocks: crate::ctypes::c_ulong,
+pub st_atime: crate::ctypes::c_ulong,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_ulong,
+pub st_mtime_nsec: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_ulong,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub __unused4: crate::ctypes::c_ulong,
+pub __unused5: crate::ctypes::c_ulong,
+pub __unused6: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat64 {
+pub st_dev: crate::ctypes::c_ulonglong,
+pub st_ino: crate::ctypes::c_ulonglong,
+pub st_mode: crate::ctypes::c_uint,
+pub st_nlink: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_uint,
+pub st_gid: crate::ctypes::c_uint,
+pub st_rdev: crate::ctypes::c_ulonglong,
+pub __pad2: crate::ctypes::c_ushort,
+pub st_size: crate::ctypes::c_longlong,
+pub st_blksize: crate::ctypes::c_int,
+pub st_blocks: crate::ctypes::c_longlong,
+pub st_atime: crate::ctypes::c_int,
+pub st_atime_nsec: crate::ctypes::c_uint,
+pub st_mtime: crate::ctypes::c_int,
+pub st_mtime_nsec: crate::ctypes::c_uint,
+pub st_ctime: crate::ctypes::c_int,
+pub st_ctime_nsec: crate::ctypes::c_uint,
+pub __unused4: crate::ctypes::c_uint,
+pub __unused5: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: __kernel_long_t,
+pub f_bsize: __kernel_long_t,
+pub f_blocks: __kernel_long_t,
+pub f_bfree: __kernel_long_t,
+pub f_bavail: __kernel_long_t,
+pub f_files: __kernel_long_t,
+pub f_ffree: __kernel_long_t,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __kernel_long_t,
+pub f_frsize: __kernel_long_t,
+pub f_flags: __kernel_long_t,
+pub f_spare: [__kernel_long_t; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: __kernel_long_t,
+pub f_bsize: __kernel_long_t,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __kernel_long_t,
+pub f_frsize: __kernel_long_t,
+pub f_flags: __kernel_long_t,
+pub f_spare: [__kernel_long_t; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct compat_statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[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; 1usize],
+}
+#[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_restorer: __sigrestore_t,
+pub sa_mask: kernel_sigset_t,
+}
+pub const LINUX_VERSION_CODE: u32 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+pub const LINUX_VERSION_SUBLEVEL: u32 = 0;
+pub const AT_DCACHEBSIZE: u32 = 19;
+pub const AT_ICACHEBSIZE: u32 = 20;
+pub const AT_UCACHEBSIZE: u32 = 21;
+pub const AT_IGNOREPPC: u32 = 22;
+pub const AT_SYSINFO_EHDR: u32 = 33;
+pub const AT_L1I_CACHESIZE: u32 = 40;
+pub const AT_L1I_CACHEGEOMETRY: u32 = 41;
+pub const AT_L1D_CACHESIZE: u32 = 42;
+pub const AT_L1D_CACHEGEOMETRY: u32 = 43;
+pub const AT_L2_CACHESIZE: u32 = 44;
+pub const AT_L2_CACHEGEOMETRY: u32 = 45;
+pub const AT_L3_CACHESIZE: u32 = 46;
+pub const AT_L3_CACHEGEOMETRY: u32 = 47;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const AT_VECTOR_SIZE_ARCH: u32 = 15;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+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_DIRECTORY: u32 = 16384;
+pub const O_NOFOLLOW: u32 = 32768;
+pub const O_LARGEFILE: u32 = 65536;
+pub const O_DIRECT: u32 = 131072;
+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_CREAT: u32 = 64;
+pub const O_EXCL: u32 = 128;
+pub const O_NOCTTY: u32 = 256;
+pub const O_TRUNC: u32 = 512;
+pub const O_APPEND: u32 = 1024;
+pub const O_NONBLOCK: u32 = 2048;
+pub const O_DSYNC: u32 = 4096;
+pub const FASYNC: u32 = 8192;
+pub const O_NOATIME: u32 = 262144;
+pub const O_CLOEXEC: u32 = 524288;
+pub const __O_SYNC: u32 = 1048576;
+pub const O_SYNC: u32 = 1052672;
+pub const O_PATH: u32 = 2097152;
+pub const __O_TMPFILE: u32 = 4194304;
+pub const O_TMPFILE: u32 = 4210688;
+pub const O_NDELAY: u32 = 2048;
+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_GETLK: u32 = 5;
+pub const F_SETLK: u32 = 6;
+pub const F_SETLKW: u32 = 7;
+pub const F_SETOWN: u32 = 8;
+pub const F_GETOWN: u32 = 9;
+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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 = 2048;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+pub const PROT_READ: u32 = 1;
+pub const PROT_WRITE: u32 = 2;
+pub const PROT_EXEC: u32 = 4;
+pub const PROT_SEM: u32 = 8;
+pub const PROT_NONE: u32 = 0;
+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_ANONYMOUS: u32 = 32;
+pub const MAP_POPULATE: u32 = 32768;
+pub const MAP_NONBLOCK: u32 = 65536;
+pub const MAP_STACK: u32 = 131072;
+pub const MAP_HUGETLB: u32 = 262144;
+pub const MAP_SYNC: u32 = 524288;
+pub const MAP_FIXED_NOREPLACE: u32 = 1048576;
+pub const MAP_UNINITIALIZED: u32 = 67108864;
+pub const MLOCK_ONFAULT: u32 = 1;
+pub const MS_ASYNC: u32 = 1;
+pub const MS_INVALIDATE: u32 = 2;
+pub const MS_SYNC: u32 = 4;
+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_HWPOISON: u32 = 100;
+pub const MADV_SOFT_OFFLINE: u32 = 101;
+pub const MADV_MERGEABLE: u32 = 12;
+pub const MADV_UNMERGEABLE: u32 = 13;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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 PROT_SAO: u32 = 16;
+pub const MAP_RENAME: u32 = 32;
+pub const MAP_NORESERVE: u32 = 64;
+pub const MAP_LOCKED: u32 = 128;
+pub const MAP_GROWSDOWN: u32 = 256;
+pub const MAP_DENYWRITE: u32 = 2048;
+pub const MAP_EXECUTABLE: u32 = 4096;
+pub const MCL_CURRENT: u32 = 8192;
+pub const MCL_FUTURE: u32 = 16384;
+pub const MCL_ONFAULT: u32 = 32768;
+pub const PKEY_DISABLE_EXECUTE: u32 = 4;
+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_DROPPABLE: u32 = 8;
+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 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 POLLWRNORM: u32 = 256;
+pub const POLLWRBAND: u32 = 512;
+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 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_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_RSS: u32 = 5;
+pub const RLIMIT_NPROC: u32 = 6;
+pub const RLIMIT_NOFILE: u32 = 7;
+pub const RLIMIT_MEMLOCK: u32 = 8;
+pub const RLIMIT_AS: u32 = 9;
+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_EXT: u32 = 7;
+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 = 64;
+pub const _NSIG_BPW: u32 = 64;
+pub const _NSIG_WORDS: u32 = 1;
+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 SIGABRT: u32 = 6;
+pub const SIGIOT: u32 = 6;
+pub const SIGBUS: u32 = 7;
+pub const SIGFPE: u32 = 8;
+pub const SIGKILL: u32 = 9;
+pub const SIGUSR1: u32 = 10;
+pub const SIGSEGV: u32 = 11;
+pub const SIGUSR2: u32 = 12;
+pub const SIGPIPE: u32 = 13;
+pub const SIGALRM: u32 = 14;
+pub const SIGTERM: u32 = 15;
+pub const SIGSTKFLT: u32 = 16;
+pub const SIGCHLD: u32 = 17;
+pub const SIGCONT: u32 = 18;
+pub const SIGSTOP: u32 = 19;
+pub const SIGTSTP: u32 = 20;
+pub const SIGTTIN: u32 = 21;
+pub const SIGTTOU: u32 = 22;
+pub const SIGURG: u32 = 23;
+pub const SIGXCPU: u32 = 24;
+pub const SIGXFSZ: u32 = 25;
+pub const SIGVTALRM: u32 = 26;
+pub const SIGPROF: u32 = 27;
+pub const SIGWINCH: u32 = 28;
+pub const SIGIO: u32 = 29;
+pub const SIGPOLL: u32 = 29;
+pub const SIGPWR: u32 = 30;
+pub const SIGSYS: u32 = 31;
+pub const SIGUNUSED: u32 = 31;
+pub const SIGRTMIN: u32 = 32;
+pub const SIGRTMAX: u32 = 64;
+pub const SA_RESTORER: u32 = 67108864;
+pub const MINSIGSTKSZ: u32 = 8192;
+pub const SIGSTKSZ: u32 = 32768;
+pub const SA_NOCLDSTOP: u32 = 1;
+pub const SA_NOCLDWAIT: u32 = 2;
+pub const SA_SIGINFO: u32 = 4;
+pub const SA_UNSUPPORTED: u32 = 1024;
+pub const SA_EXPOSE_TAGBITS: u32 = 2048;
+pub const SA_ONSTACK: u32 = 134217728;
+pub const SA_RESTART: u32 = 268435456;
+pub const SA_NODEFER: u32 = 1073741824;
+pub const SA_RESETHAND: u32 = 2147483648;
+pub const SA_NOMASK: u32 = 1073741824;
+pub const SA_ONESHOT: u32 = 2147483648;
+pub const SIG_BLOCK: u32 = 0;
+pub const SIG_UNBLOCK: u32 = 1;
+pub const SIG_SETMASK: u32 = 2;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+pub const TIOCM_LE: u32 = 1;
+pub const TIOCM_DTR: u32 = 2;
+pub const TIOCM_RTS: u32 = 4;
+pub const TIOCM_ST: u32 = 8;
+pub const TIOCM_SR: u32 = 16;
+pub const TIOCM_CTS: u32 = 32;
+pub const TIOCM_CAR: u32 = 64;
+pub const TIOCM_RNG: u32 = 128;
+pub const TIOCM_DSR: u32 = 256;
+pub const TIOCM_CD: u32 = 64;
+pub const TIOCM_RI: u32 = 128;
+pub const TIOCM_OUT1: u32 = 8192;
+pub const TIOCM_OUT2: u32 = 16384;
+pub const TIOCM_LOOP: u32 = 32768;
+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 TIOCSER_TEMT: u32 = 1;
+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 = 19;
+pub const VINTR: u32 = 0;
+pub const VQUIT: u32 = 1;
+pub const VERASE: u32 = 2;
+pub const VKILL: u32 = 3;
+pub const VEOF: u32 = 4;
+pub const VMIN: u32 = 5;
+pub const VEOL: u32 = 6;
+pub const VTIME: u32 = 7;
+pub const VEOL2: u32 = 8;
+pub const VSWTC: u32 = 9;
+pub const VWERASE: u32 = 10;
+pub const VREPRINT: u32 = 11;
+pub const VSUSP: u32 = 12;
+pub const VSTART: u32 = 13;
+pub const VSTOP: u32 = 14;
+pub const VLNEXT: u32 = 15;
+pub const VDISCARD: u32 = 16;
+pub const IXON: u32 = 512;
+pub const IXOFF: u32 = 1024;
+pub const IUCLC: u32 = 4096;
+pub const IMAXBEL: u32 = 8192;
+pub const IUTF8: u32 = 16384;
+pub const ONLCR: u32 = 2;
+pub const OLCUC: u32 = 4;
+pub const NLDLY: u32 = 768;
+pub const NL0: u32 = 0;
+pub const NL1: u32 = 256;
+pub const NL2: u32 = 512;
+pub const NL3: u32 = 768;
+pub const TABDLY: u32 = 3072;
+pub const TAB0: u32 = 0;
+pub const TAB1: u32 = 1024;
+pub const TAB2: u32 = 2048;
+pub const TAB3: u32 = 3072;
+pub const XTABS: u32 = 3072;
+pub const CRDLY: u32 = 12288;
+pub const CR0: u32 = 0;
+pub const CR1: u32 = 4096;
+pub const CR2: u32 = 8192;
+pub const CR3: u32 = 12288;
+pub const FFDLY: u32 = 16384;
+pub const FF0: u32 = 0;
+pub const FF1: u32 = 16384;
+pub const BSDLY: u32 = 32768;
+pub const BS0: u32 = 0;
+pub const BS1: u32 = 32768;
+pub const VTDLY: u32 = 65536;
+pub const VT0: u32 = 0;
+pub const VT1: u32 = 65536;
+pub const CBAUD: u32 = 255;
+pub const CBAUDEX: u32 = 0;
+pub const BOTHER: u32 = 31;
+pub const B57600: u32 = 16;
+pub const B115200: u32 = 17;
+pub const B230400: u32 = 18;
+pub const B460800: u32 = 19;
+pub const B500000: u32 = 20;
+pub const B576000: u32 = 21;
+pub const B921600: u32 = 22;
+pub const B1000000: u32 = 23;
+pub const B1152000: u32 = 24;
+pub const B1500000: u32 = 25;
+pub const B2000000: u32 = 26;
+pub const B2500000: u32 = 27;
+pub const B3000000: u32 = 28;
+pub const B3500000: u32 = 29;
+pub const B4000000: u32 = 30;
+pub const CSIZE: u32 = 768;
+pub const CS5: u32 = 0;
+pub const CS6: u32 = 256;
+pub const CS7: u32 = 512;
+pub const CS8: u32 = 768;
+pub const CSTOPB: u32 = 1024;
+pub const CREAD: u32 = 2048;
+pub const PARENB: u32 = 4096;
+pub const PARODD: u32 = 8192;
+pub const HUPCL: u32 = 16384;
+pub const CLOCAL: u32 = 32768;
+pub const CIBAUD: u32 = 16711680;
+pub const ISIG: u32 = 128;
+pub const ICANON: u32 = 256;
+pub const XCASE: u32 = 16384;
+pub const ECHO: u32 = 8;
+pub const ECHOE: u32 = 2;
+pub const ECHOK: u32 = 4;
+pub const ECHONL: u32 = 16;
+pub const NOFLSH: u32 = 2147483648;
+pub const TOSTOP: u32 = 4194304;
+pub const ECHOCTL: u32 = 64;
+pub const ECHOPRT: u32 = 32;
+pub const ECHOKE: u32 = 1;
+pub const FLUSHO: u32 = 8388608;
+pub const PENDIN: u32 = 536870912;
+pub const IEXTEN: u32 = 1024;
+pub const EXTPROC: u32 = 268435456;
+pub const TCSANOW: u32 = 0;
+pub const TCSADRAIN: u32 = 1;
+pub const TCSAFLUSH: u32 = 2;
+pub const NCC: u32 = 10;
+pub const _VINTR: u32 = 0;
+pub const _VQUIT: u32 = 1;
+pub const _VERASE: u32 = 2;
+pub const _VKILL: u32 = 3;
+pub const _VEOF: u32 = 4;
+pub const _VMIN: u32 = 5;
+pub const _VEOL: u32 = 6;
+pub const _VTIME: u32 = 7;
+pub const _VEOL2: u32 = 8;
+pub const _VSWTC: u32 = 9;
+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 UIO_FASTIOV: u32 = 8;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const __NR_restart_syscall: u32 = 0;
+pub const __NR_exit: u32 = 1;
+pub const __NR_fork: u32 = 2;
+pub const __NR_read: u32 = 3;
+pub const __NR_write: u32 = 4;
+pub const __NR_open: u32 = 5;
+pub const __NR_close: u32 = 6;
+pub const __NR_waitpid: u32 = 7;
+pub const __NR_creat: u32 = 8;
+pub const __NR_link: u32 = 9;
+pub const __NR_unlink: u32 = 10;
+pub const __NR_execve: u32 = 11;
+pub const __NR_chdir: u32 = 12;
+pub const __NR_time: u32 = 13;
+pub const __NR_mknod: u32 = 14;
+pub const __NR_chmod: u32 = 15;
+pub const __NR_lchown: u32 = 16;
+pub const __NR_break: u32 = 17;
+pub const __NR_oldstat: u32 = 18;
+pub const __NR_lseek: u32 = 19;
+pub const __NR_getpid: u32 = 20;
+pub const __NR_mount: u32 = 21;
+pub const __NR_umount: u32 = 22;
+pub const __NR_setuid: u32 = 23;
+pub const __NR_getuid: u32 = 24;
+pub const __NR_stime: u32 = 25;
+pub const __NR_ptrace: u32 = 26;
+pub const __NR_alarm: u32 = 27;
+pub const __NR_oldfstat: u32 = 28;
+pub const __NR_pause: u32 = 29;
+pub const __NR_utime: u32 = 30;
+pub const __NR_stty: u32 = 31;
+pub const __NR_gtty: u32 = 32;
+pub const __NR_access: u32 = 33;
+pub const __NR_nice: u32 = 34;
+pub const __NR_ftime: u32 = 35;
+pub const __NR_sync: u32 = 36;
+pub const __NR_kill: u32 = 37;
+pub const __NR_rename: u32 = 38;
+pub const __NR_mkdir: u32 = 39;
+pub const __NR_rmdir: u32 = 40;
+pub const __NR_dup: u32 = 41;
+pub const __NR_pipe: u32 = 42;
+pub const __NR_times: u32 = 43;
+pub const __NR_prof: u32 = 44;
+pub const __NR_brk: u32 = 45;
+pub const __NR_setgid: u32 = 46;
+pub const __NR_getgid: u32 = 47;
+pub const __NR_signal: u32 = 48;
+pub const __NR_geteuid: u32 = 49;
+pub const __NR_getegid: u32 = 50;
+pub const __NR_acct: u32 = 51;
+pub const __NR_umount2: u32 = 52;
+pub const __NR_lock: u32 = 53;
+pub const __NR_ioctl: u32 = 54;
+pub const __NR_fcntl: u32 = 55;
+pub const __NR_mpx: u32 = 56;
+pub const __NR_setpgid: u32 = 57;
+pub const __NR_ulimit: u32 = 58;
+pub const __NR_oldolduname: u32 = 59;
+pub const __NR_umask: u32 = 60;
+pub const __NR_chroot: u32 = 61;
+pub const __NR_ustat: u32 = 62;
+pub const __NR_dup2: u32 = 63;
+pub const __NR_getppid: u32 = 64;
+pub const __NR_getpgrp: u32 = 65;
+pub const __NR_setsid: u32 = 66;
+pub const __NR_sigaction: u32 = 67;
+pub const __NR_sgetmask: u32 = 68;
+pub const __NR_ssetmask: u32 = 69;
+pub const __NR_setreuid: u32 = 70;
+pub const __NR_setregid: u32 = 71;
+pub const __NR_sigsuspend: u32 = 72;
+pub const __NR_sigpending: u32 = 73;
+pub const __NR_sethostname: u32 = 74;
+pub const __NR_setrlimit: u32 = 75;
+pub const __NR_getrlimit: u32 = 76;
+pub const __NR_getrusage: u32 = 77;
+pub const __NR_gettimeofday: u32 = 78;
+pub const __NR_settimeofday: u32 = 79;
+pub const __NR_getgroups: u32 = 80;
+pub const __NR_setgroups: u32 = 81;
+pub const __NR_select: u32 = 82;
+pub const __NR_symlink: u32 = 83;
+pub const __NR_oldlstat: u32 = 84;
+pub const __NR_readlink: u32 = 85;
+pub const __NR_uselib: u32 = 86;
+pub const __NR_swapon: u32 = 87;
+pub const __NR_reboot: u32 = 88;
+pub const __NR_readdir: u32 = 89;
+pub const __NR_mmap: u32 = 90;
+pub const __NR_munmap: u32 = 91;
+pub const __NR_truncate: u32 = 92;
+pub const __NR_ftruncate: u32 = 93;
+pub const __NR_fchmod: u32 = 94;
+pub const __NR_fchown: u32 = 95;
+pub const __NR_getpriority: u32 = 96;
+pub const __NR_setpriority: u32 = 97;
+pub const __NR_profil: u32 = 98;
+pub const __NR_statfs: u32 = 99;
+pub const __NR_fstatfs: u32 = 100;
+pub const __NR_ioperm: u32 = 101;
+pub const __NR_socketcall: u32 = 102;
+pub const __NR_syslog: u32 = 103;
+pub const __NR_setitimer: u32 = 104;
+pub const __NR_getitimer: u32 = 105;
+pub const __NR_stat: u32 = 106;
+pub const __NR_lstat: u32 = 107;
+pub const __NR_fstat: u32 = 108;
+pub const __NR_olduname: u32 = 109;
+pub const __NR_iopl: u32 = 110;
+pub const __NR_vhangup: u32 = 111;
+pub const __NR_idle: u32 = 112;
+pub const __NR_vm86: u32 = 113;
+pub const __NR_wait4: u32 = 114;
+pub const __NR_swapoff: u32 = 115;
+pub const __NR_sysinfo: u32 = 116;
+pub const __NR_ipc: u32 = 117;
+pub const __NR_fsync: u32 = 118;
+pub const __NR_sigreturn: u32 = 119;
+pub const __NR_clone: u32 = 120;
+pub const __NR_setdomainname: u32 = 121;
+pub const __NR_uname: u32 = 122;
+pub const __NR_modify_ldt: u32 = 123;
+pub const __NR_adjtimex: u32 = 124;
+pub const __NR_mprotect: u32 = 125;
+pub const __NR_sigprocmask: u32 = 126;
+pub const __NR_create_module: u32 = 127;
+pub const __NR_init_module: u32 = 128;
+pub const __NR_delete_module: u32 = 129;
+pub const __NR_get_kernel_syms: u32 = 130;
+pub const __NR_quotactl: u32 = 131;
+pub const __NR_getpgid: u32 = 132;
+pub const __NR_fchdir: u32 = 133;
+pub const __NR_bdflush: u32 = 134;
+pub const __NR_sysfs: u32 = 135;
+pub const __NR_personality: u32 = 136;
+pub const __NR_afs_syscall: u32 = 137;
+pub const __NR_setfsuid: u32 = 138;
+pub const __NR_setfsgid: u32 = 139;
+pub const __NR__llseek: u32 = 140;
+pub const __NR_getdents: u32 = 141;
+pub const __NR__newselect: u32 = 142;
+pub const __NR_flock: u32 = 143;
+pub const __NR_msync: u32 = 144;
+pub const __NR_readv: u32 = 145;
+pub const __NR_writev: u32 = 146;
+pub const __NR_getsid: u32 = 147;
+pub const __NR_fdatasync: u32 = 148;
+pub const __NR__sysctl: u32 = 149;
+pub const __NR_mlock: u32 = 150;
+pub const __NR_munlock: u32 = 151;
+pub const __NR_mlockall: u32 = 152;
+pub const __NR_munlockall: u32 = 153;
+pub const __NR_sched_setparam: u32 = 154;
+pub const __NR_sched_getparam: u32 = 155;
+pub const __NR_sched_setscheduler: u32 = 156;
+pub const __NR_sched_getscheduler: u32 = 157;
+pub const __NR_sched_yield: u32 = 158;
+pub const __NR_sched_get_priority_max: u32 = 159;
+pub const __NR_sched_get_priority_min: u32 = 160;
+pub const __NR_sched_rr_get_interval: u32 = 161;
+pub const __NR_nanosleep: u32 = 162;
+pub const __NR_mremap: u32 = 163;
+pub const __NR_setresuid: u32 = 164;
+pub const __NR_getresuid: u32 = 165;
+pub const __NR_query_module: u32 = 166;
+pub const __NR_poll: u32 = 167;
+pub const __NR_nfsservctl: u32 = 168;
+pub const __NR_setresgid: u32 = 169;
+pub const __NR_getresgid: u32 = 170;
+pub const __NR_prctl: u32 = 171;
+pub const __NR_rt_sigreturn: u32 = 172;
+pub const __NR_rt_sigaction: u32 = 173;
+pub const __NR_rt_sigprocmask: u32 = 174;
+pub const __NR_rt_sigpending: u32 = 175;
+pub const __NR_rt_sigtimedwait: u32 = 176;
+pub const __NR_rt_sigqueueinfo: u32 = 177;
+pub const __NR_rt_sigsuspend: u32 = 178;
+pub const __NR_pread64: u32 = 179;
+pub const __NR_pwrite64: u32 = 180;
+pub const __NR_chown: u32 = 181;
+pub const __NR_getcwd: u32 = 182;
+pub const __NR_capget: u32 = 183;
+pub const __NR_capset: u32 = 184;
+pub const __NR_sigaltstack: u32 = 185;
+pub const __NR_sendfile: u32 = 186;
+pub const __NR_getpmsg: u32 = 187;
+pub const __NR_putpmsg: u32 = 188;
+pub const __NR_vfork: u32 = 189;
+pub const __NR_ugetrlimit: u32 = 190;
+pub const __NR_readahead: u32 = 191;
+pub const __NR_pciconfig_read: u32 = 198;
+pub const __NR_pciconfig_write: u32 = 199;
+pub const __NR_pciconfig_iobase: u32 = 200;
+pub const __NR_multiplexer: u32 = 201;
+pub const __NR_getdents64: u32 = 202;
+pub const __NR_pivot_root: u32 = 203;
+pub const __NR_madvise: u32 = 205;
+pub const __NR_mincore: u32 = 206;
+pub const __NR_gettid: u32 = 207;
+pub const __NR_tkill: u32 = 208;
+pub const __NR_setxattr: u32 = 209;
+pub const __NR_lsetxattr: u32 = 210;
+pub const __NR_fsetxattr: u32 = 211;
+pub const __NR_getxattr: u32 = 212;
+pub const __NR_lgetxattr: u32 = 213;
+pub const __NR_fgetxattr: u32 = 214;
+pub const __NR_listxattr: u32 = 215;
+pub const __NR_llistxattr: u32 = 216;
+pub const __NR_flistxattr: u32 = 217;
+pub const __NR_removexattr: u32 = 218;
+pub const __NR_lremovexattr: u32 = 219;
+pub const __NR_fremovexattr: u32 = 220;
+pub const __NR_futex: u32 = 221;
+pub const __NR_sched_setaffinity: u32 = 222;
+pub const __NR_sched_getaffinity: u32 = 223;
+pub const __NR_tuxcall: u32 = 225;
+pub const __NR_io_setup: u32 = 227;
+pub const __NR_io_destroy: u32 = 228;
+pub const __NR_io_getevents: u32 = 229;
+pub const __NR_io_submit: u32 = 230;
+pub const __NR_io_cancel: u32 = 231;
+pub const __NR_set_tid_address: u32 = 232;
+pub const __NR_fadvise64: u32 = 233;
+pub const __NR_exit_group: u32 = 234;
+pub const __NR_lookup_dcookie: u32 = 235;
+pub const __NR_epoll_create: u32 = 236;
+pub const __NR_epoll_ctl: u32 = 237;
+pub const __NR_epoll_wait: u32 = 238;
+pub const __NR_remap_file_pages: u32 = 239;
+pub const __NR_timer_create: u32 = 240;
+pub const __NR_timer_settime: u32 = 241;
+pub const __NR_timer_gettime: u32 = 242;
+pub const __NR_timer_getoverrun: u32 = 243;
+pub const __NR_timer_delete: u32 = 244;
+pub const __NR_clock_settime: u32 = 245;
+pub const __NR_clock_gettime: u32 = 246;
+pub const __NR_clock_getres: u32 = 247;
+pub const __NR_clock_nanosleep: u32 = 248;
+pub const __NR_swapcontext: u32 = 249;
+pub const __NR_tgkill: u32 = 250;
+pub const __NR_utimes: u32 = 251;
+pub const __NR_statfs64: u32 = 252;
+pub const __NR_fstatfs64: u32 = 253;
+pub const __NR_rtas: u32 = 255;
+pub const __NR_sys_debug_setcontext: u32 = 256;
+pub const __NR_migrate_pages: u32 = 258;
+pub const __NR_mbind: u32 = 259;
+pub const __NR_get_mempolicy: u32 = 260;
+pub const __NR_set_mempolicy: u32 = 261;
+pub const __NR_mq_open: u32 = 262;
+pub const __NR_mq_unlink: u32 = 263;
+pub const __NR_mq_timedsend: u32 = 264;
+pub const __NR_mq_timedreceive: u32 = 265;
+pub const __NR_mq_notify: u32 = 266;
+pub const __NR_mq_getsetattr: u32 = 267;
+pub const __NR_kexec_load: u32 = 268;
+pub const __NR_add_key: u32 = 269;
+pub const __NR_request_key: u32 = 270;
+pub const __NR_keyctl: u32 = 271;
+pub const __NR_waitid: u32 = 272;
+pub const __NR_ioprio_set: u32 = 273;
+pub const __NR_ioprio_get: u32 = 274;
+pub const __NR_inotify_init: u32 = 275;
+pub const __NR_inotify_add_watch: u32 = 276;
+pub const __NR_inotify_rm_watch: u32 = 277;
+pub const __NR_spu_run: u32 = 278;
+pub const __NR_spu_create: u32 = 279;
+pub const __NR_pselect6: u32 = 280;
+pub const __NR_ppoll: u32 = 281;
+pub const __NR_unshare: u32 = 282;
+pub const __NR_splice: u32 = 283;
+pub const __NR_tee: u32 = 284;
+pub const __NR_vmsplice: u32 = 285;
+pub const __NR_openat: u32 = 286;
+pub const __NR_mkdirat: u32 = 287;
+pub const __NR_mknodat: u32 = 288;
+pub const __NR_fchownat: u32 = 289;
+pub const __NR_futimesat: u32 = 290;
+pub const __NR_newfstatat: u32 = 291;
+pub const __NR_unlinkat: u32 = 292;
+pub const __NR_renameat: u32 = 293;
+pub const __NR_linkat: u32 = 294;
+pub const __NR_symlinkat: u32 = 295;
+pub const __NR_readlinkat: u32 = 296;
+pub const __NR_fchmodat: u32 = 297;
+pub const __NR_faccessat: u32 = 298;
+pub const __NR_get_robust_list: u32 = 299;
+pub const __NR_set_robust_list: u32 = 300;
+pub const __NR_move_pages: u32 = 301;
+pub const __NR_getcpu: u32 = 302;
+pub const __NR_epoll_pwait: u32 = 303;
+pub const __NR_utimensat: u32 = 304;
+pub const __NR_signalfd: u32 = 305;
+pub const __NR_timerfd_create: u32 = 306;
+pub const __NR_eventfd: u32 = 307;
+pub const __NR_sync_file_range2: u32 = 308;
+pub const __NR_fallocate: u32 = 309;
+pub const __NR_subpage_prot: u32 = 310;
+pub const __NR_timerfd_settime: u32 = 311;
+pub const __NR_timerfd_gettime: u32 = 312;
+pub const __NR_signalfd4: u32 = 313;
+pub const __NR_eventfd2: u32 = 314;
+pub const __NR_epoll_create1: u32 = 315;
+pub const __NR_dup3: u32 = 316;
+pub const __NR_pipe2: u32 = 317;
+pub const __NR_inotify_init1: u32 = 318;
+pub const __NR_perf_event_open: u32 = 319;
+pub const __NR_preadv: u32 = 320;
+pub const __NR_pwritev: u32 = 321;
+pub const __NR_rt_tgsigqueueinfo: u32 = 322;
+pub const __NR_fanotify_init: u32 = 323;
+pub const __NR_fanotify_mark: u32 = 324;
+pub const __NR_prlimit64: u32 = 325;
+pub const __NR_socket: u32 = 326;
+pub const __NR_bind: u32 = 327;
+pub const __NR_connect: u32 = 328;
+pub const __NR_listen: u32 = 329;
+pub const __NR_accept: u32 = 330;
+pub const __NR_getsockname: u32 = 331;
+pub const __NR_getpeername: u32 = 332;
+pub const __NR_socketpair: u32 = 333;
+pub const __NR_send: u32 = 334;
+pub const __NR_sendto: u32 = 335;
+pub const __NR_recv: u32 = 336;
+pub const __NR_recvfrom: u32 = 337;
+pub const __NR_shutdown: u32 = 338;
+pub const __NR_setsockopt: u32 = 339;
+pub const __NR_getsockopt: u32 = 340;
+pub const __NR_sendmsg: u32 = 341;
+pub const __NR_recvmsg: u32 = 342;
+pub const __NR_recvmmsg: u32 = 343;
+pub const __NR_accept4: u32 = 344;
+pub const __NR_name_to_handle_at: u32 = 345;
+pub const __NR_open_by_handle_at: u32 = 346;
+pub const __NR_clock_adjtime: u32 = 347;
+pub const __NR_syncfs: u32 = 348;
+pub const __NR_sendmmsg: u32 = 349;
+pub const __NR_setns: u32 = 350;
+pub const __NR_process_vm_readv: u32 = 351;
+pub const __NR_process_vm_writev: u32 = 352;
+pub const __NR_finit_module: u32 = 353;
+pub const __NR_kcmp: u32 = 354;
+pub const __NR_sched_setattr: u32 = 355;
+pub const __NR_sched_getattr: u32 = 356;
+pub const __NR_renameat2: u32 = 357;
+pub const __NR_seccomp: u32 = 358;
+pub const __NR_getrandom: u32 = 359;
+pub const __NR_memfd_create: u32 = 360;
+pub const __NR_bpf: u32 = 361;
+pub const __NR_execveat: u32 = 362;
+pub const __NR_switch_endian: u32 = 363;
+pub const __NR_userfaultfd: u32 = 364;
+pub const __NR_membarrier: u32 = 365;
+pub const __NR_mlock2: u32 = 378;
+pub const __NR_copy_file_range: u32 = 379;
+pub const __NR_preadv2: u32 = 380;
+pub const __NR_pwritev2: u32 = 381;
+pub const __NR_kexec_file_load: u32 = 382;
+pub const __NR_statx: u32 = 383;
+pub const __NR_pkey_alloc: u32 = 384;
+pub const __NR_pkey_free: u32 = 385;
+pub const __NR_pkey_mprotect: u32 = 386;
+pub const __NR_rseq: u32 = 387;
+pub const __NR_io_pgetevents: u32 = 388;
+pub const __NR_semtimedop: u32 = 392;
+pub const __NR_semget: u32 = 393;
+pub const __NR_semctl: u32 = 394;
+pub const __NR_shmget: u32 = 395;
+pub const __NR_shmctl: u32 = 396;
+pub const __NR_shmat: u32 = 397;
+pub const __NR_shmdt: u32 = 398;
+pub const __NR_msgget: u32 = 399;
+pub const __NR_msgsnd: u32 = 400;
+pub const __NR_msgrcv: u32 = 401;
+pub const __NR_msgctl: u32 = 402;
+pub const __NR_pidfd_send_signal: u32 = 424;
+pub const __NR_io_uring_setup: u32 = 425;
+pub const __NR_io_uring_enter: u32 = 426;
+pub const __NR_io_uring_register: u32 = 427;
+pub const __NR_open_tree: u32 = 428;
+pub const __NR_move_mount: u32 = 429;
+pub const __NR_fsopen: u32 = 430;
+pub const __NR_fsconfig: u32 = 431;
+pub const __NR_fsmount: u32 = 432;
+pub const __NR_fspick: u32 = 433;
+pub const __NR_pidfd_open: u32 = 434;
+pub const __NR_clone3: u32 = 435;
+pub const __NR_close_range: u32 = 436;
+pub const __NR_openat2: u32 = 437;
+pub const __NR_pidfd_getfd: u32 = 438;
+pub const __NR_faccessat2: u32 = 439;
+pub const __NR_process_madvise: u32 = 440;
+pub const __NR_epoll_pwait2: u32 = 441;
+pub const __NR_mount_setattr: u32 = 442;
+pub const __NR_quotactl_fd: u32 = 443;
+pub const __NR_landlock_create_ruleset: u32 = 444;
+pub const __NR_landlock_add_rule: u32 = 445;
+pub const __NR_landlock_restrict_self: u32 = 446;
+pub const __NR_process_mrelease: u32 = 448;
+pub const __NR_futex_waitv: u32 = 449;
+pub const __NR_set_mempolicy_home_node: u32 = 450;
+pub const __NR_cachestat: u32 = 451;
+pub const __NR_fchmodat2: u32 = 452;
+pub const __NR_map_shadow_stack: u32 = 453;
+pub const __NR_futex_wake: u32 = 454;
+pub const __NR_futex_wait: u32 = 455;
+pub const __NR_futex_requeue: u32 = 456;
+pub const __NR_statmount: u32 = 457;
+pub const __NR_listmount: u32 = 458;
+pub const __NR_lsm_get_self_attr: u32 = 459;
+pub const __NR_lsm_set_self_attr: u32 = 460;
+pub const __NR_lsm_list_modules: u32 = 461;
+pub const __NR_mseal: u32 = 462;
+pub const __NR_setxattrat: u32 = 463;
+pub const __NR_getxattrat: u32 = 464;
+pub const __NR_listxattrat: u32 = 465;
+pub const __NR_removexattrat: u32 = 466;
+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 = 2048;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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 = 2048;
+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 = 526336;
+pub const TFD_CREATE_FLAGS: u32 = 526336;
+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 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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd {
+MEMBARRIER_CMD_QUERY = 0,
+MEMBARRIER_CMD_GLOBAL = 1,
+MEMBARRIER_CMD_GLOBAL_EXPEDITED = 2,
+MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 4,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED = 8,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 16,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 32,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 64,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 128,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 256,
+MEMBARRIER_CMD_GET_REGISTRATIONS = 512,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd_flag {
+MEMBARRIER_CMD_FLAG_CPU = 1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_get_policy_ex_arg__bindgen_ty_1 {
+pub version: __u8,
+pub v1: fscrypt_policy_v1,
+pub v2: fscrypt_policy_v2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_key_specifier__bindgen_ty_1 {
+pub __reserved: [__u8; 32usize],
+pub descriptor: [__u8; 8usize],
+pub identifier: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigval {
+pub sival_int: crate::ctypes::c_int,
+pub sival_ptr: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields {
+pub _kill: __sifields__bindgen_ty_1,
+pub _timer: __sifields__bindgen_ty_2,
+pub _rt: __sifields__bindgen_ty_3,
+pub _sigchld: __sifields__bindgen_ty_4,
+pub _sigfault: __sifields__bindgen_ty_5,
+pub _sigpoll: __sifields__bindgen_ty_6,
+pub _sigsys: __sifields__bindgen_ty_7,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields__bindgen_ty_5__bindgen_ty_1 {
+pub _trapno: crate::ctypes::c_int,
+pub _addr_lsb: crate::ctypes::c_short,
+pub _addr_bnd: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1,
+pub _addr_pkey: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2,
+pub _perf: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union siginfo__bindgen_ty_1 {
+pub __bindgen_anon_1: siginfo__bindgen_ty_1__bindgen_ty_1,
+pub _si_pad: [crate::ctypes::c_int; 32usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigevent__bindgen_ty_1 {
+pub _pad: [crate::ctypes::c_int; 12usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/powerpc64/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/if_arp.rs
new file mode 100644
index 0000000..2ce5a62
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/if_arp.rs
@@ -0,0 +1,2763 @@
+/* automatically generated by rust-bindgen 0.71.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_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/powerpc64/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/if_ether.rs
new file mode 100644
index 0000000..24ad295
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/if_ether.rs
@@ -0,0 +1,176 @@
+/* automatically generated by rust-bindgen 0.71.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_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/powerpc64/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/if_packet.rs
new file mode 100644
index 0000000..568ddd9
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/if_packet.rs
@@ -0,0 +1,317 @@
+/* automatically generated by rust-bindgen 0.71.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_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/powerpc64/image.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc64/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/io_uring.rs
new file mode 100644
index 0000000..915a81a
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/io_uring.rs
@@ -0,0 +1,1342 @@
+/* automatically generated by rust-bindgen 0.71.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_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc64/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/ioctl.rs
new file mode 100644
index 0000000..aac874f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/ioctl.rs
@@ -0,0 +1,1501 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub const FIONREAD: u32 = 1074030207;
+pub const FIONBIO: u32 = 2147772030;
+pub const FIOCLEX: u32 = 536897025;
+pub const FIONCLEX: u32 = 536897026;
+pub const FIOASYNC: u32 = 2147772029;
+pub const FIOQSIZE: u32 = 1074292352;
+pub const TCXONC: u32 = 536900638;
+pub const TCFLSH: u32 = 536900639;
+pub const TIOCSCTTY: u32 = 21518;
+pub const TIOCSPGRP: u32 = 2147775606;
+pub const TIOCOUTQ: u32 = 1074033779;
+pub const TIOCSTI: u32 = 21522;
+pub const TIOCSWINSZ: u32 = 2148037735;
+pub const TIOCMGET: u32 = 21525;
+pub const TIOCMBIS: u32 = 21526;
+pub const TIOCMBIC: u32 = 21527;
+pub const TIOCMSET: u32 = 21528;
+pub const TIOCSSOFTCAR: u32 = 21530;
+pub const TIOCLINUX: u32 = 21532;
+pub const TIOCCONS: u32 = 21533;
+pub const TIOCSSERIAL: u32 = 21535;
+pub const TIOCPKT: u32 = 21536;
+pub const TIOCNOTTY: u32 = 21538;
+pub const TIOCSETD: u32 = 21539;
+pub const TIOCSBRK: u32 = 21543;
+pub const TIOCCBRK: u32 = 21544;
+pub const TIOCSRS485: u32 = 21551;
+pub const TIOCSPTLCK: u32 = 2147767345;
+pub const TIOCSIG: u32 = 2147767350;
+pub const TIOCVHANGUP: u32 = 21559;
+pub const TIOCSERCONFIG: u32 = 21587;
+pub const TIOCSERGWILD: u32 = 21588;
+pub const TIOCSERSWILD: u32 = 21589;
+pub const TIOCSLCKTRMIOS: u32 = 21591;
+pub const TIOCSERGSTRUCT: u32 = 21592;
+pub const TIOCSERGETLSR: u32 = 21593;
+pub const TIOCSERGETMULTI: u32 = 21594;
+pub const TIOCSERSETMULTI: u32 = 21595;
+pub const TIOCMIWAIT: u32 = 21596;
+pub const TCGETS: u32 = 1076655123;
+pub const TCGETA: u32 = 1075082263;
+pub const TCSBRK: u32 = 536900637;
+pub const TCSBRKP: u32 = 21541;
+pub const TCSETA: u32 = 2148824088;
+pub const TCSETAF: u32 = 2148824092;
+pub const TCSETAW: u32 = 2148824089;
+pub const TIOCEXCL: u32 = 21516;
+pub const TIOCNXCL: u32 = 21517;
+pub const TIOCGDEV: u32 = 1074025522;
+pub const TIOCGEXCL: u32 = 1074025536;
+pub const TIOCGICOUNT: u32 = 21597;
+pub const TIOCGLCKTRMIOS: u32 = 21590;
+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 TIOCGRS485: u32 = 21550;
+pub const TIOCGSERIAL: u32 = 21534;
+pub const TIOCGSID: u32 = 21545;
+pub const TIOCGSOFTCAR: u32 = 21529;
+pub const TIOCGWINSZ: u32 = 1074295912;
+pub const TCSETS: u32 = 2150396948;
+pub const TCSETSF: u32 = 2150396950;
+pub const TCSETSW: u32 = 2150396949;
+pub const TIOCGETC: u32 = 1074164754;
+pub const TIOCGETD: u32 = 21540;
+pub const TIOCGETP: u32 = 1074164744;
+pub const TIOCGLTC: u32 = 1074164852;
+pub const MTIOCGET: u32 = 1076915458;
+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 = 35073;
+pub const SIOCSPGRP: u32 = 35074;
+pub const FIOGETOWN: u32 = 35075;
+pub const SIOCGPGRP: u32 = 35076;
+pub const SIOCATMARK: u32 = 35077;
+pub const SIOCGSTAMP: u32 = 35078;
+pub const TIOCINQ: u32 = 1074030207;
+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 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;
+pub const TCGETS2: u32 = 1076655123;
+pub const TCSETS2: u32 = 2150396948;
+pub const TCSETSF2: u32 = 2150396950;
+pub const TCSETSW2: u32 = 2150396949;
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc64/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/landlock.rs
new file mode 100644
index 0000000..578a88a
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/landlock.rs
@@ -0,0 +1,106 @@
+/* automatically generated by rust-bindgen 0.71.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_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc64/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/loop_device.rs
new file mode 100644
index 0000000..b392337
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/loop_device.rs
@@ -0,0 +1,140 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/powerpc64/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/mempolicy.rs
new file mode 100644
index 0000000..ad4957c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/mempolicy.rs
@@ -0,0 +1,175 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
+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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc64/net.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/net.rs
new file mode 100644
index 0000000..5f681c3
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/net.rs
@@ -0,0 +1,3433 @@
+/* automatically generated by rust-bindgen 0.71.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_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 34usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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 SO_RCVLOWAT: u32 = 16;
+pub const SO_SNDLOWAT: u32 = 17;
+pub const SO_RCVTIMEO_OLD: u32 = 18;
+pub const SO_SNDTIMEO_OLD: u32 = 19;
+pub const SO_PASSCRED: u32 = 20;
+pub const SO_PEERCRED: u32 = 21;
+pub const SIOCGSTAMP_OLD: u32 = 35078;
+pub const SIOCGSTAMPNS_OLD: u32 = 35079;
+pub const SOL_SOCKET: u32 = 1;
+pub const SO_DEBUG: u32 = 1;
+pub const SO_REUSEADDR: u32 = 2;
+pub const SO_TYPE: u32 = 3;
+pub const SO_ERROR: u32 = 4;
+pub const SO_DONTROUTE: u32 = 5;
+pub const SO_BROADCAST: u32 = 6;
+pub const SO_SNDBUF: u32 = 7;
+pub const SO_RCVBUF: u32 = 8;
+pub const SO_SNDBUFFORCE: u32 = 32;
+pub const SO_RCVBUFFORCE: u32 = 33;
+pub const SO_KEEPALIVE: u32 = 9;
+pub const SO_OOBINLINE: u32 = 10;
+pub const SO_NO_CHECK: u32 = 11;
+pub const SO_PRIORITY: u32 = 12;
+pub const SO_LINGER: u32 = 13;
+pub const SO_BSDCOMPAT: u32 = 14;
+pub const SO_REUSEPORT: u32 = 15;
+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_ACCEPTCONN: u32 = 30;
+pub const SO_PEERSEC: u32 = 31;
+pub const SO_PASSSEC: u32 = 34;
+pub const SO_MARK: u32 = 36;
+pub const SO_PROTOCOL: u32 = 38;
+pub const SO_DOMAIN: u32 = 39;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+pub const SO_TIMESTAMP: u32 = 29;
+pub const SO_TIMESTAMPNS: u32 = 35;
+pub const SO_TIMESTAMPING: u32 = 37;
+pub const SO_RCVTIMEO: u32 = 18;
+pub const SO_SNDTIMEO: u32 = 19;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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 = 1;
+pub const SOCK_DGRAM: u32 = 2;
+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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc64/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/netlink.rs
new file mode 100644
index 0000000..3a703fe
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/netlink.rs
@@ -0,0 +1,2952 @@
+/* automatically generated by rust-bindgen 0.71.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_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/powerpc64/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/prctl.rs
new file mode 100644
index 0000000..5b4435a
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/prctl.rs
@@ -0,0 +1,268 @@
+/* automatically generated by rust-bindgen 0.71.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_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc64/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/ptrace.rs
new file mode 100644
index 0000000..7086145
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/ptrace.rs
@@ -0,0 +1,932 @@
+/* automatically generated by rust-bindgen 0.71.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_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pt_regs {
+pub gpr: [crate::ctypes::c_ulong; 32usize],
+pub nip: crate::ctypes::c_ulong,
+pub msr: crate::ctypes::c_ulong,
+pub orig_gpr3: crate::ctypes::c_ulong,
+pub ctr: crate::ctypes::c_ulong,
+pub link: crate::ctypes::c_ulong,
+pub xer: crate::ctypes::c_ulong,
+pub ccr: crate::ctypes::c_ulong,
+pub softe: crate::ctypes::c_ulong,
+pub trap: crate::ctypes::c_ulong,
+pub dar: crate::ctypes::c_ulong,
+pub dsisr: crate::ctypes::c_ulong,
+pub result: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ppc_debug_info {
+pub version: __u32,
+pub num_instruction_bps: __u32,
+pub num_data_bps: __u32,
+pub num_condition_regs: __u32,
+pub data_bp_alignment: __u32,
+pub sizeof_condition: __u32,
+pub features: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ppc_hw_breakpoint {
+pub version: __u32,
+pub trigger_type: __u32,
+pub addr_mode: __u32,
+pub condition_mode: __u32,
+pub addr: __u64,
+pub addr2: __u64,
+pub condition_value: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const PT_R0: u32 = 0;
+pub const PT_R1: u32 = 1;
+pub const PT_R2: u32 = 2;
+pub const PT_R3: u32 = 3;
+pub const PT_R4: u32 = 4;
+pub const PT_R5: u32 = 5;
+pub const PT_R6: u32 = 6;
+pub const PT_R7: u32 = 7;
+pub const PT_R8: u32 = 8;
+pub const PT_R9: u32 = 9;
+pub const PT_R10: u32 = 10;
+pub const PT_R11: u32 = 11;
+pub const PT_R12: u32 = 12;
+pub const PT_R13: u32 = 13;
+pub const PT_R14: u32 = 14;
+pub const PT_R15: u32 = 15;
+pub const PT_R16: u32 = 16;
+pub const PT_R17: u32 = 17;
+pub const PT_R18: u32 = 18;
+pub const PT_R19: u32 = 19;
+pub const PT_R20: u32 = 20;
+pub const PT_R21: u32 = 21;
+pub const PT_R22: u32 = 22;
+pub const PT_R23: u32 = 23;
+pub const PT_R24: u32 = 24;
+pub const PT_R25: u32 = 25;
+pub const PT_R26: u32 = 26;
+pub const PT_R27: u32 = 27;
+pub const PT_R28: u32 = 28;
+pub const PT_R29: u32 = 29;
+pub const PT_R30: u32 = 30;
+pub const PT_R31: u32 = 31;
+pub const PT_NIP: u32 = 32;
+pub const PT_MSR: u32 = 33;
+pub const PT_ORIG_R3: u32 = 34;
+pub const PT_CTR: u32 = 35;
+pub const PT_LNK: u32 = 36;
+pub const PT_XER: u32 = 37;
+pub const PT_CCR: u32 = 38;
+pub const PT_SOFTE: u32 = 39;
+pub const PT_TRAP: u32 = 40;
+pub const PT_DAR: u32 = 41;
+pub const PT_DSISR: u32 = 42;
+pub const PT_RESULT: u32 = 43;
+pub const PT_DSCR: u32 = 44;
+pub const PT_REGS_COUNT: u32 = 44;
+pub const PT_FPR0: u32 = 48;
+pub const PT_FPSCR: u32 = 80;
+pub const PT_VR0: u32 = 82;
+pub const PT_VSCR: u32 = 147;
+pub const PT_VRSAVE: u32 = 148;
+pub const PT_VSR0: u32 = 150;
+pub const PT_VSR31: u32 = 212;
+pub const PTRACE_GETVRREGS: u32 = 18;
+pub const PTRACE_SETVRREGS: u32 = 19;
+pub const PTRACE_GETEVRREGS: u32 = 20;
+pub const PTRACE_SETEVRREGS: u32 = 21;
+pub const PTRACE_GETVSRREGS: u32 = 27;
+pub const PTRACE_SETVSRREGS: u32 = 28;
+pub const PTRACE_SYSEMU: u32 = 29;
+pub const PTRACE_SYSEMU_SINGLESTEP: u32 = 30;
+pub const PTRACE_GET_DEBUGREG: u32 = 25;
+pub const PTRACE_SET_DEBUGREG: u32 = 26;
+pub const PTRACE_GETREGS: u32 = 12;
+pub const PTRACE_SETREGS: u32 = 13;
+pub const PTRACE_GETFPREGS: u32 = 14;
+pub const PTRACE_SETFPREGS: u32 = 15;
+pub const PTRACE_GETREGS64: u32 = 22;
+pub const PTRACE_SETREGS64: u32 = 23;
+pub const PPC_PTRACE_PEEKTEXT_3264: u32 = 149;
+pub const PPC_PTRACE_PEEKDATA_3264: u32 = 148;
+pub const PPC_PTRACE_POKETEXT_3264: u32 = 147;
+pub const PPC_PTRACE_POKEDATA_3264: u32 = 146;
+pub const PPC_PTRACE_PEEKUSR_3264: u32 = 145;
+pub const PPC_PTRACE_POKEUSR_3264: u32 = 144;
+pub const PTRACE_SINGLEBLOCK: u32 = 256;
+pub const PPC_PTRACE_GETHWDBGINFO: u32 = 137;
+pub const PPC_PTRACE_SETHWDEBUG: u32 = 136;
+pub const PPC_PTRACE_DELHWDEBUG: u32 = 135;
+pub const PPC_DEBUG_FEATURE_INSN_BP_RANGE: u32 = 1;
+pub const PPC_DEBUG_FEATURE_INSN_BP_MASK: u32 = 2;
+pub const PPC_DEBUG_FEATURE_DATA_BP_RANGE: u32 = 4;
+pub const PPC_DEBUG_FEATURE_DATA_BP_MASK: u32 = 8;
+pub const PPC_DEBUG_FEATURE_DATA_BP_DAWR: u32 = 16;
+pub const PPC_DEBUG_FEATURE_DATA_BP_ARCH_31: u32 = 32;
+pub const PPC_BREAKPOINT_TRIGGER_EXECUTE: u32 = 1;
+pub const PPC_BREAKPOINT_TRIGGER_READ: u32 = 2;
+pub const PPC_BREAKPOINT_TRIGGER_WRITE: u32 = 4;
+pub const PPC_BREAKPOINT_TRIGGER_RW: u32 = 6;
+pub const PPC_BREAKPOINT_MODE_EXACT: u32 = 0;
+pub const PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE: u32 = 1;
+pub const PPC_BREAKPOINT_MODE_RANGE_EXCLUSIVE: u32 = 2;
+pub const PPC_BREAKPOINT_MODE_MASK: u32 = 3;
+pub const PPC_BREAKPOINT_CONDITION_MODE: u32 = 3;
+pub const PPC_BREAKPOINT_CONDITION_NONE: u32 = 0;
+pub const PPC_BREAKPOINT_CONDITION_AND: u32 = 1;
+pub const PPC_BREAKPOINT_CONDITION_EXACT: u32 = 1;
+pub const PPC_BREAKPOINT_CONDITION_OR: u32 = 2;
+pub const PPC_BREAKPOINT_CONDITION_AND_OR: u32 = 3;
+pub const PPC_BREAKPOINT_CONDITION_BE_ALL: u32 = 16711680;
+pub const PPC_BREAKPOINT_CONDITION_BE_SHIFT: u32 = 16;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc64/system.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/system.rs
new file mode 100644
index 0000000..d88dee2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/system.rs
@@ -0,0 +1,138 @@
+/* automatically generated by rust-bindgen 0.71.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_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct sysinfo {
+pub uptime: __kernel_long_t,
+pub loads: [__kernel_ulong_t; 3usize],
+pub totalram: __kernel_ulong_t,
+pub freeram: __kernel_ulong_t,
+pub sharedram: __kernel_ulong_t,
+pub bufferram: __kernel_ulong_t,
+pub totalswap: __kernel_ulong_t,
+pub freeswap: __kernel_ulong_t,
+pub procs: __u16,
+pub pad: __u16,
+pub totalhigh: __kernel_ulong_t,
+pub freehigh: __kernel_ulong_t,
+pub mem_unit: __u32,
+pub _f: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct oldold_utsname {
+pub sysname: [crate::ctypes::c_char; 9usize],
+pub nodename: [crate::ctypes::c_char; 9usize],
+pub release: [crate::ctypes::c_char; 9usize],
+pub version: [crate::ctypes::c_char; 9usize],
+pub machine: [crate::ctypes::c_char; 9usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct old_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct new_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+pub domainname: [crate::ctypes::c_char; 65usize],
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/powerpc64/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/powerpc64/xdp.rs
new file mode 100644
index 0000000..6f311fe
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/powerpc64/xdp.rs
@@ -0,0 +1,197 @@
+/* automatically generated by rust-bindgen 0.71.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_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128 {
+pub u: [__u32; 4usize],
+}
+#[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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv32/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/bootparam.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/bootparam.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv32/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/btrfs.rs
new file mode 100644
index 0000000..2e88fe2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/btrfs.rs
@@ -0,0 +1,1866 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const _IOC_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv32/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/elf_uapi.rs
new file mode 100644
index 0000000..713e9d2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/elf_uapi.rs
@@ -0,0 +1,522 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv32/errno.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/errno.rs
new file mode 100644
index 0000000..5b018a2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/errno.rs
@@ -0,0 +1,135 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv32/general.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/general.rs
new file mode 100644
index 0000000..7c2f753
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/general.rs
@@ -0,0 +1,3202 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type cap_user_header_t = *mut __user_cap_header_struct;
+pub type cap_user_data_t = *mut __user_cap_data_struct;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+pub type old_sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type __fsword_t = __u32;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 32usize],
+}
+#[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 epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 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_handler: __sighandler_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_mask: sigset_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaltstack {
+pub ss_sp: *mut crate::ctypes::c_void,
+pub ss_flags: crate::ctypes::c_int,
+pub ss_size: __kernel_size_t,
+}
+#[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; 4usize],
+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; 4usize],
+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_errno: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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; 19usize],
+}
+#[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; 19usize],
+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; 19usize],
+pub c_ispeed: speed_t,
+pub c_ospeed: speed_t,
+}
+#[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_uchar,
+pub c_cc: [crate::ctypes::c_uchar; 8usize],
+}
+#[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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulonglong,
+pub d_off: crate::ctypes::c_longlong,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_ulong,
+pub st_ino: crate::ctypes::c_ulong,
+pub st_mode: crate::ctypes::c_uint,
+pub st_nlink: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_uint,
+pub st_gid: crate::ctypes::c_uint,
+pub st_rdev: crate::ctypes::c_ulong,
+pub __pad1: crate::ctypes::c_ulong,
+pub st_size: crate::ctypes::c_long,
+pub st_blksize: crate::ctypes::c_int,
+pub __pad2: crate::ctypes::c_int,
+pub st_blocks: crate::ctypes::c_long,
+pub st_atime: crate::ctypes::c_long,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_long,
+pub st_mtime_nsec: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_long,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub __unused4: crate::ctypes::c_uint,
+pub __unused5: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat64 {
+pub st_dev: crate::ctypes::c_ulonglong,
+pub st_ino: crate::ctypes::c_ulonglong,
+pub st_mode: crate::ctypes::c_uint,
+pub st_nlink: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_uint,
+pub st_gid: crate::ctypes::c_uint,
+pub st_rdev: crate::ctypes::c_ulonglong,
+pub __pad1: crate::ctypes::c_ulonglong,
+pub st_size: crate::ctypes::c_longlong,
+pub st_blksize: crate::ctypes::c_int,
+pub __pad2: crate::ctypes::c_int,
+pub st_blocks: crate::ctypes::c_longlong,
+pub st_atime: crate::ctypes::c_int,
+pub st_atime_nsec: crate::ctypes::c_uint,
+pub st_mtime: crate::ctypes::c_int,
+pub st_mtime_nsec: crate::ctypes::c_uint,
+pub st_ctime: crate::ctypes::c_int,
+pub st_ctime_nsec: crate::ctypes::c_uint,
+pub __unused4: crate::ctypes::c_uint,
+pub __unused5: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u32,
+pub f_bfree: __u32,
+pub f_bavail: __u32,
+pub f_files: __u32,
+pub f_ffree: __u32,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct compat_statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[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 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+pub const LINUX_VERSION_SUBLEVEL: u32 = 0;
+pub const AT_SYSINFO_EHDR: u32 = 33;
+pub const AT_L1I_CACHESIZE: u32 = 40;
+pub const AT_L1I_CACHEGEOMETRY: u32 = 41;
+pub const AT_L1D_CACHESIZE: u32 = 42;
+pub const AT_L1D_CACHEGEOMETRY: u32 = 43;
+pub const AT_L2_CACHESIZE: u32 = 44;
+pub const AT_L2_CACHEGEOMETRY: u32 = 45;
+pub const AT_L3_CACHESIZE: u32 = 46;
+pub const AT_L3_CACHEGEOMETRY: u32 = 47;
+pub const AT_VECTOR_SIZE_ARCH: u32 = 10;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+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_ACCMODE: u32 = 3;
+pub const O_RDONLY: u32 = 0;
+pub const O_WRONLY: u32 = 1;
+pub const O_RDWR: u32 = 2;
+pub const O_CREAT: u32 = 64;
+pub const O_EXCL: u32 = 128;
+pub const O_NOCTTY: u32 = 256;
+pub const O_TRUNC: u32 = 512;
+pub const O_APPEND: u32 = 1024;
+pub const O_NONBLOCK: u32 = 2048;
+pub const O_DSYNC: u32 = 4096;
+pub const FASYNC: u32 = 8192;
+pub const O_DIRECT: u32 = 16384;
+pub const O_LARGEFILE: u32 = 32768;
+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_SYNC: u32 = 1048576;
+pub const O_SYNC: u32 = 1052672;
+pub const O_PATH: u32 = 2097152;
+pub const __O_TMPFILE: u32 = 4194304;
+pub const O_TMPFILE: u32 = 4259840;
+pub const O_NDELAY: u32 = 2048;
+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_GETLK: u32 = 5;
+pub const F_SETLK: u32 = 6;
+pub const F_SETLKW: u32 = 7;
+pub const F_SETOWN: u32 = 8;
+pub const F_GETOWN: u32 = 9;
+pub const F_SETSIG: u32 = 10;
+pub const F_GETSIG: u32 = 11;
+pub const F_GETLK64: u32 = 12;
+pub const F_SETLK64: u32 = 13;
+pub const F_SETLKW64: u32 = 14;
+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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 = 2048;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+pub const PROT_READ: u32 = 1;
+pub const PROT_WRITE: u32 = 2;
+pub const PROT_EXEC: u32 = 4;
+pub const PROT_SEM: u32 = 8;
+pub const PROT_NONE: u32 = 0;
+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_ANONYMOUS: u32 = 32;
+pub const MAP_POPULATE: u32 = 32768;
+pub const MAP_NONBLOCK: u32 = 65536;
+pub const MAP_STACK: u32 = 131072;
+pub const MAP_HUGETLB: u32 = 262144;
+pub const MAP_SYNC: u32 = 524288;
+pub const MAP_FIXED_NOREPLACE: u32 = 1048576;
+pub const MAP_UNINITIALIZED: u32 = 67108864;
+pub const MLOCK_ONFAULT: u32 = 1;
+pub const MS_ASYNC: u32 = 1;
+pub const MS_INVALIDATE: u32 = 2;
+pub const MS_SYNC: u32 = 4;
+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_HWPOISON: u32 = 100;
+pub const MADV_SOFT_OFFLINE: u32 = 101;
+pub const MADV_MERGEABLE: u32 = 12;
+pub const MADV_UNMERGEABLE: u32 = 13;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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 MAP_GROWSDOWN: u32 = 256;
+pub const MAP_DENYWRITE: u32 = 2048;
+pub const MAP_EXECUTABLE: u32 = 4096;
+pub const MAP_LOCKED: u32 = 8192;
+pub const MAP_NORESERVE: u32 = 16384;
+pub const MCL_CURRENT: u32 = 1;
+pub const MCL_FUTURE: u32 = 2;
+pub const MCL_ONFAULT: u32 = 4;
+pub const SHADOW_STACK_SET_TOKEN: u32 = 1;
+pub const SHADOW_STACK_SET_MARKER: u32 = 2;
+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_DROPPABLE: u32 = 8;
+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 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 POLLWRNORM: u32 = 256;
+pub const POLLWRBAND: u32 = 512;
+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 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_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_RSS: u32 = 5;
+pub const RLIMIT_NPROC: u32 = 6;
+pub const RLIMIT_NOFILE: u32 = 7;
+pub const RLIMIT_MEMLOCK: u32 = 8;
+pub const RLIMIT_AS: u32 = 9;
+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_EXT: u32 = 7;
+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 = 64;
+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 SIGABRT: u32 = 6;
+pub const SIGIOT: u32 = 6;
+pub const SIGBUS: u32 = 7;
+pub const SIGFPE: u32 = 8;
+pub const SIGKILL: u32 = 9;
+pub const SIGUSR1: u32 = 10;
+pub const SIGSEGV: u32 = 11;
+pub const SIGUSR2: u32 = 12;
+pub const SIGPIPE: u32 = 13;
+pub const SIGALRM: u32 = 14;
+pub const SIGTERM: u32 = 15;
+pub const SIGSTKFLT: u32 = 16;
+pub const SIGCHLD: u32 = 17;
+pub const SIGCONT: u32 = 18;
+pub const SIGSTOP: u32 = 19;
+pub const SIGTSTP: u32 = 20;
+pub const SIGTTIN: u32 = 21;
+pub const SIGTTOU: u32 = 22;
+pub const SIGURG: u32 = 23;
+pub const SIGXCPU: u32 = 24;
+pub const SIGXFSZ: u32 = 25;
+pub const SIGVTALRM: u32 = 26;
+pub const SIGPROF: u32 = 27;
+pub const SIGWINCH: u32 = 28;
+pub const SIGIO: u32 = 29;
+pub const SIGPOLL: u32 = 29;
+pub const SIGPWR: u32 = 30;
+pub const SIGSYS: u32 = 31;
+pub const SIGUNUSED: u32 = 31;
+pub const SIGRTMIN: u32 = 32;
+pub const SIGRTMAX: u32 = 64;
+pub const MINSIGSTKSZ: u32 = 2048;
+pub const SIGSTKSZ: u32 = 8192;
+pub const SA_NOCLDSTOP: u32 = 1;
+pub const SA_NOCLDWAIT: u32 = 2;
+pub const SA_SIGINFO: u32 = 4;
+pub const SA_UNSUPPORTED: u32 = 1024;
+pub const SA_EXPOSE_TAGBITS: u32 = 2048;
+pub const SA_ONSTACK: u32 = 134217728;
+pub const SA_RESTART: u32 = 268435456;
+pub const SA_NODEFER: u32 = 1073741824;
+pub const SA_RESETHAND: u32 = 2147483648;
+pub const SA_NOMASK: u32 = 1073741824;
+pub const SA_ONESHOT: u32 = 2147483648;
+pub const SIG_BLOCK: u32 = 0;
+pub const SIG_UNBLOCK: u32 = 1;
+pub const SIG_SETMASK: u32 = 2;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 = 19;
+pub const VINTR: u32 = 0;
+pub const VQUIT: u32 = 1;
+pub const VERASE: u32 = 2;
+pub const VKILL: u32 = 3;
+pub const VEOF: u32 = 4;
+pub const VTIME: u32 = 5;
+pub const VMIN: u32 = 6;
+pub const VSWTC: u32 = 7;
+pub const VSTART: u32 = 8;
+pub const VSTOP: u32 = 9;
+pub const VSUSP: u32 = 10;
+pub const VEOL: u32 = 11;
+pub const VREPRINT: u32 = 12;
+pub const VDISCARD: u32 = 13;
+pub const VWERASE: u32 = 14;
+pub const VLNEXT: u32 = 15;
+pub const VEOL2: u32 = 16;
+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 TOSTOP: u32 = 256;
+pub const ECHOCTL: u32 = 512;
+pub const ECHOPRT: u32 = 1024;
+pub const ECHOKE: u32 = 2048;
+pub const FLUSHO: u32 = 4096;
+pub const PENDIN: u32 = 16384;
+pub const IEXTEN: u32 = 32768;
+pub const EXTPROC: u32 = 65536;
+pub const TCSANOW: u32 = 0;
+pub const TCSADRAIN: u32 = 1;
+pub const TCSAFLUSH: u32 = 2;
+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 TIOCSER_TEMT: u32 = 1;
+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 = 8;
+pub const TIOCM_SR: u32 = 16;
+pub const TIOCM_CTS: u32 = 32;
+pub const TIOCM_CAR: u32 = 64;
+pub const TIOCM_RNG: u32 = 128;
+pub const TIOCM_DSR: u32 = 256;
+pub const TIOCM_CD: u32 = 64;
+pub const TIOCM_RI: u32 = 128;
+pub const TIOCM_OUT1: u32 = 8192;
+pub const TIOCM_OUT2: u32 = 16384;
+pub const TIOCM_LOOP: u32 = 32768;
+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 UIO_FASTIOV: u32 = 8;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const __NR_io_setup: u32 = 0;
+pub const __NR_io_destroy: u32 = 1;
+pub const __NR_io_submit: u32 = 2;
+pub const __NR_io_cancel: u32 = 3;
+pub const __NR_setxattr: u32 = 5;
+pub const __NR_lsetxattr: u32 = 6;
+pub const __NR_fsetxattr: u32 = 7;
+pub const __NR_getxattr: u32 = 8;
+pub const __NR_lgetxattr: u32 = 9;
+pub const __NR_fgetxattr: u32 = 10;
+pub const __NR_listxattr: u32 = 11;
+pub const __NR_llistxattr: u32 = 12;
+pub const __NR_flistxattr: u32 = 13;
+pub const __NR_removexattr: u32 = 14;
+pub const __NR_lremovexattr: u32 = 15;
+pub const __NR_fremovexattr: u32 = 16;
+pub const __NR_getcwd: u32 = 17;
+pub const __NR_lookup_dcookie: u32 = 18;
+pub const __NR_eventfd2: u32 = 19;
+pub const __NR_epoll_create1: u32 = 20;
+pub const __NR_epoll_ctl: u32 = 21;
+pub const __NR_epoll_pwait: u32 = 22;
+pub const __NR_dup: u32 = 23;
+pub const __NR_dup3: u32 = 24;
+pub const __NR_fcntl64: u32 = 25;
+pub const __NR_inotify_init1: u32 = 26;
+pub const __NR_inotify_add_watch: u32 = 27;
+pub const __NR_inotify_rm_watch: u32 = 28;
+pub const __NR_ioctl: u32 = 29;
+pub const __NR_ioprio_set: u32 = 30;
+pub const __NR_ioprio_get: u32 = 31;
+pub const __NR_flock: u32 = 32;
+pub const __NR_mknodat: u32 = 33;
+pub const __NR_mkdirat: u32 = 34;
+pub const __NR_unlinkat: u32 = 35;
+pub const __NR_symlinkat: u32 = 36;
+pub const __NR_linkat: u32 = 37;
+pub const __NR_umount2: u32 = 39;
+pub const __NR_mount: u32 = 40;
+pub const __NR_pivot_root: u32 = 41;
+pub const __NR_nfsservctl: u32 = 42;
+pub const __NR_statfs64: u32 = 43;
+pub const __NR_fstatfs64: u32 = 44;
+pub const __NR_truncate64: u32 = 45;
+pub const __NR_ftruncate64: u32 = 46;
+pub const __NR_fallocate: u32 = 47;
+pub const __NR_faccessat: u32 = 48;
+pub const __NR_chdir: u32 = 49;
+pub const __NR_fchdir: u32 = 50;
+pub const __NR_chroot: u32 = 51;
+pub const __NR_fchmod: u32 = 52;
+pub const __NR_fchmodat: u32 = 53;
+pub const __NR_fchownat: u32 = 54;
+pub const __NR_fchown: u32 = 55;
+pub const __NR_openat: u32 = 56;
+pub const __NR_close: u32 = 57;
+pub const __NR_vhangup: u32 = 58;
+pub const __NR_pipe2: u32 = 59;
+pub const __NR_quotactl: u32 = 60;
+pub const __NR_getdents64: u32 = 61;
+pub const __NR_llseek: u32 = 62;
+pub const __NR_read: u32 = 63;
+pub const __NR_write: u32 = 64;
+pub const __NR_readv: u32 = 65;
+pub const __NR_writev: u32 = 66;
+pub const __NR_pread64: u32 = 67;
+pub const __NR_pwrite64: u32 = 68;
+pub const __NR_preadv: u32 = 69;
+pub const __NR_pwritev: u32 = 70;
+pub const __NR_sendfile64: u32 = 71;
+pub const __NR_signalfd4: u32 = 74;
+pub const __NR_vmsplice: u32 = 75;
+pub const __NR_splice: u32 = 76;
+pub const __NR_tee: u32 = 77;
+pub const __NR_readlinkat: u32 = 78;
+pub const __NR_sync: u32 = 81;
+pub const __NR_fsync: u32 = 82;
+pub const __NR_fdatasync: u32 = 83;
+pub const __NR_sync_file_range: u32 = 84;
+pub const __NR_timerfd_create: u32 = 85;
+pub const __NR_acct: u32 = 89;
+pub const __NR_capget: u32 = 90;
+pub const __NR_capset: u32 = 91;
+pub const __NR_personality: u32 = 92;
+pub const __NR_exit: u32 = 93;
+pub const __NR_exit_group: u32 = 94;
+pub const __NR_waitid: u32 = 95;
+pub const __NR_set_tid_address: u32 = 96;
+pub const __NR_unshare: u32 = 97;
+pub const __NR_set_robust_list: u32 = 99;
+pub const __NR_get_robust_list: u32 = 100;
+pub const __NR_getitimer: u32 = 102;
+pub const __NR_setitimer: u32 = 103;
+pub const __NR_kexec_load: u32 = 104;
+pub const __NR_init_module: u32 = 105;
+pub const __NR_delete_module: u32 = 106;
+pub const __NR_timer_create: u32 = 107;
+pub const __NR_timer_getoverrun: u32 = 109;
+pub const __NR_timer_delete: u32 = 111;
+pub const __NR_syslog: u32 = 116;
+pub const __NR_ptrace: u32 = 117;
+pub const __NR_sched_setparam: u32 = 118;
+pub const __NR_sched_setscheduler: u32 = 119;
+pub const __NR_sched_getscheduler: u32 = 120;
+pub const __NR_sched_getparam: u32 = 121;
+pub const __NR_sched_setaffinity: u32 = 122;
+pub const __NR_sched_getaffinity: u32 = 123;
+pub const __NR_sched_yield: u32 = 124;
+pub const __NR_sched_get_priority_max: u32 = 125;
+pub const __NR_sched_get_priority_min: u32 = 126;
+pub const __NR_restart_syscall: u32 = 128;
+pub const __NR_kill: u32 = 129;
+pub const __NR_tkill: u32 = 130;
+pub const __NR_tgkill: u32 = 131;
+pub const __NR_sigaltstack: u32 = 132;
+pub const __NR_rt_sigsuspend: u32 = 133;
+pub const __NR_rt_sigaction: u32 = 134;
+pub const __NR_rt_sigprocmask: u32 = 135;
+pub const __NR_rt_sigpending: u32 = 136;
+pub const __NR_rt_sigqueueinfo: u32 = 138;
+pub const __NR_rt_sigreturn: u32 = 139;
+pub const __NR_setpriority: u32 = 140;
+pub const __NR_getpriority: u32 = 141;
+pub const __NR_reboot: u32 = 142;
+pub const __NR_setregid: u32 = 143;
+pub const __NR_setgid: u32 = 144;
+pub const __NR_setreuid: u32 = 145;
+pub const __NR_setuid: u32 = 146;
+pub const __NR_setresuid: u32 = 147;
+pub const __NR_getresuid: u32 = 148;
+pub const __NR_setresgid: u32 = 149;
+pub const __NR_getresgid: u32 = 150;
+pub const __NR_setfsuid: u32 = 151;
+pub const __NR_setfsgid: u32 = 152;
+pub const __NR_times: u32 = 153;
+pub const __NR_setpgid: u32 = 154;
+pub const __NR_getpgid: u32 = 155;
+pub const __NR_getsid: u32 = 156;
+pub const __NR_setsid: u32 = 157;
+pub const __NR_getgroups: u32 = 158;
+pub const __NR_setgroups: u32 = 159;
+pub const __NR_uname: u32 = 160;
+pub const __NR_sethostname: u32 = 161;
+pub const __NR_setdomainname: u32 = 162;
+pub const __NR_getrusage: u32 = 165;
+pub const __NR_umask: u32 = 166;
+pub const __NR_prctl: u32 = 167;
+pub const __NR_getcpu: u32 = 168;
+pub const __NR_getpid: u32 = 172;
+pub const __NR_getppid: u32 = 173;
+pub const __NR_getuid: u32 = 174;
+pub const __NR_geteuid: u32 = 175;
+pub const __NR_getgid: u32 = 176;
+pub const __NR_getegid: u32 = 177;
+pub const __NR_gettid: u32 = 178;
+pub const __NR_sysinfo: u32 = 179;
+pub const __NR_mq_open: u32 = 180;
+pub const __NR_mq_unlink: u32 = 181;
+pub const __NR_mq_notify: u32 = 184;
+pub const __NR_mq_getsetattr: u32 = 185;
+pub const __NR_msgget: u32 = 186;
+pub const __NR_msgctl: u32 = 187;
+pub const __NR_msgrcv: u32 = 188;
+pub const __NR_msgsnd: u32 = 189;
+pub const __NR_semget: u32 = 190;
+pub const __NR_semctl: u32 = 191;
+pub const __NR_semop: u32 = 193;
+pub const __NR_shmget: u32 = 194;
+pub const __NR_shmctl: u32 = 195;
+pub const __NR_shmat: u32 = 196;
+pub const __NR_shmdt: u32 = 197;
+pub const __NR_socket: u32 = 198;
+pub const __NR_socketpair: u32 = 199;
+pub const __NR_bind: u32 = 200;
+pub const __NR_listen: u32 = 201;
+pub const __NR_accept: u32 = 202;
+pub const __NR_connect: u32 = 203;
+pub const __NR_getsockname: u32 = 204;
+pub const __NR_getpeername: u32 = 205;
+pub const __NR_sendto: u32 = 206;
+pub const __NR_recvfrom: u32 = 207;
+pub const __NR_setsockopt: u32 = 208;
+pub const __NR_getsockopt: u32 = 209;
+pub const __NR_shutdown: u32 = 210;
+pub const __NR_sendmsg: u32 = 211;
+pub const __NR_recvmsg: u32 = 212;
+pub const __NR_readahead: u32 = 213;
+pub const __NR_brk: u32 = 214;
+pub const __NR_munmap: u32 = 215;
+pub const __NR_mremap: u32 = 216;
+pub const __NR_add_key: u32 = 217;
+pub const __NR_request_key: u32 = 218;
+pub const __NR_keyctl: u32 = 219;
+pub const __NR_clone: u32 = 220;
+pub const __NR_execve: u32 = 221;
+pub const __NR_mmap2: u32 = 222;
+pub const __NR_fadvise64_64: u32 = 223;
+pub const __NR_swapon: u32 = 224;
+pub const __NR_swapoff: u32 = 225;
+pub const __NR_mprotect: u32 = 226;
+pub const __NR_msync: u32 = 227;
+pub const __NR_mlock: u32 = 228;
+pub const __NR_munlock: u32 = 229;
+pub const __NR_mlockall: u32 = 230;
+pub const __NR_munlockall: u32 = 231;
+pub const __NR_mincore: u32 = 232;
+pub const __NR_madvise: u32 = 233;
+pub const __NR_remap_file_pages: u32 = 234;
+pub const __NR_mbind: u32 = 235;
+pub const __NR_get_mempolicy: u32 = 236;
+pub const __NR_set_mempolicy: u32 = 237;
+pub const __NR_migrate_pages: u32 = 238;
+pub const __NR_move_pages: u32 = 239;
+pub const __NR_rt_tgsigqueueinfo: u32 = 240;
+pub const __NR_perf_event_open: u32 = 241;
+pub const __NR_accept4: u32 = 242;
+pub const __NR_riscv_hwprobe: u32 = 258;
+pub const __NR_riscv_flush_icache: u32 = 259;
+pub const __NR_prlimit64: u32 = 261;
+pub const __NR_fanotify_init: u32 = 262;
+pub const __NR_fanotify_mark: u32 = 263;
+pub const __NR_name_to_handle_at: u32 = 264;
+pub const __NR_open_by_handle_at: u32 = 265;
+pub const __NR_syncfs: u32 = 267;
+pub const __NR_setns: u32 = 268;
+pub const __NR_sendmmsg: u32 = 269;
+pub const __NR_process_vm_readv: u32 = 270;
+pub const __NR_process_vm_writev: u32 = 271;
+pub const __NR_kcmp: u32 = 272;
+pub const __NR_finit_module: u32 = 273;
+pub const __NR_sched_setattr: u32 = 274;
+pub const __NR_sched_getattr: u32 = 275;
+pub const __NR_renameat2: u32 = 276;
+pub const __NR_seccomp: u32 = 277;
+pub const __NR_getrandom: u32 = 278;
+pub const __NR_memfd_create: u32 = 279;
+pub const __NR_bpf: u32 = 280;
+pub const __NR_execveat: u32 = 281;
+pub const __NR_userfaultfd: u32 = 282;
+pub const __NR_membarrier: u32 = 283;
+pub const __NR_mlock2: u32 = 284;
+pub const __NR_copy_file_range: u32 = 285;
+pub const __NR_preadv2: u32 = 286;
+pub const __NR_pwritev2: u32 = 287;
+pub const __NR_pkey_mprotect: u32 = 288;
+pub const __NR_pkey_alloc: u32 = 289;
+pub const __NR_pkey_free: u32 = 290;
+pub const __NR_statx: u32 = 291;
+pub const __NR_rseq: u32 = 293;
+pub const __NR_kexec_file_load: u32 = 294;
+pub const __NR_clock_gettime64: u32 = 403;
+pub const __NR_clock_settime64: u32 = 404;
+pub const __NR_clock_adjtime64: u32 = 405;
+pub const __NR_clock_getres_time64: u32 = 406;
+pub const __NR_clock_nanosleep_time64: u32 = 407;
+pub const __NR_timer_gettime64: u32 = 408;
+pub const __NR_timer_settime64: u32 = 409;
+pub const __NR_timerfd_gettime64: u32 = 410;
+pub const __NR_timerfd_settime64: u32 = 411;
+pub const __NR_utimensat_time64: u32 = 412;
+pub const __NR_pselect6_time64: u32 = 413;
+pub const __NR_ppoll_time64: u32 = 414;
+pub const __NR_io_pgetevents_time64: u32 = 416;
+pub const __NR_recvmmsg_time64: u32 = 417;
+pub const __NR_mq_timedsend_time64: u32 = 418;
+pub const __NR_mq_timedreceive_time64: u32 = 419;
+pub const __NR_semtimedop_time64: u32 = 420;
+pub const __NR_rt_sigtimedwait_time64: u32 = 421;
+pub const __NR_futex_time64: u32 = 422;
+pub const __NR_sched_rr_get_interval_time64: u32 = 423;
+pub const __NR_pidfd_send_signal: u32 = 424;
+pub const __NR_io_uring_setup: u32 = 425;
+pub const __NR_io_uring_enter: u32 = 426;
+pub const __NR_io_uring_register: u32 = 427;
+pub const __NR_open_tree: u32 = 428;
+pub const __NR_move_mount: u32 = 429;
+pub const __NR_fsopen: u32 = 430;
+pub const __NR_fsconfig: u32 = 431;
+pub const __NR_fsmount: u32 = 432;
+pub const __NR_fspick: u32 = 433;
+pub const __NR_pidfd_open: u32 = 434;
+pub const __NR_clone3: u32 = 435;
+pub const __NR_close_range: u32 = 436;
+pub const __NR_openat2: u32 = 437;
+pub const __NR_pidfd_getfd: u32 = 438;
+pub const __NR_faccessat2: u32 = 439;
+pub const __NR_process_madvise: u32 = 440;
+pub const __NR_epoll_pwait2: u32 = 441;
+pub const __NR_mount_setattr: u32 = 442;
+pub const __NR_quotactl_fd: u32 = 443;
+pub const __NR_landlock_create_ruleset: u32 = 444;
+pub const __NR_landlock_add_rule: u32 = 445;
+pub const __NR_landlock_restrict_self: u32 = 446;
+pub const __NR_memfd_secret: u32 = 447;
+pub const __NR_process_mrelease: u32 = 448;
+pub const __NR_futex_waitv: u32 = 449;
+pub const __NR_set_mempolicy_home_node: u32 = 450;
+pub const __NR_cachestat: u32 = 451;
+pub const __NR_fchmodat2: u32 = 452;
+pub const __NR_map_shadow_stack: u32 = 453;
+pub const __NR_futex_wake: u32 = 454;
+pub const __NR_futex_wait: u32 = 455;
+pub const __NR_futex_requeue: u32 = 456;
+pub const __NR_statmount: u32 = 457;
+pub const __NR_listmount: u32 = 458;
+pub const __NR_lsm_get_self_attr: u32 = 459;
+pub const __NR_lsm_set_self_attr: u32 = 460;
+pub const __NR_lsm_list_modules: u32 = 461;
+pub const __NR_mseal: u32 = 462;
+pub const __NR_setxattrat: u32 = 463;
+pub const __NR_getxattrat: u32 = 464;
+pub const __NR_listxattrat: u32 = 465;
+pub const __NR_removexattrat: u32 = 466;
+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 = 2048;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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 = 2048;
+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 = 526336;
+pub const TFD_CREATE_FLAGS: u32 = 526336;
+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 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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[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; 13usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/riscv32/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/if_arp.rs
new file mode 100644
index 0000000..ee7947f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/if_arp.rs
@@ -0,0 +1,2755 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 id: __u16,
+pub type_flags: __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 __BITS_PER_LONG_LONG: u32 = 64;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/riscv32/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/if_ether.rs
new file mode 100644
index 0000000..877dce7
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/if_ether.rs
@@ -0,0 +1,168 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/riscv32/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/if_packet.rs
new file mode 100644
index 0000000..d69c763
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/if_packet.rs
@@ -0,0 +1,309 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 id: __u16,
+pub type_flags: __u16,
+pub max_num_members: __u32,
+}
+pub const __LITTLE_ENDIAN: u32 = 1234;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/riscv32/image.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv32/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/io_uring.rs
new file mode 100644
index 0000000..2f81a09
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/io_uring.rs
@@ -0,0 +1,1334 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv32/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/ioctl.rs
new file mode 100644
index 0000000..5e39360
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/ioctl.rs
@@ -0,0 +1,1502 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub const FIONREAD: u32 = 21531;
+pub const FIONBIO: u32 = 21537;
+pub const FIOCLEX: u32 = 21585;
+pub const FIONCLEX: u32 = 21584;
+pub const FIOASYNC: u32 = 21586;
+pub const FIOQSIZE: u32 = 21600;
+pub const TCXONC: u32 = 21514;
+pub const TCFLSH: u32 = 21515;
+pub const TIOCSCTTY: u32 = 21518;
+pub const TIOCSPGRP: u32 = 21520;
+pub const TIOCOUTQ: u32 = 21521;
+pub const TIOCSTI: u32 = 21522;
+pub const TIOCSWINSZ: u32 = 21524;
+pub const TIOCMGET: u32 = 21525;
+pub const TIOCMBIS: u32 = 21526;
+pub const TIOCMBIC: u32 = 21527;
+pub const TIOCMSET: u32 = 21528;
+pub const TIOCSSOFTCAR: u32 = 21530;
+pub const TIOCLINUX: u32 = 21532;
+pub const TIOCCONS: u32 = 21533;
+pub const TIOCSSERIAL: u32 = 21535;
+pub const TIOCPKT: u32 = 21536;
+pub const TIOCNOTTY: u32 = 21538;
+pub const TIOCSETD: u32 = 21539;
+pub const TIOCSBRK: u32 = 21543;
+pub const TIOCCBRK: u32 = 21544;
+pub const TIOCSRS485: u32 = 21551;
+pub const TIOCSPTLCK: u32 = 1074025521;
+pub const TIOCSIG: u32 = 1074025526;
+pub const TIOCVHANGUP: u32 = 21559;
+pub const TIOCSERCONFIG: u32 = 21587;
+pub const TIOCSERGWILD: u32 = 21588;
+pub const TIOCSERSWILD: u32 = 21589;
+pub const TIOCSLCKTRMIOS: u32 = 21591;
+pub const TIOCSERGSTRUCT: u32 = 21592;
+pub const TIOCSERGETLSR: u32 = 21593;
+pub const TIOCSERGETMULTI: u32 = 21594;
+pub const TIOCSERSETMULTI: u32 = 21595;
+pub const TIOCMIWAIT: u32 = 21596;
+pub const TCGETS: u32 = 21505;
+pub const TCGETA: u32 = 21509;
+pub const TCSBRK: u32 = 21513;
+pub const TCSBRKP: u32 = 21541;
+pub const TCSETA: u32 = 21510;
+pub const TCSETAF: u32 = 21512;
+pub const TCSETAW: u32 = 21511;
+pub const TIOCEXCL: u32 = 21516;
+pub const TIOCNXCL: u32 = 21517;
+pub const TIOCGDEV: u32 = 2147767346;
+pub const TIOCGEXCL: u32 = 2147767360;
+pub const TIOCGICOUNT: u32 = 21597;
+pub const TIOCGLCKTRMIOS: u32 = 21590;
+pub const TIOCGPGRP: u32 = 21519;
+pub const TIOCGPKT: u32 = 2147767352;
+pub const TIOCGPTLCK: u32 = 2147767353;
+pub const TIOCGPTN: u32 = 2147767344;
+pub const TIOCGPTPEER: u32 = 21569;
+pub const TIOCGRS485: u32 = 21550;
+pub const TIOCGSERIAL: u32 = 21534;
+pub const TIOCGSID: u32 = 21545;
+pub const TIOCGSOFTCAR: u32 = 21529;
+pub const TIOCGWINSZ: u32 = 21523;
+pub const TCGETS2: u32 = 2150388778;
+pub const TCGETX: u32 = 21554;
+pub const TCSETS: u32 = 21506;
+pub const TCSETS2: u32 = 1076646955;
+pub const TCSETSF: u32 = 21508;
+pub const TCSETSF2: u32 = 1076646957;
+pub const TCSETSW: u32 = 21507;
+pub const TCSETSW2: u32 = 1076646956;
+pub const TCSETX: u32 = 21555;
+pub const TCSETXF: u32 = 21556;
+pub const TCSETXW: u32 = 21557;
+pub const TIOCGETD: u32 = 21540;
+pub const MTIOCGET: u32 = 2149346562;
+pub const BLKSSZGET: u32 = 4712;
+pub const BLKPBSZGET: u32 = 4731;
+pub const BLKROSET: u32 = 4701;
+pub const BLKROGET: u32 = 4702;
+pub const BLKRRPART: u32 = 4703;
+pub const BLKGETSIZE: u32 = 4704;
+pub const BLKFLSBUF: u32 = 4705;
+pub const BLKRASET: u32 = 4706;
+pub const BLKRAGET: u32 = 4707;
+pub const BLKFRASET: u32 = 4708;
+pub const BLKFRAGET: u32 = 4709;
+pub const BLKSECTSET: u32 = 4710;
+pub const BLKSECTGET: u32 = 4711;
+pub const BLKPG: u32 = 4713;
+pub const BLKBSZGET: u32 = 2147750512;
+pub const BLKBSZSET: u32 = 1074008689;
+pub const BLKGETSIZE64: u32 = 2147750514;
+pub const BLKTRACESETUP: u32 = 3225948787;
+pub const BLKTRACESTART: u32 = 4724;
+pub const BLKTRACESTOP: u32 = 4725;
+pub const BLKTRACETEARDOWN: u32 = 4726;
+pub const BLKDISCARD: u32 = 4727;
+pub const BLKIOMIN: u32 = 4728;
+pub const BLKIOOPT: u32 = 4729;
+pub const BLKALIGNOFF: u32 = 4730;
+pub const BLKDISCARDZEROES: u32 = 4732;
+pub const BLKSECDISCARD: u32 = 4733;
+pub const BLKROTATIONAL: u32 = 4734;
+pub const BLKZEROOUT: u32 = 4735;
+pub const FIEMAP_MAX_OFFSET: u32 = 4294967295;
+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 = 2148575745;
+pub const UFFDIO_WAKE: u32 = 2148575746;
+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 = 46849;
+pub const NS_GET_PARENT: u32 = 46850;
+pub const NS_GET_NSTYPE: u32 = 46851;
+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 = 35073;
+pub const SIOCSPGRP: u32 = 35074;
+pub const FIOGETOWN: u32 = 35075;
+pub const SIOCGPGRP: u32 = 35076;
+pub const SIOCATMARK: u32 = 35077;
+pub const SIOCGSTAMP: u32 = 35078;
+pub const TIOCINQ: u32 = 21531;
+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 = 1;
+pub const FIGETBSZ: u32 = 2;
+pub const FIFREEZE: u32 = 3221510263;
+pub const FITHAW: u32 = 3221510264;
+pub const FITRIM: u32 = 3222820985;
+pub const FICLONE: u32 = 1074041865;
+pub const FICLONERANGE: u32 = 1075876877;
+pub const FIDEDUPERANGE: u32 = 3222836278;
+pub const FS_IOC_GETFLAGS: u32 = 2147771905;
+pub const FS_IOC_SETFLAGS: u32 = 1074030082;
+pub const FS_IOC_GETVERSION: u32 = 2147776001;
+pub const FS_IOC_SETVERSION: u32 = 1074034178;
+pub const FS_IOC_FIEMAP: u32 = 3223348747;
+pub const FS_IOC32_GETFLAGS: u32 = 2147771905;
+pub const FS_IOC32_SETFLAGS: u32 = 1074030082;
+pub const FS_IOC32_GETVERSION: u32 = 2147776001;
+pub const FS_IOC32_SETVERSION: u32 = 1074034178;
+pub const FS_IOC_FSGETXATTR: u32 = 2149341215;
+pub const FS_IOC_FSSETXATTR: u32 = 1075599392;
+pub const FS_IOC_GETFSLABEL: u32 = 2164298801;
+pub const FS_IOC_SETFSLABEL: u32 = 1090556978;
+pub const EXT4_IOC_GETVERSION: u32 = 2147771907;
+pub const EXT4_IOC_SETVERSION: u32 = 1074030084;
+pub const EXT4_IOC_GETVERSION_OLD: u32 = 2147776001;
+pub const EXT4_IOC_SETVERSION_OLD: u32 = 1074034178;
+pub const EXT4_IOC_GETRSVSZ: u32 = 2147771909;
+pub const EXT4_IOC_SETRSVSZ: u32 = 1074030086;
+pub const EXT4_IOC_GROUP_EXTEND: u32 = 1074030087;
+pub const EXT4_IOC_MIGRATE: u32 = 26121;
+pub const EXT4_IOC_ALLOC_DA_BLKS: u32 = 26124;
+pub const EXT4_IOC_RESIZE_FS: u32 = 1074292240;
+pub const EXT4_IOC_SWAP_BOOT: u32 = 26129;
+pub const EXT4_IOC_PRECACHE_EXTENTS: u32 = 26130;
+pub const EXT4_IOC_CLEAR_ES_CACHE: u32 = 26152;
+pub const EXT4_IOC_GETSTATE: u32 = 1074030121;
+pub const EXT4_IOC_GET_ES_CACHE: u32 = 3223348778;
+pub const EXT4_IOC_CHECKPOINT: u32 = 1074030123;
+pub const EXT4_IOC_SHUTDOWN: u32 = 2147768445;
+pub const EXT4_IOC32_GETVERSION: u32 = 2147771907;
+pub const EXT4_IOC32_SETVERSION: u32 = 1074030084;
+pub const EXT4_IOC32_GETRSVSZ: u32 = 2147771909;
+pub const EXT4_IOC32_SETRSVSZ: u32 = 1074030086;
+pub const EXT4_IOC32_GROUP_EXTEND: u32 = 1074030087;
+pub const EXT4_IOC32_GETVERSION_OLD: u32 = 2147776001;
+pub const EXT4_IOC32_SETVERSION_OLD: u32 = 1074034178;
+pub const VIDIOC_SUBDEV_QUERYSTD: u32 = 2148030015;
+pub const AUTOFS_DEV_IOCTL_CLOSEMOUNT: u32 = 3222836085;
+pub const LIRC_SET_SEND_CARRIER: u32 = 1074030867;
+pub const AUTOFS_IOC_PROTOSUBVER: u32 = 2147783527;
+pub const PTP_SYS_OFFSET_PRECISE: u32 = 3225435400;
+pub const FSI_SCOM_WRITE: u32 = 3223352066;
+pub const ATM_GETCIRANGE: u32 = 1074553226;
+pub const DMA_BUF_SET_NAME_B: u32 = 1074291201;
+pub const RIO_CM_EP_GET_LIST_SIZE: u32 = 3221512961;
+pub const TUNSETPERSIST: u32 = 1074025675;
+pub const FS_IOC_GET_ENCRYPTION_POLICY: u32 = 1074554389;
+pub const CEC_RECEIVE: u32 = 3224920326;
+pub const MGSL_IOCGPARAMS: u32 = 2149608705;
+pub const ENI_SETMULT: u32 = 1074553191;
+pub const RIO_GET_EVENT_MASK: u32 = 2147773710;
+pub const LIRC_GET_MAX_TIMEOUT: u32 = 2147772681;
+pub const USBDEVFS_CLAIMINTERFACE: u32 = 2147767567;
+pub const CHIOMOVE: u32 = 1075077889;
+pub const SONYPI_IOCGBATFLAGS: u32 = 2147579399;
+pub const BTRFS_IOC_SYNC: u32 = 37896;
+pub const VIDIOC_TRY_FMT: u32 = 3234616896;
+pub const LIRC_SET_REC_MODE: u32 = 1074030866;
+pub const VIDIOC_DQEVENT: u32 = 2155894361;
+pub const RPMSG_DESTROY_EPT_IOCTL: u32 = 46338;
+pub const UVCIOC_CTRL_MAP: u32 = 3227022624;
+pub const VHOST_SET_BACKEND_FEATURES: u32 = 1074310949;
+pub const VHOST_VSOCK_SET_GUEST_CID: u32 = 1074311008;
+pub const UI_SET_KEYBIT: u32 = 1074025829;
+pub const LIRC_SET_REC_TIMEOUT: u32 = 1074030872;
+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 = 1074310930;
+pub const RIO_ENABLE_DOORBELL_RANGE: u32 = 1074294025;
+pub const VIDIOC_TRY_EXT_CTRLS: u32 = 3222820425;
+pub const LIRC_GET_REC_MODE: u32 = 2147772674;
+pub const PPGETTIME: u32 = 2148036757;
+pub const BTRFS_IOC_RM_DEV: u32 = 1342215179;
+pub const ATM_SETBACKEND: u32 = 1073897970;
+pub const FSL_HV_IOCTL_PARTITION_START: u32 = 3222318851;
+pub const FBIO_WAITEVENT: u32 = 18056;
+pub const SWITCHTEC_IOCTL_PORT_TO_PFF: u32 = 3222034245;
+pub const NVME_IOCTL_IO_CMD: u32 = 3225964099;
+pub const IPMICTL_RECEIVE_MSG_TRUNC: u32 = 3222825227;
+pub const FDTWADDLE: u32 = 601;
+pub const NVME_IOCTL_SUBMIT_IO: u32 = 1076907586;
+pub const NILFS_IOCTL_SYNC: u32 = 2148036234;
+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 = 2147787781;
+pub const NS_GETPSTAT: u32 = 3222036833;
+pub const UI_SET_PROPBIT: u32 = 1074025838;
+pub const TUNSETFILTEREBPF: u32 = 2147767521;
+pub const RIO_MPORT_MAINT_COMPTAG_SET: u32 = 1074031874;
+pub const AUTOFS_DEV_IOCTL_VERSION: u32 = 3222836081;
+pub const WDIOC_SETOPTIONS: u32 = 2147768068;
+pub const VHOST_SCSI_SET_ENDPOINT: u32 = 1088991040;
+pub const MGSL_IOCGTXIDLE: u32 = 27907;
+pub const ATM_ADDLECSADDR: u32 = 1074553230;
+pub const FSL_HV_IOCTL_GETPROP: u32 = 3223891719;
+pub const FDGETPRM: u32 = 2149319172;
+pub const HIDIOCAPPLICATION: u32 = 18434;
+pub const ENI_MEMDUMP: u32 = 1074553184;
+pub const PTP_SYS_OFFSET2: u32 = 1128283406;
+pub const VIDIOC_SUBDEV_G_DV_TIMINGS: u32 = 3229898328;
+pub const DMA_BUF_SET_NAME_A: u32 = 1074029057;
+pub const PTP_PIN_GETFUNC: u32 = 3227532550;
+pub const PTP_SYS_OFFSET_EXTENDED: u32 = 3300932873;
+pub const DFL_FPGA_PORT_UINT_SET_IRQ: u32 = 1074312776;
+pub const RTC_EPOCH_READ: u32 = 2147774477;
+pub const VIDIOC_SUBDEV_S_SELECTION: u32 = 3225441854;
+pub const VIDIOC_QUERY_EXT_CTRL: u32 = 3236451943;
+pub const ATM_GETLECSADDR: u32 = 1074553232;
+pub const FSL_HV_IOCTL_PARTITION_STOP: u32 = 3221794564;
+pub const SONET_GETDIAG: u32 = 2147770644;
+pub const ATMMPC_DATA: u32 = 25049;
+pub const IPMICTL_UNREGISTER_FOR_CMD_CHANS: u32 = 2148296989;
+pub const HIDIOCGCOLLECTIONINDEX: u32 = 1075333136;
+pub const RPMSG_CREATE_EPT_IOCTL: u32 = 1076409601;
+pub const GPIOHANDLE_GET_LINE_VALUES_IOCTL: u32 = 3225465864;
+pub const UI_DEV_SETUP: u32 = 1079792899;
+pub const ISST_IF_IO_CMD: u32 = 1074068994;
+pub const RIO_MPORT_MAINT_READ_REMOTE: u32 = 2149084423;
+pub const VIDIOC_OMAP3ISP_HIST_CFG: u32 = 3224393412;
+pub const BLKGETNRZONES: u32 = 2147750533;
+pub const VIDIOC_G_MODULATOR: u32 = 3225703990;
+pub const VBG_IOCTL_WRITE_CORE_DUMP: u32 = 3223082515;
+pub const USBDEVFS_SETINTERFACE: u32 = 2148029700;
+pub const PPPIOCGCHAN: u32 = 2147775543;
+pub const EVIOCGVERSION: u32 = 2147763457;
+pub const VHOST_NET_SET_BACKEND: u32 = 1074310960;
+pub const USBDEVFS_REAPURBNDELAY: u32 = 1074025741;
+pub const RNDZAPENTCNT: u32 = 20996;
+pub const VIDIOC_G_PARM: u32 = 3234616853;
+pub const TUNGETDEVNETNS: u32 = 21731;
+pub const LIRC_SET_MEASURE_CARRIER_MODE: u32 = 1074030877;
+pub const VHOST_SET_VRING_ERR: u32 = 1074310946;
+pub const VDUSE_VQ_SETUP: u32 = 1075872020;
+pub const AUTOFS_IOC_SETTIMEOUT: u32 = 3221525348;
+pub const VIDIOC_S_FREQUENCY: u32 = 1076647481;
+pub const F2FS_IOC_SEC_TRIM_FILE: u32 = 1075377428;
+pub const FS_IOC_REMOVE_ENCRYPTION_KEY: u32 = 3225445912;
+pub const WDIOC_GETPRETIMEOUT: u32 = 2147768073;
+pub const USBDEVFS_DROP_PRIVILEGES: u32 = 1074025758;
+pub const BTRFS_IOC_SNAP_CREATE_V2: u32 = 1342215191;
+pub const VHOST_VSOCK_SET_RUNNING: u32 = 1074048865;
+pub const STP_SET_OPTIONS: u32 = 1074275586;
+pub const FBIO_RADEON_GET_MIRROR: u32 = 2147762179;
+pub const IVTVFB_IOC_DMA_FRAME: u32 = 1074550464;
+pub const IPMICTL_SEND_COMMAND: u32 = 2148821261;
+pub const VIDIOC_G_ENC_INDEX: u32 = 2283296332;
+pub const DFL_FPGA_FME_PORT_PR: u32 = 46720;
+pub const CHIOSVOLTAG: u32 = 1076912914;
+pub const ATM_SETESIF: u32 = 1074553229;
+pub const FW_CDEV_IOC_SEND_RESPONSE: u32 = 1075323652;
+pub const PMU_IOC_GET_MODEL: u32 = 2147762691;
+pub const JSIOCGBTNMAP: u32 = 2214619700;
+pub const USBDEVFS_HUB_PORTINFO: u32 = 2155894035;
+pub const VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS: u32 = 3222820363;
+pub const FDCLRPRM: u32 = 577;
+pub const BTRFS_IOC_SCRUB: u32 = 3288372251;
+pub const USBDEVFS_DISCONNECT: u32 = 21782;
+pub const TUNSETVNETBE: u32 = 1074025694;
+pub const ATMTCP_REMOVE: u32 = 24975;
+pub const VHOST_VDPA_GET_CONFIG: u32 = 2148052851;
+pub const PPPIOCGNPMODE: u32 = 3221779532;
+pub const FDGETDRVPRM: u32 = 2153251345;
+pub const TUNSETVNETLE: u32 = 1074025692;
+pub const PHN_SETREG: u32 = 1074294790;
+pub const PPPIOCDETACH: u32 = 1074033724;
+pub const MMTIMER_GETRES: u32 = 2147773697;
+pub const VIDIOC_SUBDEV_ENUMSTD: u32 = 3225966105;
+pub const PPGETFLAGS: u32 = 2147774618;
+pub const VDUSE_DEV_GET_FEATURES: u32 = 2148040977;
+pub const CAPI_MANUFACTURER_CMD: u32 = 3221766944;
+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 = 2148052512;
+pub const MEDIA_IOC_ENUM_LINKS: u32 = 3223092226;
+pub const F2FS_IOC_PRECACHE_EXTENTS: u32 = 62735;
+pub const DFL_FPGA_PORT_DMA_MAP: u32 = 46659;
+pub const MGSL_IOCGXCTRL: u32 = 27926;
+pub const FW_CDEV_IOC_SEND_REQUEST: u32 = 1076372225;
+pub const SONYPI_IOCGBLUE: u32 = 2147579400;
+pub const F2FS_IOC_DECOMPRESS_FILE: u32 = 62743;
+pub const I2OHTML: u32 = 3223087369;
+pub const VFIO_GET_API_VERSION: u32 = 15204;
+pub const IDT77105_GETSTATZ: u32 = 1074553139;
+pub const I2OPARMSET: u32 = 3222825219;
+pub const TEE_IOC_CANCEL: u32 = 2148049924;
+pub const PTP_SYS_OFFSET_PRECISE2: u32 = 3225435409;
+pub const DFL_FPGA_PORT_RESET: u32 = 46656;
+pub const PPPIOCGASYNCMAP: u32 = 2147775576;
+pub const EVIOCGKEYCODE_V2: u32 = 2150122756;
+pub const DM_DEV_SET_GEOMETRY: u32 = 3241737487;
+pub const HIDIOCSUSAGE: u32 = 1075333132;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323664;
+pub const PTP_EXTTS_REQUEST: u32 = 1074806018;
+pub const SWITCHTEC_IOCTL_EVENT_CTL: u32 = 3223869251;
+pub const WDIOC_SETPRETIMEOUT: u32 = 3221509896;
+pub const VHOST_SCSI_CLEAR_ENDPOINT: u32 = 1088991041;
+pub const JSIOCGAXES: u32 = 2147576337;
+pub const HIDIOCSFLAG: u32 = 1074022415;
+pub const PTP_PEROUT_REQUEST2: u32 = 1077427468;
+pub const PPWDATA: u32 = 1073836166;
+pub const PTP_CLOCK_GETCAPS: u32 = 2152742145;
+pub const FDGETMAXERRS: u32 = 2148794894;
+pub const TUNSETQUEUE: u32 = 1074025689;
+pub const PTP_ENABLE_PPS: u32 = 1074019588;
+pub const SIOCSIFATMTCP: u32 = 24960;
+pub const CEC_ADAP_G_LOG_ADDRS: u32 = 2153537795;
+pub const ND_IOCTL_ARS_CAP: u32 = 3223342593;
+pub const NBD_SET_BLKSIZE: u32 = 43777;
+pub const NBD_SET_TIMEOUT: u32 = 43785;
+pub const VHOST_SCSI_GET_ABI_VERSION: u32 = 1074048834;
+pub const RIO_UNMAP_INBOUND: u32 = 1074294034;
+pub const ATM_QUERYLOOP: u32 = 1074553172;
+pub const DFL_FPGA_GET_API_VERSION: u32 = 46592;
+pub const USBDEVFS_WAIT_FOR_RESUME: u32 = 21795;
+pub const FBIO_CURSOR: u32 = 3225961992;
+pub const RNDCLEARPOOL: u32 = 20998;
+pub const VIDIOC_QUERYSTD: u32 = 2148030015;
+pub const DMA_BUF_IOCTL_SYNC: u32 = 1074291200;
+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 = 2150389258;
+pub const PTP_ENABLE_PPS2: u32 = 1074019597;
+pub const PCITEST_CLEAR_IRQ: u32 = 20496;
+pub const IPMICTL_SET_GETS_EVENTS_CMD: u32 = 2147772688;
+pub const BTRFS_IOC_DEVICES_READY: u32 = 2415957031;
+pub const JSIOCGAXMAP: u32 = 2151705138;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER: u32 = 2148541196;
+pub const FW_CDEV_IOC_SET_ISO_CHANNELS: u32 = 1074799383;
+pub const RTC_WIE_OFF: u32 = 28688;
+pub const PPGETMODE: u32 = 2147774616;
+pub const VIDIOC_DBG_G_REGISTER: u32 = 3224917584;
+pub const PTP_SYS_OFFSET: u32 = 1128283397;
+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 = 37894;
+pub const INOTIFY_IOC_SETNEXTWD: u32 = 1074022656;
+pub const SNAPSHOT_GET_IMAGE_SIZE: u32 = 2148021006;
+pub const TUNDETACHFILTER: u32 = 1074287830;
+pub const ND_IOCTL_CLEAR_ERROR: u32 = 3223342596;
+pub const IOC_PR_CLEAR: u32 = 1074819277;
+pub const SCIF_READFROM: u32 = 3223876362;
+pub const PPPIOCGDEBUG: u32 = 2147775553;
+pub const BLKGETZONESZ: u32 = 2147750532;
+pub const HIDIOCGUSAGES: u32 = 3491514387;
+pub const SONYPI_IOCGTEMP: u32 = 2147579404;
+pub const UI_SET_MSCBIT: u32 = 1074025832;
+pub const APM_IOC_SUSPEND: u32 = 16642;
+pub const BTRFS_IOC_TREE_SEARCH: u32 = 3489698833;
+pub const RTC_PLL_GET: u32 = 2149347345;
+pub const RIO_CM_EP_GET_LIST: u32 = 3221512962;
+pub const USBDEVFS_DISCSIGNAL: u32 = 2148029710;
+pub const LIRC_GET_MIN_TIMEOUT: u32 = 2147772680;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY: u32 = 2174244674;
+pub const DM_TARGET_MSG: u32 = 3241737486;
+pub const SONYPI_IOCGBAT1REM: u32 = 2147644931;
+pub const EVIOCSFF: u32 = 1076643200;
+pub const TUNSETGROUP: u32 = 1074025678;
+pub const EVIOCGKEYCODE: u32 = 2148025604;
+pub const KCOV_REMOTE_ENABLE: u32 = 1075340134;
+pub const ND_IOCTL_GET_CONFIG_SIZE: u32 = 3222031876;
+pub const FDEJECT: u32 = 602;
+pub const TUNSETOFFLOAD: u32 = 1074025680;
+pub const PPPIOCCONNECT: u32 = 1074033722;
+pub const ATM_ADDADDR: u32 = 1074553224;
+pub const VDUSE_DEV_INJECT_CONFIG_IRQ: u32 = 33043;
+pub const AUTOFS_DEV_IOCTL_ASKUMOUNT: u32 = 3222836093;
+pub const VHOST_VDPA_GET_STATUS: u32 = 2147594097;
+pub const CCISS_PASSTHRU: u32 = 3226747403;
+pub const MGSL_IOCCLRMODCOUNT: u32 = 27919;
+pub const TEE_IOC_SUPPL_SEND: u32 = 2148574215;
+pub const ATMARPD_CTRL: u32 = 25057;
+pub const UI_ABS_SETUP: u32 = 1075598596;
+pub const UI_DEV_DESTROY: u32 = 21762;
+pub const BTRFS_IOC_QUOTA_CTL: u32 = 3222311976;
+pub const RTC_AIE_ON: u32 = 28673;
+pub const AUTOFS_IOC_EXPIRE: u32 = 2165085029;
+pub const PPPIOCSDEBUG: u32 = 1074033728;
+pub const GPIO_V2_LINE_SET_VALUES_IOCTL: u32 = 3222320143;
+pub const PPPIOCSMRU: u32 = 1074033746;
+pub const CCISS_DEREGDISK: u32 = 16908;
+pub const UI_DEV_CREATE: u32 = 21761;
+pub const FUSE_DEV_IOC_CLONE: u32 = 2147804416;
+pub const BTRFS_IOC_START_SYNC: u32 = 2148045848;
+pub const NILFS_IOCTL_DELETE_CHECKPOINT: u32 = 1074294401;
+pub const SNAPSHOT_AVAIL_SWAP_SIZE: u32 = 2148021011;
+pub const DM_TABLE_CLEAR: u32 = 3241737482;
+pub const CCISS_GETINTINFO: u32 = 2148024834;
+pub const PPPIOCSASYNCMAP: u32 = 1074033751;
+pub const I2OEVTGET: u32 = 2154326283;
+pub const NVME_IOCTL_RESET: u32 = 20036;
+pub const PPYIELD: u32 = 28813;
+pub const NVME_IOCTL_IO64_CMD: u32 = 3226488392;
+pub const TUNSETCARRIER: u32 = 1074025698;
+pub const DM_DEV_WAIT: u32 = 3241737480;
+pub const RTC_WIE_ON: u32 = 28687;
+pub const MEDIA_IOC_DEVICE_INFO: u32 = 3238034432;
+pub const RIO_CM_CHAN_CREATE: u32 = 3221381891;
+pub const MGSL_IOCSPARAMS: u32 = 1075866880;
+pub const RTC_SET_TIME: u32 = 1076129802;
+pub const VHOST_RESET_OWNER: u32 = 44802;
+pub const IOC_OPAL_PSID_REVERT_TPR: u32 = 1091072232;
+pub const AUTOFS_DEV_IOCTL_OPENMOUNT: u32 = 3222836084;
+pub const UDF_GETEABLOCK: u32 = 2147773505;
+pub const VFIO_IOMMU_MAP_DMA: u32 = 15217;
+pub const VIDIOC_SUBSCRIBE_EVENT: u32 = 1075861082;
+pub const HIDIOCGFLAG: u32 = 2147764238;
+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 = 1074835969;
+pub const CCISS_GETFIRMVER: u32 = 2147762696;
+pub const ND_IOCTL_ARS_START: u32 = 3223342594;
+pub const PPPIOCSMRRU: u32 = 1074033723;
+pub const CEC_ADAP_S_LOG_ADDRS: u32 = 3227279620;
+pub const RPROC_GET_SHUTDOWN_ON_RELEASE: u32 = 2147792642;
+pub const DMA_HEAP_IOCTL_ALLOC: u32 = 3222816768;
+pub const PPSETTIME: u32 = 1074294934;
+pub const RTC_ALM_READ: u32 = 2149871624;
+pub const VDUSE_SET_API_VERSION: u32 = 1074299137;
+pub const RIO_MPORT_MAINT_WRITE_REMOTE: u32 = 1075342600;
+pub const VIDIOC_SUBDEV_S_CROP: u32 = 3224917564;
+pub const USBDEVFS_CONNECT: u32 = 21783;
+pub const SYNC_IOC_FILE_INFO: u32 = 3224911364;
+pub const ATMARP_MKIP: u32 = 25058;
+pub const VFIO_IOMMU_SPAPR_TCE_GET_INFO: u32 = 15216;
+pub const CCISS_GETHEARTBEAT: u32 = 2147762694;
+pub const ATM_RSTADDR: u32 = 1074553223;
+pub const NBD_SET_SIZE: u32 = 43778;
+pub const UDF_GETVOLIDENT: u32 = 2147773506;
+pub const GPIO_V2_LINE_GET_VALUES_IOCTL: u32 = 3222320142;
+pub const MGSL_IOCSTXIDLE: u32 = 27906;
+pub const FSL_HV_IOCTL_SETPROP: u32 = 3223891720;
+pub const BTRFS_IOC_GET_DEV_STATS: u32 = 3288896564;
+pub const PPRSTATUS: u32 = 2147577985;
+pub const MGSL_IOCTXENABLE: u32 = 27908;
+pub const UDF_GETEASIZE: u32 = 2147773504;
+pub const NVME_IOCTL_ADMIN64_CMD: u32 = 3226488391;
+pub const VHOST_SET_OWNER: u32 = 44801;
+pub const RIO_ALLOC_DMA: u32 = 3222826259;
+pub const RIO_CM_CHAN_ACCEPT: u32 = 3221775111;
+pub const I2OHRTGET: u32 = 3222038785;
+pub const ATM_SETCIRANGE: u32 = 1074553227;
+pub const HPET_IE_ON: u32 = 26625;
+pub const PERF_EVENT_IOC_ID: u32 = 2147755015;
+pub const TUNSETSNDBUF: u32 = 1074025684;
+pub const PTP_PIN_SETFUNC: u32 = 1080048903;
+pub const PPPIOCDISCONN: u32 = 29753;
+pub const VIDIOC_QUERYCTRL: u32 = 3225703972;
+pub const PPEXCL: u32 = 28815;
+pub const PCITEST_MSI: u32 = 1074024451;
+pub const FDWERRORCLR: u32 = 598;
+pub const AUTOFS_IOC_FAIL: u32 = 37729;
+pub const USBDEVFS_IOCTL: u32 = 3222033682;
+pub const VIDIOC_S_STD: u32 = 1074288152;
+pub const F2FS_IOC_RESIZE_FS: u32 = 1074328848;
+pub const SONET_SETDIAG: u32 = 3221512466;
+pub const BTRFS_IOC_DEFRAG: u32 = 1342215170;
+pub const CCISS_GETDRIVVER: u32 = 2147762697;
+pub const IPMICTL_GET_TIMING_PARMS_CMD: u32 = 2148034839;
+pub const HPET_IRQFREQ: u32 = 1074030598;
+pub const ATM_GETESI: u32 = 1074553221;
+pub const CCISS_GETLUNINFO: u32 = 2148286993;
+pub const AUTOFS_DEV_IOCTL_ISMOUNTPOINT: u32 = 3222836094;
+pub const TEE_IOC_SHM_ALLOC: u32 = 3222316033;
+pub const PERF_EVENT_IOC_SET_BPF: u32 = 1074013192;
+pub const UDMABUF_CREATE_LIST: u32 = 1074296131;
+pub const VHOST_SET_LOG_BASE: u32 = 1074310916;
+pub const ZATM_GETPOOL: u32 = 1074553185;
+pub const BR2684_SETFILT: u32 = 1075601808;
+pub const RNDGETPOOL: u32 = 2148028930;
+pub const PPS_GETPARAMS: u32 = 2147774625;
+pub const IOC_PR_RESERVE: u32 = 1074819273;
+pub const VIDIOC_TRY_DECODER_CMD: u32 = 3225966177;
+pub const RIO_CM_CHAN_CLOSE: u32 = 1073898244;
+pub const VIDIOC_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const IOCTL_MEI_CONNECT_CLIENT_VTAG: u32 = 3222554628;
+pub const PMU_IOC_GET_BACKLIGHT: u32 = 2147762689;
+pub const USBDEVFS_GET_CAPABILITIES: u32 = 2147767578;
+pub const SCIF_WRITETO: u32 = 3223876363;
+pub const UDF_RELOCATE_BLOCKS: u32 = 3221515331;
+pub const FSL_HV_IOCTL_PARTITION_RESTART: u32 = 3221794561;
+pub const CCISS_REGNEWD: u32 = 16910;
+pub const FAT_IOCTL_SET_ATTRIBUTES: u32 = 1074033169;
+pub const VIDIOC_CREATE_BUFS: u32 = 3237500508;
+pub const CAPI_GET_VERSION: u32 = 3222291207;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY: u32 = 2228770626;
+pub const VFIO_EEH_PE_OP: u32 = 15225;
+pub const FW_CDEV_IOC_CREATE_ISO_CONTEXT: u32 = 3223331592;
+pub const F2FS_IOC_RELEASE_COMPRESS_BLOCKS: u32 = 2148070674;
+pub const NBD_SET_SIZE_BLOCKS: u32 = 43783;
+pub const IPMI_BMC_IOCTL_SET_SMS_ATN: u32 = 45312;
+pub const ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG: u32 = 3222319873;
+pub const VIDIOC_S_AUDOUT: u32 = 1077171762;
+pub const VIDIOC_S_FMT: u32 = 3234616837;
+pub const PPPIOCATTACH: u32 = 1074033725;
+pub const VHOST_GET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310948;
+pub const FS_IOC_MEASURE_VERITY: u32 = 3221513862;
+pub const CCISS_BIG_PASSTHRU: u32 = 3227009554;
+pub const IPMICTL_SET_MY_LUN_CMD: u32 = 2147772691;
+pub const PCITEST_LEGACY_IRQ: u32 = 20482;
+pub const USBDEVFS_SUBMITURB: u32 = 2150389002;
+pub const AUTOFS_IOC_READY: u32 = 37728;
+pub const BTRFS_IOC_SEND: u32 = 1078498342;
+pub const VIDIOC_G_EXT_CTRLS: u32 = 3222820423;
+pub const JSIOCSBTNMAP: u32 = 1140877875;
+pub const PPPIOCSFLAGS: u32 = 1074033753;
+pub const NVRAM_INIT: u32 = 28736;
+pub const RFKILL_IOCTL_NOINPUT: u32 = 20993;
+pub const BTRFS_IOC_BALANCE: u32 = 1342215180;
+pub const FS_IOC_GETFSMAP: u32 = 3233830971;
+pub const IPMICTL_GET_MY_CHANNEL_LUN_CMD: u32 = 2147772699;
+pub const STP_POLICY_ID_GET: u32 = 2148541697;
+pub const PPSETFLAGS: u32 = 1074032795;
+pub const CEC_ADAP_S_PHYS_ADDR: u32 = 1073897730;
+pub const ATMTCP_CREATE: u32 = 24974;
+pub const IPMI_BMC_IOCTL_FORCE_ABORT: u32 = 45314;
+pub const PPPIOCGXASYNCMAP: u32 = 2149610576;
+pub const VHOST_SET_VRING_CALL: u32 = 1074310945;
+pub const LIRC_GET_FEATURES: u32 = 2147772672;
+pub const GSMIOC_DISABLE_NET: u32 = 18179;
+pub const AUTOFS_IOC_CATATONIC: u32 = 37730;
+pub const NBD_DO_IT: u32 = 43779;
+pub const LIRC_SET_REC_CARRIER_RANGE: u32 = 1074030879;
+pub const IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772697;
+pub const EVIOCSCLOCKID: u32 = 1074021792;
+pub const USBDEVFS_FREE_STREAMS: u32 = 2148029725;
+pub const FSI_SCOM_RESET: u32 = 1074033411;
+pub const PMU_IOC_GRAB_BACKLIGHT: u32 = 2147762694;
+pub const VIDIOC_SUBDEV_S_FMT: u32 = 3227014661;
+pub const FDDEFPRM: u32 = 1075577411;
+pub const TEE_IOC_INVOKE: u32 = 2148574211;
+pub const USBDEVFS_BULK: u32 = 3222295810;
+pub const SCIF_VWRITETO: u32 = 3223876365;
+pub const SONYPI_IOCSBRT: u32 = 1073837568;
+pub const BTRFS_IOC_FILE_EXTENT_SAME: u32 = 3222836278;
+pub const RTC_PIE_ON: u32 = 28677;
+pub const BTRFS_IOC_SCAN_DEV: u32 = 1342215172;
+pub const PPPIOCXFERUNIT: u32 = 29774;
+pub const WDIOC_GETTIMEOUT: u32 = 2147768071;
+pub const BTRFS_IOC_SET_RECEIVED_SUBVOL: u32 = 3234370597;
+pub const DFL_FPGA_PORT_ERR_SET_IRQ: u32 = 1074312774;
+pub const FBIO_WAITFORVSYNC: u32 = 1074021920;
+pub const RTC_PIE_OFF: u32 = 28678;
+pub const EVIOCGRAB: u32 = 1074021776;
+pub const PMU_IOC_SET_BACKLIGHT: u32 = 1074020866;
+pub const EVIOCGREP: u32 = 2148025603;
+pub const PERF_EVENT_IOC_MODIFY_ATTRIBUTES: u32 = 1074013195;
+pub const UFFDIO_CONTINUE: u32 = 3223366151;
+pub const VDUSE_GET_API_VERSION: u32 = 2148040960;
+pub const RTC_RD_TIME: u32 = 2149871625;
+pub const FDMSGOFF: u32 = 582;
+pub const IPMICTL_REGISTER_FOR_CMD_CHANS: u32 = 2148296988;
+pub const CAPI_GET_ERRCODE: u32 = 2147631905;
+pub const PCITEST_SET_IRQTYPE: u32 = 1074024456;
+pub const VIDIOC_SUBDEV_S_EDID: u32 = 3223606825;
+pub const MATROXFB_SET_OUTPUT_MODE: u32 = 1074032378;
+pub const RIO_DEV_ADD: u32 = 1075866903;
+pub const VIDIOC_ENUM_FREQ_BANDS: u32 = 3225441893;
+pub const FBIO_RADEON_SET_MIRROR: u32 = 1074020356;
+pub const PCITEST_GET_IRQTYPE: u32 = 20489;
+pub const JSIOCGVERSION: u32 = 2147772929;
+pub const SONYPI_IOCSBLUE: u32 = 1073837577;
+pub const SNAPSHOT_PREF_IMAGE_SIZE: u32 = 13074;
+pub const F2FS_IOC_GET_FEATURES: u32 = 2147808524;
+pub const SCIF_REG: u32 = 3223876360;
+pub const NILFS_IOCTL_CLEAN_SEGMENTS: u32 = 1081634440;
+pub const FW_CDEV_IOC_INITIATE_BUS_RESET: u32 = 1074012933;
+pub const RIO_WAIT_FOR_ASYNC: u32 = 1074294038;
+pub const VHOST_SET_VRING_NUM: u32 = 1074310928;
+pub const AUTOFS_DEV_IOCTL_PROTOVER: u32 = 3222836082;
+pub const RIO_FREE_DMA: u32 = 1074294036;
+pub const MGSL_IOCRXENABLE: u32 = 27909;
+pub const IOCTL_VM_SOCKETS_GET_LOCAL_CID: u32 = 1977;
+pub const IPMICTL_SET_TIMING_PARMS_CMD: u32 = 2148034838;
+pub const PPPIOCGL2TPSTATS: u32 = 2152231990;
+pub const PERF_EVENT_IOC_PERIOD: u32 = 1074275332;
+pub const PTP_PIN_SETFUNC2: u32 = 1080048912;
+pub const CHIOEXCHANGE: u32 = 1075602178;
+pub const NILFS_IOCTL_GET_SUINFO: u32 = 2149084804;
+pub const CEC_DQEVENT: u32 = 3226493191;
+pub const UI_SET_SWBIT: u32 = 1074025837;
+pub const VHOST_VDPA_SET_CONFIG: u32 = 1074311028;
+pub const TUNSETIFF: u32 = 1074025674;
+pub const CHIOPOSITION: u32 = 1074553603;
+pub const IPMICTL_SET_MAINTENANCE_MODE_CMD: u32 = 1074030879;
+pub const BTRFS_IOC_DEFAULT_SUBVOL: u32 = 1074304019;
+pub const RIO_UNMAP_OUTBOUND: u32 = 1076391184;
+pub const CAPI_CLR_FLAGS: u32 = 2147762981;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323663;
+pub const MATROXFB_GET_OUTPUT_CONNECTION: u32 = 2147774200;
+pub const EVIOCSMASK: u32 = 1074808211;
+pub const BTRFS_IOC_FORGET_DEV: u32 = 1342215173;
+pub const CXL_MEM_QUERY_COMMANDS: u32 = 2148060673;
+pub const CEC_S_MODE: u32 = 1074028809;
+pub const MGSL_IOCSIF: u32 = 27914;
+pub const SWITCHTEC_IOCTL_PFF_TO_PORT: u32 = 3222034244;
+pub const PPSETMODE: u32 = 1074032768;
+pub const VFIO_DEVICE_SET_IRQS: u32 = 15214;
+pub const VIDIOC_PREPARE_BUF: u32 = 3225704029;
+pub const CEC_ADAP_G_CONNECTOR_INFO: u32 = 2151964938;
+pub const IOC_OPAL_WRITE_SHADOW_MBR: u32 = 1092645098;
+pub const VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: u32 = 3225441867;
+pub const UDMABUF_CREATE: u32 = 1075344706;
+pub const SONET_CLRDIAG: u32 = 3221512467;
+pub const PHN_SET_REG: u32 = 1074032641;
+pub const RNDADDTOENTCNT: u32 = 1074024961;
+pub const VBG_IOCTL_CHECK_BALLOON: u32 = 3223344657;
+pub const VIDIOC_OMAP3ISP_STAT_REQ: u32 = 3222820550;
+pub const PPS_FETCH: u32 = 3221516452;
+pub const RTC_AIE_OFF: u32 = 28674;
+pub const VFIO_GROUP_SET_CONTAINER: u32 = 15208;
+pub const FW_CDEV_IOC_RECEIVE_PHY_PACKETS: u32 = 1074275094;
+pub const VFIO_IOMMU_SPAPR_TCE_REMOVE: u32 = 15224;
+pub const VFIO_IOMMU_GET_INFO: u32 = 15216;
+pub const DM_DEV_SUSPEND: u32 = 3241737478;
+pub const F2FS_IOC_GET_COMPRESS_OPTION: u32 = 2147677461;
+pub const FW_CDEV_IOC_STOP_ISO: u32 = 1074012939;
+pub const GPIO_V2_GET_LINEINFO_IOCTL: u32 = 3238048773;
+pub const ATMMPC_CTRL: u32 = 25048;
+pub const PPPIOCSXASYNCMAP: u32 = 1075868751;
+pub const CHIOGSTATUS: u32 = 1074291464;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE: u32 = 3222807309;
+pub const RIO_MPORT_MAINT_PORT_IDX_GET: u32 = 2147773699;
+pub const CAPI_SET_FLAGS: u32 = 2147762980;
+pub const VFIO_GROUP_GET_DEVICE_FD: u32 = 15210;
+pub const VHOST_SET_MEM_TABLE: u32 = 1074310915;
+pub const MATROXFB_SET_OUTPUT_CONNECTION: u32 = 1074032376;
+pub const DFL_FPGA_PORT_GET_REGION_INFO: u32 = 46658;
+pub const VHOST_GET_FEATURES: u32 = 2148052736;
+pub const LIRC_GET_REC_RESOLUTION: u32 = 2147772679;
+pub const PACKET_CTRL_CMD: u32 = 3222820865;
+pub const LIRC_SET_TRANSMITTER_MASK: u32 = 1074030871;
+pub const BTRFS_IOC_ADD_DEV: u32 = 1342215178;
+pub const JSIOCGCORR: u32 = 2149870114;
+pub const VIDIOC_G_FMT: u32 = 3234616836;
+pub const RTC_EPOCH_SET: u32 = 1074032654;
+pub const CAPI_GET_PROFILE: u32 = 3225436937;
+pub const ATM_GETLOOP: u32 = 1074553170;
+pub const SCIF_LISTEN: u32 = 1074033410;
+pub const NBD_CLEAR_QUE: u32 = 43781;
+pub const F2FS_IOC_MOVE_RANGE: u32 = 3223385353;
+pub const LIRC_GET_LENGTH: u32 = 2147772687;
+pub const I8K_SET_FAN: u32 = 3221514631;
+pub const FDSETMAXERRS: u32 = 1075053132;
+pub const VIDIOC_SUBDEV_QUERYCAP: u32 = 2151699968;
+pub const SNAPSHOT_SET_SWAP_AREA: u32 = 1074541325;
+pub const LIRC_GET_REC_TIMEOUT: u32 = 2147772708;
+pub const EVIOCRMFF: u32 = 1074021761;
+pub const GPIO_GET_LINEEVENT_IOCTL: u32 = 3224417284;
+pub const PPRDATA: u32 = 2147577989;
+pub const RIO_MPORT_GET_PROPERTIES: u32 = 2150657284;
+pub const TUNSETVNETHDRSZ: u32 = 1074025688;
+pub const GPIO_GET_LINEINFO_IOCTL: u32 = 3225990146;
+pub const GSMIOC_GETCONF: u32 = 2152482560;
+pub const LIRC_GET_SEND_MODE: u32 = 2147772673;
+pub const PPPIOCSACTIVE: u32 = 1074295878;
+pub const SIOCGSTAMPNS_NEW: u32 = 2148567303;
+pub const IPMICTL_RECEIVE_MSG: u32 = 3222825228;
+pub const LIRC_SET_SEND_DUTY_CYCLE: u32 = 1074030869;
+pub const UI_END_FF_ERASE: u32 = 1074550219;
+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 = 43786;
+pub const VFIO_DEVICE_GET_REGION_INFO: u32 = 15212;
+pub const REISERFS_IOC_UNPACK: u32 = 1074056449;
+pub const FW_CDEV_IOC_REMOVE_DESCRIPTOR: u32 = 1074012935;
+pub const RIO_SET_EVENT_MASK: u32 = 1074031885;
+pub const SNAPSHOT_ALLOC_SWAP_PAGE: u32 = 2148021012;
+pub const VDUSE_VQ_INJECT_IRQ: u32 = 1074037015;
+pub const I2OPASSTHRU: u32 = 2148034828;
+pub const IOC_OPAL_SET_PW: u32 = 1109422304;
+pub const FSI_SCOM_READ: u32 = 3223352065;
+pub const VHOST_VDPA_GET_DEVICE_ID: u32 = 2147790704;
+pub const VIDIOC_QBUF: u32 = 3225703951;
+pub const VIDIOC_S_TUNER: u32 = 1079268894;
+pub const TUNGETVNETHDRSZ: u32 = 2147767511;
+pub const CAPI_NCCI_GETUNIT: u32 = 2147762983;
+pub const DFL_FPGA_PORT_UINT_GET_IRQ_NUM: u32 = 2147792455;
+pub const VIDIOC_OMAP3ISP_STAT_EN: u32 = 3221509831;
+pub const GPIO_V2_LINE_SET_CONFIG_IOCTL: u32 = 3239097357;
+pub const TEE_IOC_VERSION: u32 = 2148312064;
+pub const VIDIOC_LOG_STATUS: u32 = 22086;
+pub const IPMICTL_SEND_COMMAND_SETTIME: u32 = 2149345557;
+pub const VHOST_SET_LOG_FD: u32 = 1074048775;
+pub const SCIF_SEND: u32 = 3222827782;
+pub const VIDIOC_SUBDEV_G_FMT: u32 = 3227014660;
+pub const NS_ADJBUFLEV: u32 = 24931;
+pub const VIDIOC_DBG_S_REGISTER: u32 = 1077433935;
+pub const NILFS_IOCTL_RESIZE: u32 = 1074294411;
+pub const PHN_GETREG: u32 = 3221778437;
+pub const I2OSWDL: u32 = 3223087365;
+pub const VBG_IOCTL_VMMDEV_REQUEST_BIG: u32 = 22019;
+pub const JSIOCGBUTTONS: u32 = 2147576338;
+pub const VFIO_IOMMU_ENABLE: u32 = 15219;
+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 = 1074048887;
+pub const VIDIOC_SUBDEV_G_CROP: u32 = 3224917563;
+pub const VIDIOC_S_CROP: u32 = 1075074620;
+pub const WDIOC_GETTEMP: u32 = 2147768067;
+pub const IOC_OPAL_ADD_USR_TO_LR: u32 = 1092120804;
+pub const UI_SET_LEDBIT: u32 = 1074025833;
+pub const NBD_SET_SOCK: u32 = 43776;
+pub const BTRFS_IOC_SNAP_DESTROY_V2: u32 = 1342215231;
+pub const HIDIOCGCOLLECTIONINFO: u32 = 3222292497;
+pub const I2OSWUL: u32 = 3223087366;
+pub const IOCTL_MEI_NOTIFY_GET: u32 = 2147764227;
+pub const FDFMTTRK: u32 = 1074528840;
+pub const MMTIMER_GETBITS: u32 = 27908;
+pub const VIDIOC_ENUMSTD: u32 = 3225966105;
+pub const VHOST_GET_VRING_BASE: u32 = 3221794578;
+pub const VFIO_DEVICE_IOEVENTFD: u32 = 15220;
+pub const ATMARP_SETENTRY: u32 = 25059;
+pub const CCISS_REVALIDVOLS: u32 = 16906;
+pub const MGSL_IOCLOOPTXDONE: u32 = 27913;
+pub const RTC_VL_READ: u32 = 2147774483;
+pub const ND_IOCTL_ARS_STATUS: u32 = 3224391171;
+pub const RIO_DEV_DEL: u32 = 1075866904;
+pub const VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: u32 = 3223606797;
+pub const VIDIOC_SUBDEV_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const SONYPI_IOCSFAN: u32 = 1073837579;
+pub const SPIOCSTYPE: u32 = 1074032897;
+pub const IPMICTL_REGISTER_FOR_CMD: u32 = 2147641614;
+pub const I8K_GET_FAN: u32 = 3221514630;
+pub const TUNGETVNETBE: u32 = 2147767519;
+pub const AUTOFS_DEV_IOCTL_FAIL: u32 = 3222836087;
+pub const UI_END_FF_UPLOAD: u32 = 1080055241;
+pub const TOSH_SMM: u32 = 3222828176;
+pub const SONYPI_IOCGBAT2REM: u32 = 2147644933;
+pub const F2FS_IOC_GET_COMPRESS_BLOCKS: u32 = 2148070673;
+pub const PPPIOCSNPMODE: u32 = 1074295883;
+pub const USBDEVFS_CONTROL: u32 = 3222295808;
+pub const HIDIOCGUSAGE: u32 = 3222816779;
+pub const TUNSETTXFILTER: u32 = 1074025681;
+pub const TUNGETVNETLE: u32 = 2147767517;
+pub const VIDIOC_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const BTRFS_IOC_INO_PATHS: u32 = 3224933411;
+pub const MGSL_IOCGXSYNC: u32 = 27924;
+pub const HIDIOCGFIELDINFO: u32 = 3224913930;
+pub const VIDIOC_SUBDEV_G_STD: u32 = 2148029975;
+pub const I2OVALIDATE: u32 = 2147772680;
+pub const VIDIOC_TRY_ENCODER_CMD: u32 = 3223869006;
+pub const NILFS_IOCTL_GET_CPINFO: u32 = 2149084802;
+pub const VIDIOC_G_FREQUENCY: u32 = 3224131128;
+pub const VFAT_IOCTL_READDIR_SHORT: u32 = 2182640130;
+pub const ND_IOCTL_GET_CONFIG_DATA: u32 = 3222031877;
+pub const F2FS_IOC_RESERVE_COMPRESS_BLOCKS: u32 = 2148070675;
+pub const FDGETDRVSTAT: u32 = 2150892050;
+pub const SYNC_IOC_MERGE: u32 = 3224387075;
+pub const VIDIOC_S_DV_TIMINGS: u32 = 3229898327;
+pub const PPPIOCBRIDGECHAN: u32 = 1074033717;
+pub const LIRC_SET_SEND_MODE: u32 = 1074030865;
+pub const RIO_ENABLE_PORTWRITE_RANGE: u32 = 1074818315;
+pub const ATM_GETTYPE: u32 = 1074553220;
+pub const PHN_GETREGS: u32 = 3223875591;
+pub const FDSETEMSGTRESH: u32 = 586;
+pub const NILFS_IOCTL_GET_VINFO: u32 = 3222826630;
+pub const MGSL_IOCWAITEVENT: u32 = 3221515528;
+pub const CAPI_INSTALLED: u32 = 2147631906;
+pub const EVIOCGMASK: u32 = 2148550034;
+pub const BTRFS_IOC_SUBVOL_GETFLAGS: u32 = 2148045849;
+pub const FSL_HV_IOCTL_PARTITION_GET_STATUS: u32 = 3222056706;
+pub const MEDIA_IOC_ENUM_ENTITIES: u32 = 3238034433;
+pub const GSMIOC_GETFIRST: u32 = 2147763972;
+pub const FW_CDEV_IOC_FLUSH_ISO: u32 = 1074012952;
+pub const VIDIOC_DBG_G_CHIP_INFO: u32 = 3234354790;
+pub const F2FS_IOC_RELEASE_VOLATILE_WRITE: u32 = 62724;
+pub const CAPI_GET_SERIAL: u32 = 3221504776;
+pub const FDSETDRVPRM: u32 = 1079509648;
+pub const IOC_OPAL_SAVE: u32 = 1092120796;
+pub const VIDIOC_G_DV_TIMINGS: u32 = 3229898328;
+pub const TUNSETIFINDEX: u32 = 1074025690;
+pub const CCISS_SETINTINFO: u32 = 1074283011;
+pub const RTC_VL_CLR: u32 = 28692;
+pub const VIDIOC_REQBUFS: u32 = 3222558216;
+pub const USBDEVFS_REAPURBNDELAY32: u32 = 1074025741;
+pub const TEE_IOC_SHM_REGISTER: u32 = 3222840329;
+pub const USBDEVFS_SETCONFIGURATION: u32 = 2147767557;
+pub const CCISS_GETNODENAME: u32 = 2148549124;
+pub const VIDIOC_SUBDEV_S_FRAME_INTERVAL: u32 = 3224393238;
+pub const VIDIOC_ENUM_FRAMESIZES: u32 = 3224131146;
+pub const VFIO_DEVICE_PCI_HOT_RESET: u32 = 15217;
+pub const FW_CDEV_IOC_SEND_BROADCAST_REQUEST: u32 = 1076372242;
+pub const LPSETTIMEOUT_NEW: u32 = 1074791951;
+pub const RIO_CM_MPORT_GET_LIST: u32 = 3221512971;
+pub const FW_CDEV_IOC_QUEUE_ISO: u32 = 3222807305;
+pub const FDRAWCMD: u32 = 600;
+pub const SCIF_UNREG: u32 = 3222303497;
+pub const PPPIOCGIDLE64: u32 = 2148561983;
+pub const USBDEVFS_RELEASEINTERFACE: u32 = 2147767568;
+pub const VIDIOC_CROPCAP: u32 = 3224131130;
+pub const DFL_FPGA_PORT_GET_INFO: u32 = 46657;
+pub const PHN_SET_REGS: u32 = 1074032643;
+pub const ATMLEC_DATA: u32 = 25041;
+pub const PPPOEIOCDFWD: u32 = 45313;
+pub const VIDIOC_S_SELECTION: u32 = 3225441887;
+pub const SNAPSHOT_FREE_SWAP_PAGES: u32 = 13065;
+pub const BTRFS_IOC_LOGICAL_INO: u32 = 3224933412;
+pub const VIDIOC_S_CTRL: u32 = 3221771804;
+pub const ZATM_SETPOOL: u32 = 1074553187;
+pub const MTIOCPOS: u32 = 2147773699;
+pub const PMU_IOC_SLEEP: u32 = 16896;
+pub const AUTOFS_DEV_IOCTL_PROTOSUBVER: u32 = 3222836083;
+pub const VBG_IOCTL_CHANGE_FILTER_MASK: u32 = 3223344652;
+pub const NILFS_IOCTL_GET_SUSTAT: u32 = 2150657669;
+pub const VIDIOC_QUERYCAP: u32 = 2154321408;
+pub const HPET_INFO: u32 = 2148296707;
+pub const VIDIOC_AM437X_CCDC_CFG: u32 = 1074026177;
+pub const DM_LIST_DEVICES: u32 = 3241737474;
+pub const TUNSETOWNER: u32 = 1074025676;
+pub const VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: u32 = 3223344654;
+pub const RNDADDENTROPY: u32 = 1074287107;
+pub const USBDEVFS_RESET: u32 = 21780;
+pub const BTRFS_IOC_SUBVOL_CREATE: u32 = 1342215182;
+pub const USBDEVFS_FORBID_SUSPEND: u32 = 21793;
+pub const FDGETDRVTYP: u32 = 2148532751;
+pub const PPWCONTROL: u32 = 1073836164;
+pub const VIDIOC_ENUM_FRAMEINTERVALS: u32 = 3224655435;
+pub const KCOV_DISABLE: u32 = 25445;
+pub const IOC_OPAL_ACTIVATE_LSP: u32 = 1092120799;
+pub const VHOST_VDPA_GET_IOVA_RANGE: u32 = 2148577144;
+pub const PPPIOCSPASS: u32 = 1074295879;
+pub const RIO_CM_CHAN_CONNECT: u32 = 1074291464;
+pub const I2OSWDEL: u32 = 3223087367;
+pub const FS_IOC_SET_ENCRYPTION_POLICY: u32 = 2148296211;
+pub const IOC_OPAL_MBR_DONE: u32 = 1091596521;
+pub const PPPIOCSMAXCID: u32 = 1074033745;
+pub const PPSETPHASE: u32 = 1074032788;
+pub const VHOST_VDPA_SET_VRING_ENABLE: u32 = 1074311029;
+pub const USBDEVFS_GET_SPEED: u32 = 21791;
+pub const SONET_GETFRAMING: u32 = 2147770646;
+pub const VIDIOC_QUERYBUF: u32 = 3225703945;
+pub const VIDIOC_S_EDID: u32 = 3223606825;
+pub const BTRFS_IOC_QGROUP_ASSIGN: u32 = 1075352617;
+pub const PPS_GETCAP: u32 = 2147774627;
+pub const SNAPSHOT_PLATFORM_SUPPORT: u32 = 13071;
+pub const LIRC_SET_REC_TIMEOUT_REPORTS: u32 = 1074030873;
+pub const SCIF_GET_NODEIDS: u32 = 3222827790;
+pub const NBD_DISCONNECT: u32 = 43784;
+pub const VIDIOC_SUBDEV_G_FRAME_INTERVAL: u32 = 3224393237;
+pub const VFIO_IOMMU_DISABLE: u32 = 15220;
+pub const SNAPSHOT_CREATE_IMAGE: u32 = 1074017041;
+pub const SNAPSHOT_POWER_OFF: u32 = 13072;
+pub const APM_IOC_STANDBY: u32 = 16641;
+pub const PPPIOCGUNIT: u32 = 2147775574;
+pub const AUTOFS_IOC_EXPIRE_MULTI: u32 = 1074041702;
+pub const SCIF_BIND: u32 = 3221779201;
+pub const IOC_WATCH_QUEUE_SET_SIZE: u32 = 22368;
+pub const NILFS_IOCTL_CHANGE_CPMODE: u32 = 1074818688;
+pub const IOC_OPAL_LOCK_UNLOCK: u32 = 1092120797;
+pub const F2FS_IOC_SET_PIN_FILE: u32 = 1074066701;
+pub const PPPIOCGRASYNCMAP: u32 = 2147775573;
+pub const MMTIMER_MMAPAVAIL: u32 = 27910;
+pub const I2OPASSTHRU32: u32 = 2148034828;
+pub const DFL_FPGA_FME_PORT_RELEASE: u32 = 1074050689;
+pub const VIDIOC_SUBDEV_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const UI_SET_SNDBIT: u32 = 1074025834;
+pub const VIDIOC_G_AUDOUT: u32 = 2150913585;
+pub const RTC_PLL_SET: u32 = 1075605522;
+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 = 1074048836;
+pub const VHOST_SET_VRING_ADDR: u32 = 1076408081;
+pub const VDUSE_CREATE_DEV: u32 = 1095794946;
+pub const FDFLUSH: u32 = 587;
+pub const VBG_IOCTL_WAIT_FOR_EVENTS: u32 = 3223344650;
+pub const DFL_FPGA_FME_ERR_SET_IRQ: u32 = 1074312836;
+pub const F2FS_IOC_GET_PIN_FILE: u32 = 2147808526;
+pub const SCIF_CONNECT: u32 = 3221779203;
+pub const BLKREPORTZONE: u32 = 3222278786;
+pub const AUTOFS_IOC_ASKUMOUNT: u32 = 2147783536;
+pub const ATM_ADDPARTY: u32 = 1074291188;
+pub const FDSETPRM: u32 = 1075577410;
+pub const ATM_GETSTATZ: u32 = 1074553169;
+pub const ISST_IF_MSR_COMMAND: u32 = 3221552644;
+pub const BTRFS_IOC_GET_SUBVOL_INFO: u32 = 2180551740;
+pub const VIDIOC_UNSUBSCRIBE_EVENT: u32 = 1075861083;
+pub const SEV_ISSUE_CMD: u32 = 3222295296;
+pub const GPIOHANDLE_SET_LINE_VALUES_IOCTL: u32 = 3225465865;
+pub const PCITEST_COPY: u32 = 1074024454;
+pub const IPMICTL_GET_MY_ADDRESS_CMD: u32 = 2147772690;
+pub const CHIOGPICKER: u32 = 2147771140;
+pub const CAPI_NCCI_OPENCOUNT: u32 = 2147762982;
+pub const CXL_MEM_SEND_COMMAND: u32 = 3224423938;
+pub const PERF_EVENT_IOC_SET_FILTER: u32 = 1074013190;
+pub const IOC_OPAL_REVERT_TPR: u32 = 1091072226;
+pub const CHIOGVPARAMS: u32 = 2154849043;
+pub const PTP_PEROUT_REQUEST: u32 = 1077427459;
+pub const FSI_SCOM_CHECK: u32 = 2147775232;
+pub const RTC_IRQP_READ: u32 = 2147774475;
+pub const RIO_MPORT_MAINT_READ_LOCAL: u32 = 2149084421;
+pub const HIDIOCGRDESCSIZE: u32 = 2147764225;
+pub const UI_GET_VERSION: u32 = 2147767597;
+pub const NILFS_IOCTL_GET_CPSTAT: u32 = 2149084803;
+pub const CCISS_GETBUSTYPES: u32 = 2147762695;
+pub const VFIO_IOMMU_SPAPR_TCE_CREATE: u32 = 15223;
+pub const VIDIOC_EXPBUF: u32 = 3225441808;
+pub const UI_SET_RELBIT: u32 = 1074025830;
+pub const VFIO_SET_IOMMU: u32 = 15206;
+pub const VIDIOC_S_MODULATOR: u32 = 1078220343;
+pub const TUNGETFILTER: u32 = 2148029659;
+pub const CCISS_SETNODENAME: u32 = 1074807301;
+pub const FBIO_GETCONTROL2: u32 = 2147763849;
+pub const TUNSETDEBUG: u32 = 1074025673;
+pub const DM_DEV_REMOVE: u32 = 3241737476;
+pub const HIDIOCSUSAGES: u32 = 1344030740;
+pub const FS_IOC_ADD_ENCRYPTION_KEY: u32 = 3226494487;
+pub const FBIOGET_VBLANK: u32 = 2149598738;
+pub const ATM_GETSTAT: u32 = 1074553168;
+pub const VIDIOC_G_JPEGCOMP: u32 = 2156680765;
+pub const TUNATTACHFILTER: u32 = 1074287829;
+pub const UI_SET_ABSBIT: u32 = 1074025831;
+pub const DFL_FPGA_PORT_ERR_GET_IRQ_NUM: u32 = 2147792453;
+pub const USBDEVFS_REAPURB32: u32 = 1074025740;
+pub const BTRFS_IOC_TRANS_END: u32 = 37895;
+pub const CAPI_REGISTER: u32 = 1074545409;
+pub const F2FS_IOC_COMPRESS_FILE: u32 = 62744;
+pub const USBDEVFS_DISCARDURB: u32 = 21771;
+pub const HE_GET_REG: u32 = 1074553184;
+pub const ATM_SETLOOP: u32 = 1074553171;
+pub const ATMSIGD_CTRL: u32 = 25072;
+pub const CIOC_KERNEL_VERSION: u32 = 3221512970;
+pub const BTRFS_IOC_CLONE_RANGE: u32 = 1075876877;
+pub const SNAPSHOT_UNFREEZE: u32 = 13058;
+pub const F2FS_IOC_START_VOLATILE_WRITE: u32 = 62723;
+pub const PMU_IOC_HAS_ADB: u32 = 2147762692;
+pub const I2OGETIOPS: u32 = 2149607680;
+pub const VIDIOC_S_FBUF: u32 = 1076647435;
+pub const PPRCONTROL: u32 = 2147577987;
+pub const CHIOSPICKER: u32 = 1074029317;
+pub const VFIO_IOMMU_SPAPR_REGISTER_MEMORY: u32 = 15221;
+pub const TUNGETSNDBUF: u32 = 2147767507;
+pub const GSMIOC_SETCONF: u32 = 1078740737;
+pub const IOC_PR_PREEMPT: u32 = 1075343563;
+pub const KCOV_INIT_TRACE: u32 = 2147771137;
+pub const SONYPI_IOCGBAT1CAP: u32 = 2147644930;
+pub const SWITCHTEC_IOCTL_FLASH_INFO: u32 = 2148554560;
+pub const MTIOCTOP: u32 = 1074294017;
+pub const VHOST_VDPA_SET_STATUS: u32 = 1073852274;
+pub const VHOST_SCSI_SET_EVENTS_MISSED: u32 = 1074048835;
+pub const VFIO_IOMMU_DIRTY_PAGES: u32 = 15221;
+pub const BTRFS_IOC_SCRUB_PROGRESS: u32 = 3288372253;
+pub const PPPIOCGMRU: u32 = 2147775571;
+pub const BTRFS_IOC_DEV_REPLACE: u32 = 3391657013;
+pub const PPPIOCGFLAGS: u32 = 2147775578;
+pub const NILFS_IOCTL_SET_SUINFO: u32 = 1075342989;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER2: u32 = 3222807316;
+pub const ATM_DELLECSADDR: u32 = 1074553231;
+pub const FW_CDEV_IOC_GET_SPEED: u32 = 8977;
+pub const PPPIOCGIDLE32: u32 = 2148037695;
+pub const VFIO_DEVICE_RESET: u32 = 15215;
+pub const GPIO_GET_LINEINFO_UNWATCH_IOCTL: u32 = 3221533708;
+pub const WDIOC_GETSTATUS: u32 = 2147768065;
+pub const BTRFS_IOC_SET_FEATURES: u32 = 1076925497;
+pub const IOCTL_MEI_CONNECT_CLIENT: u32 = 3222292481;
+pub const VIDIOC_OMAP3ISP_AEWB_CFG: u32 = 3223344835;
+pub const PCITEST_READ: u32 = 1074024453;
+pub const VFIO_GROUP_GET_STATUS: u32 = 15207;
+pub const MATROXFB_GET_ALL_OUTPUTS: u32 = 2147774203;
+pub const USBDEVFS_CLEAR_HALT: u32 = 2147767573;
+pub const VIDIOC_DECODER_CMD: u32 = 3225966176;
+pub const VIDIOC_G_AUDIO: u32 = 2150913569;
+pub const CCISS_RESCANDISK: u32 = 16912;
+pub const RIO_DISABLE_PORTWRITE_RANGE: u32 = 1074818316;
+pub const IOC_OPAL_SECURE_ERASE_LR: u32 = 1091596519;
+pub const USBDEVFS_REAPURB: u32 = 1074025740;
+pub const DFL_FPGA_CHECK_EXTENSION: u32 = 46593;
+pub const AUTOFS_IOC_PROTOVER: u32 = 2147783523;
+pub const FSL_HV_IOCTL_MEMCPY: u32 = 3223891717;
+pub const BTRFS_IOC_GET_FEATURES: u32 = 2149094457;
+pub const PCITEST_MSIX: u32 = 1074024455;
+pub const BTRFS_IOC_DEFRAG_RANGE: u32 = 1076925456;
+pub const UI_BEGIN_FF_ERASE: u32 = 3222033866;
+pub const DM_GET_TARGET_VERSION: u32 = 3241737489;
+pub const PPPIOCGIDLE: u32 = 2148037695;
+pub const NVRAM_SETCKS: u32 = 28737;
+pub const WDIOC_GETSUPPORT: u32 = 2150127360;
+pub const GSMIOC_ENABLE_NET: u32 = 1077167874;
+pub const GPIO_GET_CHIPINFO_IOCTL: u32 = 2151986177;
+pub const NE_ADD_VCPU: u32 = 3221532193;
+pub const EVIOCSKEYCODE_V2: u32 = 1076380932;
+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 = 1075342598;
+pub const I2OEVTREG: u32 = 1074555146;
+pub const I2OPARMGET: u32 = 3222825220;
+pub const EVIOCGID: u32 = 2148025602;
+pub const BTRFS_IOC_QGROUP_CREATE: u32 = 1074828330;
+pub const AUTOFS_DEV_IOCTL_SETPIPEFD: u32 = 3222836088;
+pub const VIDIOC_S_PARM: u32 = 3234616854;
+pub const TUNSETSTEERINGEBPF: u32 = 2147767520;
+pub const ATM_GETNAMES: u32 = 1074291075;
+pub const VIDIOC_QUERYMENU: u32 = 3224131109;
+pub const DFL_FPGA_PORT_DMA_UNMAP: u32 = 46660;
+pub const I2OLCTGET: u32 = 3222038786;
+pub const FS_IOC_GET_ENCRYPTION_PWSALT: u32 = 1074816532;
+pub const NS_SETBUFLEV: u32 = 1074553186;
+pub const BLKCLOSEZONE: u32 = 1074795143;
+pub const SONET_GETFRSENSE: u32 = 2147901719;
+pub const UI_SET_EVBIT: u32 = 1074025828;
+pub const DM_LIST_VERSIONS: u32 = 3241737485;
+pub const HIDIOCGSTRING: u32 = 2164541444;
+pub const PPPIOCATTCHAN: u32 = 1074033720;
+pub const VDUSE_DEV_SET_CONFIG: u32 = 1074299154;
+pub const TUNGETFEATURES: u32 = 2147767503;
+pub const VFIO_GROUP_UNSET_CONTAINER: u32 = 15209;
+pub const IPMICTL_SET_MY_ADDRESS_CMD: u32 = 2147772689;
+pub const CCISS_REGNEWDISK: u32 = 1074020877;
+pub const VIDIOC_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const PHN_SETREGS: u32 = 1076391944;
+pub const FAT_IOCTL_GET_ATTRIBUTES: u32 = 2147774992;
+pub const FSL_MC_SEND_MC_COMMAND: u32 = 3225440992;
+pub const TUNGETIFF: u32 = 2147767506;
+pub const PTP_CLOCK_GETCAPS2: u32 = 2152742154;
+pub const BTRFS_IOC_RESIZE: u32 = 1342215171;
+pub const VHOST_SET_VRING_ENDIAN: u32 = 1074310931;
+pub const PPS_KC_BIND: u32 = 1074032805;
+pub const F2FS_IOC_WRITE_CHECKPOINT: u32 = 62727;
+pub const UI_SET_FFBIT: u32 = 1074025835;
+pub const IPMICTL_GET_MY_LUN_CMD: u32 = 2147772692;
+pub const CEC_ADAP_G_PHYS_ADDR: u32 = 2147639553;
+pub const CEC_G_MODE: u32 = 2147770632;
+pub const USBDEVFS_RESETEP: u32 = 2147767555;
+pub const MEDIA_REQUEST_IOC_QUEUE: u32 = 31872;
+pub const USBDEVFS_ALLOC_STREAMS: u32 = 2148029724;
+pub const MGSL_IOCSXCTRL: u32 = 27925;
+pub const MEDIA_IOC_G_TOPOLOGY: u32 = 3225975812;
+pub const PPPIOCUNBRIDGECHAN: u32 = 29748;
+pub const F2FS_IOC_COMMIT_ATOMIC_WRITE: u32 = 62722;
+pub const ISST_IF_GET_PLATFORM_INFO: u32 = 2147810816;
+pub const SCIF_FENCE_MARK: u32 = 3222303503;
+pub const USBDEVFS_RELEASE_PORT: u32 = 2147767577;
+pub const VFIO_CHECK_EXTENSION: u32 = 15205;
+pub const BTRFS_IOC_QGROUP_LIMIT: u32 = 2150667307;
+pub const FAT_IOCTL_GET_VOLUME_ID: u32 = 2147774995;
+pub const UI_SET_PHYS: u32 = 1074025836;
+pub const FDWERRORGET: u32 = 2149057047;
+pub const VIDIOC_SUBDEV_G_EDID: u32 = 3223606824;
+pub const MGSL_IOCGSTATS: u32 = 27911;
+pub const RPROC_SET_SHUTDOWN_ON_RELEASE: u32 = 1074050817;
+pub const SIOCGSTAMP_NEW: u32 = 2148567302;
+pub const RTC_WKALM_RD: u32 = 2150133776;
+pub const PHN_GET_REG: u32 = 3221516288;
+pub const DELL_WMI_SMBIOS_CMD: u32 = 3224655616;
+pub const PHN_NOT_OH: u32 = 28676;
+pub const PPGETMODES: u32 = 2147774615;
+pub const CHIOGPARAMS: u32 = 2148819718;
+pub const VFIO_DEVICE_GET_GFX_DMABUF: u32 = 15219;
+pub const VHOST_SET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310947;
+pub const VIDIOC_SUBDEV_G_SELECTION: u32 = 3225441853;
+pub const BTRFS_IOC_RM_DEV_V2: u32 = 1342215226;
+pub const MGSL_IOCWAITGPIO: u32 = 3222301970;
+pub const PMU_IOC_CAN_SLEEP: u32 = 2147762693;
+pub const KCOV_ENABLE: u32 = 25444;
+pub const BTRFS_IOC_CLONE: u32 = 1074041865;
+pub const F2FS_IOC_DEFRAGMENT: u32 = 3222336776;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE: u32 = 1074012942;
+pub const AGPIOC_ALLOCATE: u32 = 3221504262;
+pub const NE_SET_USER_MEMORY_REGION: u32 = 1075359267;
+pub const MGSL_IOCTXABORT: u32 = 27910;
+pub const MGSL_IOCSGPIO: u32 = 1074818320;
+pub const LIRC_SET_REC_CARRIER: u32 = 1074030868;
+pub const F2FS_IOC_FLUSH_DEVICE: u32 = 1074328842;
+pub const SNAPSHOT_ATOMIC_RESTORE: u32 = 13060;
+pub const RTC_UIE_OFF: u32 = 28676;
+pub const BT_BMC_IOCTL_SMS_ATN: u32 = 45312;
+pub const NVME_IOCTL_ID: u32 = 20032;
+pub const NE_START_ENCLAVE: u32 = 3222318628;
+pub const VIDIOC_STREAMON: u32 = 1074026002;
+pub const FDPOLLDRVSTAT: u32 = 2150892051;
+pub const AUTOFS_DEV_IOCTL_READY: u32 = 3222836086;
+pub const VIDIOC_ENUMAUDOUT: u32 = 3224655426;
+pub const VIDIOC_SUBDEV_S_STD: u32 = 1074288152;
+pub const WDIOC_GETTIMELEFT: u32 = 2147768074;
+pub const ATM_GETLINKRATE: u32 = 1074553217;
+pub const RTC_WKALM_SET: u32 = 1076391951;
+pub const VHOST_GET_BACKEND_FEATURES: u32 = 2148052774;
+pub const ATMARP_ENCAP: u32 = 25061;
+pub const CAPI_GET_FLAGS: u32 = 2147762979;
+pub const IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772696;
+pub const DFL_FPGA_FME_PORT_ASSIGN: u32 = 1074050690;
+pub const NS_GET_OWNER_UID: u32 = 46852;
+pub const VIDIOC_OVERLAY: u32 = 1074025998;
+pub const BTRFS_IOC_WAIT_SYNC: u32 = 1074304022;
+pub const GPIOHANDLE_SET_CONFIG_IOCTL: u32 = 3226776586;
+pub const VHOST_GET_VRING_ENDIAN: u32 = 1074310932;
+pub const ATM_GETADDR: u32 = 1074553222;
+pub const PHN_GET_REGS: u32 = 3221516290;
+pub const AUTOFS_DEV_IOCTL_REQUESTER: u32 = 3222836091;
+pub const AUTOFS_DEV_IOCTL_EXPIRE: u32 = 3222836092;
+pub const SNAPSHOT_S2RAM: u32 = 13067;
+pub const JSIOCSAXMAP: u32 = 1077963313;
+pub const F2FS_IOC_SET_COMPRESS_OPTION: u32 = 1073935638;
+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 = 15216;
+pub const VIDIOC_SUBDEV_ENUM_MBUS_CODE: u32 = 3224393218;
+pub const MMTIMER_GETOFFSET: u32 = 27904;
+pub const RIO_CM_CHAN_LISTEN: u32 = 1073898246;
+pub const ATM_SETSC: u32 = 1074029041;
+pub const F2FS_IOC_SHUTDOWN: u32 = 2147768445;
+pub const NVME_IOCTL_RESCAN: u32 = 20038;
+pub const BLKOPENZONE: u32 = 1074795142;
+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 = 25056;
+pub const IPMI_BMC_IOCTL_CLEAR_SMS_ATN: u32 = 45313;
+pub const HIDIOCGVERSION: u32 = 2147764225;
+pub const VIDIOC_S_INPUT: u32 = 3221509671;
+pub const VIDIOC_G_CROP: u32 = 3222558267;
+pub const LIRC_SET_WIDEBAND_RECEIVER: u32 = 1074030883;
+pub const EVIOCGEFFECTS: u32 = 2147763588;
+pub const UVCIOC_CTRL_QUERY: u32 = 3222041889;
+pub const IOC_OPAL_GENERIC_TABLE_RW: u32 = 1094217963;
+pub const FS_IOC_READ_VERITY_METADATA: u32 = 3223873159;
+pub const ND_IOCTL_SET_CONFIG_DATA: u32 = 3221769734;
+pub const USBDEVFS_GETDRIVER: u32 = 1090802952;
+pub const IDT77105_GETSTAT: u32 = 1074553138;
+pub const HIDIOCINITREPORT: u32 = 18437;
+pub const VFIO_DEVICE_GET_INFO: u32 = 15211;
+pub const RIO_CM_CHAN_RECEIVE: u32 = 3222299402;
+pub const RNDGETENTCNT: u32 = 2147766784;
+pub const PPPIOCNEWUNIT: u32 = 3221517374;
+pub const BTRFS_IOC_INO_LOOKUP: u32 = 3489698834;
+pub const FDRESET: u32 = 596;
+pub const IOC_PR_REGISTER: u32 = 1075343560;
+pub const HIDIOCSREPORT: u32 = 1074546696;
+pub const TEE_IOC_OPEN_SESSION: u32 = 2148574210;
+pub const TEE_IOC_SUPPL_RECV: u32 = 2148574214;
+pub const BTRFS_IOC_BALANCE_CTL: u32 = 1074041889;
+pub const GPIO_GET_LINEINFO_WATCH_IOCTL: u32 = 3225990155;
+pub const HIDIOCGRAWINFO: u32 = 2148026371;
+pub const PPPIOCSCOMPRESS: u32 = 1074558029;
+pub const USBDEVFS_CONNECTINFO: u32 = 1074287889;
+pub const BLKRESETZONE: u32 = 1074795139;
+pub const CHIOINITELEM: u32 = 25361;
+pub const NILFS_IOCTL_SET_ALLOC_RANGE: u32 = 1074818700;
+pub const AUTOFS_DEV_IOCTL_CATATONIC: u32 = 3222836089;
+pub const RIO_MPORT_MAINT_HDID_SET: u32 = 1073900801;
+pub const PPGETPHASE: u32 = 2147774617;
+pub const USBDEVFS_DISCONNECT_CLAIM: u32 = 2164806939;
+pub const FDMSGON: u32 = 581;
+pub const VIDIOC_G_SLICED_VBI_CAP: u32 = 3228849733;
+pub const BTRFS_IOC_BALANCE_V2: u32 = 3288372256;
+pub const MEDIA_REQUEST_IOC_REINIT: u32 = 31873;
+pub const IOC_OPAL_ERASE_LR: u32 = 1091596518;
+pub const FDFMTBEG: u32 = 583;
+pub const RNDRESEEDCRNG: u32 = 20999;
+pub const ISST_IF_GET_PHY_ID: u32 = 3221552641;
+pub const TUNSETNOCSUM: u32 = 1074025672;
+pub const SONET_GETSTAT: u32 = 2149867792;
+pub const TFD_IOC_SET_TICKS: u32 = 1074287616;
+pub const PPDATADIR: u32 = 1074032784;
+pub const IOC_OPAL_ENABLE_DISABLE_MBR: u32 = 1091596517;
+pub const GPIO_V2_GET_LINE_IOCTL: u32 = 3260068871;
+pub const RIO_CM_CHAN_SEND: u32 = 1074815753;
+pub const PPWCTLONIRQ: u32 = 1073836178;
+pub const SONYPI_IOCGBRT: u32 = 2147579392;
+pub const IOC_PR_RELEASE: u32 = 1074819274;
+pub const PPCLRIRQ: u32 = 2147774611;
+pub const IPMICTL_SET_MY_CHANNEL_LUN_CMD: u32 = 2147772698;
+pub const MGSL_IOCSXSYNC: u32 = 27923;
+pub const HPET_IE_OFF: u32 = 26626;
+pub const IOC_OPAL_ACTIVATE_USR: u32 = 1091596513;
+pub const SONET_SETFRAMING: u32 = 1074028821;
+pub const PERF_EVENT_IOC_PAUSE_OUTPUT: u32 = 1074013193;
+pub const BTRFS_IOC_LOGICAL_INO_V2: u32 = 3224933435;
+pub const VBG_IOCTL_HGCM_CONNECT: u32 = 3231471108;
+pub const BLKFINISHZONE: u32 = 1074795144;
+pub const EVIOCREVOKE: u32 = 1074021777;
+pub const VFIO_DEVICE_FEATURE: u32 = 15221;
+pub const CCISS_GETPCIINFO: u32 = 2148024833;
+pub const ISST_IF_MBOX_COMMAND: u32 = 3221552643;
+pub const SCIF_ACCEPTREQ: u32 = 3222303492;
+pub const PERF_EVENT_IOC_QUERY_BPF: u32 = 3221496842;
+pub const VIDIOC_STREAMOFF: u32 = 1074026003;
+pub const VDUSE_DESTROY_DEV: u32 = 1090552067;
+pub const FDGETFDCSTAT: u32 = 2149581333;
+pub const VIDIOC_S_PRIORITY: u32 = 1074026052;
+pub const SNAPSHOT_FREEZE: u32 = 13057;
+pub const VIDIOC_ENUMINPUT: u32 = 3226490394;
+pub const ZATM_GETPOOLZ: u32 = 1074553186;
+pub const RIO_DISABLE_DOORBELL_RANGE: u32 = 1074294026;
+pub const GPIO_V2_GET_LINEINFO_WATCH_IOCTL: u32 = 3238048774;
+pub const VIDIOC_G_STD: u32 = 2148029975;
+pub const USBDEVFS_ALLOW_SUSPEND: u32 = 21794;
+pub const SONET_GETSTATZ: u32 = 2149867793;
+pub const SCIF_ACCEPTREG: u32 = 3221779205;
+pub const VIDIOC_ENCODER_CMD: u32 = 3223869005;
+pub const PPPIOCSRASYNCMAP: u32 = 1074033748;
+pub const IOCTL_MEI_NOTIFY_SET: u32 = 1074022402;
+pub const BTRFS_IOC_QUOTA_RESCAN_STATUS: u32 = 2151715885;
+pub const F2FS_IOC_GARBAGE_COLLECT: u32 = 1074066694;
+pub const ATMLEC_CTRL: u32 = 25040;
+pub const MATROXFB_GET_AVAILABLE_OUTPUTS: u32 = 2147774201;
+pub const DM_DEV_CREATE: u32 = 3241737475;
+pub const VHOST_VDPA_GET_VRING_NUM: u32 = 2147659638;
+pub const VIDIOC_G_CTRL: u32 = 3221771803;
+pub const NBD_CLEAR_SOCK: u32 = 43780;
+pub const VFIO_DEVICE_QUERY_GFX_PLANE: u32 = 15218;
+pub const WDIOC_KEEPALIVE: u32 = 2147768069;
+pub const NVME_IOCTL_SUBSYS_RESET: u32 = 20037;
+pub const PTP_EXTTS_REQUEST2: u32 = 1074806027;
+pub const PCITEST_BAR: u32 = 20481;
+pub const MGSL_IOCGGPIO: u32 = 2148560145;
+pub const EVIOCSREP: u32 = 1074283779;
+pub const VFIO_DEVICE_GET_IRQ_INFO: u32 = 15213;
+pub const HPET_DPI: u32 = 26629;
+pub const VDUSE_VQ_SETUP_KICKFD: u32 = 1074299158;
+pub const ND_IOCTL_CALL: u32 = 3225439754;
+pub const HIDIOCGDEVINFO: u32 = 2149337091;
+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 = 2147767875;
+pub const ATM_NEWBACKENDIF: u32 = 1073897971;
+pub const VIDIOC_S_EXT_CTRLS: u32 = 3222820424;
+pub const VIDIOC_SUBDEV_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const VIDIOC_OMAP3ISP_CCDC_CFG: u32 = 3223344833;
+pub const VIDIOC_S_HW_FREQ_SEEK: u32 = 1076909650;
+pub const DM_TABLE_LOAD: u32 = 3241737481;
+pub const F2FS_IOC_START_ATOMIC_WRITE: u32 = 62721;
+pub const VIDIOC_G_OUTPUT: u32 = 2147767854;
+pub const ATM_DROPPARTY: u32 = 1074029045;
+pub const CHIOGELEM: u32 = 1080845072;
+pub const BTRFS_IOC_GET_SUPPORTED_FEATURES: u32 = 2152240185;
+pub const EVIOCSKEYCODE: u32 = 1074283780;
+pub const NE_GET_IMAGE_LOAD_INFO: u32 = 3222318626;
+pub const TUNSETLINK: u32 = 1074025677;
+pub const FW_CDEV_IOC_ADD_DESCRIPTOR: u32 = 3222807302;
+pub const BTRFS_IOC_SCRUB_CANCEL: u32 = 37916;
+pub const PPS_SETPARAMS: u32 = 1074032802;
+pub const IOC_OPAL_LR_SETUP: u32 = 1093169379;
+pub const FW_CDEV_IOC_DEALLOCATE: u32 = 1074012931;
+pub const WDIOC_SETTIMEOUT: u32 = 3221509894;
+pub const IOC_WATCH_QUEUE_SET_FILTER: u32 = 22369;
+pub const CAPI_GET_MANUFACTURER: u32 = 3221504774;
+pub const VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY: u32 = 15222;
+pub const ASPEED_P2A_CTRL_IOCTL_SET_WINDOW: u32 = 1074836224;
+pub const VIDIOC_G_EDID: u32 = 3223606824;
+pub const F2FS_IOC_GARBAGE_COLLECT_RANGE: u32 = 1075377419;
+pub const RIO_MAP_INBOUND: u32 = 3223874833;
+pub const IOC_OPAL_TAKE_OWNERSHIP: u32 = 1091072222;
+pub const USBDEVFS_CLAIM_PORT: u32 = 2147767576;
+pub const VIDIOC_S_AUDIO: u32 = 1077171746;
+pub const FS_IOC_GET_ENCRYPTION_NONCE: u32 = 2148558363;
+pub const FW_CDEV_IOC_SEND_STREAM_PACKET: u32 = 1076372243;
+pub const BTRFS_IOC_SNAP_DESTROY: u32 = 1342215183;
+pub const SNAPSHOT_FREE: u32 = 13061;
+pub const I8K_GET_SPEED: u32 = 3221514629;
+pub const HIDIOCGREPORT: u32 = 1074546695;
+pub const HPET_EPI: u32 = 26628;
+pub const JSIOCSCORR: u32 = 1076128289;
+pub const IOC_PR_PREEMPT_ABORT: u32 = 1075343564;
+pub const RIO_MAP_OUTBOUND: u32 = 3223874831;
+pub const ATM_SETESI: u32 = 1074553228;
+pub const FW_CDEV_IOC_START_ISO: u32 = 1074799370;
+pub const ATM_DELADDR: u32 = 1074553225;
+pub const PPFCONTROL: u32 = 1073901710;
+pub const SONYPI_IOCGFAN: u32 = 2147579402;
+pub const RTC_IRQP_SET: u32 = 1074032652;
+pub const PCITEST_WRITE: u32 = 1074024452;
+pub const PPCLAIM: u32 = 28811;
+pub const VIDIOC_S_JPEGCOMP: u32 = 1082938942;
+pub const IPMICTL_UNREGISTER_FOR_CMD: u32 = 2147641615;
+pub const VHOST_SET_FEATURES: u32 = 1074310912;
+pub const TOSHIBA_ACPI_SCI: u32 = 3222828177;
+pub const VIDIOC_DQBUF: u32 = 3225703953;
+pub const BTRFS_IOC_BALANCE_PROGRESS: u32 = 2214630434;
+pub const BTRFS_IOC_SUBVOL_SETFLAGS: u32 = 1074304026;
+pub const ATMLEC_MCAST: u32 = 25042;
+pub const MMTIMER_GETFREQ: u32 = 2147773698;
+pub const VIDIOC_G_SELECTION: u32 = 3225441886;
+pub const RTC_ALM_SET: u32 = 1076129799;
+pub const PPPOEIOCSFWD: u32 = 1074049280;
+pub const IPMICTL_GET_MAINTENANCE_MODE_CMD: u32 = 2147772702;
+pub const FS_IOC_ENABLE_VERITY: u32 = 1082156677;
+pub const NILFS_IOCTL_GET_BDESCS: u32 = 3222826631;
+pub const FDFMTEND: u32 = 585;
+pub const DMA_BUF_SET_NAME: u32 = 1074029057;
+pub const UI_BEGIN_FF_UPLOAD: u32 = 3227538888;
+pub const RTC_UIE_ON: u32 = 28675;
+pub const PPRELEASE: u32 = 28812;
+pub const VFIO_IOMMU_UNMAP_DMA: u32 = 15218;
+pub const VIDIOC_OMAP3ISP_PRV_CFG: u32 = 3225179842;
+pub const GPIO_GET_LINEHANDLE_IOCTL: u32 = 3245126659;
+pub const VFAT_IOCTL_READDIR_BOTH: u32 = 2182640129;
+pub const NVME_IOCTL_ADMIN_CMD: u32 = 3225964097;
+pub const VHOST_SET_VRING_KICK: u32 = 1074310944;
+pub const BTRFS_IOC_SUBVOL_CREATE_V2: u32 = 1342215192;
+pub const BTRFS_IOC_SNAP_CREATE: u32 = 1342215169;
+pub const SONYPI_IOCGBAT2CAP: u32 = 2147644932;
+pub const PPNEGOT: u32 = 1074032785;
+pub const NBD_PRINT_DEBUG: u32 = 43782;
+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 = 2214630431;
+pub const VIDIOC_ENUM_FMT: u32 = 3225441794;
+pub const VIDIOC_G_INPUT: u32 = 2147767846;
+pub const VTPM_PROXY_IOC_NEW_DEV: u32 = 3222577408;
+pub const DFL_FPGA_FME_ERR_GET_IRQ_NUM: u32 = 2147792515;
+pub const ND_IOCTL_DIMM_FLAGS: u32 = 3221769731;
+pub const BTRFS_IOC_QUOTA_RESCAN: u32 = 1077974060;
+pub const MMTIMER_GETCOUNTER: u32 = 2147773705;
+pub const MATROXFB_GET_OUTPUT_MODE: u32 = 3221516026;
+pub const BTRFS_IOC_QUOTA_RESCAN_WAIT: u32 = 37934;
+pub const RIO_CM_CHAN_BIND: u32 = 1074291461;
+pub const HIDIOCGRDESC: u32 = 2416199682;
+pub const MGSL_IOCGIF: u32 = 27915;
+pub const VIDIOC_S_OUTPUT: u32 = 3221509679;
+pub const HIDIOCGREPORTINFO: u32 = 3222030345;
+pub const WDIOC_GETBOOTSTATUS: u32 = 2147768066;
+pub const VDUSE_VQ_GET_INFO: u32 = 3224404245;
+pub const ACRN_IOCTL_ASSIGN_PCIDEV: u32 = 1076142677;
+pub const BLKGETDISKSEQ: u32 = 2148012672;
+pub const ACRN_IOCTL_PM_GET_CPU_STATE: u32 = 3221791328;
+pub const ACRN_IOCTL_DESTROY_VM: u32 = 41489;
+pub const ACRN_IOCTL_SET_PTDEV_INTR: u32 = 1075094099;
+pub const ACRN_IOCTL_CREATE_IOREQ_CLIENT: u32 = 41522;
+pub const ACRN_IOCTL_IRQFD: u32 = 1075356273;
+pub const ACRN_IOCTL_CREATE_VM: u32 = 3224412688;
+pub const ACRN_IOCTL_INJECT_MSI: u32 = 1074831907;
+pub const ACRN_IOCTL_ATTACH_IOREQ_CLIENT: u32 = 41523;
+pub const ACRN_IOCTL_RESET_PTDEV_INTR: u32 = 1075094100;
+pub const ACRN_IOCTL_NOTIFY_REQUEST_FINISH: u32 = 1074307633;
+pub const ACRN_IOCTL_SET_IRQLINE: u32 = 1074307621;
+pub const ACRN_IOCTL_START_VM: u32 = 41490;
+pub const ACRN_IOCTL_SET_VCPU_REGS: u32 = 1093181974;
+pub const ACRN_IOCTL_SET_MEMSEG: u32 = 1075880513;
+pub const ACRN_IOCTL_PAUSE_VM: u32 = 41491;
+pub const ACRN_IOCTL_CLEAR_VM_IOREQ: u32 = 41525;
+pub const ACRN_IOCTL_UNSET_MEMSEG: u32 = 1075880514;
+pub const ACRN_IOCTL_IOEVENTFD: u32 = 1075880560;
+pub const ACRN_IOCTL_DEASSIGN_PCIDEV: u32 = 1076142678;
+pub const ACRN_IOCTL_RESET_VM: u32 = 41493;
+pub const ACRN_IOCTL_DESTROY_IOREQ_CLIENT: u32 = 41524;
+pub const ACRN_IOCTL_VM_INTR_MONITOR: u32 = 1074045476;
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv32/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/landlock.rs
new file mode 100644
index 0000000..4200c77
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/landlock.rs
@@ -0,0 +1,98 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv32/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/loop_device.rs
new file mode 100644
index 0000000..65db535
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/loop_device.rs
@@ -0,0 +1,132 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/riscv32/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/mempolicy.rs
new file mode 100644
index 0000000..ad4957c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/mempolicy.rs
@@ -0,0 +1,175 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
+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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv32/net.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/net.rs
new file mode 100644
index 0000000..8cf024f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/net.rs
@@ -0,0 +1,3419 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u32; 67usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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 SIOCGSTAMP_OLD: u32 = 35078;
+pub const SIOCGSTAMPNS_OLD: u32 = 35079;
+pub const SOL_SOCKET: u32 = 1;
+pub const SO_DEBUG: u32 = 1;
+pub const SO_REUSEADDR: u32 = 2;
+pub const SO_TYPE: u32 = 3;
+pub const SO_ERROR: u32 = 4;
+pub const SO_DONTROUTE: u32 = 5;
+pub const SO_BROADCAST: u32 = 6;
+pub const SO_SNDBUF: u32 = 7;
+pub const SO_RCVBUF: u32 = 8;
+pub const SO_SNDBUFFORCE: u32 = 32;
+pub const SO_RCVBUFFORCE: u32 = 33;
+pub const SO_KEEPALIVE: u32 = 9;
+pub const SO_OOBINLINE: u32 = 10;
+pub const SO_NO_CHECK: u32 = 11;
+pub const SO_PRIORITY: u32 = 12;
+pub const SO_LINGER: u32 = 13;
+pub const SO_BSDCOMPAT: u32 = 14;
+pub const SO_REUSEPORT: u32 = 15;
+pub const SO_PASSCRED: u32 = 16;
+pub const SO_PEERCRED: u32 = 17;
+pub const SO_RCVLOWAT: u32 = 18;
+pub const SO_SNDLOWAT: u32 = 19;
+pub const SO_RCVTIMEO_OLD: u32 = 20;
+pub const SO_SNDTIMEO_OLD: u32 = 21;
+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_ACCEPTCONN: u32 = 30;
+pub const SO_PEERSEC: u32 = 31;
+pub const SO_PASSSEC: u32 = 34;
+pub const SO_MARK: u32 = 36;
+pub const SO_PROTOCOL: u32 = 38;
+pub const SO_DOMAIN: u32 = 39;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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 = 1;
+pub const SOCK_DGRAM: u32 = 2;
+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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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 = 32768,
+TCP_FLAG_ECE = 16384,
+TCP_FLAG_URG = 8192,
+TCP_FLAG_ACK = 4096,
+TCP_FLAG_PSH = 2048,
+TCP_FLAG_RST = 1024,
+TCP_FLAG_SYN = 512,
+TCP_FLAG_FIN = 256,
+TCP_RESERVED_BITS = 15,
+TCP_DATA_OFFSET = 240,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn ihl(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_ihl(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(ihl: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let ihl: u8 = unsafe { ::core::mem::transmute(ihl) };
+ihl as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl ipv6hdr {
+#[inline]
+pub fn priority(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_priority(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(priority: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let priority: u8 = unsafe { ::core::mem::transmute(priority) };
+priority as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcphdr {
+#[inline]
+pub fn res1(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_res1(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn doff(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_doff(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn fin(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_fin(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn syn(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_syn(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn rst(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_rst(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn psh(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_psh(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ack(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ack(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn urg(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_urg(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ece(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ece(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn cwr(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_cwr(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(res1: __u16, doff: __u16, fin: __u16, syn: __u16, rst: __u16, psh: __u16, ack: __u16, urg: __u16, ece: __u16, cwr: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let res1: u16 = unsafe { ::core::mem::transmute(res1) };
+res1 as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let doff: u16 = unsafe { ::core::mem::transmute(doff) };
+doff as u64
+});
+__bindgen_bitfield_unit.set(8usize, 1u8, {
+let fin: u16 = unsafe { ::core::mem::transmute(fin) };
+fin as u64
+});
+__bindgen_bitfield_unit.set(9usize, 1u8, {
+let syn: u16 = unsafe { ::core::mem::transmute(syn) };
+syn as u64
+});
+__bindgen_bitfield_unit.set(10usize, 1u8, {
+let rst: u16 = unsafe { ::core::mem::transmute(rst) };
+rst as u64
+});
+__bindgen_bitfield_unit.set(11usize, 1u8, {
+let psh: u16 = unsafe { ::core::mem::transmute(psh) };
+psh as u64
+});
+__bindgen_bitfield_unit.set(12usize, 1u8, {
+let ack: u16 = unsafe { ::core::mem::transmute(ack) };
+ack as u64
+});
+__bindgen_bitfield_unit.set(13usize, 1u8, {
+let urg: u16 = unsafe { ::core::mem::transmute(urg) };
+urg as u64
+});
+__bindgen_bitfield_unit.set(14usize, 1u8, {
+let ece: u16 = unsafe { ::core::mem::transmute(ece) };
+ece as u64
+});
+__bindgen_bitfield_unit.set(15usize, 1u8, {
+let cwr: u16 = unsafe { ::core::mem::transmute(cwr) };
+cwr 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv32/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/netlink.rs
new file mode 100644
index 0000000..3ef9b03
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/netlink.rs
@@ -0,0 +1,2944 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_nl {
+pub nl_family: __kernel_sa_family_t,
+pub nl_pad: crate::ctypes::c_ushort,
+pub nl_pid: __u32,
+pub nl_groups: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsghdr {
+pub nlmsg_len: __u32,
+pub nlmsg_type: __u16,
+pub nlmsg_flags: __u16,
+pub nlmsg_seq: __u32,
+pub nlmsg_pid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsgerr {
+pub error: crate::ctypes::c_int,
+pub msg: nlmsghdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_pktinfo {
+pub group: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_req {
+pub nm_block_size: crate::ctypes::c_uint,
+pub nm_block_nr: crate::ctypes::c_uint,
+pub nm_frame_size: crate::ctypes::c_uint,
+pub nm_frame_nr: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_hdr {
+pub nm_status: crate::ctypes::c_uint,
+pub nm_len: crate::ctypes::c_uint,
+pub nm_group: __u32,
+pub nm_pid: __u32,
+pub nm_uid: __u32,
+pub nm_gid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlattr {
+pub nla_len: __u16,
+pub nla_type: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nla_bitfield32 {
+pub value: __u32,
+pub selector: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats {
+pub rx_packets: __u32,
+pub tx_packets: __u32,
+pub rx_bytes: __u32,
+pub tx_bytes: __u32,
+pub rx_errors: __u32,
+pub tx_errors: __u32,
+pub rx_dropped: __u32,
+pub tx_dropped: __u32,
+pub multicast: __u32,
+pub collisions: __u32,
+pub rx_length_errors: __u32,
+pub rx_over_errors: __u32,
+pub rx_crc_errors: __u32,
+pub rx_frame_errors: __u32,
+pub rx_fifo_errors: __u32,
+pub rx_missed_errors: __u32,
+pub tx_aborted_errors: __u32,
+pub tx_carrier_errors: __u32,
+pub tx_fifo_errors: __u32,
+pub tx_heartbeat_errors: __u32,
+pub tx_window_errors: __u32,
+pub rx_compressed: __u32,
+pub tx_compressed: __u32,
+pub rx_nohandler: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+pub collisions: __u64,
+pub rx_length_errors: __u64,
+pub rx_over_errors: __u64,
+pub rx_crc_errors: __u64,
+pub rx_frame_errors: __u64,
+pub rx_fifo_errors: __u64,
+pub rx_missed_errors: __u64,
+pub tx_aborted_errors: __u64,
+pub tx_carrier_errors: __u64,
+pub tx_fifo_errors: __u64,
+pub tx_heartbeat_errors: __u64,
+pub tx_window_errors: __u64,
+pub rx_compressed: __u64,
+pub tx_compressed: __u64,
+pub rx_nohandler: __u64,
+pub rx_otherhost_dropped: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_hw_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_ifmap {
+pub mem_start: __u64,
+pub mem_end: __u64,
+pub base_addr: __u64,
+pub irq: __u16,
+pub dma: __u8,
+pub port: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_bridge_id {
+pub prio: [__u8; 2usize],
+pub addr: [__u8; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_cacheinfo {
+pub max_reasm_len: __u32,
+pub tstamp: __u32,
+pub reachable_time: __u32,
+pub retrans_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_qos_mapping {
+pub from: __u32,
+pub to: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tunnel_msg {
+pub family: __u8,
+pub flags: __u8,
+pub reserved2: __u16,
+pub ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vxlan_port_range {
+pub low: __be16,
+pub high: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_mac {
+pub vf: __u32,
+pub mac: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_broadcast {
+pub broadcast: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan_info {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+pub vlan_proto: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_tx_rate {
+pub vf: __u32,
+pub rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rate {
+pub vf: __u32,
+pub min_tx_rate: __u32,
+pub max_tx_rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_spoofchk {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_guid {
+pub vf: __u32,
+pub guid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_link_state {
+pub vf: __u32,
+pub link_state: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rss_query_en {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_trust {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_port_vsi {
+pub vsi_mgr_id: __u8,
+pub vsi_type_id: [__u8; 3usize],
+pub vsi_type_version: __u8,
+pub pad: [__u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_stats_msg {
+pub family: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub ifindex: __u32,
+pub filter_mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_rmnet_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifaddrmsg {
+pub ifa_family: __u8,
+pub ifa_prefixlen: __u8,
+pub ifa_flags: __u8,
+pub ifa_scope: __u8,
+pub ifa_index: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifa_cacheinfo {
+pub ifa_prefered: __u32,
+pub ifa_valid: __u32,
+pub cstamp: __u32,
+pub tstamp: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndmsg {
+pub ndm_family: __u8,
+pub ndm_pad1: __u8,
+pub ndm_pad2: __u16,
+pub ndm_ifindex: __s32,
+pub ndm_state: __u16,
+pub ndm_flags: __u8,
+pub ndm_type: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nda_cacheinfo {
+pub ndm_confirmed: __u32,
+pub ndm_used: __u32,
+pub ndm_updated: __u32,
+pub ndm_refcnt: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_stats {
+pub ndts_allocs: __u64,
+pub ndts_destroys: __u64,
+pub ndts_hash_grows: __u64,
+pub ndts_res_failed: __u64,
+pub ndts_lookups: __u64,
+pub ndts_hits: __u64,
+pub ndts_rcv_probes_mcast: __u64,
+pub ndts_rcv_probes_ucast: __u64,
+pub ndts_periodic_gc_runs: __u64,
+pub ndts_forced_gc_runs: __u64,
+pub ndts_table_fulls: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndtmsg {
+pub ndtm_family: __u8,
+pub ndtm_pad1: __u8,
+pub ndtm_pad2: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_config {
+pub ndtc_key_len: __u16,
+pub ndtc_entry_size: __u16,
+pub ndtc_entries: __u32,
+pub ndtc_last_flush: __u32,
+pub ndtc_last_rand: __u32,
+pub ndtc_hash_rnd: __u32,
+pub ndtc_hash_mask: __u32,
+pub ndtc_hash_chain_gc: __u32,
+pub ndtc_proxy_qlen: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtattr {
+pub rta_len: crate::ctypes::c_ushort,
+pub rta_type: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtmsg {
+pub rtm_family: crate::ctypes::c_uchar,
+pub rtm_dst_len: crate::ctypes::c_uchar,
+pub rtm_src_len: crate::ctypes::c_uchar,
+pub rtm_tos: crate::ctypes::c_uchar,
+pub rtm_table: crate::ctypes::c_uchar,
+pub rtm_protocol: crate::ctypes::c_uchar,
+pub rtm_scope: crate::ctypes::c_uchar,
+pub rtm_type: crate::ctypes::c_uchar,
+pub rtm_flags: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnexthop {
+pub rtnh_len: crate::ctypes::c_ushort,
+pub rtnh_flags: crate::ctypes::c_uchar,
+pub rtnh_hops: crate::ctypes::c_uchar,
+pub rtnh_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct rtvia {
+pub rtvia_family: __kernel_sa_family_t,
+pub rtvia_addr: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_cacheinfo {
+pub rta_clntref: __u32,
+pub rta_lastuse: __u32,
+pub rta_expires: __s32,
+pub rta_error: __u32,
+pub rta_used: __u32,
+pub rta_id: __u32,
+pub rta_ts: __u32,
+pub rta_tsage: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rta_session {
+pub proto: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub u: rta_session__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_1 {
+pub sport: __u16,
+pub dport: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_2 {
+pub type_: __u8,
+pub code: __u8,
+pub ident: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_mfc_stats {
+pub mfcs_packets: __u64,
+pub mfcs_bytes: __u64,
+pub mfcs_wrong_if: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtgenmsg {
+pub rtgen_family: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifinfomsg {
+pub ifi_family: crate::ctypes::c_uchar,
+pub __ifi_pad: crate::ctypes::c_uchar,
+pub ifi_type: crate::ctypes::c_ushort,
+pub ifi_index: crate::ctypes::c_int,
+pub ifi_flags: crate::ctypes::c_uint,
+pub ifi_change: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefixmsg {
+pub prefix_family: crate::ctypes::c_uchar,
+pub prefix_pad1: crate::ctypes::c_uchar,
+pub prefix_pad2: crate::ctypes::c_ushort,
+pub prefix_ifindex: crate::ctypes::c_int,
+pub prefix_type: crate::ctypes::c_uchar,
+pub prefix_len: crate::ctypes::c_uchar,
+pub prefix_flags: crate::ctypes::c_uchar,
+pub prefix_pad3: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefix_cacheinfo {
+pub preferred_time: __u32,
+pub valid_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcmsg {
+pub tcm_family: crate::ctypes::c_uchar,
+pub tcm__pad1: crate::ctypes::c_uchar,
+pub tcm__pad2: crate::ctypes::c_ushort,
+pub tcm_ifindex: crate::ctypes::c_int,
+pub tcm_handle: __u32,
+pub tcm_parent: __u32,
+pub tcm_info: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nduseroptmsg {
+pub nduseropt_family: crate::ctypes::c_uchar,
+pub nduseropt_pad1: crate::ctypes::c_uchar,
+pub nduseropt_opts_len: crate::ctypes::c_ushort,
+pub nduseropt_ifindex: crate::ctypes::c_int,
+pub nduseropt_icmp_type: __u8,
+pub nduseropt_icmp_code: __u8,
+pub nduseropt_pad2: crate::ctypes::c_ushort,
+pub nduseropt_pad3: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcamsg {
+pub tca_family: crate::ctypes::c_uchar,
+pub tca__pad1: crate::ctypes::c_uchar,
+pub tca__pad2: crate::ctypes::c_ushort,
+}
+pub const _K_SS_MAXSIZE: u32 = 128;
+pub const SOCK_SNDBUF_LOCK: u32 = 1;
+pub const SOCK_RCVBUF_LOCK: u32 = 2;
+pub const SOCK_BUF_LOCK_MASK: u32 = 3;
+pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
+pub const SOCK_TXREHASH_DISABLED: u32 = 0;
+pub const SOCK_TXREHASH_ENABLED: u32 = 1;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/riscv32/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/prctl.rs
new file mode 100644
index 0000000..338cbf9
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/prctl.rs
@@ -0,0 +1,260 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv32/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/ptrace.rs
new file mode 100644
index 0000000..8a7059b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/ptrace.rs
@@ -0,0 +1,886 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_regs_struct {
+pub pc: crate::ctypes::c_ulong,
+pub ra: crate::ctypes::c_ulong,
+pub sp: crate::ctypes::c_ulong,
+pub gp: crate::ctypes::c_ulong,
+pub tp: crate::ctypes::c_ulong,
+pub t0: crate::ctypes::c_ulong,
+pub t1: crate::ctypes::c_ulong,
+pub t2: crate::ctypes::c_ulong,
+pub s0: crate::ctypes::c_ulong,
+pub s1: crate::ctypes::c_ulong,
+pub a0: crate::ctypes::c_ulong,
+pub a1: crate::ctypes::c_ulong,
+pub a2: crate::ctypes::c_ulong,
+pub a3: crate::ctypes::c_ulong,
+pub a4: crate::ctypes::c_ulong,
+pub a5: crate::ctypes::c_ulong,
+pub a6: crate::ctypes::c_ulong,
+pub a7: crate::ctypes::c_ulong,
+pub s2: crate::ctypes::c_ulong,
+pub s3: crate::ctypes::c_ulong,
+pub s4: crate::ctypes::c_ulong,
+pub s5: crate::ctypes::c_ulong,
+pub s6: crate::ctypes::c_ulong,
+pub s7: crate::ctypes::c_ulong,
+pub s8: crate::ctypes::c_ulong,
+pub s9: crate::ctypes::c_ulong,
+pub s10: crate::ctypes::c_ulong,
+pub s11: crate::ctypes::c_ulong,
+pub t3: crate::ctypes::c_ulong,
+pub t4: crate::ctypes::c_ulong,
+pub t5: crate::ctypes::c_ulong,
+pub t6: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __riscv_f_ext_state {
+pub f: [__u32; 32usize],
+pub fcsr: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __riscv_d_ext_state {
+pub f: [__u64; 32usize],
+pub fcsr: __u32,
+}
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __riscv_q_ext_state {
+pub f: [__u64; 64usize],
+pub fcsr: __u32,
+pub reserved: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __riscv_ctx_hdr {
+pub magic: __u32,
+pub size: __u32,
+}
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __riscv_extra_ext_header {
+pub __padding: [__u32; 129usize],
+pub reserved: __u32,
+pub hdr: __riscv_ctx_hdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __riscv_v_ext_state {
+pub vstart: crate::ctypes::c_ulong,
+pub vl: crate::ctypes::c_ulong,
+pub vtype: crate::ctypes::c_ulong,
+pub vcsr: crate::ctypes::c_ulong,
+pub vlenb: crate::ctypes::c_ulong,
+pub datap: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct __riscv_v_regset_state {
+pub vstart: crate::ctypes::c_ulong,
+pub vl: crate::ctypes::c_ulong,
+pub vtype: crate::ctypes::c_ulong,
+pub vcsr: crate::ctypes::c_ulong,
+pub vlenb: crate::ctypes::c_ulong,
+pub vreg: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const PTRACE_GETFDPIC: u32 = 33;
+pub const PTRACE_GETFDPIC_EXEC: u32 = 0;
+pub const PTRACE_GETFDPIC_INTERP: u32 = 1;
+pub const RISCV_MAX_VLENB: u32 = 8192;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Copy, Clone)]
+pub union __riscv_fp_state {
+pub f: __riscv_f_ext_state,
+pub d: __riscv_d_ext_state,
+pub q: __riscv_q_ext_state,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv32/system.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/system.rs
new file mode 100644
index 0000000..62eb254
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/system.rs
@@ -0,0 +1,100 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 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: [crate::ctypes::c_char; 8usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv32/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/riscv32/xdp.rs
new file mode 100644
index 0000000..d161d5f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv32/xdp.rs
@@ -0,0 +1,189 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv64/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/bootparam.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/bootparam.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv64/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/btrfs.rs
new file mode 100644
index 0000000..941a4a2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/btrfs.rs
@@ -0,0 +1,1868 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const _IOC_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv64/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/elf_uapi.rs
new file mode 100644
index 0000000..d1e4a9f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/elf_uapi.rs
@@ -0,0 +1,524 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv64/errno.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/errno.rs
new file mode 100644
index 0000000..5b018a2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/errno.rs
@@ -0,0 +1,135 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv64/general.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/general.rs
new file mode 100644
index 0000000..3420adf
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/general.rs
@@ -0,0 +1,3187 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type cap_user_header_t = *mut __user_cap_header_struct;
+pub type cap_user_data_t = *mut __user_cap_data_struct;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+pub type old_sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type __fsword_t = __kernel_long_t;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fsid_t {
+pub val: [crate::ctypes::c_int; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __user_cap_header_struct {
+pub version: __u32,
+pub pid: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __user_cap_data_struct {
+pub effective: __u32,
+pub permitted: __u32,
+pub inheritable: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_cap_data {
+pub magic_etc: __le32,
+pub data: [vfs_cap_data__bindgen_ty_1; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_cap_data__bindgen_ty_1 {
+pub permitted: __le32,
+pub inheritable: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_ns_cap_data {
+pub magic_etc: __le32,
+pub data: [vfs_ns_cap_data__bindgen_ty_1; 2usize],
+pub rootid: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_ns_cap_data__bindgen_ty_1 {
+pub permitted: __le32,
+pub inheritable: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct f_owner_ex {
+pub type_: crate::ctypes::c_int,
+pub pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct flock {
+pub l_type: crate::ctypes::c_short,
+pub l_whence: crate::ctypes::c_short,
+pub l_start: __kernel_off_t,
+pub l_len: __kernel_off_t,
+pub l_pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct flock64 {
+pub l_type: crate::ctypes::c_short,
+pub l_whence: crate::ctypes::c_short,
+pub l_start: __kernel_loff_t,
+pub l_len: __kernel_loff_t,
+pub l_pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct open_how {
+pub flags: __u64,
+pub mode: __u64,
+pub resolve: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct epoll_event {
+pub events: __poll_t,
+pub data: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 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; 1usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaction {
+pub sa_handler: __sighandler_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_mask: sigset_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaltstack {
+pub ss_sp: *mut crate::ctypes::c_void,
+pub ss_flags: crate::ctypes::c_int,
+pub ss_size: __kernel_size_t,
+}
+#[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_errno: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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; 19usize],
+}
+#[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; 19usize],
+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; 19usize],
+pub c_ispeed: speed_t,
+pub c_ospeed: speed_t,
+}
+#[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_uchar,
+pub c_cc: [crate::ctypes::c_uchar; 8usize],
+}
+#[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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulong,
+pub d_off: crate::ctypes::c_long,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_ulong,
+pub st_ino: crate::ctypes::c_ulong,
+pub st_mode: crate::ctypes::c_uint,
+pub st_nlink: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_uint,
+pub st_gid: crate::ctypes::c_uint,
+pub st_rdev: crate::ctypes::c_ulong,
+pub __pad1: crate::ctypes::c_ulong,
+pub st_size: crate::ctypes::c_long,
+pub st_blksize: crate::ctypes::c_int,
+pub __pad2: crate::ctypes::c_int,
+pub st_blocks: crate::ctypes::c_long,
+pub st_atime: crate::ctypes::c_long,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_long,
+pub st_mtime_nsec: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_long,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub __unused4: crate::ctypes::c_uint,
+pub __unused5: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: __kernel_long_t,
+pub f_bsize: __kernel_long_t,
+pub f_blocks: __kernel_long_t,
+pub f_bfree: __kernel_long_t,
+pub f_bavail: __kernel_long_t,
+pub f_files: __kernel_long_t,
+pub f_ffree: __kernel_long_t,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __kernel_long_t,
+pub f_frsize: __kernel_long_t,
+pub f_flags: __kernel_long_t,
+pub f_spare: [__kernel_long_t; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: __kernel_long_t,
+pub f_bsize: __kernel_long_t,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __kernel_long_t,
+pub f_frsize: __kernel_long_t,
+pub f_flags: __kernel_long_t,
+pub f_spare: [__kernel_long_t; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct compat_statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[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; 1usize],
+}
+#[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 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+pub const LINUX_VERSION_SUBLEVEL: u32 = 0;
+pub const AT_SYSINFO_EHDR: u32 = 33;
+pub const AT_L1I_CACHESIZE: u32 = 40;
+pub const AT_L1I_CACHEGEOMETRY: u32 = 41;
+pub const AT_L1D_CACHESIZE: u32 = 42;
+pub const AT_L1D_CACHEGEOMETRY: u32 = 43;
+pub const AT_L2_CACHESIZE: u32 = 44;
+pub const AT_L2_CACHEGEOMETRY: u32 = 45;
+pub const AT_L3_CACHESIZE: u32 = 46;
+pub const AT_L3_CACHEGEOMETRY: u32 = 47;
+pub const AT_VECTOR_SIZE_ARCH: u32 = 10;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+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_ACCMODE: u32 = 3;
+pub const O_RDONLY: u32 = 0;
+pub const O_WRONLY: u32 = 1;
+pub const O_RDWR: u32 = 2;
+pub const O_CREAT: u32 = 64;
+pub const O_EXCL: u32 = 128;
+pub const O_NOCTTY: u32 = 256;
+pub const O_TRUNC: u32 = 512;
+pub const O_APPEND: u32 = 1024;
+pub const O_NONBLOCK: u32 = 2048;
+pub const O_DSYNC: u32 = 4096;
+pub const FASYNC: u32 = 8192;
+pub const O_DIRECT: u32 = 16384;
+pub const O_LARGEFILE: u32 = 32768;
+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_SYNC: u32 = 1048576;
+pub const O_SYNC: u32 = 1052672;
+pub const O_PATH: u32 = 2097152;
+pub const __O_TMPFILE: u32 = 4194304;
+pub const O_TMPFILE: u32 = 4259840;
+pub const O_NDELAY: u32 = 2048;
+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_GETLK: u32 = 5;
+pub const F_SETLK: u32 = 6;
+pub const F_SETLKW: u32 = 7;
+pub const F_SETOWN: u32 = 8;
+pub const F_GETOWN: u32 = 9;
+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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 = 2048;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+pub const PROT_READ: u32 = 1;
+pub const PROT_WRITE: u32 = 2;
+pub const PROT_EXEC: u32 = 4;
+pub const PROT_SEM: u32 = 8;
+pub const PROT_NONE: u32 = 0;
+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_ANONYMOUS: u32 = 32;
+pub const MAP_POPULATE: u32 = 32768;
+pub const MAP_NONBLOCK: u32 = 65536;
+pub const MAP_STACK: u32 = 131072;
+pub const MAP_HUGETLB: u32 = 262144;
+pub const MAP_SYNC: u32 = 524288;
+pub const MAP_FIXED_NOREPLACE: u32 = 1048576;
+pub const MAP_UNINITIALIZED: u32 = 67108864;
+pub const MLOCK_ONFAULT: u32 = 1;
+pub const MS_ASYNC: u32 = 1;
+pub const MS_INVALIDATE: u32 = 2;
+pub const MS_SYNC: u32 = 4;
+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_HWPOISON: u32 = 100;
+pub const MADV_SOFT_OFFLINE: u32 = 101;
+pub const MADV_MERGEABLE: u32 = 12;
+pub const MADV_UNMERGEABLE: u32 = 13;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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 MAP_GROWSDOWN: u32 = 256;
+pub const MAP_DENYWRITE: u32 = 2048;
+pub const MAP_EXECUTABLE: u32 = 4096;
+pub const MAP_LOCKED: u32 = 8192;
+pub const MAP_NORESERVE: u32 = 16384;
+pub const MCL_CURRENT: u32 = 1;
+pub const MCL_FUTURE: u32 = 2;
+pub const MCL_ONFAULT: u32 = 4;
+pub const SHADOW_STACK_SET_TOKEN: u32 = 1;
+pub const SHADOW_STACK_SET_MARKER: u32 = 2;
+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_DROPPABLE: u32 = 8;
+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 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 POLLWRNORM: u32 = 256;
+pub const POLLWRBAND: u32 = 512;
+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 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_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_RSS: u32 = 5;
+pub const RLIMIT_NPROC: u32 = 6;
+pub const RLIMIT_NOFILE: u32 = 7;
+pub const RLIMIT_MEMLOCK: u32 = 8;
+pub const RLIMIT_AS: u32 = 9;
+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_EXT: u32 = 7;
+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 = 64;
+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 SIGABRT: u32 = 6;
+pub const SIGIOT: u32 = 6;
+pub const SIGBUS: u32 = 7;
+pub const SIGFPE: u32 = 8;
+pub const SIGKILL: u32 = 9;
+pub const SIGUSR1: u32 = 10;
+pub const SIGSEGV: u32 = 11;
+pub const SIGUSR2: u32 = 12;
+pub const SIGPIPE: u32 = 13;
+pub const SIGALRM: u32 = 14;
+pub const SIGTERM: u32 = 15;
+pub const SIGSTKFLT: u32 = 16;
+pub const SIGCHLD: u32 = 17;
+pub const SIGCONT: u32 = 18;
+pub const SIGSTOP: u32 = 19;
+pub const SIGTSTP: u32 = 20;
+pub const SIGTTIN: u32 = 21;
+pub const SIGTTOU: u32 = 22;
+pub const SIGURG: u32 = 23;
+pub const SIGXCPU: u32 = 24;
+pub const SIGXFSZ: u32 = 25;
+pub const SIGVTALRM: u32 = 26;
+pub const SIGPROF: u32 = 27;
+pub const SIGWINCH: u32 = 28;
+pub const SIGIO: u32 = 29;
+pub const SIGPOLL: u32 = 29;
+pub const SIGPWR: u32 = 30;
+pub const SIGSYS: u32 = 31;
+pub const SIGUNUSED: u32 = 31;
+pub const SIGRTMIN: u32 = 32;
+pub const SIGRTMAX: u32 = 64;
+pub const MINSIGSTKSZ: u32 = 2048;
+pub const SIGSTKSZ: u32 = 8192;
+pub const SA_NOCLDSTOP: u32 = 1;
+pub const SA_NOCLDWAIT: u32 = 2;
+pub const SA_SIGINFO: u32 = 4;
+pub const SA_UNSUPPORTED: u32 = 1024;
+pub const SA_EXPOSE_TAGBITS: u32 = 2048;
+pub const SA_ONSTACK: u32 = 134217728;
+pub const SA_RESTART: u32 = 268435456;
+pub const SA_NODEFER: u32 = 1073741824;
+pub const SA_RESETHAND: u32 = 2147483648;
+pub const SA_NOMASK: u32 = 1073741824;
+pub const SA_ONESHOT: u32 = 2147483648;
+pub const SIG_BLOCK: u32 = 0;
+pub const SIG_UNBLOCK: u32 = 1;
+pub const SIG_SETMASK: u32 = 2;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 = 19;
+pub const VINTR: u32 = 0;
+pub const VQUIT: u32 = 1;
+pub const VERASE: u32 = 2;
+pub const VKILL: u32 = 3;
+pub const VEOF: u32 = 4;
+pub const VTIME: u32 = 5;
+pub const VMIN: u32 = 6;
+pub const VSWTC: u32 = 7;
+pub const VSTART: u32 = 8;
+pub const VSTOP: u32 = 9;
+pub const VSUSP: u32 = 10;
+pub const VEOL: u32 = 11;
+pub const VREPRINT: u32 = 12;
+pub const VDISCARD: u32 = 13;
+pub const VWERASE: u32 = 14;
+pub const VLNEXT: u32 = 15;
+pub const VEOL2: u32 = 16;
+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 TOSTOP: u32 = 256;
+pub const ECHOCTL: u32 = 512;
+pub const ECHOPRT: u32 = 1024;
+pub const ECHOKE: u32 = 2048;
+pub const FLUSHO: u32 = 4096;
+pub const PENDIN: u32 = 16384;
+pub const IEXTEN: u32 = 32768;
+pub const EXTPROC: u32 = 65536;
+pub const TCSANOW: u32 = 0;
+pub const TCSADRAIN: u32 = 1;
+pub const TCSAFLUSH: u32 = 2;
+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 TIOCSER_TEMT: u32 = 1;
+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 = 8;
+pub const TIOCM_SR: u32 = 16;
+pub const TIOCM_CTS: u32 = 32;
+pub const TIOCM_CAR: u32 = 64;
+pub const TIOCM_RNG: u32 = 128;
+pub const TIOCM_DSR: u32 = 256;
+pub const TIOCM_CD: u32 = 64;
+pub const TIOCM_RI: u32 = 128;
+pub const TIOCM_OUT1: u32 = 8192;
+pub const TIOCM_OUT2: u32 = 16384;
+pub const TIOCM_LOOP: u32 = 32768;
+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 UIO_FASTIOV: u32 = 8;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const __NR_io_setup: u32 = 0;
+pub const __NR_io_destroy: u32 = 1;
+pub const __NR_io_submit: u32 = 2;
+pub const __NR_io_cancel: u32 = 3;
+pub const __NR_io_getevents: u32 = 4;
+pub const __NR_setxattr: u32 = 5;
+pub const __NR_lsetxattr: u32 = 6;
+pub const __NR_fsetxattr: u32 = 7;
+pub const __NR_getxattr: u32 = 8;
+pub const __NR_lgetxattr: u32 = 9;
+pub const __NR_fgetxattr: u32 = 10;
+pub const __NR_listxattr: u32 = 11;
+pub const __NR_llistxattr: u32 = 12;
+pub const __NR_flistxattr: u32 = 13;
+pub const __NR_removexattr: u32 = 14;
+pub const __NR_lremovexattr: u32 = 15;
+pub const __NR_fremovexattr: u32 = 16;
+pub const __NR_getcwd: u32 = 17;
+pub const __NR_lookup_dcookie: u32 = 18;
+pub const __NR_eventfd2: u32 = 19;
+pub const __NR_epoll_create1: u32 = 20;
+pub const __NR_epoll_ctl: u32 = 21;
+pub const __NR_epoll_pwait: u32 = 22;
+pub const __NR_dup: u32 = 23;
+pub const __NR_dup3: u32 = 24;
+pub const __NR_fcntl: u32 = 25;
+pub const __NR_inotify_init1: u32 = 26;
+pub const __NR_inotify_add_watch: u32 = 27;
+pub const __NR_inotify_rm_watch: u32 = 28;
+pub const __NR_ioctl: u32 = 29;
+pub const __NR_ioprio_set: u32 = 30;
+pub const __NR_ioprio_get: u32 = 31;
+pub const __NR_flock: u32 = 32;
+pub const __NR_mknodat: u32 = 33;
+pub const __NR_mkdirat: u32 = 34;
+pub const __NR_unlinkat: u32 = 35;
+pub const __NR_symlinkat: u32 = 36;
+pub const __NR_linkat: u32 = 37;
+pub const __NR_umount2: u32 = 39;
+pub const __NR_mount: u32 = 40;
+pub const __NR_pivot_root: u32 = 41;
+pub const __NR_nfsservctl: u32 = 42;
+pub const __NR_statfs: u32 = 43;
+pub const __NR_fstatfs: u32 = 44;
+pub const __NR_truncate: u32 = 45;
+pub const __NR_ftruncate: u32 = 46;
+pub const __NR_fallocate: u32 = 47;
+pub const __NR_faccessat: u32 = 48;
+pub const __NR_chdir: u32 = 49;
+pub const __NR_fchdir: u32 = 50;
+pub const __NR_chroot: u32 = 51;
+pub const __NR_fchmod: u32 = 52;
+pub const __NR_fchmodat: u32 = 53;
+pub const __NR_fchownat: u32 = 54;
+pub const __NR_fchown: u32 = 55;
+pub const __NR_openat: u32 = 56;
+pub const __NR_close: u32 = 57;
+pub const __NR_vhangup: u32 = 58;
+pub const __NR_pipe2: u32 = 59;
+pub const __NR_quotactl: u32 = 60;
+pub const __NR_getdents64: u32 = 61;
+pub const __NR_lseek: u32 = 62;
+pub const __NR_read: u32 = 63;
+pub const __NR_write: u32 = 64;
+pub const __NR_readv: u32 = 65;
+pub const __NR_writev: u32 = 66;
+pub const __NR_pread64: u32 = 67;
+pub const __NR_pwrite64: u32 = 68;
+pub const __NR_preadv: u32 = 69;
+pub const __NR_pwritev: u32 = 70;
+pub const __NR_sendfile: u32 = 71;
+pub const __NR_pselect6: u32 = 72;
+pub const __NR_ppoll: u32 = 73;
+pub const __NR_signalfd4: u32 = 74;
+pub const __NR_vmsplice: u32 = 75;
+pub const __NR_splice: u32 = 76;
+pub const __NR_tee: u32 = 77;
+pub const __NR_readlinkat: u32 = 78;
+pub const __NR_newfstatat: u32 = 79;
+pub const __NR_fstat: u32 = 80;
+pub const __NR_sync: u32 = 81;
+pub const __NR_fsync: u32 = 82;
+pub const __NR_fdatasync: u32 = 83;
+pub const __NR_sync_file_range: u32 = 84;
+pub const __NR_timerfd_create: u32 = 85;
+pub const __NR_timerfd_settime: u32 = 86;
+pub const __NR_timerfd_gettime: u32 = 87;
+pub const __NR_utimensat: u32 = 88;
+pub const __NR_acct: u32 = 89;
+pub const __NR_capget: u32 = 90;
+pub const __NR_capset: u32 = 91;
+pub const __NR_personality: u32 = 92;
+pub const __NR_exit: u32 = 93;
+pub const __NR_exit_group: u32 = 94;
+pub const __NR_waitid: u32 = 95;
+pub const __NR_set_tid_address: u32 = 96;
+pub const __NR_unshare: u32 = 97;
+pub const __NR_futex: u32 = 98;
+pub const __NR_set_robust_list: u32 = 99;
+pub const __NR_get_robust_list: u32 = 100;
+pub const __NR_nanosleep: u32 = 101;
+pub const __NR_getitimer: u32 = 102;
+pub const __NR_setitimer: u32 = 103;
+pub const __NR_kexec_load: u32 = 104;
+pub const __NR_init_module: u32 = 105;
+pub const __NR_delete_module: u32 = 106;
+pub const __NR_timer_create: u32 = 107;
+pub const __NR_timer_gettime: u32 = 108;
+pub const __NR_timer_getoverrun: u32 = 109;
+pub const __NR_timer_settime: u32 = 110;
+pub const __NR_timer_delete: u32 = 111;
+pub const __NR_clock_settime: u32 = 112;
+pub const __NR_clock_gettime: u32 = 113;
+pub const __NR_clock_getres: u32 = 114;
+pub const __NR_clock_nanosleep: u32 = 115;
+pub const __NR_syslog: u32 = 116;
+pub const __NR_ptrace: u32 = 117;
+pub const __NR_sched_setparam: u32 = 118;
+pub const __NR_sched_setscheduler: u32 = 119;
+pub const __NR_sched_getscheduler: u32 = 120;
+pub const __NR_sched_getparam: u32 = 121;
+pub const __NR_sched_setaffinity: u32 = 122;
+pub const __NR_sched_getaffinity: u32 = 123;
+pub const __NR_sched_yield: u32 = 124;
+pub const __NR_sched_get_priority_max: u32 = 125;
+pub const __NR_sched_get_priority_min: u32 = 126;
+pub const __NR_sched_rr_get_interval: u32 = 127;
+pub const __NR_restart_syscall: u32 = 128;
+pub const __NR_kill: u32 = 129;
+pub const __NR_tkill: u32 = 130;
+pub const __NR_tgkill: u32 = 131;
+pub const __NR_sigaltstack: u32 = 132;
+pub const __NR_rt_sigsuspend: u32 = 133;
+pub const __NR_rt_sigaction: u32 = 134;
+pub const __NR_rt_sigprocmask: u32 = 135;
+pub const __NR_rt_sigpending: u32 = 136;
+pub const __NR_rt_sigtimedwait: u32 = 137;
+pub const __NR_rt_sigqueueinfo: u32 = 138;
+pub const __NR_rt_sigreturn: u32 = 139;
+pub const __NR_setpriority: u32 = 140;
+pub const __NR_getpriority: u32 = 141;
+pub const __NR_reboot: u32 = 142;
+pub const __NR_setregid: u32 = 143;
+pub const __NR_setgid: u32 = 144;
+pub const __NR_setreuid: u32 = 145;
+pub const __NR_setuid: u32 = 146;
+pub const __NR_setresuid: u32 = 147;
+pub const __NR_getresuid: u32 = 148;
+pub const __NR_setresgid: u32 = 149;
+pub const __NR_getresgid: u32 = 150;
+pub const __NR_setfsuid: u32 = 151;
+pub const __NR_setfsgid: u32 = 152;
+pub const __NR_times: u32 = 153;
+pub const __NR_setpgid: u32 = 154;
+pub const __NR_getpgid: u32 = 155;
+pub const __NR_getsid: u32 = 156;
+pub const __NR_setsid: u32 = 157;
+pub const __NR_getgroups: u32 = 158;
+pub const __NR_setgroups: u32 = 159;
+pub const __NR_uname: u32 = 160;
+pub const __NR_sethostname: u32 = 161;
+pub const __NR_setdomainname: u32 = 162;
+pub const __NR_getrlimit: u32 = 163;
+pub const __NR_setrlimit: u32 = 164;
+pub const __NR_getrusage: u32 = 165;
+pub const __NR_umask: u32 = 166;
+pub const __NR_prctl: u32 = 167;
+pub const __NR_getcpu: u32 = 168;
+pub const __NR_gettimeofday: u32 = 169;
+pub const __NR_settimeofday: u32 = 170;
+pub const __NR_adjtimex: u32 = 171;
+pub const __NR_getpid: u32 = 172;
+pub const __NR_getppid: u32 = 173;
+pub const __NR_getuid: u32 = 174;
+pub const __NR_geteuid: u32 = 175;
+pub const __NR_getgid: u32 = 176;
+pub const __NR_getegid: u32 = 177;
+pub const __NR_gettid: u32 = 178;
+pub const __NR_sysinfo: u32 = 179;
+pub const __NR_mq_open: u32 = 180;
+pub const __NR_mq_unlink: u32 = 181;
+pub const __NR_mq_timedsend: u32 = 182;
+pub const __NR_mq_timedreceive: u32 = 183;
+pub const __NR_mq_notify: u32 = 184;
+pub const __NR_mq_getsetattr: u32 = 185;
+pub const __NR_msgget: u32 = 186;
+pub const __NR_msgctl: u32 = 187;
+pub const __NR_msgrcv: u32 = 188;
+pub const __NR_msgsnd: u32 = 189;
+pub const __NR_semget: u32 = 190;
+pub const __NR_semctl: u32 = 191;
+pub const __NR_semtimedop: u32 = 192;
+pub const __NR_semop: u32 = 193;
+pub const __NR_shmget: u32 = 194;
+pub const __NR_shmctl: u32 = 195;
+pub const __NR_shmat: u32 = 196;
+pub const __NR_shmdt: u32 = 197;
+pub const __NR_socket: u32 = 198;
+pub const __NR_socketpair: u32 = 199;
+pub const __NR_bind: u32 = 200;
+pub const __NR_listen: u32 = 201;
+pub const __NR_accept: u32 = 202;
+pub const __NR_connect: u32 = 203;
+pub const __NR_getsockname: u32 = 204;
+pub const __NR_getpeername: u32 = 205;
+pub const __NR_sendto: u32 = 206;
+pub const __NR_recvfrom: u32 = 207;
+pub const __NR_setsockopt: u32 = 208;
+pub const __NR_getsockopt: u32 = 209;
+pub const __NR_shutdown: u32 = 210;
+pub const __NR_sendmsg: u32 = 211;
+pub const __NR_recvmsg: u32 = 212;
+pub const __NR_readahead: u32 = 213;
+pub const __NR_brk: u32 = 214;
+pub const __NR_munmap: u32 = 215;
+pub const __NR_mremap: u32 = 216;
+pub const __NR_add_key: u32 = 217;
+pub const __NR_request_key: u32 = 218;
+pub const __NR_keyctl: u32 = 219;
+pub const __NR_clone: u32 = 220;
+pub const __NR_execve: u32 = 221;
+pub const __NR_mmap: u32 = 222;
+pub const __NR_fadvise64: u32 = 223;
+pub const __NR_swapon: u32 = 224;
+pub const __NR_swapoff: u32 = 225;
+pub const __NR_mprotect: u32 = 226;
+pub const __NR_msync: u32 = 227;
+pub const __NR_mlock: u32 = 228;
+pub const __NR_munlock: u32 = 229;
+pub const __NR_mlockall: u32 = 230;
+pub const __NR_munlockall: u32 = 231;
+pub const __NR_mincore: u32 = 232;
+pub const __NR_madvise: u32 = 233;
+pub const __NR_remap_file_pages: u32 = 234;
+pub const __NR_mbind: u32 = 235;
+pub const __NR_get_mempolicy: u32 = 236;
+pub const __NR_set_mempolicy: u32 = 237;
+pub const __NR_migrate_pages: u32 = 238;
+pub const __NR_move_pages: u32 = 239;
+pub const __NR_rt_tgsigqueueinfo: u32 = 240;
+pub const __NR_perf_event_open: u32 = 241;
+pub const __NR_accept4: u32 = 242;
+pub const __NR_recvmmsg: u32 = 243;
+pub const __NR_riscv_hwprobe: u32 = 258;
+pub const __NR_riscv_flush_icache: u32 = 259;
+pub const __NR_wait4: u32 = 260;
+pub const __NR_prlimit64: u32 = 261;
+pub const __NR_fanotify_init: u32 = 262;
+pub const __NR_fanotify_mark: u32 = 263;
+pub const __NR_name_to_handle_at: u32 = 264;
+pub const __NR_open_by_handle_at: u32 = 265;
+pub const __NR_clock_adjtime: u32 = 266;
+pub const __NR_syncfs: u32 = 267;
+pub const __NR_setns: u32 = 268;
+pub const __NR_sendmmsg: u32 = 269;
+pub const __NR_process_vm_readv: u32 = 270;
+pub const __NR_process_vm_writev: u32 = 271;
+pub const __NR_kcmp: u32 = 272;
+pub const __NR_finit_module: u32 = 273;
+pub const __NR_sched_setattr: u32 = 274;
+pub const __NR_sched_getattr: u32 = 275;
+pub const __NR_renameat2: u32 = 276;
+pub const __NR_seccomp: u32 = 277;
+pub const __NR_getrandom: u32 = 278;
+pub const __NR_memfd_create: u32 = 279;
+pub const __NR_bpf: u32 = 280;
+pub const __NR_execveat: u32 = 281;
+pub const __NR_userfaultfd: u32 = 282;
+pub const __NR_membarrier: u32 = 283;
+pub const __NR_mlock2: u32 = 284;
+pub const __NR_copy_file_range: u32 = 285;
+pub const __NR_preadv2: u32 = 286;
+pub const __NR_pwritev2: u32 = 287;
+pub const __NR_pkey_mprotect: u32 = 288;
+pub const __NR_pkey_alloc: u32 = 289;
+pub const __NR_pkey_free: u32 = 290;
+pub const __NR_statx: u32 = 291;
+pub const __NR_io_pgetevents: u32 = 292;
+pub const __NR_rseq: u32 = 293;
+pub const __NR_kexec_file_load: u32 = 294;
+pub const __NR_pidfd_send_signal: u32 = 424;
+pub const __NR_io_uring_setup: u32 = 425;
+pub const __NR_io_uring_enter: u32 = 426;
+pub const __NR_io_uring_register: u32 = 427;
+pub const __NR_open_tree: u32 = 428;
+pub const __NR_move_mount: u32 = 429;
+pub const __NR_fsopen: u32 = 430;
+pub const __NR_fsconfig: u32 = 431;
+pub const __NR_fsmount: u32 = 432;
+pub const __NR_fspick: u32 = 433;
+pub const __NR_pidfd_open: u32 = 434;
+pub const __NR_clone3: u32 = 435;
+pub const __NR_close_range: u32 = 436;
+pub const __NR_openat2: u32 = 437;
+pub const __NR_pidfd_getfd: u32 = 438;
+pub const __NR_faccessat2: u32 = 439;
+pub const __NR_process_madvise: u32 = 440;
+pub const __NR_epoll_pwait2: u32 = 441;
+pub const __NR_mount_setattr: u32 = 442;
+pub const __NR_quotactl_fd: u32 = 443;
+pub const __NR_landlock_create_ruleset: u32 = 444;
+pub const __NR_landlock_add_rule: u32 = 445;
+pub const __NR_landlock_restrict_self: u32 = 446;
+pub const __NR_memfd_secret: u32 = 447;
+pub const __NR_process_mrelease: u32 = 448;
+pub const __NR_futex_waitv: u32 = 449;
+pub const __NR_set_mempolicy_home_node: u32 = 450;
+pub const __NR_cachestat: u32 = 451;
+pub const __NR_fchmodat2: u32 = 452;
+pub const __NR_map_shadow_stack: u32 = 453;
+pub const __NR_futex_wake: u32 = 454;
+pub const __NR_futex_wait: u32 = 455;
+pub const __NR_futex_requeue: u32 = 456;
+pub const __NR_statmount: u32 = 457;
+pub const __NR_listmount: u32 = 458;
+pub const __NR_lsm_get_self_attr: u32 = 459;
+pub const __NR_lsm_set_self_attr: u32 = 460;
+pub const __NR_lsm_list_modules: u32 = 461;
+pub const __NR_mseal: u32 = 462;
+pub const __NR_setxattrat: u32 = 463;
+pub const __NR_getxattrat: u32 = 464;
+pub const __NR_listxattrat: u32 = 465;
+pub const __NR_removexattrat: u32 = 466;
+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 = 2048;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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 = 2048;
+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 = 526336;
+pub const TFD_CREATE_FLAGS: u32 = 526336;
+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 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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd {
+MEMBARRIER_CMD_QUERY = 0,
+MEMBARRIER_CMD_GLOBAL = 1,
+MEMBARRIER_CMD_GLOBAL_EXPEDITED = 2,
+MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 4,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED = 8,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 16,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 32,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 64,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 128,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 256,
+MEMBARRIER_CMD_GET_REGISTRATIONS = 512,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd_flag {
+MEMBARRIER_CMD_FLAG_CPU = 1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_get_policy_ex_arg__bindgen_ty_1 {
+pub version: __u8,
+pub v1: fscrypt_policy_v1,
+pub v2: fscrypt_policy_v2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_key_specifier__bindgen_ty_1 {
+pub __reserved: [__u8; 32usize],
+pub descriptor: [__u8; 8usize],
+pub identifier: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigval {
+pub sival_int: crate::ctypes::c_int,
+pub sival_ptr: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields {
+pub _kill: __sifields__bindgen_ty_1,
+pub _timer: __sifields__bindgen_ty_2,
+pub _rt: __sifields__bindgen_ty_3,
+pub _sigchld: __sifields__bindgen_ty_4,
+pub _sigfault: __sifields__bindgen_ty_5,
+pub _sigpoll: __sifields__bindgen_ty_6,
+pub _sigsys: __sifields__bindgen_ty_7,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields__bindgen_ty_5__bindgen_ty_1 {
+pub _trapno: crate::ctypes::c_int,
+pub _addr_lsb: crate::ctypes::c_short,
+pub _addr_bnd: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1,
+pub _addr_pkey: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2,
+pub _perf: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union siginfo__bindgen_ty_1 {
+pub __bindgen_anon_1: siginfo__bindgen_ty_1__bindgen_ty_1,
+pub _si_pad: [crate::ctypes::c_int; 32usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigevent__bindgen_ty_1 {
+pub _pad: [crate::ctypes::c_int; 12usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/riscv64/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/if_arp.rs
new file mode 100644
index 0000000..fcb2f48
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/if_arp.rs
@@ -0,0 +1,2757 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 id: __u16,
+pub type_flags: __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 __BITS_PER_LONG_LONG: u32 = 64;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/riscv64/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/if_ether.rs
new file mode 100644
index 0000000..c1f4e6d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/if_ether.rs
@@ -0,0 +1,170 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/riscv64/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/if_packet.rs
new file mode 100644
index 0000000..76a0a3e
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/if_packet.rs
@@ -0,0 +1,311 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 id: __u16,
+pub type_flags: __u16,
+pub max_num_members: __u32,
+}
+pub const __LITTLE_ENDIAN: u32 = 1234;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/riscv64/image.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv64/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/io_uring.rs
new file mode 100644
index 0000000..0558dcb
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/io_uring.rs
@@ -0,0 +1,1336 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv64/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/ioctl.rs
new file mode 100644
index 0000000..63131c9
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/ioctl.rs
@@ -0,0 +1,1502 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub const FIONREAD: u32 = 21531;
+pub const FIONBIO: u32 = 21537;
+pub const FIOCLEX: u32 = 21585;
+pub const FIONCLEX: u32 = 21584;
+pub const FIOASYNC: u32 = 21586;
+pub const FIOQSIZE: u32 = 21600;
+pub const TCXONC: u32 = 21514;
+pub const TCFLSH: u32 = 21515;
+pub const TIOCSCTTY: u32 = 21518;
+pub const TIOCSPGRP: u32 = 21520;
+pub const TIOCOUTQ: u32 = 21521;
+pub const TIOCSTI: u32 = 21522;
+pub const TIOCSWINSZ: u32 = 21524;
+pub const TIOCMGET: u32 = 21525;
+pub const TIOCMBIS: u32 = 21526;
+pub const TIOCMBIC: u32 = 21527;
+pub const TIOCMSET: u32 = 21528;
+pub const TIOCSSOFTCAR: u32 = 21530;
+pub const TIOCLINUX: u32 = 21532;
+pub const TIOCCONS: u32 = 21533;
+pub const TIOCSSERIAL: u32 = 21535;
+pub const TIOCPKT: u32 = 21536;
+pub const TIOCNOTTY: u32 = 21538;
+pub const TIOCSETD: u32 = 21539;
+pub const TIOCSBRK: u32 = 21543;
+pub const TIOCCBRK: u32 = 21544;
+pub const TIOCSRS485: u32 = 21551;
+pub const TIOCSPTLCK: u32 = 1074025521;
+pub const TIOCSIG: u32 = 1074025526;
+pub const TIOCVHANGUP: u32 = 21559;
+pub const TIOCSERCONFIG: u32 = 21587;
+pub const TIOCSERGWILD: u32 = 21588;
+pub const TIOCSERSWILD: u32 = 21589;
+pub const TIOCSLCKTRMIOS: u32 = 21591;
+pub const TIOCSERGSTRUCT: u32 = 21592;
+pub const TIOCSERGETLSR: u32 = 21593;
+pub const TIOCSERGETMULTI: u32 = 21594;
+pub const TIOCSERSETMULTI: u32 = 21595;
+pub const TIOCMIWAIT: u32 = 21596;
+pub const TCGETS: u32 = 21505;
+pub const TCGETA: u32 = 21509;
+pub const TCSBRK: u32 = 21513;
+pub const TCSBRKP: u32 = 21541;
+pub const TCSETA: u32 = 21510;
+pub const TCSETAF: u32 = 21512;
+pub const TCSETAW: u32 = 21511;
+pub const TIOCEXCL: u32 = 21516;
+pub const TIOCNXCL: u32 = 21517;
+pub const TIOCGDEV: u32 = 2147767346;
+pub const TIOCGEXCL: u32 = 2147767360;
+pub const TIOCGICOUNT: u32 = 21597;
+pub const TIOCGLCKTRMIOS: u32 = 21590;
+pub const TIOCGPGRP: u32 = 21519;
+pub const TIOCGPKT: u32 = 2147767352;
+pub const TIOCGPTLCK: u32 = 2147767353;
+pub const TIOCGPTN: u32 = 2147767344;
+pub const TIOCGPTPEER: u32 = 21569;
+pub const TIOCGRS485: u32 = 21550;
+pub const TIOCGSERIAL: u32 = 21534;
+pub const TIOCGSID: u32 = 21545;
+pub const TIOCGSOFTCAR: u32 = 21529;
+pub const TIOCGWINSZ: u32 = 21523;
+pub const TCGETS2: u32 = 2150388778;
+pub const TCGETX: u32 = 21554;
+pub const TCSETS: u32 = 21506;
+pub const TCSETS2: u32 = 1076646955;
+pub const TCSETSF: u32 = 21508;
+pub const TCSETSF2: u32 = 1076646957;
+pub const TCSETSW: u32 = 21507;
+pub const TCSETSW2: u32 = 1076646956;
+pub const TCSETX: u32 = 21555;
+pub const TCSETXF: u32 = 21556;
+pub const TCSETXW: u32 = 21557;
+pub const TIOCGETD: u32 = 21540;
+pub const MTIOCGET: u32 = 2150657282;
+pub const BLKSSZGET: u32 = 4712;
+pub const BLKPBSZGET: u32 = 4731;
+pub const BLKROSET: u32 = 4701;
+pub const BLKROGET: u32 = 4702;
+pub const BLKRRPART: u32 = 4703;
+pub const BLKGETSIZE: u32 = 4704;
+pub const BLKFLSBUF: u32 = 4705;
+pub const BLKRASET: u32 = 4706;
+pub const BLKRAGET: u32 = 4707;
+pub const BLKFRASET: u32 = 4708;
+pub const BLKFRAGET: u32 = 4709;
+pub const BLKSECTSET: u32 = 4710;
+pub const BLKSECTGET: u32 = 4711;
+pub const BLKPG: u32 = 4713;
+pub const BLKBSZGET: u32 = 2148012656;
+pub const BLKBSZSET: u32 = 1074270833;
+pub const BLKGETSIZE64: u32 = 2148012658;
+pub const BLKTRACESETUP: u32 = 3225948787;
+pub const BLKTRACESTART: u32 = 4724;
+pub const BLKTRACESTOP: u32 = 4725;
+pub const BLKTRACETEARDOWN: u32 = 4726;
+pub const BLKDISCARD: u32 = 4727;
+pub const BLKIOMIN: u32 = 4728;
+pub const BLKIOOPT: u32 = 4729;
+pub const BLKALIGNOFF: u32 = 4730;
+pub const BLKDISCARDZEROES: u32 = 4732;
+pub const BLKSECDISCARD: u32 = 4733;
+pub const BLKROTATIONAL: u32 = 4734;
+pub const BLKZEROOUT: u32 = 4735;
+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 = 2148575745;
+pub const UFFDIO_WAKE: u32 = 2148575746;
+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 = 46849;
+pub const NS_GET_PARENT: u32 = 46850;
+pub const NS_GET_NSTYPE: u32 = 46851;
+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 = 35073;
+pub const SIOCSPGRP: u32 = 35074;
+pub const FIOGETOWN: u32 = 35075;
+pub const SIOCGPGRP: u32 = 35076;
+pub const SIOCATMARK: u32 = 35077;
+pub const SIOCGSTAMP: u32 = 35078;
+pub const TIOCINQ: u32 = 21531;
+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 = 1;
+pub const FIGETBSZ: u32 = 2;
+pub const FIFREEZE: u32 = 3221510263;
+pub const FITHAW: u32 = 3221510264;
+pub const FITRIM: u32 = 3222820985;
+pub const FICLONE: u32 = 1074041865;
+pub const FICLONERANGE: u32 = 1075876877;
+pub const FIDEDUPERANGE: u32 = 3222836278;
+pub const FS_IOC_GETFLAGS: u32 = 2148034049;
+pub const FS_IOC_SETFLAGS: u32 = 1074292226;
+pub const FS_IOC_GETVERSION: u32 = 2148038145;
+pub const FS_IOC_SETVERSION: u32 = 1074296322;
+pub const FS_IOC_FIEMAP: u32 = 3223348747;
+pub const FS_IOC32_GETFLAGS: u32 = 2147771905;
+pub const FS_IOC32_SETFLAGS: u32 = 1074030082;
+pub const FS_IOC32_GETVERSION: u32 = 2147776001;
+pub const FS_IOC32_SETVERSION: u32 = 1074034178;
+pub const FS_IOC_FSGETXATTR: u32 = 2149341215;
+pub const FS_IOC_FSSETXATTR: u32 = 1075599392;
+pub const FS_IOC_GETFSLABEL: u32 = 2164298801;
+pub const FS_IOC_SETFSLABEL: u32 = 1090556978;
+pub const EXT4_IOC_GETVERSION: u32 = 2148034051;
+pub const EXT4_IOC_SETVERSION: u32 = 1074292228;
+pub const EXT4_IOC_GETVERSION_OLD: u32 = 2148038145;
+pub const EXT4_IOC_SETVERSION_OLD: u32 = 1074296322;
+pub const EXT4_IOC_GETRSVSZ: u32 = 2148034053;
+pub const EXT4_IOC_SETRSVSZ: u32 = 1074292230;
+pub const EXT4_IOC_GROUP_EXTEND: u32 = 1074292231;
+pub const EXT4_IOC_MIGRATE: u32 = 26121;
+pub const EXT4_IOC_ALLOC_DA_BLKS: u32 = 26124;
+pub const EXT4_IOC_RESIZE_FS: u32 = 1074292240;
+pub const EXT4_IOC_SWAP_BOOT: u32 = 26129;
+pub const EXT4_IOC_PRECACHE_EXTENTS: u32 = 26130;
+pub const EXT4_IOC_CLEAR_ES_CACHE: u32 = 26152;
+pub const EXT4_IOC_GETSTATE: u32 = 1074030121;
+pub const EXT4_IOC_GET_ES_CACHE: u32 = 3223348778;
+pub const EXT4_IOC_CHECKPOINT: u32 = 1074030123;
+pub const EXT4_IOC_SHUTDOWN: u32 = 2147768445;
+pub const EXT4_IOC32_GETVERSION: u32 = 2147771907;
+pub const EXT4_IOC32_SETVERSION: u32 = 1074030084;
+pub const EXT4_IOC32_GETRSVSZ: u32 = 2147771909;
+pub const EXT4_IOC32_SETRSVSZ: u32 = 1074030086;
+pub const EXT4_IOC32_GROUP_EXTEND: u32 = 1074030087;
+pub const EXT4_IOC32_GETVERSION_OLD: u32 = 2147776001;
+pub const EXT4_IOC32_SETVERSION_OLD: u32 = 1074034178;
+pub const VIDIOC_SUBDEV_QUERYSTD: u32 = 2148030015;
+pub const AUTOFS_DEV_IOCTL_CLOSEMOUNT: u32 = 3222836085;
+pub const LIRC_SET_SEND_CARRIER: u32 = 1074030867;
+pub const AUTOFS_IOC_PROTOSUBVER: u32 = 2147783527;
+pub const PTP_SYS_OFFSET_PRECISE: u32 = 3225435400;
+pub const FSI_SCOM_WRITE: u32 = 3223352066;
+pub const ATM_GETCIRANGE: u32 = 1074815370;
+pub const DMA_BUF_SET_NAME_B: u32 = 1074291201;
+pub const RIO_CM_EP_GET_LIST_SIZE: u32 = 3221512961;
+pub const TUNSETPERSIST: u32 = 1074025675;
+pub const FS_IOC_GET_ENCRYPTION_POLICY: u32 = 1074554389;
+pub const CEC_RECEIVE: u32 = 3224920326;
+pub const MGSL_IOCGPARAMS: u32 = 2150657281;
+pub const ENI_SETMULT: u32 = 1074815335;
+pub const RIO_GET_EVENT_MASK: u32 = 2147773710;
+pub const LIRC_GET_MAX_TIMEOUT: u32 = 2147772681;
+pub const USBDEVFS_CLAIMINTERFACE: u32 = 2147767567;
+pub const CHIOMOVE: u32 = 1075077889;
+pub const SONYPI_IOCGBATFLAGS: u32 = 2147579399;
+pub const BTRFS_IOC_SYNC: u32 = 37896;
+pub const VIDIOC_TRY_FMT: u32 = 3234879040;
+pub const LIRC_SET_REC_MODE: u32 = 1074030866;
+pub const VIDIOC_DQEVENT: u32 = 2156418649;
+pub const RPMSG_DESTROY_EPT_IOCTL: u32 = 46338;
+pub const UVCIOC_CTRL_MAP: u32 = 3227546912;
+pub const VHOST_SET_BACKEND_FEATURES: u32 = 1074310949;
+pub const VHOST_VSOCK_SET_GUEST_CID: u32 = 1074311008;
+pub const UI_SET_KEYBIT: u32 = 1074025829;
+pub const LIRC_SET_REC_TIMEOUT: u32 = 1074030872;
+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 = 1074310930;
+pub const RIO_ENABLE_DOORBELL_RANGE: u32 = 1074294025;
+pub const VIDIOC_TRY_EXT_CTRLS: u32 = 3223344713;
+pub const LIRC_GET_REC_MODE: u32 = 2147772674;
+pub const PPGETTIME: u32 = 2148561045;
+pub const BTRFS_IOC_RM_DEV: u32 = 1342215179;
+pub const ATM_SETBACKEND: u32 = 1073897970;
+pub const FSL_HV_IOCTL_PARTITION_START: u32 = 3222318851;
+pub const FBIO_WAITEVENT: u32 = 18056;
+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 = 601;
+pub const NVME_IOCTL_SUBMIT_IO: u32 = 1076907586;
+pub const NILFS_IOCTL_SYNC: u32 = 2148036234;
+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 = 2147787781;
+pub const NS_GETPSTAT: u32 = 3222298977;
+pub const UI_SET_PROPBIT: u32 = 1074025838;
+pub const TUNSETFILTEREBPF: u32 = 2147767521;
+pub const RIO_MPORT_MAINT_COMPTAG_SET: u32 = 1074031874;
+pub const AUTOFS_DEV_IOCTL_VERSION: u32 = 3222836081;
+pub const WDIOC_SETOPTIONS: u32 = 2147768068;
+pub const VHOST_SCSI_SET_ENDPOINT: u32 = 1088991040;
+pub const MGSL_IOCGTXIDLE: u32 = 27907;
+pub const ATM_ADDLECSADDR: u32 = 1074815374;
+pub const FSL_HV_IOCTL_GETPROP: u32 = 3223891719;
+pub const FDGETPRM: u32 = 2149581316;
+pub const HIDIOCAPPLICATION: u32 = 18434;
+pub const ENI_MEMDUMP: u32 = 1074815328;
+pub const PTP_SYS_OFFSET2: u32 = 1128283406;
+pub const VIDIOC_SUBDEV_G_DV_TIMINGS: u32 = 3229898328;
+pub const DMA_BUF_SET_NAME_A: u32 = 1074029057;
+pub const PTP_PIN_GETFUNC: u32 = 3227532550;
+pub const PTP_SYS_OFFSET_EXTENDED: u32 = 3300932873;
+pub const DFL_FPGA_PORT_UINT_SET_IRQ: u32 = 1074312776;
+pub const RTC_EPOCH_READ: u32 = 2148036621;
+pub const VIDIOC_SUBDEV_S_SELECTION: u32 = 3225441854;
+pub const VIDIOC_QUERY_EXT_CTRL: u32 = 3236451943;
+pub const ATM_GETLECSADDR: u32 = 1074815376;
+pub const FSL_HV_IOCTL_PARTITION_STOP: u32 = 3221794564;
+pub const SONET_GETDIAG: u32 = 2147770644;
+pub const ATMMPC_DATA: u32 = 25049;
+pub const IPMICTL_UNREGISTER_FOR_CMD_CHANS: u32 = 2148296989;
+pub const HIDIOCGCOLLECTIONINDEX: u32 = 1075333136;
+pub const RPMSG_CREATE_EPT_IOCTL: u32 = 1076409601;
+pub const GPIOHANDLE_GET_LINE_VALUES_IOCTL: u32 = 3225465864;
+pub const UI_DEV_SETUP: u32 = 1079792899;
+pub const ISST_IF_IO_CMD: u32 = 1074331138;
+pub const RIO_MPORT_MAINT_READ_REMOTE: u32 = 2149084423;
+pub const VIDIOC_OMAP3ISP_HIST_CFG: u32 = 3224393412;
+pub const BLKGETNRZONES: u32 = 2147750533;
+pub const VIDIOC_G_MODULATOR: u32 = 3225703990;
+pub const VBG_IOCTL_WRITE_CORE_DUMP: u32 = 3223082515;
+pub const USBDEVFS_SETINTERFACE: u32 = 2148029700;
+pub const PPPIOCGCHAN: u32 = 2147775543;
+pub const EVIOCGVERSION: u32 = 2147763457;
+pub const VHOST_NET_SET_BACKEND: u32 = 1074310960;
+pub const USBDEVFS_REAPURBNDELAY: u32 = 1074287885;
+pub const RNDZAPENTCNT: u32 = 20996;
+pub const VIDIOC_G_PARM: u32 = 3234616853;
+pub const TUNGETDEVNETNS: u32 = 21731;
+pub const LIRC_SET_MEASURE_CARRIER_MODE: u32 = 1074030877;
+pub const VHOST_SET_VRING_ERR: u32 = 1074310946;
+pub const VDUSE_VQ_SETUP: u32 = 1075872020;
+pub const AUTOFS_IOC_SETTIMEOUT: u32 = 3221787492;
+pub const VIDIOC_S_FREQUENCY: u32 = 1076647481;
+pub const F2FS_IOC_SEC_TRIM_FILE: u32 = 1075377428;
+pub const FS_IOC_REMOVE_ENCRYPTION_KEY: u32 = 3225445912;
+pub const WDIOC_GETPRETIMEOUT: u32 = 2147768073;
+pub const USBDEVFS_DROP_PRIVILEGES: u32 = 1074025758;
+pub const BTRFS_IOC_SNAP_CREATE_V2: u32 = 1342215191;
+pub const VHOST_VSOCK_SET_RUNNING: u32 = 1074048865;
+pub const STP_SET_OPTIONS: u32 = 1074275586;
+pub const FBIO_RADEON_GET_MIRROR: u32 = 2148024323;
+pub const IVTVFB_IOC_DMA_FRAME: u32 = 1075336896;
+pub const IPMICTL_SEND_COMMAND: u32 = 2150131981;
+pub const VIDIOC_G_ENC_INDEX: u32 = 2283296332;
+pub const DFL_FPGA_FME_PORT_PR: u32 = 46720;
+pub const CHIOSVOLTAG: u32 = 1076912914;
+pub const ATM_SETESIF: u32 = 1074815373;
+pub const FW_CDEV_IOC_SEND_RESPONSE: u32 = 1075323652;
+pub const PMU_IOC_GET_MODEL: u32 = 2148024835;
+pub const JSIOCGBTNMAP: u32 = 2214619700;
+pub const USBDEVFS_HUB_PORTINFO: u32 = 2155894035;
+pub const VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS: u32 = 3222820363;
+pub const FDCLRPRM: u32 = 577;
+pub const BTRFS_IOC_SCRUB: u32 = 3288372251;
+pub const USBDEVFS_DISCONNECT: u32 = 21782;
+pub const TUNSETVNETBE: u32 = 1074025694;
+pub const ATMTCP_REMOVE: u32 = 24975;
+pub const VHOST_VDPA_GET_CONFIG: u32 = 2148052851;
+pub const PPPIOCGNPMODE: u32 = 3221779532;
+pub const FDGETDRVPRM: u32 = 2155872785;
+pub const TUNSETVNETLE: u32 = 1074025692;
+pub const PHN_SETREG: u32 = 1074294790;
+pub const PPPIOCDETACH: u32 = 1074033724;
+pub const MMTIMER_GETRES: u32 = 2148035841;
+pub const VIDIOC_SUBDEV_ENUMSTD: u32 = 3225966105;
+pub const PPGETFLAGS: u32 = 2147774618;
+pub const VDUSE_DEV_GET_FEATURES: u32 = 2148040977;
+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 = 2148052512;
+pub const MEDIA_IOC_ENUM_LINKS: u32 = 3223878658;
+pub const F2FS_IOC_PRECACHE_EXTENTS: u32 = 62735;
+pub const DFL_FPGA_PORT_DMA_MAP: u32 = 46659;
+pub const MGSL_IOCGXCTRL: u32 = 27926;
+pub const FW_CDEV_IOC_SEND_REQUEST: u32 = 1076372225;
+pub const SONYPI_IOCGBLUE: u32 = 2147579400;
+pub const F2FS_IOC_DECOMPRESS_FILE: u32 = 62743;
+pub const I2OHTML: u32 = 3224398089;
+pub const VFIO_GET_API_VERSION: u32 = 15204;
+pub const IDT77105_GETSTATZ: u32 = 1074815283;
+pub const I2OPARMSET: u32 = 3223873795;
+pub const TEE_IOC_CANCEL: u32 = 2148049924;
+pub const PTP_SYS_OFFSET_PRECISE2: u32 = 3225435409;
+pub const DFL_FPGA_PORT_RESET: u32 = 46656;
+pub const PPPIOCGASYNCMAP: u32 = 2147775576;
+pub const EVIOCGKEYCODE_V2: u32 = 2150122756;
+pub const DM_DEV_SET_GEOMETRY: u32 = 3241737487;
+pub const HIDIOCSUSAGE: u32 = 1075333132;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323664;
+pub const PTP_EXTTS_REQUEST: u32 = 1074806018;
+pub const SWITCHTEC_IOCTL_EVENT_CTL: u32 = 3223869251;
+pub const WDIOC_SETPRETIMEOUT: u32 = 3221509896;
+pub const VHOST_SCSI_CLEAR_ENDPOINT: u32 = 1088991041;
+pub const JSIOCGAXES: u32 = 2147576337;
+pub const HIDIOCSFLAG: u32 = 1074022415;
+pub const PTP_PEROUT_REQUEST2: u32 = 1077427468;
+pub const PPWDATA: u32 = 1073836166;
+pub const PTP_CLOCK_GETCAPS: u32 = 2152742145;
+pub const FDGETMAXERRS: u32 = 2148794894;
+pub const TUNSETQUEUE: u32 = 1074025689;
+pub const PTP_ENABLE_PPS: u32 = 1074019588;
+pub const SIOCSIFATMTCP: u32 = 24960;
+pub const CEC_ADAP_G_LOG_ADDRS: u32 = 2153537795;
+pub const ND_IOCTL_ARS_CAP: u32 = 3223342593;
+pub const NBD_SET_BLKSIZE: u32 = 43777;
+pub const NBD_SET_TIMEOUT: u32 = 43785;
+pub const VHOST_SCSI_GET_ABI_VERSION: u32 = 1074048834;
+pub const RIO_UNMAP_INBOUND: u32 = 1074294034;
+pub const ATM_QUERYLOOP: u32 = 1074815316;
+pub const DFL_FPGA_GET_API_VERSION: u32 = 46592;
+pub const USBDEVFS_WAIT_FOR_RESUME: u32 = 21795;
+pub const FBIO_CURSOR: u32 = 3228059144;
+pub const RNDCLEARPOOL: u32 = 20998;
+pub const VIDIOC_QUERYSTD: u32 = 2148030015;
+pub const DMA_BUF_IOCTL_SYNC: u32 = 1074291200;
+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 = 2150651402;
+pub const PTP_ENABLE_PPS2: u32 = 1074019597;
+pub const PCITEST_CLEAR_IRQ: u32 = 20496;
+pub const IPMICTL_SET_GETS_EVENTS_CMD: u32 = 2147772688;
+pub const BTRFS_IOC_DEVICES_READY: u32 = 2415957031;
+pub const JSIOCGAXMAP: u32 = 2151705138;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER: u32 = 2148541196;
+pub const FW_CDEV_IOC_SET_ISO_CHANNELS: u32 = 1074799383;
+pub const RTC_WIE_OFF: u32 = 28688;
+pub const PPGETMODE: u32 = 2147774616;
+pub const VIDIOC_DBG_G_REGISTER: u32 = 3224917584;
+pub const PTP_SYS_OFFSET: u32 = 1128283397;
+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 = 37894;
+pub const INOTIFY_IOC_SETNEXTWD: u32 = 1074022656;
+pub const SNAPSHOT_GET_IMAGE_SIZE: u32 = 2148021006;
+pub const TUNDETACHFILTER: u32 = 1074812118;
+pub const ND_IOCTL_CLEAR_ERROR: u32 = 3223342596;
+pub const IOC_PR_CLEAR: u32 = 1074819277;
+pub const SCIF_READFROM: u32 = 3223876362;
+pub const PPPIOCGDEBUG: u32 = 2147775553;
+pub const BLKGETZONESZ: u32 = 2147750532;
+pub const HIDIOCGUSAGES: u32 = 3491514387;
+pub const SONYPI_IOCGTEMP: u32 = 2147579404;
+pub const UI_SET_MSCBIT: u32 = 1074025832;
+pub const APM_IOC_SUSPEND: u32 = 16642;
+pub const BTRFS_IOC_TREE_SEARCH: u32 = 3489698833;
+pub const RTC_PLL_GET: u32 = 2149609489;
+pub const RIO_CM_EP_GET_LIST: u32 = 3221512962;
+pub const USBDEVFS_DISCSIGNAL: u32 = 2148553998;
+pub const LIRC_GET_MIN_TIMEOUT: u32 = 2147772680;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY: u32 = 2174244674;
+pub const DM_TARGET_MSG: u32 = 3241737486;
+pub const SONYPI_IOCGBAT1REM: u32 = 2147644931;
+pub const EVIOCSFF: u32 = 1076905344;
+pub const TUNSETGROUP: u32 = 1074025678;
+pub const EVIOCGKEYCODE: u32 = 2148025604;
+pub const KCOV_REMOTE_ENABLE: u32 = 1075340134;
+pub const ND_IOCTL_GET_CONFIG_SIZE: u32 = 3222031876;
+pub const FDEJECT: u32 = 602;
+pub const TUNSETOFFLOAD: u32 = 1074025680;
+pub const PPPIOCCONNECT: u32 = 1074033722;
+pub const ATM_ADDADDR: u32 = 1074815368;
+pub const VDUSE_DEV_INJECT_CONFIG_IRQ: u32 = 33043;
+pub const AUTOFS_DEV_IOCTL_ASKUMOUNT: u32 = 3222836093;
+pub const VHOST_VDPA_GET_STATUS: u32 = 2147594097;
+pub const CCISS_PASSTHRU: u32 = 3227009547;
+pub const MGSL_IOCCLRMODCOUNT: u32 = 27919;
+pub const TEE_IOC_SUPPL_SEND: u32 = 2148574215;
+pub const ATMARPD_CTRL: u32 = 25057;
+pub const UI_ABS_SETUP: u32 = 1075598596;
+pub const UI_DEV_DESTROY: u32 = 21762;
+pub const BTRFS_IOC_QUOTA_CTL: u32 = 3222311976;
+pub const RTC_AIE_ON: u32 = 28673;
+pub const AUTOFS_IOC_EXPIRE: u32 = 2165085029;
+pub const PPPIOCSDEBUG: u32 = 1074033728;
+pub const GPIO_V2_LINE_SET_VALUES_IOCTL: u32 = 3222320143;
+pub const PPPIOCSMRU: u32 = 1074033746;
+pub const CCISS_DEREGDISK: u32 = 16908;
+pub const UI_DEV_CREATE: u32 = 21761;
+pub const FUSE_DEV_IOC_CLONE: u32 = 2147804416;
+pub const BTRFS_IOC_START_SYNC: u32 = 2148045848;
+pub const NILFS_IOCTL_DELETE_CHECKPOINT: u32 = 1074294401;
+pub const SNAPSHOT_AVAIL_SWAP_SIZE: u32 = 2148021011;
+pub const DM_TABLE_CLEAR: u32 = 3241737482;
+pub const CCISS_GETINTINFO: u32 = 2148024834;
+pub const PPPIOCSASYNCMAP: u32 = 1074033751;
+pub const I2OEVTGET: u32 = 2154326283;
+pub const NVME_IOCTL_RESET: u32 = 20036;
+pub const PPYIELD: u32 = 28813;
+pub const NVME_IOCTL_IO64_CMD: u32 = 3226488392;
+pub const TUNSETCARRIER: u32 = 1074025698;
+pub const DM_DEV_WAIT: u32 = 3241737480;
+pub const RTC_WIE_ON: u32 = 28687;
+pub const MEDIA_IOC_DEVICE_INFO: u32 = 3238034432;
+pub const RIO_CM_CHAN_CREATE: u32 = 3221381891;
+pub const MGSL_IOCSPARAMS: u32 = 1076915456;
+pub const RTC_SET_TIME: u32 = 1076129802;
+pub const VHOST_RESET_OWNER: u32 = 44802;
+pub const IOC_OPAL_PSID_REVERT_TPR: u32 = 1091072232;
+pub const AUTOFS_DEV_IOCTL_OPENMOUNT: u32 = 3222836084;
+pub const UDF_GETEABLOCK: u32 = 2148035649;
+pub const VFIO_IOMMU_MAP_DMA: u32 = 15217;
+pub const VIDIOC_SUBSCRIBE_EVENT: u32 = 1075861082;
+pub const HIDIOCGFLAG: u32 = 2147764238;
+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 = 1074835969;
+pub const CCISS_GETFIRMVER: u32 = 2147762696;
+pub const ND_IOCTL_ARS_START: u32 = 3223342594;
+pub const PPPIOCSMRRU: u32 = 1074033723;
+pub const CEC_ADAP_S_LOG_ADDRS: u32 = 3227279620;
+pub const RPROC_GET_SHUTDOWN_ON_RELEASE: u32 = 2147792642;
+pub const DMA_HEAP_IOCTL_ALLOC: u32 = 3222816768;
+pub const PPSETTIME: u32 = 1074819222;
+pub const RTC_ALM_READ: u32 = 2149871624;
+pub const VDUSE_SET_API_VERSION: u32 = 1074299137;
+pub const RIO_MPORT_MAINT_WRITE_REMOTE: u32 = 1075342600;
+pub const VIDIOC_SUBDEV_S_CROP: u32 = 3224917564;
+pub const USBDEVFS_CONNECT: u32 = 21783;
+pub const SYNC_IOC_FILE_INFO: u32 = 3224911364;
+pub const ATMARP_MKIP: u32 = 25058;
+pub const VFIO_IOMMU_SPAPR_TCE_GET_INFO: u32 = 15216;
+pub const CCISS_GETHEARTBEAT: u32 = 2147762694;
+pub const ATM_RSTADDR: u32 = 1074815367;
+pub const NBD_SET_SIZE: u32 = 43778;
+pub const UDF_GETVOLIDENT: u32 = 2148035650;
+pub const GPIO_V2_LINE_GET_VALUES_IOCTL: u32 = 3222320142;
+pub const MGSL_IOCSTXIDLE: u32 = 27906;
+pub const FSL_HV_IOCTL_SETPROP: u32 = 3223891720;
+pub const BTRFS_IOC_GET_DEV_STATS: u32 = 3288896564;
+pub const PPRSTATUS: u32 = 2147577985;
+pub const MGSL_IOCTXENABLE: u32 = 27908;
+pub const UDF_GETEASIZE: u32 = 2147773504;
+pub const NVME_IOCTL_ADMIN64_CMD: u32 = 3226488391;
+pub const VHOST_SET_OWNER: u32 = 44801;
+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 = 1074815371;
+pub const HPET_IE_ON: u32 = 26625;
+pub const PERF_EVENT_IOC_ID: u32 = 2148017159;
+pub const TUNSETSNDBUF: u32 = 1074025684;
+pub const PTP_PIN_SETFUNC: u32 = 1080048903;
+pub const PPPIOCDISCONN: u32 = 29753;
+pub const VIDIOC_QUERYCTRL: u32 = 3225703972;
+pub const PPEXCL: u32 = 28815;
+pub const PCITEST_MSI: u32 = 1074024451;
+pub const FDWERRORCLR: u32 = 598;
+pub const AUTOFS_IOC_FAIL: u32 = 37729;
+pub const USBDEVFS_IOCTL: u32 = 3222295826;
+pub const VIDIOC_S_STD: u32 = 1074288152;
+pub const F2FS_IOC_RESIZE_FS: u32 = 1074328848;
+pub const SONET_SETDIAG: u32 = 3221512466;
+pub const BTRFS_IOC_DEFRAG: u32 = 1342215170;
+pub const CCISS_GETDRIVVER: u32 = 2147762697;
+pub const IPMICTL_GET_TIMING_PARMS_CMD: u32 = 2148034839;
+pub const HPET_IRQFREQ: u32 = 1074292742;
+pub const ATM_GETESI: u32 = 1074815365;
+pub const CCISS_GETLUNINFO: u32 = 2148286993;
+pub const AUTOFS_DEV_IOCTL_ISMOUNTPOINT: u32 = 3222836094;
+pub const TEE_IOC_SHM_ALLOC: u32 = 3222316033;
+pub const PERF_EVENT_IOC_SET_BPF: u32 = 1074013192;
+pub const UDMABUF_CREATE_LIST: u32 = 1074296131;
+pub const VHOST_SET_LOG_BASE: u32 = 1074310916;
+pub const ZATM_GETPOOL: u32 = 1074815329;
+pub const BR2684_SETFILT: u32 = 1075601808;
+pub const RNDGETPOOL: u32 = 2148028930;
+pub const PPS_GETPARAMS: u32 = 2148036769;
+pub const IOC_PR_RESERVE: u32 = 1074819273;
+pub const VIDIOC_TRY_DECODER_CMD: u32 = 3225966177;
+pub const RIO_CM_CHAN_CLOSE: u32 = 1073898244;
+pub const VIDIOC_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const IOCTL_MEI_CONNECT_CLIENT_VTAG: u32 = 3222554628;
+pub const PMU_IOC_GET_BACKLIGHT: u32 = 2148024833;
+pub const USBDEVFS_GET_CAPABILITIES: u32 = 2147767578;
+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 = 16910;
+pub const FAT_IOCTL_SET_ATTRIBUTES: u32 = 1074033169;
+pub const VIDIOC_CREATE_BUFS: u32 = 3238024796;
+pub const CAPI_GET_VERSION: u32 = 3222291207;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY: u32 = 2228770626;
+pub const VFIO_EEH_PE_OP: u32 = 15225;
+pub const FW_CDEV_IOC_CREATE_ISO_CONTEXT: u32 = 3223331592;
+pub const F2FS_IOC_RELEASE_COMPRESS_BLOCKS: u32 = 2148070674;
+pub const NBD_SET_SIZE_BLOCKS: u32 = 43783;
+pub const IPMI_BMC_IOCTL_SET_SMS_ATN: u32 = 45312;
+pub const ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG: u32 = 3222319873;
+pub const VIDIOC_S_AUDOUT: u32 = 1077171762;
+pub const VIDIOC_S_FMT: u32 = 3234878981;
+pub const PPPIOCATTACH: u32 = 1074033725;
+pub const VHOST_GET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310948;
+pub const FS_IOC_MEASURE_VERITY: u32 = 3221513862;
+pub const CCISS_BIG_PASSTHRU: u32 = 3227533842;
+pub const IPMICTL_SET_MY_LUN_CMD: u32 = 2147772691;
+pub const PCITEST_LEGACY_IRQ: u32 = 20482;
+pub const USBDEVFS_SUBMITURB: u32 = 2151175434;
+pub const AUTOFS_IOC_READY: u32 = 37728;
+pub const BTRFS_IOC_SEND: u32 = 1078498342;
+pub const VIDIOC_G_EXT_CTRLS: u32 = 3223344711;
+pub const JSIOCSBTNMAP: u32 = 1140877875;
+pub const PPPIOCSFLAGS: u32 = 1074033753;
+pub const NVRAM_INIT: u32 = 28736;
+pub const RFKILL_IOCTL_NOINPUT: u32 = 20993;
+pub const BTRFS_IOC_BALANCE: u32 = 1342215180;
+pub const FS_IOC_GETFSMAP: u32 = 3233830971;
+pub const IPMICTL_GET_MY_CHANNEL_LUN_CMD: u32 = 2147772699;
+pub const STP_POLICY_ID_GET: u32 = 2148541697;
+pub const PPSETFLAGS: u32 = 1074032795;
+pub const CEC_ADAP_S_PHYS_ADDR: u32 = 1073897730;
+pub const ATMTCP_CREATE: u32 = 24974;
+pub const IPMI_BMC_IOCTL_FORCE_ABORT: u32 = 45314;
+pub const PPPIOCGXASYNCMAP: u32 = 2149610576;
+pub const VHOST_SET_VRING_CALL: u32 = 1074310945;
+pub const LIRC_GET_FEATURES: u32 = 2147772672;
+pub const GSMIOC_DISABLE_NET: u32 = 18179;
+pub const AUTOFS_IOC_CATATONIC: u32 = 37730;
+pub const NBD_DO_IT: u32 = 43779;
+pub const LIRC_SET_REC_CARRIER_RANGE: u32 = 1074030879;
+pub const IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772697;
+pub const EVIOCSCLOCKID: u32 = 1074021792;
+pub const USBDEVFS_FREE_STREAMS: u32 = 2148029725;
+pub const FSI_SCOM_RESET: u32 = 1074033411;
+pub const PMU_IOC_GRAB_BACKLIGHT: u32 = 2148024838;
+pub const VIDIOC_SUBDEV_S_FMT: u32 = 3227014661;
+pub const FDDEFPRM: u32 = 1075839555;
+pub const TEE_IOC_INVOKE: u32 = 2148574211;
+pub const USBDEVFS_BULK: u32 = 3222820098;
+pub const SCIF_VWRITETO: u32 = 3223876365;
+pub const SONYPI_IOCSBRT: u32 = 1073837568;
+pub const BTRFS_IOC_FILE_EXTENT_SAME: u32 = 3222836278;
+pub const RTC_PIE_ON: u32 = 28677;
+pub const BTRFS_IOC_SCAN_DEV: u32 = 1342215172;
+pub const PPPIOCXFERUNIT: u32 = 29774;
+pub const WDIOC_GETTIMEOUT: u32 = 2147768071;
+pub const BTRFS_IOC_SET_RECEIVED_SUBVOL: u32 = 3234370597;
+pub const DFL_FPGA_PORT_ERR_SET_IRQ: u32 = 1074312774;
+pub const FBIO_WAITFORVSYNC: u32 = 1074021920;
+pub const RTC_PIE_OFF: u32 = 28678;
+pub const EVIOCGRAB: u32 = 1074021776;
+pub const PMU_IOC_SET_BACKLIGHT: u32 = 1074283010;
+pub const EVIOCGREP: u32 = 2148025603;
+pub const PERF_EVENT_IOC_MODIFY_ATTRIBUTES: u32 = 1074275339;
+pub const UFFDIO_CONTINUE: u32 = 3223366151;
+pub const VDUSE_GET_API_VERSION: u32 = 2148040960;
+pub const RTC_RD_TIME: u32 = 2149871625;
+pub const FDMSGOFF: u32 = 582;
+pub const IPMICTL_REGISTER_FOR_CMD_CHANS: u32 = 2148296988;
+pub const CAPI_GET_ERRCODE: u32 = 2147631905;
+pub const PCITEST_SET_IRQTYPE: u32 = 1074024456;
+pub const VIDIOC_SUBDEV_S_EDID: u32 = 3223868969;
+pub const MATROXFB_SET_OUTPUT_MODE: u32 = 1074294522;
+pub const RIO_DEV_ADD: u32 = 1075866903;
+pub const VIDIOC_ENUM_FREQ_BANDS: u32 = 3225441893;
+pub const FBIO_RADEON_SET_MIRROR: u32 = 1074282500;
+pub const PCITEST_GET_IRQTYPE: u32 = 20489;
+pub const JSIOCGVERSION: u32 = 2147772929;
+pub const SONYPI_IOCSBLUE: u32 = 1073837577;
+pub const SNAPSHOT_PREF_IMAGE_SIZE: u32 = 13074;
+pub const F2FS_IOC_GET_FEATURES: u32 = 2147808524;
+pub const SCIF_REG: u32 = 3223876360;
+pub const NILFS_IOCTL_CLEAN_SEGMENTS: u32 = 1081634440;
+pub const FW_CDEV_IOC_INITIATE_BUS_RESET: u32 = 1074012933;
+pub const RIO_WAIT_FOR_ASYNC: u32 = 1074294038;
+pub const VHOST_SET_VRING_NUM: u32 = 1074310928;
+pub const AUTOFS_DEV_IOCTL_PROTOVER: u32 = 3222836082;
+pub const RIO_FREE_DMA: u32 = 1074294036;
+pub const MGSL_IOCRXENABLE: u32 = 27909;
+pub const IOCTL_VM_SOCKETS_GET_LOCAL_CID: u32 = 1977;
+pub const IPMICTL_SET_TIMING_PARMS_CMD: u32 = 2148034838;
+pub const PPPIOCGL2TPSTATS: u32 = 2152231990;
+pub const PERF_EVENT_IOC_PERIOD: u32 = 1074275332;
+pub const PTP_PIN_SETFUNC2: u32 = 1080048912;
+pub const CHIOEXCHANGE: u32 = 1075602178;
+pub const NILFS_IOCTL_GET_SUINFO: u32 = 2149084804;
+pub const CEC_DQEVENT: u32 = 3226493191;
+pub const UI_SET_SWBIT: u32 = 1074025837;
+pub const VHOST_VDPA_SET_CONFIG: u32 = 1074311028;
+pub const TUNSETIFF: u32 = 1074025674;
+pub const CHIOPOSITION: u32 = 1074553603;
+pub const IPMICTL_SET_MAINTENANCE_MODE_CMD: u32 = 1074030879;
+pub const BTRFS_IOC_DEFAULT_SUBVOL: u32 = 1074304019;
+pub const RIO_UNMAP_OUTBOUND: u32 = 1076391184;
+pub const CAPI_CLR_FLAGS: u32 = 2147762981;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323663;
+pub const MATROXFB_GET_OUTPUT_CONNECTION: u32 = 2148036344;
+pub const EVIOCSMASK: u32 = 1074808211;
+pub const BTRFS_IOC_FORGET_DEV: u32 = 1342215173;
+pub const CXL_MEM_QUERY_COMMANDS: u32 = 2148060673;
+pub const CEC_S_MODE: u32 = 1074028809;
+pub const MGSL_IOCSIF: u32 = 27914;
+pub const SWITCHTEC_IOCTL_PFF_TO_PORT: u32 = 3222034244;
+pub const PPSETMODE: u32 = 1074032768;
+pub const VFIO_DEVICE_SET_IRQS: u32 = 15214;
+pub const VIDIOC_PREPARE_BUF: u32 = 3227014749;
+pub const CEC_ADAP_G_CONNECTOR_INFO: u32 = 2151964938;
+pub const IOC_OPAL_WRITE_SHADOW_MBR: u32 = 1092645098;
+pub const VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: u32 = 3225441867;
+pub const UDMABUF_CREATE: u32 = 1075344706;
+pub const SONET_CLRDIAG: u32 = 3221512467;
+pub const PHN_SET_REG: u32 = 1074294785;
+pub const RNDADDTOENTCNT: u32 = 1074024961;
+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 = 28674;
+pub const VFIO_GROUP_SET_CONTAINER: u32 = 15208;
+pub const FW_CDEV_IOC_RECEIVE_PHY_PACKETS: u32 = 1074275094;
+pub const VFIO_IOMMU_SPAPR_TCE_REMOVE: u32 = 15224;
+pub const VFIO_IOMMU_GET_INFO: u32 = 15216;
+pub const DM_DEV_SUSPEND: u32 = 3241737478;
+pub const F2FS_IOC_GET_COMPRESS_OPTION: u32 = 2147677461;
+pub const FW_CDEV_IOC_STOP_ISO: u32 = 1074012939;
+pub const GPIO_V2_GET_LINEINFO_IOCTL: u32 = 3238048773;
+pub const ATMMPC_CTRL: u32 = 25048;
+pub const PPPIOCSXASYNCMAP: u32 = 1075868751;
+pub const CHIOGSTATUS: u32 = 1074815752;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE: u32 = 3222807309;
+pub const RIO_MPORT_MAINT_PORT_IDX_GET: u32 = 2147773699;
+pub const CAPI_SET_FLAGS: u32 = 2147762980;
+pub const VFIO_GROUP_GET_DEVICE_FD: u32 = 15210;
+pub const VHOST_SET_MEM_TABLE: u32 = 1074310915;
+pub const MATROXFB_SET_OUTPUT_CONNECTION: u32 = 1074294520;
+pub const DFL_FPGA_PORT_GET_REGION_INFO: u32 = 46658;
+pub const VHOST_GET_FEATURES: u32 = 2148052736;
+pub const LIRC_GET_REC_RESOLUTION: u32 = 2147772679;
+pub const PACKET_CTRL_CMD: u32 = 3222820865;
+pub const LIRC_SET_TRANSMITTER_MASK: u32 = 1074030871;
+pub const BTRFS_IOC_ADD_DEV: u32 = 1342215178;
+pub const JSIOCGCORR: u32 = 2149870114;
+pub const VIDIOC_G_FMT: u32 = 3234878980;
+pub const RTC_EPOCH_SET: u32 = 1074294798;
+pub const CAPI_GET_PROFILE: u32 = 3225436937;
+pub const ATM_GETLOOP: u32 = 1074815314;
+pub const SCIF_LISTEN: u32 = 1074033410;
+pub const NBD_CLEAR_QUE: u32 = 43781;
+pub const F2FS_IOC_MOVE_RANGE: u32 = 3223385353;
+pub const LIRC_GET_LENGTH: u32 = 2147772687;
+pub const I8K_SET_FAN: u32 = 3221776775;
+pub const FDSETMAXERRS: u32 = 1075053132;
+pub const VIDIOC_SUBDEV_QUERYCAP: u32 = 2151699968;
+pub const SNAPSHOT_SET_SWAP_AREA: u32 = 1074541325;
+pub const LIRC_GET_REC_TIMEOUT: u32 = 2147772708;
+pub const EVIOCRMFF: u32 = 1074021761;
+pub const GPIO_GET_LINEEVENT_IOCTL: u32 = 3224417284;
+pub const PPRDATA: u32 = 2147577989;
+pub const RIO_MPORT_GET_PROPERTIES: u32 = 2150657284;
+pub const TUNSETVNETHDRSZ: u32 = 1074025688;
+pub const GPIO_GET_LINEINFO_IOCTL: u32 = 3225990146;
+pub const GSMIOC_GETCONF: u32 = 2152482560;
+pub const LIRC_GET_SEND_MODE: u32 = 2147772673;
+pub const PPPIOCSACTIVE: u32 = 1074820166;
+pub const SIOCGSTAMPNS_NEW: u32 = 2148567303;
+pub const IPMICTL_RECEIVE_MSG: u32 = 3224398092;
+pub const LIRC_SET_SEND_DUTY_CYCLE: u32 = 1074030869;
+pub const UI_END_FF_ERASE: u32 = 1074550219;
+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 = 43786;
+pub const VFIO_DEVICE_GET_REGION_INFO: u32 = 15212;
+pub const REISERFS_IOC_UNPACK: u32 = 1074318593;
+pub const FW_CDEV_IOC_REMOVE_DESCRIPTOR: u32 = 1074012935;
+pub const RIO_SET_EVENT_MASK: u32 = 1074031885;
+pub const SNAPSHOT_ALLOC_SWAP_PAGE: u32 = 2148021012;
+pub const VDUSE_VQ_INJECT_IRQ: u32 = 1074037015;
+pub const I2OPASSTHRU: u32 = 2148559116;
+pub const IOC_OPAL_SET_PW: u32 = 1109422304;
+pub const FSI_SCOM_READ: u32 = 3223352065;
+pub const VHOST_VDPA_GET_DEVICE_ID: u32 = 2147790704;
+pub const VIDIOC_QBUF: u32 = 3227014671;
+pub const VIDIOC_S_TUNER: u32 = 1079268894;
+pub const TUNGETVNETHDRSZ: u32 = 2147767511;
+pub const CAPI_NCCI_GETUNIT: u32 = 2147762983;
+pub const DFL_FPGA_PORT_UINT_GET_IRQ_NUM: u32 = 2147792455;
+pub const VIDIOC_OMAP3ISP_STAT_EN: u32 = 3221771975;
+pub const GPIO_V2_LINE_SET_CONFIG_IOCTL: u32 = 3239097357;
+pub const TEE_IOC_VERSION: u32 = 2148312064;
+pub const VIDIOC_LOG_STATUS: u32 = 22086;
+pub const IPMICTL_SEND_COMMAND_SETTIME: u32 = 2150656277;
+pub const VHOST_SET_LOG_FD: u32 = 1074048775;
+pub const SCIF_SEND: u32 = 3222827782;
+pub const VIDIOC_SUBDEV_G_FMT: u32 = 3227014660;
+pub const NS_ADJBUFLEV: u32 = 24931;
+pub const VIDIOC_DBG_S_REGISTER: u32 = 1077433935;
+pub const NILFS_IOCTL_RESIZE: u32 = 1074294411;
+pub const PHN_GETREG: u32 = 3221778437;
+pub const I2OSWDL: u32 = 3224398085;
+pub const VBG_IOCTL_VMMDEV_REQUEST_BIG: u32 = 22019;
+pub const JSIOCGBUTTONS: u32 = 2147576338;
+pub const VFIO_IOMMU_ENABLE: u32 = 15219;
+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 = 1074048887;
+pub const VIDIOC_SUBDEV_G_CROP: u32 = 3224917563;
+pub const VIDIOC_S_CROP: u32 = 1075074620;
+pub const WDIOC_GETTEMP: u32 = 2147768067;
+pub const IOC_OPAL_ADD_USR_TO_LR: u32 = 1092120804;
+pub const UI_SET_LEDBIT: u32 = 1074025833;
+pub const NBD_SET_SOCK: u32 = 43776;
+pub const BTRFS_IOC_SNAP_DESTROY_V2: u32 = 1342215231;
+pub const HIDIOCGCOLLECTIONINFO: u32 = 3222292497;
+pub const I2OSWUL: u32 = 3224398086;
+pub const IOCTL_MEI_NOTIFY_GET: u32 = 2147764227;
+pub const FDFMTTRK: u32 = 1074528840;
+pub const MMTIMER_GETBITS: u32 = 27908;
+pub const VIDIOC_ENUMSTD: u32 = 3225966105;
+pub const VHOST_GET_VRING_BASE: u32 = 3221794578;
+pub const VFIO_DEVICE_IOEVENTFD: u32 = 15220;
+pub const ATMARP_SETENTRY: u32 = 25059;
+pub const CCISS_REVALIDVOLS: u32 = 16906;
+pub const MGSL_IOCLOOPTXDONE: u32 = 27913;
+pub const RTC_VL_READ: u32 = 2147774483;
+pub const ND_IOCTL_ARS_STATUS: u32 = 3224391171;
+pub const RIO_DEV_DEL: u32 = 1075866904;
+pub const VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: u32 = 3223606797;
+pub const VIDIOC_SUBDEV_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const SONYPI_IOCSFAN: u32 = 1073837579;
+pub const SPIOCSTYPE: u32 = 1074295041;
+pub const IPMICTL_REGISTER_FOR_CMD: u32 = 2147641614;
+pub const I8K_GET_FAN: u32 = 3221776774;
+pub const TUNGETVNETBE: u32 = 2147767519;
+pub const AUTOFS_DEV_IOCTL_FAIL: u32 = 3222836087;
+pub const UI_END_FF_UPLOAD: u32 = 1080579529;
+pub const TOSH_SMM: u32 = 3222828176;
+pub const SONYPI_IOCGBAT2REM: u32 = 2147644933;
+pub const F2FS_IOC_GET_COMPRESS_BLOCKS: u32 = 2148070673;
+pub const PPPIOCSNPMODE: u32 = 1074295883;
+pub const USBDEVFS_CONTROL: u32 = 3222820096;
+pub const HIDIOCGUSAGE: u32 = 3222816779;
+pub const TUNSETTXFILTER: u32 = 1074025681;
+pub const TUNGETVNETLE: u32 = 2147767517;
+pub const VIDIOC_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const BTRFS_IOC_INO_PATHS: u32 = 3224933411;
+pub const MGSL_IOCGXSYNC: u32 = 27924;
+pub const HIDIOCGFIELDINFO: u32 = 3224913930;
+pub const VIDIOC_SUBDEV_G_STD: u32 = 2148029975;
+pub const I2OVALIDATE: u32 = 2147772680;
+pub const VIDIOC_TRY_ENCODER_CMD: u32 = 3223869006;
+pub const NILFS_IOCTL_GET_CPINFO: u32 = 2149084802;
+pub const VIDIOC_G_FREQUENCY: u32 = 3224131128;
+pub const VFAT_IOCTL_READDIR_SHORT: u32 = 2184212994;
+pub const ND_IOCTL_GET_CONFIG_DATA: u32 = 3222031877;
+pub const F2FS_IOC_RESERVE_COMPRESS_BLOCKS: u32 = 2148070675;
+pub const FDGETDRVSTAT: u32 = 2152727058;
+pub const SYNC_IOC_MERGE: u32 = 3224387075;
+pub const VIDIOC_S_DV_TIMINGS: u32 = 3229898327;
+pub const PPPIOCBRIDGECHAN: u32 = 1074033717;
+pub const LIRC_SET_SEND_MODE: u32 = 1074030865;
+pub const RIO_ENABLE_PORTWRITE_RANGE: u32 = 1074818315;
+pub const ATM_GETTYPE: u32 = 1074815364;
+pub const PHN_GETREGS: u32 = 3223875591;
+pub const FDSETEMSGTRESH: u32 = 586;
+pub const NILFS_IOCTL_GET_VINFO: u32 = 3222826630;
+pub const MGSL_IOCWAITEVENT: u32 = 3221515528;
+pub const CAPI_INSTALLED: u32 = 2147631906;
+pub const EVIOCGMASK: u32 = 2148550034;
+pub const BTRFS_IOC_SUBVOL_GETFLAGS: u32 = 2148045849;
+pub const FSL_HV_IOCTL_PARTITION_GET_STATUS: u32 = 3222056706;
+pub const MEDIA_IOC_ENUM_ENTITIES: u32 = 3238034433;
+pub const GSMIOC_GETFIRST: u32 = 2147763972;
+pub const FW_CDEV_IOC_FLUSH_ISO: u32 = 1074012952;
+pub const VIDIOC_DBG_G_CHIP_INFO: u32 = 3234354790;
+pub const F2FS_IOC_RELEASE_VOLATILE_WRITE: u32 = 62724;
+pub const CAPI_GET_SERIAL: u32 = 3221504776;
+pub const FDSETDRVPRM: u32 = 1082131088;
+pub const IOC_OPAL_SAVE: u32 = 1092120796;
+pub const VIDIOC_G_DV_TIMINGS: u32 = 3229898328;
+pub const TUNSETIFINDEX: u32 = 1074025690;
+pub const CCISS_SETINTINFO: u32 = 1074283011;
+pub const RTC_VL_CLR: u32 = 28692;
+pub const VIDIOC_REQBUFS: u32 = 3222558216;
+pub const USBDEVFS_REAPURBNDELAY32: u32 = 1074025741;
+pub const TEE_IOC_SHM_REGISTER: u32 = 3222840329;
+pub const USBDEVFS_SETCONFIGURATION: u32 = 2147767557;
+pub const CCISS_GETNODENAME: u32 = 2148549124;
+pub const VIDIOC_SUBDEV_S_FRAME_INTERVAL: u32 = 3224393238;
+pub const VIDIOC_ENUM_FRAMESIZES: u32 = 3224131146;
+pub const VFIO_DEVICE_PCI_HOT_RESET: u32 = 15217;
+pub const FW_CDEV_IOC_SEND_BROADCAST_REQUEST: u32 = 1076372242;
+pub const LPSETTIMEOUT_NEW: u32 = 1074791951;
+pub const RIO_CM_MPORT_GET_LIST: u32 = 3221512971;
+pub const FW_CDEV_IOC_QUEUE_ISO: u32 = 3222807305;
+pub const FDRAWCMD: u32 = 600;
+pub const SCIF_UNREG: u32 = 3222303497;
+pub const PPPIOCGIDLE64: u32 = 2148561983;
+pub const USBDEVFS_RELEASEINTERFACE: u32 = 2147767568;
+pub const VIDIOC_CROPCAP: u32 = 3224131130;
+pub const DFL_FPGA_PORT_GET_INFO: u32 = 46657;
+pub const PHN_SET_REGS: u32 = 1074294787;
+pub const ATMLEC_DATA: u32 = 25041;
+pub const PPPOEIOCDFWD: u32 = 45313;
+pub const VIDIOC_S_SELECTION: u32 = 3225441887;
+pub const SNAPSHOT_FREE_SWAP_PAGES: u32 = 13065;
+pub const BTRFS_IOC_LOGICAL_INO: u32 = 3224933412;
+pub const VIDIOC_S_CTRL: u32 = 3221771804;
+pub const ZATM_SETPOOL: u32 = 1074815331;
+pub const MTIOCPOS: u32 = 2148035843;
+pub const PMU_IOC_SLEEP: u32 = 16896;
+pub const AUTOFS_DEV_IOCTL_PROTOSUBVER: u32 = 3222836083;
+pub const VBG_IOCTL_CHANGE_FILTER_MASK: u32 = 3223344652;
+pub const NILFS_IOCTL_GET_SUSTAT: u32 = 2150657669;
+pub const VIDIOC_QUERYCAP: u32 = 2154321408;
+pub const HPET_INFO: u32 = 2149083139;
+pub const VIDIOC_AM437X_CCDC_CFG: u32 = 1074288321;
+pub const DM_LIST_DEVICES: u32 = 3241737474;
+pub const TUNSETOWNER: u32 = 1074025676;
+pub const VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: u32 = 3223344654;
+pub const RNDADDENTROPY: u32 = 1074287107;
+pub const USBDEVFS_RESET: u32 = 21780;
+pub const BTRFS_IOC_SUBVOL_CREATE: u32 = 1342215182;
+pub const USBDEVFS_FORBID_SUSPEND: u32 = 21793;
+pub const FDGETDRVTYP: u32 = 2148532751;
+pub const PPWCONTROL: u32 = 1073836164;
+pub const VIDIOC_ENUM_FRAMEINTERVALS: u32 = 3224655435;
+pub const KCOV_DISABLE: u32 = 25445;
+pub const IOC_OPAL_ACTIVATE_LSP: u32 = 1092120799;
+pub const VHOST_VDPA_GET_IOVA_RANGE: u32 = 2148577144;
+pub const PPPIOCSPASS: u32 = 1074820167;
+pub const RIO_CM_CHAN_CONNECT: u32 = 1074291464;
+pub const I2OSWDEL: u32 = 3224398087;
+pub const FS_IOC_SET_ENCRYPTION_POLICY: u32 = 2148296211;
+pub const IOC_OPAL_MBR_DONE: u32 = 1091596521;
+pub const PPPIOCSMAXCID: u32 = 1074033745;
+pub const PPSETPHASE: u32 = 1074032788;
+pub const VHOST_VDPA_SET_VRING_ENABLE: u32 = 1074311029;
+pub const USBDEVFS_GET_SPEED: u32 = 21791;
+pub const SONET_GETFRAMING: u32 = 2147770646;
+pub const VIDIOC_QUERYBUF: u32 = 3227014665;
+pub const VIDIOC_S_EDID: u32 = 3223868969;
+pub const BTRFS_IOC_QGROUP_ASSIGN: u32 = 1075352617;
+pub const PPS_GETCAP: u32 = 2148036771;
+pub const SNAPSHOT_PLATFORM_SUPPORT: u32 = 13071;
+pub const LIRC_SET_REC_TIMEOUT_REPORTS: u32 = 1074030873;
+pub const SCIF_GET_NODEIDS: u32 = 3222827790;
+pub const NBD_DISCONNECT: u32 = 43784;
+pub const VIDIOC_SUBDEV_G_FRAME_INTERVAL: u32 = 3224393237;
+pub const VFIO_IOMMU_DISABLE: u32 = 15220;
+pub const SNAPSHOT_CREATE_IMAGE: u32 = 1074017041;
+pub const SNAPSHOT_POWER_OFF: u32 = 13072;
+pub const APM_IOC_STANDBY: u32 = 16641;
+pub const PPPIOCGUNIT: u32 = 2147775574;
+pub const AUTOFS_IOC_EXPIRE_MULTI: u32 = 1074041702;
+pub const SCIF_BIND: u32 = 3221779201;
+pub const IOC_WATCH_QUEUE_SET_SIZE: u32 = 22368;
+pub const NILFS_IOCTL_CHANGE_CPMODE: u32 = 1074818688;
+pub const IOC_OPAL_LOCK_UNLOCK: u32 = 1092120797;
+pub const F2FS_IOC_SET_PIN_FILE: u32 = 1074066701;
+pub const PPPIOCGRASYNCMAP: u32 = 2147775573;
+pub const MMTIMER_MMAPAVAIL: u32 = 27910;
+pub const I2OPASSTHRU32: u32 = 2148034828;
+pub const DFL_FPGA_FME_PORT_RELEASE: u32 = 1074050689;
+pub const VIDIOC_SUBDEV_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const UI_SET_SNDBIT: u32 = 1074025834;
+pub const VIDIOC_G_AUDOUT: u32 = 2150913585;
+pub const RTC_PLL_SET: u32 = 1075867666;
+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 = 1074048836;
+pub const VHOST_SET_VRING_ADDR: u32 = 1076408081;
+pub const VDUSE_CREATE_DEV: u32 = 1095794946;
+pub const FDFLUSH: u32 = 587;
+pub const VBG_IOCTL_WAIT_FOR_EVENTS: u32 = 3223344650;
+pub const DFL_FPGA_FME_ERR_SET_IRQ: u32 = 1074312836;
+pub const F2FS_IOC_GET_PIN_FILE: u32 = 2147808526;
+pub const SCIF_CONNECT: u32 = 3221779203;
+pub const BLKREPORTZONE: u32 = 3222278786;
+pub const AUTOFS_IOC_ASKUMOUNT: u32 = 2147783536;
+pub const ATM_ADDPARTY: u32 = 1074815476;
+pub const FDSETPRM: u32 = 1075839554;
+pub const ATM_GETSTATZ: u32 = 1074815313;
+pub const ISST_IF_MSR_COMMAND: u32 = 3221814788;
+pub const BTRFS_IOC_GET_SUBVOL_INFO: u32 = 2180551740;
+pub const VIDIOC_UNSUBSCRIBE_EVENT: u32 = 1075861083;
+pub const SEV_ISSUE_CMD: u32 = 3222295296;
+pub const GPIOHANDLE_SET_LINE_VALUES_IOCTL: u32 = 3225465865;
+pub const PCITEST_COPY: u32 = 1074286598;
+pub const IPMICTL_GET_MY_ADDRESS_CMD: u32 = 2147772690;
+pub const CHIOGPICKER: u32 = 2147771140;
+pub const CAPI_NCCI_OPENCOUNT: u32 = 2147762982;
+pub const CXL_MEM_SEND_COMMAND: u32 = 3224423938;
+pub const PERF_EVENT_IOC_SET_FILTER: u32 = 1074275334;
+pub const IOC_OPAL_REVERT_TPR: u32 = 1091072226;
+pub const CHIOGVPARAMS: u32 = 2154849043;
+pub const PTP_PEROUT_REQUEST: u32 = 1077427459;
+pub const FSI_SCOM_CHECK: u32 = 2147775232;
+pub const RTC_IRQP_READ: u32 = 2148036619;
+pub const RIO_MPORT_MAINT_READ_LOCAL: u32 = 2149084421;
+pub const HIDIOCGRDESCSIZE: u32 = 2147764225;
+pub const UI_GET_VERSION: u32 = 2147767597;
+pub const NILFS_IOCTL_GET_CPSTAT: u32 = 2149084803;
+pub const CCISS_GETBUSTYPES: u32 = 2147762695;
+pub const VFIO_IOMMU_SPAPR_TCE_CREATE: u32 = 15223;
+pub const VIDIOC_EXPBUF: u32 = 3225441808;
+pub const UI_SET_RELBIT: u32 = 1074025830;
+pub const VFIO_SET_IOMMU: u32 = 15206;
+pub const VIDIOC_S_MODULATOR: u32 = 1078220343;
+pub const TUNGETFILTER: u32 = 2148553947;
+pub const CCISS_SETNODENAME: u32 = 1074807301;
+pub const FBIO_GETCONTROL2: u32 = 2148025993;
+pub const TUNSETDEBUG: u32 = 1074025673;
+pub const DM_DEV_REMOVE: u32 = 3241737476;
+pub const HIDIOCSUSAGES: u32 = 1344030740;
+pub const FS_IOC_ADD_ENCRYPTION_KEY: u32 = 3226494487;
+pub const FBIOGET_VBLANK: u32 = 2149598738;
+pub const ATM_GETSTAT: u32 = 1074815312;
+pub const VIDIOC_G_JPEGCOMP: u32 = 2156680765;
+pub const TUNATTACHFILTER: u32 = 1074812117;
+pub const UI_SET_ABSBIT: u32 = 1074025831;
+pub const DFL_FPGA_PORT_ERR_GET_IRQ_NUM: u32 = 2147792453;
+pub const USBDEVFS_REAPURB32: u32 = 1074025740;
+pub const BTRFS_IOC_TRANS_END: u32 = 37895;
+pub const CAPI_REGISTER: u32 = 1074545409;
+pub const F2FS_IOC_COMPRESS_FILE: u32 = 62744;
+pub const USBDEVFS_DISCARDURB: u32 = 21771;
+pub const HE_GET_REG: u32 = 1074815328;
+pub const ATM_SETLOOP: u32 = 1074815315;
+pub const ATMSIGD_CTRL: u32 = 25072;
+pub const CIOC_KERNEL_VERSION: u32 = 3221775114;
+pub const BTRFS_IOC_CLONE_RANGE: u32 = 1075876877;
+pub const SNAPSHOT_UNFREEZE: u32 = 13058;
+pub const F2FS_IOC_START_VOLATILE_WRITE: u32 = 62723;
+pub const PMU_IOC_HAS_ADB: u32 = 2148024836;
+pub const I2OGETIOPS: u32 = 2149607680;
+pub const VIDIOC_S_FBUF: u32 = 1076909579;
+pub const PPRCONTROL: u32 = 2147577987;
+pub const CHIOSPICKER: u32 = 1074029317;
+pub const VFIO_IOMMU_SPAPR_REGISTER_MEMORY: u32 = 15221;
+pub const TUNGETSNDBUF: u32 = 2147767507;
+pub const GSMIOC_SETCONF: u32 = 1078740737;
+pub const IOC_PR_PREEMPT: u32 = 1075343563;
+pub const KCOV_INIT_TRACE: u32 = 2148033281;
+pub const SONYPI_IOCGBAT1CAP: u32 = 2147644930;
+pub const SWITCHTEC_IOCTL_FLASH_INFO: u32 = 2148554560;
+pub const MTIOCTOP: u32 = 1074294017;
+pub const VHOST_VDPA_SET_STATUS: u32 = 1073852274;
+pub const VHOST_SCSI_SET_EVENTS_MISSED: u32 = 1074048835;
+pub const VFIO_IOMMU_DIRTY_PAGES: u32 = 15221;
+pub const BTRFS_IOC_SCRUB_PROGRESS: u32 = 3288372253;
+pub const PPPIOCGMRU: u32 = 2147775571;
+pub const BTRFS_IOC_DEV_REPLACE: u32 = 3391657013;
+pub const PPPIOCGFLAGS: u32 = 2147775578;
+pub const NILFS_IOCTL_SET_SUINFO: u32 = 1075342989;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER2: u32 = 3222807316;
+pub const ATM_DELLECSADDR: u32 = 1074815375;
+pub const FW_CDEV_IOC_GET_SPEED: u32 = 8977;
+pub const PPPIOCGIDLE32: u32 = 2148037695;
+pub const VFIO_DEVICE_RESET: u32 = 15215;
+pub const GPIO_GET_LINEINFO_UNWATCH_IOCTL: u32 = 3221533708;
+pub const WDIOC_GETSTATUS: u32 = 2147768065;
+pub const BTRFS_IOC_SET_FEATURES: u32 = 1076925497;
+pub const IOCTL_MEI_CONNECT_CLIENT: u32 = 3222292481;
+pub const VIDIOC_OMAP3ISP_AEWB_CFG: u32 = 3223344835;
+pub const PCITEST_READ: u32 = 1074286597;
+pub const VFIO_GROUP_GET_STATUS: u32 = 15207;
+pub const MATROXFB_GET_ALL_OUTPUTS: u32 = 2148036347;
+pub const USBDEVFS_CLEAR_HALT: u32 = 2147767573;
+pub const VIDIOC_DECODER_CMD: u32 = 3225966176;
+pub const VIDIOC_G_AUDIO: u32 = 2150913569;
+pub const CCISS_RESCANDISK: u32 = 16912;
+pub const RIO_DISABLE_PORTWRITE_RANGE: u32 = 1074818316;
+pub const IOC_OPAL_SECURE_ERASE_LR: u32 = 1091596519;
+pub const USBDEVFS_REAPURB: u32 = 1074287884;
+pub const DFL_FPGA_CHECK_EXTENSION: u32 = 46593;
+pub const AUTOFS_IOC_PROTOVER: u32 = 2147783523;
+pub const FSL_HV_IOCTL_MEMCPY: u32 = 3223891717;
+pub const BTRFS_IOC_GET_FEATURES: u32 = 2149094457;
+pub const PCITEST_MSIX: u32 = 1074024455;
+pub const BTRFS_IOC_DEFRAG_RANGE: u32 = 1076925456;
+pub const UI_BEGIN_FF_ERASE: u32 = 3222033866;
+pub const DM_GET_TARGET_VERSION: u32 = 3241737489;
+pub const PPPIOCGIDLE: u32 = 2148561983;
+pub const NVRAM_SETCKS: u32 = 28737;
+pub const WDIOC_GETSUPPORT: u32 = 2150127360;
+pub const GSMIOC_ENABLE_NET: u32 = 1077167874;
+pub const GPIO_GET_CHIPINFO_IOCTL: u32 = 2151986177;
+pub const NE_ADD_VCPU: u32 = 3221532193;
+pub const EVIOCSKEYCODE_V2: u32 = 1076380932;
+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 = 1075342598;
+pub const I2OEVTREG: u32 = 1074555146;
+pub const I2OPARMGET: u32 = 3223873796;
+pub const EVIOCGID: u32 = 2148025602;
+pub const BTRFS_IOC_QGROUP_CREATE: u32 = 1074828330;
+pub const AUTOFS_DEV_IOCTL_SETPIPEFD: u32 = 3222836088;
+pub const VIDIOC_S_PARM: u32 = 3234616854;
+pub const TUNSETSTEERINGEBPF: u32 = 2147767520;
+pub const ATM_GETNAMES: u32 = 1074815363;
+pub const VIDIOC_QUERYMENU: u32 = 3224131109;
+pub const DFL_FPGA_PORT_DMA_UNMAP: u32 = 46660;
+pub const I2OLCTGET: u32 = 3222825218;
+pub const FS_IOC_GET_ENCRYPTION_PWSALT: u32 = 1074816532;
+pub const NS_SETBUFLEV: u32 = 1074815330;
+pub const BLKCLOSEZONE: u32 = 1074795143;
+pub const SONET_GETFRSENSE: u32 = 2147901719;
+pub const UI_SET_EVBIT: u32 = 1074025828;
+pub const DM_LIST_VERSIONS: u32 = 3241737485;
+pub const HIDIOCGSTRING: u32 = 2164541444;
+pub const PPPIOCATTCHAN: u32 = 1074033720;
+pub const VDUSE_DEV_SET_CONFIG: u32 = 1074299154;
+pub const TUNGETFEATURES: u32 = 2147767503;
+pub const VFIO_GROUP_UNSET_CONTAINER: u32 = 15209;
+pub const IPMICTL_SET_MY_ADDRESS_CMD: u32 = 2147772689;
+pub const CCISS_REGNEWDISK: u32 = 1074020877;
+pub const VIDIOC_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const PHN_SETREGS: u32 = 1076391944;
+pub const FAT_IOCTL_GET_ATTRIBUTES: u32 = 2147774992;
+pub const FSL_MC_SEND_MC_COMMAND: u32 = 3225440992;
+pub const TUNGETIFF: u32 = 2147767506;
+pub const PTP_CLOCK_GETCAPS2: u32 = 2152742154;
+pub const BTRFS_IOC_RESIZE: u32 = 1342215171;
+pub const VHOST_SET_VRING_ENDIAN: u32 = 1074310931;
+pub const PPS_KC_BIND: u32 = 1074294949;
+pub const F2FS_IOC_WRITE_CHECKPOINT: u32 = 62727;
+pub const UI_SET_FFBIT: u32 = 1074025835;
+pub const IPMICTL_GET_MY_LUN_CMD: u32 = 2147772692;
+pub const CEC_ADAP_G_PHYS_ADDR: u32 = 2147639553;
+pub const CEC_G_MODE: u32 = 2147770632;
+pub const USBDEVFS_RESETEP: u32 = 2147767555;
+pub const MEDIA_REQUEST_IOC_QUEUE: u32 = 31872;
+pub const USBDEVFS_ALLOC_STREAMS: u32 = 2148029724;
+pub const MGSL_IOCSXCTRL: u32 = 27925;
+pub const MEDIA_IOC_G_TOPOLOGY: u32 = 3225975812;
+pub const PPPIOCUNBRIDGECHAN: u32 = 29748;
+pub const F2FS_IOC_COMMIT_ATOMIC_WRITE: u32 = 62722;
+pub const ISST_IF_GET_PLATFORM_INFO: u32 = 2148072960;
+pub const SCIF_FENCE_MARK: u32 = 3222303503;
+pub const USBDEVFS_RELEASE_PORT: u32 = 2147767577;
+pub const VFIO_CHECK_EXTENSION: u32 = 15205;
+pub const BTRFS_IOC_QGROUP_LIMIT: u32 = 2150667307;
+pub const FAT_IOCTL_GET_VOLUME_ID: u32 = 2147774995;
+pub const UI_SET_PHYS: u32 = 1074287980;
+pub const FDWERRORGET: u32 = 2150105623;
+pub const VIDIOC_SUBDEV_G_EDID: u32 = 3223868968;
+pub const MGSL_IOCGSTATS: u32 = 27911;
+pub const RPROC_SET_SHUTDOWN_ON_RELEASE: u32 = 1074050817;
+pub const SIOCGSTAMP_NEW: u32 = 2148567302;
+pub const RTC_WKALM_RD: u32 = 2150133776;
+pub const PHN_GET_REG: u32 = 3221778432;
+pub const DELL_WMI_SMBIOS_CMD: u32 = 3224655616;
+pub const PHN_NOT_OH: u32 = 28676;
+pub const PPGETMODES: u32 = 2147774615;
+pub const CHIOGPARAMS: u32 = 2148819718;
+pub const VFIO_DEVICE_GET_GFX_DMABUF: u32 = 15219;
+pub const VHOST_SET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310947;
+pub const VIDIOC_SUBDEV_G_SELECTION: u32 = 3225441853;
+pub const BTRFS_IOC_RM_DEV_V2: u32 = 1342215226;
+pub const MGSL_IOCWAITGPIO: u32 = 3222301970;
+pub const PMU_IOC_CAN_SLEEP: u32 = 2148024837;
+pub const KCOV_ENABLE: u32 = 25444;
+pub const BTRFS_IOC_CLONE: u32 = 1074041865;
+pub const F2FS_IOC_DEFRAGMENT: u32 = 3222336776;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE: u32 = 1074012942;
+pub const AGPIOC_ALLOCATE: u32 = 3221766406;
+pub const NE_SET_USER_MEMORY_REGION: u32 = 1075359267;
+pub const MGSL_IOCTXABORT: u32 = 27910;
+pub const MGSL_IOCSGPIO: u32 = 1074818320;
+pub const LIRC_SET_REC_CARRIER: u32 = 1074030868;
+pub const F2FS_IOC_FLUSH_DEVICE: u32 = 1074328842;
+pub const SNAPSHOT_ATOMIC_RESTORE: u32 = 13060;
+pub const RTC_UIE_OFF: u32 = 28676;
+pub const BT_BMC_IOCTL_SMS_ATN: u32 = 45312;
+pub const NVME_IOCTL_ID: u32 = 20032;
+pub const NE_START_ENCLAVE: u32 = 3222318628;
+pub const VIDIOC_STREAMON: u32 = 1074026002;
+pub const FDPOLLDRVSTAT: u32 = 2152727059;
+pub const AUTOFS_DEV_IOCTL_READY: u32 = 3222836086;
+pub const VIDIOC_ENUMAUDOUT: u32 = 3224655426;
+pub const VIDIOC_SUBDEV_S_STD: u32 = 1074288152;
+pub const WDIOC_GETTIMELEFT: u32 = 2147768074;
+pub const ATM_GETLINKRATE: u32 = 1074815361;
+pub const RTC_WKALM_SET: u32 = 1076391951;
+pub const VHOST_GET_BACKEND_FEATURES: u32 = 2148052774;
+pub const ATMARP_ENCAP: u32 = 25061;
+pub const CAPI_GET_FLAGS: u32 = 2147762979;
+pub const IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772696;
+pub const DFL_FPGA_FME_PORT_ASSIGN: u32 = 1074050690;
+pub const NS_GET_OWNER_UID: u32 = 46852;
+pub const VIDIOC_OVERLAY: u32 = 1074025998;
+pub const BTRFS_IOC_WAIT_SYNC: u32 = 1074304022;
+pub const GPIOHANDLE_SET_CONFIG_IOCTL: u32 = 3226776586;
+pub const VHOST_GET_VRING_ENDIAN: u32 = 1074310932;
+pub const ATM_GETADDR: u32 = 1074815366;
+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 = 13067;
+pub const JSIOCSAXMAP: u32 = 1077963313;
+pub const F2FS_IOC_SET_COMPRESS_OPTION: u32 = 1073935638;
+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 = 15216;
+pub const VIDIOC_SUBDEV_ENUM_MBUS_CODE: u32 = 3224393218;
+pub const MMTIMER_GETOFFSET: u32 = 27904;
+pub const RIO_CM_CHAN_LISTEN: u32 = 1073898246;
+pub const ATM_SETSC: u32 = 1074029041;
+pub const F2FS_IOC_SHUTDOWN: u32 = 2147768445;
+pub const NVME_IOCTL_RESCAN: u32 = 20038;
+pub const BLKOPENZONE: u32 = 1074795142;
+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 = 25056;
+pub const IPMI_BMC_IOCTL_CLEAR_SMS_ATN: u32 = 45313;
+pub const HIDIOCGVERSION: u32 = 2147764225;
+pub const VIDIOC_S_INPUT: u32 = 3221509671;
+pub const VIDIOC_G_CROP: u32 = 3222558267;
+pub const LIRC_SET_WIDEBAND_RECEIVER: u32 = 1074030883;
+pub const EVIOCGEFFECTS: u32 = 2147763588;
+pub const UVCIOC_CTRL_QUERY: u32 = 3222304033;
+pub const IOC_OPAL_GENERIC_TABLE_RW: u32 = 1094217963;
+pub const FS_IOC_READ_VERITY_METADATA: u32 = 3223873159;
+pub const ND_IOCTL_SET_CONFIG_DATA: u32 = 3221769734;
+pub const USBDEVFS_GETDRIVER: u32 = 1090802952;
+pub const IDT77105_GETSTAT: u32 = 1074815282;
+pub const HIDIOCINITREPORT: u32 = 18437;
+pub const VFIO_DEVICE_GET_INFO: u32 = 15211;
+pub const RIO_CM_CHAN_RECEIVE: u32 = 3222299402;
+pub const RNDGETENTCNT: u32 = 2147766784;
+pub const PPPIOCNEWUNIT: u32 = 3221517374;
+pub const BTRFS_IOC_INO_LOOKUP: u32 = 3489698834;
+pub const FDRESET: u32 = 596;
+pub const IOC_PR_REGISTER: u32 = 1075343560;
+pub const HIDIOCSREPORT: u32 = 1074546696;
+pub const TEE_IOC_OPEN_SESSION: u32 = 2148574210;
+pub const TEE_IOC_SUPPL_RECV: u32 = 2148574214;
+pub const BTRFS_IOC_BALANCE_CTL: u32 = 1074041889;
+pub const GPIO_GET_LINEINFO_WATCH_IOCTL: u32 = 3225990155;
+pub const HIDIOCGRAWINFO: u32 = 2148026371;
+pub const PPPIOCSCOMPRESS: u32 = 1074820173;
+pub const USBDEVFS_CONNECTINFO: u32 = 1074287889;
+pub const BLKRESETZONE: u32 = 1074795139;
+pub const CHIOINITELEM: u32 = 25361;
+pub const NILFS_IOCTL_SET_ALLOC_RANGE: u32 = 1074818700;
+pub const AUTOFS_DEV_IOCTL_CATATONIC: u32 = 3222836089;
+pub const RIO_MPORT_MAINT_HDID_SET: u32 = 1073900801;
+pub const PPGETPHASE: u32 = 2147774617;
+pub const USBDEVFS_DISCONNECT_CLAIM: u32 = 2164806939;
+pub const FDMSGON: u32 = 581;
+pub const VIDIOC_G_SLICED_VBI_CAP: u32 = 3228849733;
+pub const BTRFS_IOC_BALANCE_V2: u32 = 3288372256;
+pub const MEDIA_REQUEST_IOC_REINIT: u32 = 31873;
+pub const IOC_OPAL_ERASE_LR: u32 = 1091596518;
+pub const FDFMTBEG: u32 = 583;
+pub const RNDRESEEDCRNG: u32 = 20999;
+pub const ISST_IF_GET_PHY_ID: u32 = 3221814785;
+pub const TUNSETNOCSUM: u32 = 1074025672;
+pub const SONET_GETSTAT: u32 = 2149867792;
+pub const TFD_IOC_SET_TICKS: u32 = 1074287616;
+pub const PPDATADIR: u32 = 1074032784;
+pub const IOC_OPAL_ENABLE_DISABLE_MBR: u32 = 1091596517;
+pub const GPIO_V2_GET_LINE_IOCTL: u32 = 3260068871;
+pub const RIO_CM_CHAN_SEND: u32 = 1074815753;
+pub const PPWCTLONIRQ: u32 = 1073836178;
+pub const SONYPI_IOCGBRT: u32 = 2147579392;
+pub const IOC_PR_RELEASE: u32 = 1074819274;
+pub const PPCLRIRQ: u32 = 2147774611;
+pub const IPMICTL_SET_MY_CHANNEL_LUN_CMD: u32 = 2147772698;
+pub const MGSL_IOCSXSYNC: u32 = 27923;
+pub const HPET_IE_OFF: u32 = 26626;
+pub const IOC_OPAL_ACTIVATE_USR: u32 = 1091596513;
+pub const SONET_SETFRAMING: u32 = 1074028821;
+pub const PERF_EVENT_IOC_PAUSE_OUTPUT: u32 = 1074013193;
+pub const BTRFS_IOC_LOGICAL_INO_V2: u32 = 3224933435;
+pub const VBG_IOCTL_HGCM_CONNECT: u32 = 3231471108;
+pub const BLKFINISHZONE: u32 = 1074795144;
+pub const EVIOCREVOKE: u32 = 1074021777;
+pub const VFIO_DEVICE_FEATURE: u32 = 15221;
+pub const CCISS_GETPCIINFO: u32 = 2148024833;
+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 = 1074026003;
+pub const VDUSE_DESTROY_DEV: u32 = 1090552067;
+pub const FDGETFDCSTAT: u32 = 2150105621;
+pub const VIDIOC_S_PRIORITY: u32 = 1074026052;
+pub const SNAPSHOT_FREEZE: u32 = 13057;
+pub const VIDIOC_ENUMINPUT: u32 = 3226490394;
+pub const ZATM_GETPOOLZ: u32 = 1074815330;
+pub const RIO_DISABLE_DOORBELL_RANGE: u32 = 1074294026;
+pub const GPIO_V2_GET_LINEINFO_WATCH_IOCTL: u32 = 3238048774;
+pub const VIDIOC_G_STD: u32 = 2148029975;
+pub const USBDEVFS_ALLOW_SUSPEND: u32 = 21794;
+pub const SONET_GETSTATZ: u32 = 2149867793;
+pub const SCIF_ACCEPTREG: u32 = 3221779205;
+pub const VIDIOC_ENCODER_CMD: u32 = 3223869005;
+pub const PPPIOCSRASYNCMAP: u32 = 1074033748;
+pub const IOCTL_MEI_NOTIFY_SET: u32 = 1074022402;
+pub const BTRFS_IOC_QUOTA_RESCAN_STATUS: u32 = 2151715885;
+pub const F2FS_IOC_GARBAGE_COLLECT: u32 = 1074066694;
+pub const ATMLEC_CTRL: u32 = 25040;
+pub const MATROXFB_GET_AVAILABLE_OUTPUTS: u32 = 2148036345;
+pub const DM_DEV_CREATE: u32 = 3241737475;
+pub const VHOST_VDPA_GET_VRING_NUM: u32 = 2147659638;
+pub const VIDIOC_G_CTRL: u32 = 3221771803;
+pub const NBD_CLEAR_SOCK: u32 = 43780;
+pub const VFIO_DEVICE_QUERY_GFX_PLANE: u32 = 15218;
+pub const WDIOC_KEEPALIVE: u32 = 2147768069;
+pub const NVME_IOCTL_SUBSYS_RESET: u32 = 20037;
+pub const PTP_EXTTS_REQUEST2: u32 = 1074806027;
+pub const PCITEST_BAR: u32 = 20481;
+pub const MGSL_IOCGGPIO: u32 = 2148560145;
+pub const EVIOCSREP: u32 = 1074283779;
+pub const VFIO_DEVICE_GET_IRQ_INFO: u32 = 15213;
+pub const HPET_DPI: u32 = 26629;
+pub const VDUSE_VQ_SETUP_KICKFD: u32 = 1074299158;
+pub const ND_IOCTL_CALL: u32 = 3225439754;
+pub const HIDIOCGDEVINFO: u32 = 2149337091;
+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 = 2147767875;
+pub const ATM_NEWBACKENDIF: u32 = 1073897971;
+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 = 1076909650;
+pub const DM_TABLE_LOAD: u32 = 3241737481;
+pub const F2FS_IOC_START_ATOMIC_WRITE: u32 = 62721;
+pub const VIDIOC_G_OUTPUT: u32 = 2147767854;
+pub const ATM_DROPPARTY: u32 = 1074029045;
+pub const CHIOGELEM: u32 = 1080845072;
+pub const BTRFS_IOC_GET_SUPPORTED_FEATURES: u32 = 2152240185;
+pub const EVIOCSKEYCODE: u32 = 1074283780;
+pub const NE_GET_IMAGE_LOAD_INFO: u32 = 3222318626;
+pub const TUNSETLINK: u32 = 1074025677;
+pub const FW_CDEV_IOC_ADD_DESCRIPTOR: u32 = 3222807302;
+pub const BTRFS_IOC_SCRUB_CANCEL: u32 = 37916;
+pub const PPS_SETPARAMS: u32 = 1074294946;
+pub const IOC_OPAL_LR_SETUP: u32 = 1093169379;
+pub const FW_CDEV_IOC_DEALLOCATE: u32 = 1074012931;
+pub const WDIOC_SETTIMEOUT: u32 = 3221509894;
+pub const IOC_WATCH_QUEUE_SET_FILTER: u32 = 22369;
+pub const CAPI_GET_MANUFACTURER: u32 = 3221504774;
+pub const VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY: u32 = 15222;
+pub const ASPEED_P2A_CTRL_IOCTL_SET_WINDOW: u32 = 1074836224;
+pub const VIDIOC_G_EDID: u32 = 3223868968;
+pub const F2FS_IOC_GARBAGE_COLLECT_RANGE: u32 = 1075377419;
+pub const RIO_MAP_INBOUND: u32 = 3223874833;
+pub const IOC_OPAL_TAKE_OWNERSHIP: u32 = 1091072222;
+pub const USBDEVFS_CLAIM_PORT: u32 = 2147767576;
+pub const VIDIOC_S_AUDIO: u32 = 1077171746;
+pub const FS_IOC_GET_ENCRYPTION_NONCE: u32 = 2148558363;
+pub const FW_CDEV_IOC_SEND_STREAM_PACKET: u32 = 1076372243;
+pub const BTRFS_IOC_SNAP_DESTROY: u32 = 1342215183;
+pub const SNAPSHOT_FREE: u32 = 13061;
+pub const I8K_GET_SPEED: u32 = 3221776773;
+pub const HIDIOCGREPORT: u32 = 1074546695;
+pub const HPET_EPI: u32 = 26628;
+pub const JSIOCSCORR: u32 = 1076128289;
+pub const IOC_PR_PREEMPT_ABORT: u32 = 1075343564;
+pub const RIO_MAP_OUTBOUND: u32 = 3223874831;
+pub const ATM_SETESI: u32 = 1074815372;
+pub const FW_CDEV_IOC_START_ISO: u32 = 1074799370;
+pub const ATM_DELADDR: u32 = 1074815369;
+pub const PPFCONTROL: u32 = 1073901710;
+pub const SONYPI_IOCGFAN: u32 = 2147579402;
+pub const RTC_IRQP_SET: u32 = 1074294796;
+pub const PCITEST_WRITE: u32 = 1074286596;
+pub const PPCLAIM: u32 = 28811;
+pub const VIDIOC_S_JPEGCOMP: u32 = 1082938942;
+pub const IPMICTL_UNREGISTER_FOR_CMD: u32 = 2147641615;
+pub const VHOST_SET_FEATURES: u32 = 1074310912;
+pub const TOSHIBA_ACPI_SCI: u32 = 3222828177;
+pub const VIDIOC_DQBUF: u32 = 3227014673;
+pub const BTRFS_IOC_BALANCE_PROGRESS: u32 = 2214630434;
+pub const BTRFS_IOC_SUBVOL_SETFLAGS: u32 = 1074304026;
+pub const ATMLEC_MCAST: u32 = 25042;
+pub const MMTIMER_GETFREQ: u32 = 2148035842;
+pub const VIDIOC_G_SELECTION: u32 = 3225441886;
+pub const RTC_ALM_SET: u32 = 1076129799;
+pub const PPPOEIOCSFWD: u32 = 1074311424;
+pub const IPMICTL_GET_MAINTENANCE_MODE_CMD: u32 = 2147772702;
+pub const FS_IOC_ENABLE_VERITY: u32 = 1082156677;
+pub const NILFS_IOCTL_GET_BDESCS: u32 = 3222826631;
+pub const FDFMTEND: u32 = 585;
+pub const DMA_BUF_SET_NAME: u32 = 1074291201;
+pub const UI_BEGIN_FF_UPLOAD: u32 = 3228063176;
+pub const RTC_UIE_ON: u32 = 28675;
+pub const PPRELEASE: u32 = 28812;
+pub const VFIO_IOMMU_UNMAP_DMA: u32 = 15218;
+pub const VIDIOC_OMAP3ISP_PRV_CFG: u32 = 3228587714;
+pub const GPIO_GET_LINEHANDLE_IOCTL: u32 = 3245126659;
+pub const VFAT_IOCTL_READDIR_BOTH: u32 = 2184212993;
+pub const NVME_IOCTL_ADMIN_CMD: u32 = 3225964097;
+pub const VHOST_SET_VRING_KICK: u32 = 1074310944;
+pub const BTRFS_IOC_SUBVOL_CREATE_V2: u32 = 1342215192;
+pub const BTRFS_IOC_SNAP_CREATE: u32 = 1342215169;
+pub const SONYPI_IOCGBAT2CAP: u32 = 2147644932;
+pub const PPNEGOT: u32 = 1074032785;
+pub const NBD_PRINT_DEBUG: u32 = 43782;
+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 = 2214630431;
+pub const VIDIOC_ENUM_FMT: u32 = 3225441794;
+pub const VIDIOC_G_INPUT: u32 = 2147767846;
+pub const VTPM_PROXY_IOC_NEW_DEV: u32 = 3222577408;
+pub const DFL_FPGA_FME_ERR_GET_IRQ_NUM: u32 = 2147792515;
+pub const ND_IOCTL_DIMM_FLAGS: u32 = 3221769731;
+pub const BTRFS_IOC_QUOTA_RESCAN: u32 = 1077974060;
+pub const MMTIMER_GETCOUNTER: u32 = 2148035849;
+pub const MATROXFB_GET_OUTPUT_MODE: u32 = 3221778170;
+pub const BTRFS_IOC_QUOTA_RESCAN_WAIT: u32 = 37934;
+pub const RIO_CM_CHAN_BIND: u32 = 1074291461;
+pub const HIDIOCGRDESC: u32 = 2416199682;
+pub const MGSL_IOCGIF: u32 = 27915;
+pub const VIDIOC_S_OUTPUT: u32 = 3221509679;
+pub const HIDIOCGREPORTINFO: u32 = 3222030345;
+pub const WDIOC_GETBOOTSTATUS: u32 = 2147768066;
+pub const VDUSE_VQ_GET_INFO: u32 = 3224404245;
+pub const ACRN_IOCTL_ASSIGN_PCIDEV: u32 = 1076142677;
+pub const BLKGETDISKSEQ: u32 = 2148012672;
+pub const ACRN_IOCTL_PM_GET_CPU_STATE: u32 = 3221791328;
+pub const ACRN_IOCTL_DESTROY_VM: u32 = 41489;
+pub const ACRN_IOCTL_SET_PTDEV_INTR: u32 = 1075094099;
+pub const ACRN_IOCTL_CREATE_IOREQ_CLIENT: u32 = 41522;
+pub const ACRN_IOCTL_IRQFD: u32 = 1075356273;
+pub const ACRN_IOCTL_CREATE_VM: u32 = 3224412688;
+pub const ACRN_IOCTL_INJECT_MSI: u32 = 1074831907;
+pub const ACRN_IOCTL_ATTACH_IOREQ_CLIENT: u32 = 41523;
+pub const ACRN_IOCTL_RESET_PTDEV_INTR: u32 = 1075094100;
+pub const ACRN_IOCTL_NOTIFY_REQUEST_FINISH: u32 = 1074307633;
+pub const ACRN_IOCTL_SET_IRQLINE: u32 = 1074307621;
+pub const ACRN_IOCTL_START_VM: u32 = 41490;
+pub const ACRN_IOCTL_SET_VCPU_REGS: u32 = 1093181974;
+pub const ACRN_IOCTL_SET_MEMSEG: u32 = 1075880513;
+pub const ACRN_IOCTL_PAUSE_VM: u32 = 41491;
+pub const ACRN_IOCTL_CLEAR_VM_IOREQ: u32 = 41525;
+pub const ACRN_IOCTL_UNSET_MEMSEG: u32 = 1075880514;
+pub const ACRN_IOCTL_IOEVENTFD: u32 = 1075880560;
+pub const ACRN_IOCTL_DEASSIGN_PCIDEV: u32 = 1076142678;
+pub const ACRN_IOCTL_RESET_VM: u32 = 41493;
+pub const ACRN_IOCTL_DESTROY_IOREQ_CLIENT: u32 = 41524;
+pub const ACRN_IOCTL_VM_INTR_MONITOR: u32 = 1074307620;
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv64/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/landlock.rs
new file mode 100644
index 0000000..0548e2d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/landlock.rs
@@ -0,0 +1,100 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv64/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/loop_device.rs
new file mode 100644
index 0000000..754d71e
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/loop_device.rs
@@ -0,0 +1,134 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+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_daddr_t = crate::ctypes::c_int;
+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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/riscv64/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/mempolicy.rs
new file mode 100644
index 0000000..ad4957c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/mempolicy.rs
@@ -0,0 +1,175 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
+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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv64/net.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/net.rs
new file mode 100644
index 0000000..6890cdd
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/net.rs
@@ -0,0 +1,3427 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 34usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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 SIOCGSTAMP_OLD: u32 = 35078;
+pub const SIOCGSTAMPNS_OLD: u32 = 35079;
+pub const SOL_SOCKET: u32 = 1;
+pub const SO_DEBUG: u32 = 1;
+pub const SO_REUSEADDR: u32 = 2;
+pub const SO_TYPE: u32 = 3;
+pub const SO_ERROR: u32 = 4;
+pub const SO_DONTROUTE: u32 = 5;
+pub const SO_BROADCAST: u32 = 6;
+pub const SO_SNDBUF: u32 = 7;
+pub const SO_RCVBUF: u32 = 8;
+pub const SO_SNDBUFFORCE: u32 = 32;
+pub const SO_RCVBUFFORCE: u32 = 33;
+pub const SO_KEEPALIVE: u32 = 9;
+pub const SO_OOBINLINE: u32 = 10;
+pub const SO_NO_CHECK: u32 = 11;
+pub const SO_PRIORITY: u32 = 12;
+pub const SO_LINGER: u32 = 13;
+pub const SO_BSDCOMPAT: u32 = 14;
+pub const SO_REUSEPORT: u32 = 15;
+pub const SO_PASSCRED: u32 = 16;
+pub const SO_PEERCRED: u32 = 17;
+pub const SO_RCVLOWAT: u32 = 18;
+pub const SO_SNDLOWAT: u32 = 19;
+pub const SO_RCVTIMEO_OLD: u32 = 20;
+pub const SO_SNDTIMEO_OLD: u32 = 21;
+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_ACCEPTCONN: u32 = 30;
+pub const SO_PEERSEC: u32 = 31;
+pub const SO_PASSSEC: u32 = 34;
+pub const SO_MARK: u32 = 36;
+pub const SO_PROTOCOL: u32 = 38;
+pub const SO_DOMAIN: u32 = 39;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+pub const SO_TIMESTAMP: u32 = 29;
+pub const SO_TIMESTAMPNS: u32 = 35;
+pub const SO_TIMESTAMPING: u32 = 37;
+pub const SO_RCVTIMEO: u32 = 20;
+pub const SO_SNDTIMEO: u32 = 21;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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 = 1;
+pub const SOCK_DGRAM: u32 = 2;
+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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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 = 32768,
+TCP_FLAG_ECE = 16384,
+TCP_FLAG_URG = 8192,
+TCP_FLAG_ACK = 4096,
+TCP_FLAG_PSH = 2048,
+TCP_FLAG_RST = 1024,
+TCP_FLAG_SYN = 512,
+TCP_FLAG_FIN = 256,
+TCP_RESERVED_BITS = 15,
+TCP_DATA_OFFSET = 240,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn ihl(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_ihl(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(ihl: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let ihl: u8 = unsafe { ::core::mem::transmute(ihl) };
+ihl as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl ipv6hdr {
+#[inline]
+pub fn priority(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_priority(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(priority: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let priority: u8 = unsafe { ::core::mem::transmute(priority) };
+priority as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcphdr {
+#[inline]
+pub fn res1(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_res1(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn doff(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_doff(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn fin(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_fin(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn syn(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_syn(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn rst(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_rst(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn psh(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_psh(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ack(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ack(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn urg(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_urg(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ece(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ece(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn cwr(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_cwr(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(res1: __u16, doff: __u16, fin: __u16, syn: __u16, rst: __u16, psh: __u16, ack: __u16, urg: __u16, ece: __u16, cwr: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let res1: u16 = unsafe { ::core::mem::transmute(res1) };
+res1 as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let doff: u16 = unsafe { ::core::mem::transmute(doff) };
+doff as u64
+});
+__bindgen_bitfield_unit.set(8usize, 1u8, {
+let fin: u16 = unsafe { ::core::mem::transmute(fin) };
+fin as u64
+});
+__bindgen_bitfield_unit.set(9usize, 1u8, {
+let syn: u16 = unsafe { ::core::mem::transmute(syn) };
+syn as u64
+});
+__bindgen_bitfield_unit.set(10usize, 1u8, {
+let rst: u16 = unsafe { ::core::mem::transmute(rst) };
+rst as u64
+});
+__bindgen_bitfield_unit.set(11usize, 1u8, {
+let psh: u16 = unsafe { ::core::mem::transmute(psh) };
+psh as u64
+});
+__bindgen_bitfield_unit.set(12usize, 1u8, {
+let ack: u16 = unsafe { ::core::mem::transmute(ack) };
+ack as u64
+});
+__bindgen_bitfield_unit.set(13usize, 1u8, {
+let urg: u16 = unsafe { ::core::mem::transmute(urg) };
+urg as u64
+});
+__bindgen_bitfield_unit.set(14usize, 1u8, {
+let ece: u16 = unsafe { ::core::mem::transmute(ece) };
+ece as u64
+});
+__bindgen_bitfield_unit.set(15usize, 1u8, {
+let cwr: u16 = unsafe { ::core::mem::transmute(cwr) };
+cwr 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv64/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/netlink.rs
new file mode 100644
index 0000000..0fafa7a
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/netlink.rs
@@ -0,0 +1,2946 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_nl {
+pub nl_family: __kernel_sa_family_t,
+pub nl_pad: crate::ctypes::c_ushort,
+pub nl_pid: __u32,
+pub nl_groups: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsghdr {
+pub nlmsg_len: __u32,
+pub nlmsg_type: __u16,
+pub nlmsg_flags: __u16,
+pub nlmsg_seq: __u32,
+pub nlmsg_pid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsgerr {
+pub error: crate::ctypes::c_int,
+pub msg: nlmsghdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_pktinfo {
+pub group: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_req {
+pub nm_block_size: crate::ctypes::c_uint,
+pub nm_block_nr: crate::ctypes::c_uint,
+pub nm_frame_size: crate::ctypes::c_uint,
+pub nm_frame_nr: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_hdr {
+pub nm_status: crate::ctypes::c_uint,
+pub nm_len: crate::ctypes::c_uint,
+pub nm_group: __u32,
+pub nm_pid: __u32,
+pub nm_uid: __u32,
+pub nm_gid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlattr {
+pub nla_len: __u16,
+pub nla_type: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nla_bitfield32 {
+pub value: __u32,
+pub selector: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats {
+pub rx_packets: __u32,
+pub tx_packets: __u32,
+pub rx_bytes: __u32,
+pub tx_bytes: __u32,
+pub rx_errors: __u32,
+pub tx_errors: __u32,
+pub rx_dropped: __u32,
+pub tx_dropped: __u32,
+pub multicast: __u32,
+pub collisions: __u32,
+pub rx_length_errors: __u32,
+pub rx_over_errors: __u32,
+pub rx_crc_errors: __u32,
+pub rx_frame_errors: __u32,
+pub rx_fifo_errors: __u32,
+pub rx_missed_errors: __u32,
+pub tx_aborted_errors: __u32,
+pub tx_carrier_errors: __u32,
+pub tx_fifo_errors: __u32,
+pub tx_heartbeat_errors: __u32,
+pub tx_window_errors: __u32,
+pub rx_compressed: __u32,
+pub tx_compressed: __u32,
+pub rx_nohandler: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+pub collisions: __u64,
+pub rx_length_errors: __u64,
+pub rx_over_errors: __u64,
+pub rx_crc_errors: __u64,
+pub rx_frame_errors: __u64,
+pub rx_fifo_errors: __u64,
+pub rx_missed_errors: __u64,
+pub tx_aborted_errors: __u64,
+pub tx_carrier_errors: __u64,
+pub tx_fifo_errors: __u64,
+pub tx_heartbeat_errors: __u64,
+pub tx_window_errors: __u64,
+pub rx_compressed: __u64,
+pub tx_compressed: __u64,
+pub rx_nohandler: __u64,
+pub rx_otherhost_dropped: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_hw_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_ifmap {
+pub mem_start: __u64,
+pub mem_end: __u64,
+pub base_addr: __u64,
+pub irq: __u16,
+pub dma: __u8,
+pub port: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_bridge_id {
+pub prio: [__u8; 2usize],
+pub addr: [__u8; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_cacheinfo {
+pub max_reasm_len: __u32,
+pub tstamp: __u32,
+pub reachable_time: __u32,
+pub retrans_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_qos_mapping {
+pub from: __u32,
+pub to: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tunnel_msg {
+pub family: __u8,
+pub flags: __u8,
+pub reserved2: __u16,
+pub ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vxlan_port_range {
+pub low: __be16,
+pub high: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_mac {
+pub vf: __u32,
+pub mac: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_broadcast {
+pub broadcast: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan_info {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+pub vlan_proto: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_tx_rate {
+pub vf: __u32,
+pub rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rate {
+pub vf: __u32,
+pub min_tx_rate: __u32,
+pub max_tx_rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_spoofchk {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_guid {
+pub vf: __u32,
+pub guid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_link_state {
+pub vf: __u32,
+pub link_state: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rss_query_en {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_trust {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_port_vsi {
+pub vsi_mgr_id: __u8,
+pub vsi_type_id: [__u8; 3usize],
+pub vsi_type_version: __u8,
+pub pad: [__u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_stats_msg {
+pub family: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub ifindex: __u32,
+pub filter_mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_rmnet_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifaddrmsg {
+pub ifa_family: __u8,
+pub ifa_prefixlen: __u8,
+pub ifa_flags: __u8,
+pub ifa_scope: __u8,
+pub ifa_index: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifa_cacheinfo {
+pub ifa_prefered: __u32,
+pub ifa_valid: __u32,
+pub cstamp: __u32,
+pub tstamp: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndmsg {
+pub ndm_family: __u8,
+pub ndm_pad1: __u8,
+pub ndm_pad2: __u16,
+pub ndm_ifindex: __s32,
+pub ndm_state: __u16,
+pub ndm_flags: __u8,
+pub ndm_type: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nda_cacheinfo {
+pub ndm_confirmed: __u32,
+pub ndm_used: __u32,
+pub ndm_updated: __u32,
+pub ndm_refcnt: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_stats {
+pub ndts_allocs: __u64,
+pub ndts_destroys: __u64,
+pub ndts_hash_grows: __u64,
+pub ndts_res_failed: __u64,
+pub ndts_lookups: __u64,
+pub ndts_hits: __u64,
+pub ndts_rcv_probes_mcast: __u64,
+pub ndts_rcv_probes_ucast: __u64,
+pub ndts_periodic_gc_runs: __u64,
+pub ndts_forced_gc_runs: __u64,
+pub ndts_table_fulls: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndtmsg {
+pub ndtm_family: __u8,
+pub ndtm_pad1: __u8,
+pub ndtm_pad2: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_config {
+pub ndtc_key_len: __u16,
+pub ndtc_entry_size: __u16,
+pub ndtc_entries: __u32,
+pub ndtc_last_flush: __u32,
+pub ndtc_last_rand: __u32,
+pub ndtc_hash_rnd: __u32,
+pub ndtc_hash_mask: __u32,
+pub ndtc_hash_chain_gc: __u32,
+pub ndtc_proxy_qlen: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtattr {
+pub rta_len: crate::ctypes::c_ushort,
+pub rta_type: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtmsg {
+pub rtm_family: crate::ctypes::c_uchar,
+pub rtm_dst_len: crate::ctypes::c_uchar,
+pub rtm_src_len: crate::ctypes::c_uchar,
+pub rtm_tos: crate::ctypes::c_uchar,
+pub rtm_table: crate::ctypes::c_uchar,
+pub rtm_protocol: crate::ctypes::c_uchar,
+pub rtm_scope: crate::ctypes::c_uchar,
+pub rtm_type: crate::ctypes::c_uchar,
+pub rtm_flags: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnexthop {
+pub rtnh_len: crate::ctypes::c_ushort,
+pub rtnh_flags: crate::ctypes::c_uchar,
+pub rtnh_hops: crate::ctypes::c_uchar,
+pub rtnh_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct rtvia {
+pub rtvia_family: __kernel_sa_family_t,
+pub rtvia_addr: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_cacheinfo {
+pub rta_clntref: __u32,
+pub rta_lastuse: __u32,
+pub rta_expires: __s32,
+pub rta_error: __u32,
+pub rta_used: __u32,
+pub rta_id: __u32,
+pub rta_ts: __u32,
+pub rta_tsage: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rta_session {
+pub proto: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub u: rta_session__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_1 {
+pub sport: __u16,
+pub dport: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_2 {
+pub type_: __u8,
+pub code: __u8,
+pub ident: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_mfc_stats {
+pub mfcs_packets: __u64,
+pub mfcs_bytes: __u64,
+pub mfcs_wrong_if: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtgenmsg {
+pub rtgen_family: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifinfomsg {
+pub ifi_family: crate::ctypes::c_uchar,
+pub __ifi_pad: crate::ctypes::c_uchar,
+pub ifi_type: crate::ctypes::c_ushort,
+pub ifi_index: crate::ctypes::c_int,
+pub ifi_flags: crate::ctypes::c_uint,
+pub ifi_change: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefixmsg {
+pub prefix_family: crate::ctypes::c_uchar,
+pub prefix_pad1: crate::ctypes::c_uchar,
+pub prefix_pad2: crate::ctypes::c_ushort,
+pub prefix_ifindex: crate::ctypes::c_int,
+pub prefix_type: crate::ctypes::c_uchar,
+pub prefix_len: crate::ctypes::c_uchar,
+pub prefix_flags: crate::ctypes::c_uchar,
+pub prefix_pad3: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefix_cacheinfo {
+pub preferred_time: __u32,
+pub valid_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcmsg {
+pub tcm_family: crate::ctypes::c_uchar,
+pub tcm__pad1: crate::ctypes::c_uchar,
+pub tcm__pad2: crate::ctypes::c_ushort,
+pub tcm_ifindex: crate::ctypes::c_int,
+pub tcm_handle: __u32,
+pub tcm_parent: __u32,
+pub tcm_info: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nduseroptmsg {
+pub nduseropt_family: crate::ctypes::c_uchar,
+pub nduseropt_pad1: crate::ctypes::c_uchar,
+pub nduseropt_opts_len: crate::ctypes::c_ushort,
+pub nduseropt_ifindex: crate::ctypes::c_int,
+pub nduseropt_icmp_type: __u8,
+pub nduseropt_icmp_code: __u8,
+pub nduseropt_pad2: crate::ctypes::c_ushort,
+pub nduseropt_pad3: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcamsg {
+pub tca_family: crate::ctypes::c_uchar,
+pub tca__pad1: crate::ctypes::c_uchar,
+pub tca__pad2: crate::ctypes::c_ushort,
+}
+pub const _K_SS_MAXSIZE: u32 = 128;
+pub const SOCK_SNDBUF_LOCK: u32 = 1;
+pub const SOCK_RCVBUF_LOCK: u32 = 2;
+pub const SOCK_BUF_LOCK_MASK: u32 = 3;
+pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
+pub const SOCK_TXREHASH_DISABLED: u32 = 0;
+pub const SOCK_TXREHASH_ENABLED: u32 = 1;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/riscv64/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/prctl.rs
new file mode 100644
index 0000000..cccf5cc
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/prctl.rs
@@ -0,0 +1,262 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv64/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/ptrace.rs
new file mode 100644
index 0000000..9894ccf
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/ptrace.rs
@@ -0,0 +1,888 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_regs_struct {
+pub pc: crate::ctypes::c_ulong,
+pub ra: crate::ctypes::c_ulong,
+pub sp: crate::ctypes::c_ulong,
+pub gp: crate::ctypes::c_ulong,
+pub tp: crate::ctypes::c_ulong,
+pub t0: crate::ctypes::c_ulong,
+pub t1: crate::ctypes::c_ulong,
+pub t2: crate::ctypes::c_ulong,
+pub s0: crate::ctypes::c_ulong,
+pub s1: crate::ctypes::c_ulong,
+pub a0: crate::ctypes::c_ulong,
+pub a1: crate::ctypes::c_ulong,
+pub a2: crate::ctypes::c_ulong,
+pub a3: crate::ctypes::c_ulong,
+pub a4: crate::ctypes::c_ulong,
+pub a5: crate::ctypes::c_ulong,
+pub a6: crate::ctypes::c_ulong,
+pub a7: crate::ctypes::c_ulong,
+pub s2: crate::ctypes::c_ulong,
+pub s3: crate::ctypes::c_ulong,
+pub s4: crate::ctypes::c_ulong,
+pub s5: crate::ctypes::c_ulong,
+pub s6: crate::ctypes::c_ulong,
+pub s7: crate::ctypes::c_ulong,
+pub s8: crate::ctypes::c_ulong,
+pub s9: crate::ctypes::c_ulong,
+pub s10: crate::ctypes::c_ulong,
+pub s11: crate::ctypes::c_ulong,
+pub t3: crate::ctypes::c_ulong,
+pub t4: crate::ctypes::c_ulong,
+pub t5: crate::ctypes::c_ulong,
+pub t6: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __riscv_f_ext_state {
+pub f: [__u32; 32usize],
+pub fcsr: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __riscv_d_ext_state {
+pub f: [__u64; 32usize],
+pub fcsr: __u32,
+}
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __riscv_q_ext_state {
+pub f: [__u64; 64usize],
+pub fcsr: __u32,
+pub reserved: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __riscv_ctx_hdr {
+pub magic: __u32,
+pub size: __u32,
+}
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct __riscv_extra_ext_header {
+pub __padding: [__u32; 129usize],
+pub reserved: __u32,
+pub hdr: __riscv_ctx_hdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __riscv_v_ext_state {
+pub vstart: crate::ctypes::c_ulong,
+pub vl: crate::ctypes::c_ulong,
+pub vtype: crate::ctypes::c_ulong,
+pub vcsr: crate::ctypes::c_ulong,
+pub vlenb: crate::ctypes::c_ulong,
+pub datap: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct __riscv_v_regset_state {
+pub vstart: crate::ctypes::c_ulong,
+pub vl: crate::ctypes::c_ulong,
+pub vtype: crate::ctypes::c_ulong,
+pub vcsr: crate::ctypes::c_ulong,
+pub vlenb: crate::ctypes::c_ulong,
+pub vreg: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const PTRACE_GETFDPIC: u32 = 33;
+pub const PTRACE_GETFDPIC_EXEC: u32 = 0;
+pub const PTRACE_GETFDPIC_INTERP: u32 = 1;
+pub const RISCV_MAX_VLENB: u32 = 8192;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Copy, Clone)]
+pub union __riscv_fp_state {
+pub f: __riscv_f_ext_state,
+pub d: __riscv_d_ext_state,
+pub q: __riscv_q_ext_state,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv64/system.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/system.rs
new file mode 100644
index 0000000..dd95fee
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/system.rs
@@ -0,0 +1,132 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug)]
+pub struct sysinfo {
+pub uptime: __kernel_long_t,
+pub loads: [__kernel_ulong_t; 3usize],
+pub totalram: __kernel_ulong_t,
+pub freeram: __kernel_ulong_t,
+pub sharedram: __kernel_ulong_t,
+pub bufferram: __kernel_ulong_t,
+pub totalswap: __kernel_ulong_t,
+pub freeswap: __kernel_ulong_t,
+pub procs: __u16,
+pub pad: __u16,
+pub totalhigh: __kernel_ulong_t,
+pub freehigh: __kernel_ulong_t,
+pub mem_unit: __u32,
+pub _f: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct oldold_utsname {
+pub sysname: [crate::ctypes::c_char; 9usize],
+pub nodename: [crate::ctypes::c_char; 9usize],
+pub release: [crate::ctypes::c_char; 9usize],
+pub version: [crate::ctypes::c_char; 9usize],
+pub machine: [crate::ctypes::c_char; 9usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct old_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct new_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+pub domainname: [crate::ctypes::c_char; 65usize],
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/riscv64/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/riscv64/xdp.rs
new file mode 100644
index 0000000..132f82c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/riscv64/xdp.rs
@@ -0,0 +1,191 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/bootparam.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/bootparam.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/btrfs.rs
new file mode 100644
index 0000000..b108305
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/btrfs.rs
@@ -0,0 +1,1888 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type addr_t = crate::ctypes::c_ulong;
+pub type saddr_t = crate::ctypes::c_long;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_ulong;
+pub type __kernel_ssize_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+pub type __kernel_ino_t = crate::ctypes::c_uint;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+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_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_sigset_t = crate::ctypes::c_ulong;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C, packed(4))]
+#[derive(Copy, Clone)]
+pub struct __vector128 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128__bindgen_ty_1__bindgen_ty_1 {
+pub high: __u64,
+pub low: __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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const _IOC_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __vector128__bindgen_ty_1 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1__bindgen_ty_1,
+pub u: [__u32; 4usize],
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/elf_uapi.rs
new file mode 100644
index 0000000..ccaf20b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/elf_uapi.rs
@@ -0,0 +1,544 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type addr_t = crate::ctypes::c_ulong;
+pub type saddr_t = crate::ctypes::c_long;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_ulong;
+pub type __kernel_ssize_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+pub type __kernel_ino_t = crate::ctypes::c_uint;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+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_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_sigset_t = crate::ctypes::c_ulong;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C, packed(4))]
+#[derive(Copy, Clone)]
+pub struct __vector128 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128__bindgen_ty_1__bindgen_ty_1 {
+pub high: __u64,
+pub low: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __vector128__bindgen_ty_1 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1__bindgen_ty_1,
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/errno.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/errno.rs
new file mode 100644
index 0000000..5b018a2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/errno.rs
@@ -0,0 +1,135 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/general.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/general.rs
new file mode 100644
index 0000000..8e80730
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/general.rs
@@ -0,0 +1,3253 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type addr_t = crate::ctypes::c_ulong;
+pub type saddr_t = crate::ctypes::c_long;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_ulong;
+pub type __kernel_ssize_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+pub type __kernel_ino_t = crate::ctypes::c_uint;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+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_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_sigset_t = crate::ctypes::c_ulong;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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 sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type fsid_t = __kernel_fsid_t;
+pub type __fsword_t = __u32;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C, packed(4))]
+#[derive(Copy, Clone)]
+pub struct __vector128 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128__bindgen_ty_1__bindgen_ty_1 {
+pub high: __u64,
+pub low: __u64,
+}
+#[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 epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 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 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 pt_regs {
+_unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigaction {
+pub _u: sigaction__bindgen_ty_1,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_restorer: ::core::option::Option<unsafe extern "C" fn()>,
+pub sa_mask: sigset_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaltstack {
+pub ss_sp: *mut crate::ctypes::c_void,
+pub ss_flags: crate::ctypes::c_int,
+pub ss_size: __kernel_size_t,
+}
+#[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_errno: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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; 19usize],
+}
+#[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; 19usize],
+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; 19usize],
+pub c_ispeed: speed_t,
+pub c_ospeed: speed_t,
+}
+#[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_uchar,
+pub c_cc: [crate::ctypes::c_uchar; 8usize],
+}
+#[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)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulong,
+pub d_off: crate::ctypes::c_long,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_ulong,
+pub st_ino: crate::ctypes::c_ulong,
+pub st_nlink: crate::ctypes::c_ulong,
+pub st_mode: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_uint,
+pub st_gid: crate::ctypes::c_uint,
+pub __pad1: crate::ctypes::c_uint,
+pub st_rdev: crate::ctypes::c_ulong,
+pub st_size: crate::ctypes::c_ulong,
+pub st_atime: crate::ctypes::c_ulong,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_ulong,
+pub st_mtime_nsec: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_ulong,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub st_blksize: crate::ctypes::c_ulong,
+pub st_blocks: crate::ctypes::c_long,
+pub __unused: [crate::ctypes::c_ulong; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: crate::ctypes::c_uint,
+pub f_bsize: crate::ctypes::c_uint,
+pub f_blocks: crate::ctypes::c_ulong,
+pub f_bfree: crate::ctypes::c_ulong,
+pub f_bavail: crate::ctypes::c_ulong,
+pub f_files: crate::ctypes::c_ulong,
+pub f_ffree: crate::ctypes::c_ulong,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: crate::ctypes::c_uint,
+pub f_frsize: crate::ctypes::c_uint,
+pub f_flags: crate::ctypes::c_uint,
+pub f_spare: [crate::ctypes::c_uint; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: crate::ctypes::c_uint,
+pub f_bsize: crate::ctypes::c_uint,
+pub f_blocks: crate::ctypes::c_ulonglong,
+pub f_bfree: crate::ctypes::c_ulonglong,
+pub f_bavail: crate::ctypes::c_ulonglong,
+pub f_files: crate::ctypes::c_ulonglong,
+pub f_ffree: crate::ctypes::c_ulonglong,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: crate::ctypes::c_uint,
+pub f_frsize: crate::ctypes::c_uint,
+pub f_flags: crate::ctypes::c_uint,
+pub f_spare: [crate::ctypes::c_uint; 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; 1usize],
+}
+#[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_restorer: __sigrestore_t,
+pub sa_mask: kernel_sigset_t,
+}
+pub const LINUX_VERSION_CODE: u32 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+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_ACCMODE: u32 = 3;
+pub const O_RDONLY: u32 = 0;
+pub const O_WRONLY: u32 = 1;
+pub const O_RDWR: u32 = 2;
+pub const O_CREAT: u32 = 64;
+pub const O_EXCL: u32 = 128;
+pub const O_NOCTTY: u32 = 256;
+pub const O_TRUNC: u32 = 512;
+pub const O_APPEND: u32 = 1024;
+pub const O_NONBLOCK: u32 = 2048;
+pub const O_DSYNC: u32 = 4096;
+pub const FASYNC: u32 = 8192;
+pub const O_DIRECT: u32 = 16384;
+pub const O_LARGEFILE: u32 = 32768;
+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_SYNC: u32 = 1048576;
+pub const O_SYNC: u32 = 1052672;
+pub const O_PATH: u32 = 2097152;
+pub const __O_TMPFILE: u32 = 4194304;
+pub const O_TMPFILE: u32 = 4259840;
+pub const O_NDELAY: u32 = 2048;
+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_GETLK: u32 = 5;
+pub const F_SETLK: u32 = 6;
+pub const F_SETLKW: u32 = 7;
+pub const F_SETOWN: u32 = 8;
+pub const F_GETOWN: u32 = 9;
+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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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 = 6;
+pub const POSIX_FADV_NOREUSE: u32 = 7;
+pub const FALLOC_FL_ALLOCATE_RANGE: u32 = 0;
+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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 = 2048;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+pub const PROT_READ: u32 = 1;
+pub const PROT_WRITE: u32 = 2;
+pub const PROT_EXEC: u32 = 4;
+pub const PROT_SEM: u32 = 8;
+pub const PROT_NONE: u32 = 0;
+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_ANONYMOUS: u32 = 32;
+pub const MAP_POPULATE: u32 = 32768;
+pub const MAP_NONBLOCK: u32 = 65536;
+pub const MAP_STACK: u32 = 131072;
+pub const MAP_HUGETLB: u32 = 262144;
+pub const MAP_SYNC: u32 = 524288;
+pub const MAP_FIXED_NOREPLACE: u32 = 1048576;
+pub const MAP_UNINITIALIZED: u32 = 67108864;
+pub const MLOCK_ONFAULT: u32 = 1;
+pub const MS_ASYNC: u32 = 1;
+pub const MS_INVALIDATE: u32 = 2;
+pub const MS_SYNC: u32 = 4;
+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_HWPOISON: u32 = 100;
+pub const MADV_SOFT_OFFLINE: u32 = 101;
+pub const MADV_MERGEABLE: u32 = 12;
+pub const MADV_UNMERGEABLE: u32 = 13;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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 MAP_GROWSDOWN: u32 = 256;
+pub const MAP_DENYWRITE: u32 = 2048;
+pub const MAP_EXECUTABLE: u32 = 4096;
+pub const MAP_LOCKED: u32 = 8192;
+pub const MAP_NORESERVE: u32 = 16384;
+pub const MCL_CURRENT: u32 = 1;
+pub const MCL_FUTURE: u32 = 2;
+pub const MCL_ONFAULT: u32 = 4;
+pub const SHADOW_STACK_SET_TOKEN: u32 = 1;
+pub const SHADOW_STACK_SET_MARKER: u32 = 2;
+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_DROPPABLE: u32 = 8;
+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 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 POLLWRNORM: u32 = 256;
+pub const POLLWRBAND: u32 = 512;
+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 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_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_RSS: u32 = 5;
+pub const RLIMIT_NPROC: u32 = 6;
+pub const RLIMIT_NOFILE: u32 = 7;
+pub const RLIMIT_MEMLOCK: u32 = 8;
+pub const RLIMIT_AS: u32 = 9;
+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_EXT: u32 = 7;
+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 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 NSIG: u32 = 32;
+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 SIGABRT: u32 = 6;
+pub const SIGIOT: u32 = 6;
+pub const SIGBUS: u32 = 7;
+pub const SIGFPE: u32 = 8;
+pub const SIGKILL: u32 = 9;
+pub const SIGUSR1: u32 = 10;
+pub const SIGSEGV: u32 = 11;
+pub const SIGUSR2: u32 = 12;
+pub const SIGPIPE: u32 = 13;
+pub const SIGALRM: u32 = 14;
+pub const SIGTERM: u32 = 15;
+pub const SIGSTKFLT: u32 = 16;
+pub const SIGCHLD: u32 = 17;
+pub const SIGCONT: u32 = 18;
+pub const SIGSTOP: u32 = 19;
+pub const SIGTSTP: u32 = 20;
+pub const SIGTTIN: u32 = 21;
+pub const SIGTTOU: u32 = 22;
+pub const SIGURG: u32 = 23;
+pub const SIGXCPU: u32 = 24;
+pub const SIGXFSZ: u32 = 25;
+pub const SIGVTALRM: u32 = 26;
+pub const SIGPROF: u32 = 27;
+pub const SIGWINCH: u32 = 28;
+pub const SIGIO: u32 = 29;
+pub const SIGPOLL: u32 = 29;
+pub const SIGPWR: u32 = 30;
+pub const SIGSYS: u32 = 31;
+pub const SIGUNUSED: u32 = 31;
+pub const SIGRTMIN: u32 = 32;
+pub const SA_RESTORER: u32 = 67108864;
+pub const MINSIGSTKSZ: u32 = 2048;
+pub const SIGSTKSZ: u32 = 8192;
+pub const SA_NOCLDSTOP: u32 = 1;
+pub const SA_NOCLDWAIT: u32 = 2;
+pub const SA_SIGINFO: u32 = 4;
+pub const SA_UNSUPPORTED: u32 = 1024;
+pub const SA_EXPOSE_TAGBITS: u32 = 2048;
+pub const SA_ONSTACK: u32 = 134217728;
+pub const SA_RESTART: u32 = 268435456;
+pub const SA_NODEFER: u32 = 1073741824;
+pub const SA_RESETHAND: u32 = 2147483648;
+pub const SA_NOMASK: u32 = 1073741824;
+pub const SA_ONESHOT: u32 = 2147483648;
+pub const SIG_BLOCK: u32 = 0;
+pub const SIG_UNBLOCK: u32 = 1;
+pub const SIG_SETMASK: u32 = 2;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 = 19;
+pub const VINTR: u32 = 0;
+pub const VQUIT: u32 = 1;
+pub const VERASE: u32 = 2;
+pub const VKILL: u32 = 3;
+pub const VEOF: u32 = 4;
+pub const VTIME: u32 = 5;
+pub const VMIN: u32 = 6;
+pub const VSWTC: u32 = 7;
+pub const VSTART: u32 = 8;
+pub const VSTOP: u32 = 9;
+pub const VSUSP: u32 = 10;
+pub const VEOL: u32 = 11;
+pub const VREPRINT: u32 = 12;
+pub const VDISCARD: u32 = 13;
+pub const VWERASE: u32 = 14;
+pub const VLNEXT: u32 = 15;
+pub const VEOL2: u32 = 16;
+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 TOSTOP: u32 = 256;
+pub const ECHOCTL: u32 = 512;
+pub const ECHOPRT: u32 = 1024;
+pub const ECHOKE: u32 = 2048;
+pub const FLUSHO: u32 = 4096;
+pub const PENDIN: u32 = 16384;
+pub const IEXTEN: u32 = 32768;
+pub const EXTPROC: u32 = 65536;
+pub const TCSANOW: u32 = 0;
+pub const TCSADRAIN: u32 = 1;
+pub const TCSAFLUSH: u32 = 2;
+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 TIOCSER_TEMT: u32 = 1;
+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 = 8;
+pub const TIOCM_SR: u32 = 16;
+pub const TIOCM_CTS: u32 = 32;
+pub const TIOCM_CAR: u32 = 64;
+pub const TIOCM_RNG: u32 = 128;
+pub const TIOCM_DSR: u32 = 256;
+pub const TIOCM_CD: u32 = 64;
+pub const TIOCM_RI: u32 = 128;
+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_exit: u32 = 1;
+pub const __NR_fork: u32 = 2;
+pub const __NR_read: u32 = 3;
+pub const __NR_write: u32 = 4;
+pub const __NR_open: u32 = 5;
+pub const __NR_close: u32 = 6;
+pub const __NR_restart_syscall: u32 = 7;
+pub const __NR_creat: u32 = 8;
+pub const __NR_link: u32 = 9;
+pub const __NR_unlink: u32 = 10;
+pub const __NR_execve: u32 = 11;
+pub const __NR_chdir: u32 = 12;
+pub const __NR_mknod: u32 = 14;
+pub const __NR_chmod: u32 = 15;
+pub const __NR_lseek: u32 = 19;
+pub const __NR_getpid: u32 = 20;
+pub const __NR_mount: u32 = 21;
+pub const __NR_umount: u32 = 22;
+pub const __NR_ptrace: u32 = 26;
+pub const __NR_alarm: u32 = 27;
+pub const __NR_pause: u32 = 29;
+pub const __NR_utime: u32 = 30;
+pub const __NR_access: u32 = 33;
+pub const __NR_nice: u32 = 34;
+pub const __NR_sync: u32 = 36;
+pub const __NR_kill: u32 = 37;
+pub const __NR_rename: u32 = 38;
+pub const __NR_mkdir: u32 = 39;
+pub const __NR_rmdir: u32 = 40;
+pub const __NR_dup: u32 = 41;
+pub const __NR_pipe: u32 = 42;
+pub const __NR_times: u32 = 43;
+pub const __NR_brk: u32 = 45;
+pub const __NR_signal: u32 = 48;
+pub const __NR_acct: u32 = 51;
+pub const __NR_umount2: u32 = 52;
+pub const __NR_ioctl: u32 = 54;
+pub const __NR_fcntl: u32 = 55;
+pub const __NR_setpgid: u32 = 57;
+pub const __NR_umask: u32 = 60;
+pub const __NR_chroot: u32 = 61;
+pub const __NR_ustat: u32 = 62;
+pub const __NR_dup2: u32 = 63;
+pub const __NR_getppid: u32 = 64;
+pub const __NR_getpgrp: u32 = 65;
+pub const __NR_setsid: u32 = 66;
+pub const __NR_sigaction: u32 = 67;
+pub const __NR_sigsuspend: u32 = 72;
+pub const __NR_sigpending: u32 = 73;
+pub const __NR_sethostname: u32 = 74;
+pub const __NR_setrlimit: u32 = 75;
+pub const __NR_getrusage: u32 = 77;
+pub const __NR_gettimeofday: u32 = 78;
+pub const __NR_settimeofday: u32 = 79;
+pub const __NR_symlink: u32 = 83;
+pub const __NR_readlink: u32 = 85;
+pub const __NR_uselib: u32 = 86;
+pub const __NR_swapon: u32 = 87;
+pub const __NR_reboot: u32 = 88;
+pub const __NR_readdir: u32 = 89;
+pub const __NR_mmap: u32 = 90;
+pub const __NR_munmap: u32 = 91;
+pub const __NR_truncate: u32 = 92;
+pub const __NR_ftruncate: u32 = 93;
+pub const __NR_fchmod: u32 = 94;
+pub const __NR_getpriority: u32 = 96;
+pub const __NR_setpriority: u32 = 97;
+pub const __NR_statfs: u32 = 99;
+pub const __NR_fstatfs: u32 = 100;
+pub const __NR_socketcall: u32 = 102;
+pub const __NR_syslog: u32 = 103;
+pub const __NR_setitimer: u32 = 104;
+pub const __NR_getitimer: u32 = 105;
+pub const __NR_stat: u32 = 106;
+pub const __NR_lstat: u32 = 107;
+pub const __NR_fstat: u32 = 108;
+pub const __NR_lookup_dcookie: u32 = 110;
+pub const __NR_vhangup: u32 = 111;
+pub const __NR_idle: u32 = 112;
+pub const __NR_wait4: u32 = 114;
+pub const __NR_swapoff: u32 = 115;
+pub const __NR_sysinfo: u32 = 116;
+pub const __NR_ipc: u32 = 117;
+pub const __NR_fsync: u32 = 118;
+pub const __NR_sigreturn: u32 = 119;
+pub const __NR_clone: u32 = 120;
+pub const __NR_setdomainname: u32 = 121;
+pub const __NR_uname: u32 = 122;
+pub const __NR_adjtimex: u32 = 124;
+pub const __NR_mprotect: u32 = 125;
+pub const __NR_sigprocmask: u32 = 126;
+pub const __NR_create_module: u32 = 127;
+pub const __NR_init_module: u32 = 128;
+pub const __NR_delete_module: u32 = 129;
+pub const __NR_get_kernel_syms: u32 = 130;
+pub const __NR_quotactl: u32 = 131;
+pub const __NR_getpgid: u32 = 132;
+pub const __NR_fchdir: u32 = 133;
+pub const __NR_bdflush: u32 = 134;
+pub const __NR_sysfs: u32 = 135;
+pub const __NR_personality: u32 = 136;
+pub const __NR_afs_syscall: u32 = 137;
+pub const __NR_getdents: u32 = 141;
+pub const __NR_select: u32 = 142;
+pub const __NR_flock: u32 = 143;
+pub const __NR_msync: u32 = 144;
+pub const __NR_readv: u32 = 145;
+pub const __NR_writev: u32 = 146;
+pub const __NR_getsid: u32 = 147;
+pub const __NR_fdatasync: u32 = 148;
+pub const __NR__sysctl: u32 = 149;
+pub const __NR_mlock: u32 = 150;
+pub const __NR_munlock: u32 = 151;
+pub const __NR_mlockall: u32 = 152;
+pub const __NR_munlockall: u32 = 153;
+pub const __NR_sched_setparam: u32 = 154;
+pub const __NR_sched_getparam: u32 = 155;
+pub const __NR_sched_setscheduler: u32 = 156;
+pub const __NR_sched_getscheduler: u32 = 157;
+pub const __NR_sched_yield: u32 = 158;
+pub const __NR_sched_get_priority_max: u32 = 159;
+pub const __NR_sched_get_priority_min: u32 = 160;
+pub const __NR_sched_rr_get_interval: u32 = 161;
+pub const __NR_nanosleep: u32 = 162;
+pub const __NR_mremap: u32 = 163;
+pub const __NR_query_module: u32 = 167;
+pub const __NR_poll: u32 = 168;
+pub const __NR_nfsservctl: u32 = 169;
+pub const __NR_prctl: u32 = 172;
+pub const __NR_rt_sigreturn: u32 = 173;
+pub const __NR_rt_sigaction: u32 = 174;
+pub const __NR_rt_sigprocmask: u32 = 175;
+pub const __NR_rt_sigpending: u32 = 176;
+pub const __NR_rt_sigtimedwait: u32 = 177;
+pub const __NR_rt_sigqueueinfo: u32 = 178;
+pub const __NR_rt_sigsuspend: u32 = 179;
+pub const __NR_pread64: u32 = 180;
+pub const __NR_pwrite64: u32 = 181;
+pub const __NR_getcwd: u32 = 183;
+pub const __NR_capget: u32 = 184;
+pub const __NR_capset: u32 = 185;
+pub const __NR_sigaltstack: u32 = 186;
+pub const __NR_sendfile: u32 = 187;
+pub const __NR_getpmsg: u32 = 188;
+pub const __NR_putpmsg: u32 = 189;
+pub const __NR_vfork: u32 = 190;
+pub const __NR_getrlimit: u32 = 191;
+pub const __NR_lchown: u32 = 198;
+pub const __NR_getuid: u32 = 199;
+pub const __NR_getgid: u32 = 200;
+pub const __NR_geteuid: u32 = 201;
+pub const __NR_getegid: u32 = 202;
+pub const __NR_setreuid: u32 = 203;
+pub const __NR_setregid: u32 = 204;
+pub const __NR_getgroups: u32 = 205;
+pub const __NR_setgroups: u32 = 206;
+pub const __NR_fchown: u32 = 207;
+pub const __NR_setresuid: u32 = 208;
+pub const __NR_getresuid: u32 = 209;
+pub const __NR_setresgid: u32 = 210;
+pub const __NR_getresgid: u32 = 211;
+pub const __NR_chown: u32 = 212;
+pub const __NR_setuid: u32 = 213;
+pub const __NR_setgid: u32 = 214;
+pub const __NR_setfsuid: u32 = 215;
+pub const __NR_setfsgid: u32 = 216;
+pub const __NR_pivot_root: u32 = 217;
+pub const __NR_mincore: u32 = 218;
+pub const __NR_madvise: u32 = 219;
+pub const __NR_getdents64: u32 = 220;
+pub const __NR_readahead: u32 = 222;
+pub const __NR_setxattr: u32 = 224;
+pub const __NR_lsetxattr: u32 = 225;
+pub const __NR_fsetxattr: u32 = 226;
+pub const __NR_getxattr: u32 = 227;
+pub const __NR_lgetxattr: u32 = 228;
+pub const __NR_fgetxattr: u32 = 229;
+pub const __NR_listxattr: u32 = 230;
+pub const __NR_llistxattr: u32 = 231;
+pub const __NR_flistxattr: u32 = 232;
+pub const __NR_removexattr: u32 = 233;
+pub const __NR_lremovexattr: u32 = 234;
+pub const __NR_fremovexattr: u32 = 235;
+pub const __NR_gettid: u32 = 236;
+pub const __NR_tkill: u32 = 237;
+pub const __NR_futex: u32 = 238;
+pub const __NR_sched_setaffinity: u32 = 239;
+pub const __NR_sched_getaffinity: u32 = 240;
+pub const __NR_tgkill: u32 = 241;
+pub const __NR_io_setup: u32 = 243;
+pub const __NR_io_destroy: u32 = 244;
+pub const __NR_io_getevents: u32 = 245;
+pub const __NR_io_submit: u32 = 246;
+pub const __NR_io_cancel: u32 = 247;
+pub const __NR_exit_group: u32 = 248;
+pub const __NR_epoll_create: u32 = 249;
+pub const __NR_epoll_ctl: u32 = 250;
+pub const __NR_epoll_wait: u32 = 251;
+pub const __NR_set_tid_address: u32 = 252;
+pub const __NR_fadvise64: u32 = 253;
+pub const __NR_timer_create: u32 = 254;
+pub const __NR_timer_settime: u32 = 255;
+pub const __NR_timer_gettime: u32 = 256;
+pub const __NR_timer_getoverrun: u32 = 257;
+pub const __NR_timer_delete: u32 = 258;
+pub const __NR_clock_settime: u32 = 259;
+pub const __NR_clock_gettime: u32 = 260;
+pub const __NR_clock_getres: u32 = 261;
+pub const __NR_clock_nanosleep: u32 = 262;
+pub const __NR_statfs64: u32 = 265;
+pub const __NR_fstatfs64: u32 = 266;
+pub const __NR_remap_file_pages: u32 = 267;
+pub const __NR_mbind: u32 = 268;
+pub const __NR_get_mempolicy: u32 = 269;
+pub const __NR_set_mempolicy: u32 = 270;
+pub const __NR_mq_open: u32 = 271;
+pub const __NR_mq_unlink: u32 = 272;
+pub const __NR_mq_timedsend: u32 = 273;
+pub const __NR_mq_timedreceive: u32 = 274;
+pub const __NR_mq_notify: u32 = 275;
+pub const __NR_mq_getsetattr: u32 = 276;
+pub const __NR_kexec_load: u32 = 277;
+pub const __NR_add_key: u32 = 278;
+pub const __NR_request_key: u32 = 279;
+pub const __NR_keyctl: u32 = 280;
+pub const __NR_waitid: u32 = 281;
+pub const __NR_ioprio_set: u32 = 282;
+pub const __NR_ioprio_get: u32 = 283;
+pub const __NR_inotify_init: u32 = 284;
+pub const __NR_inotify_add_watch: u32 = 285;
+pub const __NR_inotify_rm_watch: u32 = 286;
+pub const __NR_migrate_pages: u32 = 287;
+pub const __NR_openat: u32 = 288;
+pub const __NR_mkdirat: u32 = 289;
+pub const __NR_mknodat: u32 = 290;
+pub const __NR_fchownat: u32 = 291;
+pub const __NR_futimesat: u32 = 292;
+pub const __NR_newfstatat: u32 = 293;
+pub const __NR_unlinkat: u32 = 294;
+pub const __NR_renameat: u32 = 295;
+pub const __NR_linkat: u32 = 296;
+pub const __NR_symlinkat: u32 = 297;
+pub const __NR_readlinkat: u32 = 298;
+pub const __NR_fchmodat: u32 = 299;
+pub const __NR_faccessat: u32 = 300;
+pub const __NR_pselect6: u32 = 301;
+pub const __NR_ppoll: u32 = 302;
+pub const __NR_unshare: u32 = 303;
+pub const __NR_set_robust_list: u32 = 304;
+pub const __NR_get_robust_list: u32 = 305;
+pub const __NR_splice: u32 = 306;
+pub const __NR_sync_file_range: u32 = 307;
+pub const __NR_tee: u32 = 308;
+pub const __NR_vmsplice: u32 = 309;
+pub const __NR_move_pages: u32 = 310;
+pub const __NR_getcpu: u32 = 311;
+pub const __NR_epoll_pwait: u32 = 312;
+pub const __NR_utimes: u32 = 313;
+pub const __NR_fallocate: u32 = 314;
+pub const __NR_utimensat: u32 = 315;
+pub const __NR_signalfd: u32 = 316;
+pub const __NR_timerfd: u32 = 317;
+pub const __NR_eventfd: u32 = 318;
+pub const __NR_timerfd_create: u32 = 319;
+pub const __NR_timerfd_settime: u32 = 320;
+pub const __NR_timerfd_gettime: u32 = 321;
+pub const __NR_signalfd4: u32 = 322;
+pub const __NR_eventfd2: u32 = 323;
+pub const __NR_inotify_init1: u32 = 324;
+pub const __NR_pipe2: u32 = 325;
+pub const __NR_dup3: u32 = 326;
+pub const __NR_epoll_create1: u32 = 327;
+pub const __NR_preadv: u32 = 328;
+pub const __NR_pwritev: u32 = 329;
+pub const __NR_rt_tgsigqueueinfo: u32 = 330;
+pub const __NR_perf_event_open: u32 = 331;
+pub const __NR_fanotify_init: u32 = 332;
+pub const __NR_fanotify_mark: u32 = 333;
+pub const __NR_prlimit64: u32 = 334;
+pub const __NR_name_to_handle_at: u32 = 335;
+pub const __NR_open_by_handle_at: u32 = 336;
+pub const __NR_clock_adjtime: u32 = 337;
+pub const __NR_syncfs: u32 = 338;
+pub const __NR_setns: u32 = 339;
+pub const __NR_process_vm_readv: u32 = 340;
+pub const __NR_process_vm_writev: u32 = 341;
+pub const __NR_s390_runtime_instr: u32 = 342;
+pub const __NR_kcmp: u32 = 343;
+pub const __NR_finit_module: u32 = 344;
+pub const __NR_sched_setattr: u32 = 345;
+pub const __NR_sched_getattr: u32 = 346;
+pub const __NR_renameat2: u32 = 347;
+pub const __NR_seccomp: u32 = 348;
+pub const __NR_getrandom: u32 = 349;
+pub const __NR_memfd_create: u32 = 350;
+pub const __NR_bpf: u32 = 351;
+pub const __NR_s390_pci_mmio_write: u32 = 352;
+pub const __NR_s390_pci_mmio_read: u32 = 353;
+pub const __NR_execveat: u32 = 354;
+pub const __NR_userfaultfd: u32 = 355;
+pub const __NR_membarrier: u32 = 356;
+pub const __NR_recvmmsg: u32 = 357;
+pub const __NR_sendmmsg: u32 = 358;
+pub const __NR_socket: u32 = 359;
+pub const __NR_socketpair: u32 = 360;
+pub const __NR_bind: u32 = 361;
+pub const __NR_connect: u32 = 362;
+pub const __NR_listen: u32 = 363;
+pub const __NR_accept4: u32 = 364;
+pub const __NR_getsockopt: u32 = 365;
+pub const __NR_setsockopt: u32 = 366;
+pub const __NR_getsockname: u32 = 367;
+pub const __NR_getpeername: u32 = 368;
+pub const __NR_sendto: u32 = 369;
+pub const __NR_sendmsg: u32 = 370;
+pub const __NR_recvfrom: u32 = 371;
+pub const __NR_recvmsg: u32 = 372;
+pub const __NR_shutdown: u32 = 373;
+pub const __NR_mlock2: u32 = 374;
+pub const __NR_copy_file_range: u32 = 375;
+pub const __NR_preadv2: u32 = 376;
+pub const __NR_pwritev2: u32 = 377;
+pub const __NR_s390_guarded_storage: u32 = 378;
+pub const __NR_statx: u32 = 379;
+pub const __NR_s390_sthyi: u32 = 380;
+pub const __NR_kexec_file_load: u32 = 381;
+pub const __NR_io_pgetevents: u32 = 382;
+pub const __NR_rseq: u32 = 383;
+pub const __NR_pkey_mprotect: u32 = 384;
+pub const __NR_pkey_alloc: u32 = 385;
+pub const __NR_pkey_free: u32 = 386;
+pub const __NR_semtimedop: u32 = 392;
+pub const __NR_semget: u32 = 393;
+pub const __NR_semctl: u32 = 394;
+pub const __NR_shmget: u32 = 395;
+pub const __NR_shmctl: u32 = 396;
+pub const __NR_shmat: u32 = 397;
+pub const __NR_shmdt: u32 = 398;
+pub const __NR_msgget: u32 = 399;
+pub const __NR_msgsnd: u32 = 400;
+pub const __NR_msgrcv: u32 = 401;
+pub const __NR_msgctl: u32 = 402;
+pub const __NR_pidfd_send_signal: u32 = 424;
+pub const __NR_io_uring_setup: u32 = 425;
+pub const __NR_io_uring_enter: u32 = 426;
+pub const __NR_io_uring_register: u32 = 427;
+pub const __NR_open_tree: u32 = 428;
+pub const __NR_move_mount: u32 = 429;
+pub const __NR_fsopen: u32 = 430;
+pub const __NR_fsconfig: u32 = 431;
+pub const __NR_fsmount: u32 = 432;
+pub const __NR_fspick: u32 = 433;
+pub const __NR_pidfd_open: u32 = 434;
+pub const __NR_clone3: u32 = 435;
+pub const __NR_close_range: u32 = 436;
+pub const __NR_openat2: u32 = 437;
+pub const __NR_pidfd_getfd: u32 = 438;
+pub const __NR_faccessat2: u32 = 439;
+pub const __NR_process_madvise: u32 = 440;
+pub const __NR_epoll_pwait2: u32 = 441;
+pub const __NR_mount_setattr: u32 = 442;
+pub const __NR_quotactl_fd: u32 = 443;
+pub const __NR_landlock_create_ruleset: u32 = 444;
+pub const __NR_landlock_add_rule: u32 = 445;
+pub const __NR_landlock_restrict_self: u32 = 446;
+pub const __NR_memfd_secret: u32 = 447;
+pub const __NR_process_mrelease: u32 = 448;
+pub const __NR_futex_waitv: u32 = 449;
+pub const __NR_set_mempolicy_home_node: u32 = 450;
+pub const __NR_cachestat: u32 = 451;
+pub const __NR_fchmodat2: u32 = 452;
+pub const __NR_map_shadow_stack: u32 = 453;
+pub const __NR_futex_wake: u32 = 454;
+pub const __NR_futex_wait: u32 = 455;
+pub const __NR_futex_requeue: u32 = 456;
+pub const __NR_statmount: u32 = 457;
+pub const __NR_listmount: u32 = 458;
+pub const __NR_lsm_get_self_attr: u32 = 459;
+pub const __NR_lsm_set_self_attr: u32 = 460;
+pub const __NR_lsm_list_modules: u32 = 461;
+pub const __NR_mseal: u32 = 462;
+pub const __NR_setxattrat: u32 = 463;
+pub const __NR_getxattrat: u32 = 464;
+pub const __NR_listxattrat: u32 = 465;
+pub const __NR_removexattrat: u32 = 466;
+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 = 2048;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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 = 2048;
+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 = 526336;
+pub const TFD_CREATE_FLAGS: u32 = 526336;
+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 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;
+pub const _NSIG: u32 = 64;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[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 __vector128__bindgen_ty_1 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1__bindgen_ty_1,
+pub u: [__u32; 4usize],
+}
+#[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 sigaction__bindgen_ty_1 {
+pub _sa_handler: __sighandler_t,
+pub _sa_sigaction: ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int, arg2: *mut siginfo, arg3: *mut crate::ctypes::c_void)>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigval {
+pub sival_int: crate::ctypes::c_int,
+pub sival_ptr: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields {
+pub _kill: __sifields__bindgen_ty_1,
+pub _timer: __sifields__bindgen_ty_2,
+pub _rt: __sifields__bindgen_ty_3,
+pub _sigchld: __sifields__bindgen_ty_4,
+pub _sigfault: __sifields__bindgen_ty_5,
+pub _sigpoll: __sifields__bindgen_ty_6,
+pub _sigsys: __sifields__bindgen_ty_7,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields__bindgen_ty_5__bindgen_ty_1 {
+pub _trapno: crate::ctypes::c_int,
+pub _addr_lsb: crate::ctypes::c_short,
+pub _addr_bnd: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1,
+pub _addr_pkey: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2,
+pub _perf: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union siginfo__bindgen_ty_1 {
+pub __bindgen_anon_1: siginfo__bindgen_ty_1__bindgen_ty_1,
+pub _si_pad: [crate::ctypes::c_int; 32usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigevent__bindgen_ty_1 {
+pub _pad: [crate::ctypes::c_int; 12usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/s390x/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/if_arp.rs
new file mode 100644
index 0000000..f513fee
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/if_arp.rs
@@ -0,0 +1,2777 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type addr_t = crate::ctypes::c_ulong;
+pub type saddr_t = crate::ctypes::c_long;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_ulong;
+pub type __kernel_ssize_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+pub type __kernel_ino_t = crate::ctypes::c_uint;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+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_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_sigset_t = crate::ctypes::c_ulong;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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, packed(4))]
+#[derive(Copy, Clone)]
+pub struct __vector128 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128__bindgen_ty_1__bindgen_ty_1 {
+pub high: __u64,
+pub low: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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 __vector128__bindgen_ty_1 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1__bindgen_ty_1,
+pub u: [__u32; 4usize],
+}
+#[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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/s390x/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/if_ether.rs
new file mode 100644
index 0000000..03ebba7
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/if_ether.rs
@@ -0,0 +1,190 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type addr_t = crate::ctypes::c_ulong;
+pub type saddr_t = crate::ctypes::c_long;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_ulong;
+pub type __kernel_ssize_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+pub type __kernel_ino_t = crate::ctypes::c_uint;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+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_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_sigset_t = crate::ctypes::c_ulong;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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(4))]
+#[derive(Copy, Clone)]
+pub struct __vector128 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128__bindgen_ty_1__bindgen_ty_1 {
+pub high: __u64,
+pub low: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __vector128__bindgen_ty_1 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1__bindgen_ty_1,
+pub u: [__u32; 4usize],
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/if_packet.rs
new file mode 100644
index 0000000..571ba77
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/if_packet.rs
@@ -0,0 +1,331 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type addr_t = crate::ctypes::c_ulong;
+pub type saddr_t = crate::ctypes::c_long;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_ulong;
+pub type __kernel_ssize_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+pub type __kernel_ino_t = crate::ctypes::c_uint;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+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_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_sigset_t = crate::ctypes::c_ulong;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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(4))]
+#[derive(Copy, Clone)]
+pub struct __vector128 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128__bindgen_ty_1__bindgen_ty_1 {
+pub high: __u64,
+pub low: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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 __vector128__bindgen_ty_1 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1__bindgen_ty_1,
+pub u: [__u32; 4usize],
+}
+#[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.9.4/src/s390x/image.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/io_uring.rs
new file mode 100644
index 0000000..0076418
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/io_uring.rs
@@ -0,0 +1,1356 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type addr_t = crate::ctypes::c_ulong;
+pub type saddr_t = crate::ctypes::c_long;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_ulong;
+pub type __kernel_ssize_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+pub type __kernel_ino_t = crate::ctypes::c_uint;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+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_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_sigset_t = crate::ctypes::c_ulong;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C, packed(4))]
+#[derive(Copy, Clone)]
+pub struct __vector128 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128__bindgen_ty_1__bindgen_ty_1 {
+pub high: __u64,
+pub low: __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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __vector128__bindgen_ty_1 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1__bindgen_ty_1,
+pub u: [__u32; 4usize],
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/ioctl.rs
new file mode 100644
index 0000000..dcf67f2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/ioctl.rs
@@ -0,0 +1,1502 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub const FIONREAD: u32 = 21531;
+pub const FIONBIO: u32 = 21537;
+pub const FIOCLEX: u32 = 21585;
+pub const FIONCLEX: u32 = 21584;
+pub const FIOASYNC: u32 = 21586;
+pub const FIOQSIZE: u32 = 21598;
+pub const TCXONC: u32 = 21514;
+pub const TCFLSH: u32 = 21515;
+pub const TIOCSCTTY: u32 = 21518;
+pub const TIOCSPGRP: u32 = 21520;
+pub const TIOCOUTQ: u32 = 21521;
+pub const TIOCSTI: u32 = 21522;
+pub const TIOCSWINSZ: u32 = 21524;
+pub const TIOCMGET: u32 = 21525;
+pub const TIOCMBIS: u32 = 21526;
+pub const TIOCMBIC: u32 = 21527;
+pub const TIOCMSET: u32 = 21528;
+pub const TIOCSSOFTCAR: u32 = 21530;
+pub const TIOCLINUX: u32 = 21532;
+pub const TIOCCONS: u32 = 21533;
+pub const TIOCSSERIAL: u32 = 21535;
+pub const TIOCPKT: u32 = 21536;
+pub const TIOCNOTTY: u32 = 21538;
+pub const TIOCSETD: u32 = 21539;
+pub const TIOCSBRK: u32 = 21543;
+pub const TIOCCBRK: u32 = 21544;
+pub const TIOCSRS485: u32 = 21551;
+pub const TIOCSPTLCK: u32 = 1074025521;
+pub const TIOCSIG: u32 = 1074025526;
+pub const TIOCVHANGUP: u32 = 21559;
+pub const TIOCSERCONFIG: u32 = 21587;
+pub const TIOCSERGWILD: u32 = 21588;
+pub const TIOCSERSWILD: u32 = 21589;
+pub const TIOCSLCKTRMIOS: u32 = 21591;
+pub const TIOCSERGSTRUCT: u32 = 21592;
+pub const TIOCSERGETLSR: u32 = 21593;
+pub const TIOCSERGETMULTI: u32 = 21594;
+pub const TIOCSERSETMULTI: u32 = 21595;
+pub const TIOCMIWAIT: u32 = 21596;
+pub const TCGETS: u32 = 21505;
+pub const TCGETA: u32 = 21509;
+pub const TCSBRK: u32 = 21513;
+pub const TCSBRKP: u32 = 21541;
+pub const TCSETA: u32 = 21510;
+pub const TCSETAF: u32 = 21512;
+pub const TCSETAW: u32 = 21511;
+pub const TIOCEXCL: u32 = 21516;
+pub const TIOCNXCL: u32 = 21517;
+pub const TIOCGDEV: u32 = 2147767346;
+pub const TIOCGEXCL: u32 = 2147767360;
+pub const TIOCGICOUNT: u32 = 21597;
+pub const TIOCGLCKTRMIOS: u32 = 21590;
+pub const TIOCGPGRP: u32 = 21519;
+pub const TIOCGPKT: u32 = 2147767352;
+pub const TIOCGPTLCK: u32 = 2147767353;
+pub const TIOCGPTN: u32 = 2147767344;
+pub const TIOCGPTPEER: u32 = 21569;
+pub const TIOCGRS485: u32 = 21550;
+pub const TIOCGSERIAL: u32 = 21534;
+pub const TIOCGSID: u32 = 21545;
+pub const TIOCGSOFTCAR: u32 = 21529;
+pub const TIOCGWINSZ: u32 = 21523;
+pub const TCGETS2: u32 = 2150388778;
+pub const TCGETX: u32 = 21554;
+pub const TCSETS: u32 = 21506;
+pub const TCSETS2: u32 = 1076646955;
+pub const TCSETSF: u32 = 21508;
+pub const TCSETSF2: u32 = 1076646957;
+pub const TCSETSW: u32 = 21507;
+pub const TCSETSW2: u32 = 1076646956;
+pub const TCSETX: u32 = 21555;
+pub const TCSETXF: u32 = 21556;
+pub const TCSETXW: u32 = 21557;
+pub const TIOCGETD: u32 = 21540;
+pub const MTIOCGET: u32 = 2150657282;
+pub const BLKSSZGET: u32 = 4712;
+pub const BLKPBSZGET: u32 = 4731;
+pub const BLKROSET: u32 = 4701;
+pub const BLKROGET: u32 = 4702;
+pub const BLKRRPART: u32 = 4703;
+pub const BLKGETSIZE: u32 = 4704;
+pub const BLKFLSBUF: u32 = 4705;
+pub const BLKRASET: u32 = 4706;
+pub const BLKRAGET: u32 = 4707;
+pub const BLKFRASET: u32 = 4708;
+pub const BLKFRAGET: u32 = 4709;
+pub const BLKSECTSET: u32 = 4710;
+pub const BLKSECTGET: u32 = 4711;
+pub const BLKPG: u32 = 4713;
+pub const BLKBSZGET: u32 = 2148012656;
+pub const BLKBSZSET: u32 = 1074270833;
+pub const BLKGETSIZE64: u32 = 2148012658;
+pub const BLKTRACESETUP: u32 = 3225948787;
+pub const BLKTRACESTART: u32 = 4724;
+pub const BLKTRACESTOP: u32 = 4725;
+pub const BLKTRACETEARDOWN: u32 = 4726;
+pub const BLKDISCARD: u32 = 4727;
+pub const BLKIOMIN: u32 = 4728;
+pub const BLKIOOPT: u32 = 4729;
+pub const BLKALIGNOFF: u32 = 4730;
+pub const BLKDISCARDZEROES: u32 = 4732;
+pub const BLKSECDISCARD: u32 = 4733;
+pub const BLKROTATIONAL: u32 = 4734;
+pub const BLKZEROOUT: u32 = 4735;
+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 = 2148575745;
+pub const UFFDIO_WAKE: u32 = 2148575746;
+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 = 46849;
+pub const NS_GET_PARENT: u32 = 46850;
+pub const NS_GET_NSTYPE: u32 = 46851;
+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 = 35073;
+pub const SIOCSPGRP: u32 = 35074;
+pub const FIOGETOWN: u32 = 35075;
+pub const SIOCGPGRP: u32 = 35076;
+pub const SIOCATMARK: u32 = 35077;
+pub const SIOCGSTAMP: u32 = 35078;
+pub const TIOCINQ: u32 = 21531;
+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 = 1;
+pub const FIGETBSZ: u32 = 2;
+pub const FIFREEZE: u32 = 3221510263;
+pub const FITHAW: u32 = 3221510264;
+pub const FITRIM: u32 = 3222820985;
+pub const FICLONE: u32 = 1074041865;
+pub const FICLONERANGE: u32 = 1075876877;
+pub const FIDEDUPERANGE: u32 = 3222836278;
+pub const FS_IOC_GETFLAGS: u32 = 2148034049;
+pub const FS_IOC_SETFLAGS: u32 = 1074292226;
+pub const FS_IOC_GETVERSION: u32 = 2148038145;
+pub const FS_IOC_SETVERSION: u32 = 1074296322;
+pub const FS_IOC_FIEMAP: u32 = 3223348747;
+pub const FS_IOC32_GETFLAGS: u32 = 2147771905;
+pub const FS_IOC32_SETFLAGS: u32 = 1074030082;
+pub const FS_IOC32_GETVERSION: u32 = 2147776001;
+pub const FS_IOC32_SETVERSION: u32 = 1074034178;
+pub const FS_IOC_FSGETXATTR: u32 = 2149341215;
+pub const FS_IOC_FSSETXATTR: u32 = 1075599392;
+pub const FS_IOC_GETFSLABEL: u32 = 2164298801;
+pub const FS_IOC_SETFSLABEL: u32 = 1090556978;
+pub const EXT4_IOC_GETVERSION: u32 = 2148034051;
+pub const EXT4_IOC_SETVERSION: u32 = 1074292228;
+pub const EXT4_IOC_GETVERSION_OLD: u32 = 2148038145;
+pub const EXT4_IOC_SETVERSION_OLD: u32 = 1074296322;
+pub const EXT4_IOC_GETRSVSZ: u32 = 2148034053;
+pub const EXT4_IOC_SETRSVSZ: u32 = 1074292230;
+pub const EXT4_IOC_GROUP_EXTEND: u32 = 1074292231;
+pub const EXT4_IOC_MIGRATE: u32 = 26121;
+pub const EXT4_IOC_ALLOC_DA_BLKS: u32 = 26124;
+pub const EXT4_IOC_RESIZE_FS: u32 = 1074292240;
+pub const EXT4_IOC_SWAP_BOOT: u32 = 26129;
+pub const EXT4_IOC_PRECACHE_EXTENTS: u32 = 26130;
+pub const EXT4_IOC_CLEAR_ES_CACHE: u32 = 26152;
+pub const EXT4_IOC_GETSTATE: u32 = 1074030121;
+pub const EXT4_IOC_GET_ES_CACHE: u32 = 3223348778;
+pub const EXT4_IOC_CHECKPOINT: u32 = 1074030123;
+pub const EXT4_IOC_SHUTDOWN: u32 = 2147768445;
+pub const EXT4_IOC32_GETVERSION: u32 = 2147771907;
+pub const EXT4_IOC32_SETVERSION: u32 = 1074030084;
+pub const EXT4_IOC32_GETRSVSZ: u32 = 2147771909;
+pub const EXT4_IOC32_SETRSVSZ: u32 = 1074030086;
+pub const EXT4_IOC32_GROUP_EXTEND: u32 = 1074030087;
+pub const EXT4_IOC32_GETVERSION_OLD: u32 = 2147776001;
+pub const EXT4_IOC32_SETVERSION_OLD: u32 = 1074034178;
+pub const VIDIOC_SUBDEV_QUERYSTD: u32 = 2148030015;
+pub const AUTOFS_DEV_IOCTL_CLOSEMOUNT: u32 = 3222836085;
+pub const LIRC_SET_SEND_CARRIER: u32 = 1074030867;
+pub const AUTOFS_IOC_PROTOSUBVER: u32 = 2147783527;
+pub const PTP_SYS_OFFSET_PRECISE: u32 = 3225435400;
+pub const FSI_SCOM_WRITE: u32 = 3223352066;
+pub const ATM_GETCIRANGE: u32 = 1074815370;
+pub const DMA_BUF_SET_NAME_B: u32 = 1074291201;
+pub const RIO_CM_EP_GET_LIST_SIZE: u32 = 3221512961;
+pub const TUNSETPERSIST: u32 = 1074025675;
+pub const FS_IOC_GET_ENCRYPTION_POLICY: u32 = 1074554389;
+pub const CEC_RECEIVE: u32 = 3224920326;
+pub const MGSL_IOCGPARAMS: u32 = 2150657281;
+pub const ENI_SETMULT: u32 = 1074815335;
+pub const RIO_GET_EVENT_MASK: u32 = 2147773710;
+pub const LIRC_GET_MAX_TIMEOUT: u32 = 2147772681;
+pub const USBDEVFS_CLAIMINTERFACE: u32 = 2147767567;
+pub const CHIOMOVE: u32 = 1075077889;
+pub const SONYPI_IOCGBATFLAGS: u32 = 2147579399;
+pub const BTRFS_IOC_SYNC: u32 = 37896;
+pub const VIDIOC_TRY_FMT: u32 = 3234879040;
+pub const LIRC_SET_REC_MODE: u32 = 1074030866;
+pub const VIDIOC_DQEVENT: u32 = 2156418649;
+pub const RPMSG_DESTROY_EPT_IOCTL: u32 = 46338;
+pub const UVCIOC_CTRL_MAP: u32 = 3227546912;
+pub const VHOST_SET_BACKEND_FEATURES: u32 = 1074310949;
+pub const VHOST_VSOCK_SET_GUEST_CID: u32 = 1074311008;
+pub const UI_SET_KEYBIT: u32 = 1074025829;
+pub const LIRC_SET_REC_TIMEOUT: u32 = 1074030872;
+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 = 1074310930;
+pub const RIO_ENABLE_DOORBELL_RANGE: u32 = 1074294025;
+pub const VIDIOC_TRY_EXT_CTRLS: u32 = 3223344713;
+pub const LIRC_GET_REC_MODE: u32 = 2147772674;
+pub const PPGETTIME: u32 = 2148561045;
+pub const BTRFS_IOC_RM_DEV: u32 = 1342215179;
+pub const ATM_SETBACKEND: u32 = 1073897970;
+pub const FSL_HV_IOCTL_PARTITION_START: u32 = 3222318851;
+pub const FBIO_WAITEVENT: u32 = 18056;
+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 = 601;
+pub const NVME_IOCTL_SUBMIT_IO: u32 = 1076907586;
+pub const NILFS_IOCTL_SYNC: u32 = 2148036234;
+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 = 2147787781;
+pub const NS_GETPSTAT: u32 = 3222298977;
+pub const UI_SET_PROPBIT: u32 = 1074025838;
+pub const TUNSETFILTEREBPF: u32 = 2147767521;
+pub const RIO_MPORT_MAINT_COMPTAG_SET: u32 = 1074031874;
+pub const AUTOFS_DEV_IOCTL_VERSION: u32 = 3222836081;
+pub const WDIOC_SETOPTIONS: u32 = 2147768068;
+pub const VHOST_SCSI_SET_ENDPOINT: u32 = 1088991040;
+pub const MGSL_IOCGTXIDLE: u32 = 27907;
+pub const ATM_ADDLECSADDR: u32 = 1074815374;
+pub const FSL_HV_IOCTL_GETPROP: u32 = 3223891719;
+pub const FDGETPRM: u32 = 2149581316;
+pub const HIDIOCAPPLICATION: u32 = 18434;
+pub const ENI_MEMDUMP: u32 = 1074815328;
+pub const PTP_SYS_OFFSET2: u32 = 1128283406;
+pub const VIDIOC_SUBDEV_G_DV_TIMINGS: u32 = 3229898328;
+pub const DMA_BUF_SET_NAME_A: u32 = 1074029057;
+pub const PTP_PIN_GETFUNC: u32 = 3227532550;
+pub const PTP_SYS_OFFSET_EXTENDED: u32 = 3300932873;
+pub const DFL_FPGA_PORT_UINT_SET_IRQ: u32 = 1074312776;
+pub const RTC_EPOCH_READ: u32 = 2148036621;
+pub const VIDIOC_SUBDEV_S_SELECTION: u32 = 3225441854;
+pub const VIDIOC_QUERY_EXT_CTRL: u32 = 3236451943;
+pub const ATM_GETLECSADDR: u32 = 1074815376;
+pub const FSL_HV_IOCTL_PARTITION_STOP: u32 = 3221794564;
+pub const SONET_GETDIAG: u32 = 2147770644;
+pub const ATMMPC_DATA: u32 = 25049;
+pub const IPMICTL_UNREGISTER_FOR_CMD_CHANS: u32 = 2148296989;
+pub const HIDIOCGCOLLECTIONINDEX: u32 = 1075333136;
+pub const RPMSG_CREATE_EPT_IOCTL: u32 = 1076409601;
+pub const GPIOHANDLE_GET_LINE_VALUES_IOCTL: u32 = 3225465864;
+pub const UI_DEV_SETUP: u32 = 1079792899;
+pub const ISST_IF_IO_CMD: u32 = 1074331138;
+pub const RIO_MPORT_MAINT_READ_REMOTE: u32 = 2149084423;
+pub const VIDIOC_OMAP3ISP_HIST_CFG: u32 = 3224393412;
+pub const BLKGETNRZONES: u32 = 2147750533;
+pub const VIDIOC_G_MODULATOR: u32 = 3225703990;
+pub const VBG_IOCTL_WRITE_CORE_DUMP: u32 = 3223082515;
+pub const USBDEVFS_SETINTERFACE: u32 = 2148029700;
+pub const PPPIOCGCHAN: u32 = 2147775543;
+pub const EVIOCGVERSION: u32 = 2147763457;
+pub const VHOST_NET_SET_BACKEND: u32 = 1074310960;
+pub const USBDEVFS_REAPURBNDELAY: u32 = 1074287885;
+pub const RNDZAPENTCNT: u32 = 20996;
+pub const VIDIOC_G_PARM: u32 = 3234616853;
+pub const TUNGETDEVNETNS: u32 = 21731;
+pub const LIRC_SET_MEASURE_CARRIER_MODE: u32 = 1074030877;
+pub const VHOST_SET_VRING_ERR: u32 = 1074310946;
+pub const VDUSE_VQ_SETUP: u32 = 1075872020;
+pub const AUTOFS_IOC_SETTIMEOUT: u32 = 3221787492;
+pub const VIDIOC_S_FREQUENCY: u32 = 1076647481;
+pub const F2FS_IOC_SEC_TRIM_FILE: u32 = 1075377428;
+pub const FS_IOC_REMOVE_ENCRYPTION_KEY: u32 = 3225445912;
+pub const WDIOC_GETPRETIMEOUT: u32 = 2147768073;
+pub const USBDEVFS_DROP_PRIVILEGES: u32 = 1074025758;
+pub const BTRFS_IOC_SNAP_CREATE_V2: u32 = 1342215191;
+pub const VHOST_VSOCK_SET_RUNNING: u32 = 1074048865;
+pub const STP_SET_OPTIONS: u32 = 1074275586;
+pub const FBIO_RADEON_GET_MIRROR: u32 = 2148024323;
+pub const IVTVFB_IOC_DMA_FRAME: u32 = 1075336896;
+pub const IPMICTL_SEND_COMMAND: u32 = 2150131981;
+pub const VIDIOC_G_ENC_INDEX: u32 = 2283296332;
+pub const DFL_FPGA_FME_PORT_PR: u32 = 46720;
+pub const CHIOSVOLTAG: u32 = 1076912914;
+pub const ATM_SETESIF: u32 = 1074815373;
+pub const FW_CDEV_IOC_SEND_RESPONSE: u32 = 1075323652;
+pub const PMU_IOC_GET_MODEL: u32 = 2148024835;
+pub const JSIOCGBTNMAP: u32 = 2214619700;
+pub const USBDEVFS_HUB_PORTINFO: u32 = 2155894035;
+pub const VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS: u32 = 3222820363;
+pub const FDCLRPRM: u32 = 577;
+pub const BTRFS_IOC_SCRUB: u32 = 3288372251;
+pub const USBDEVFS_DISCONNECT: u32 = 21782;
+pub const TUNSETVNETBE: u32 = 1074025694;
+pub const ATMTCP_REMOVE: u32 = 24975;
+pub const VHOST_VDPA_GET_CONFIG: u32 = 2148052851;
+pub const PPPIOCGNPMODE: u32 = 3221779532;
+pub const FDGETDRVPRM: u32 = 2155872785;
+pub const TUNSETVNETLE: u32 = 1074025692;
+pub const PHN_SETREG: u32 = 1074294790;
+pub const PPPIOCDETACH: u32 = 1074033724;
+pub const MMTIMER_GETRES: u32 = 2148035841;
+pub const VIDIOC_SUBDEV_ENUMSTD: u32 = 3225966105;
+pub const PPGETFLAGS: u32 = 2147774618;
+pub const VDUSE_DEV_GET_FEATURES: u32 = 2148040977;
+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 = 2148052512;
+pub const MEDIA_IOC_ENUM_LINKS: u32 = 3223878658;
+pub const F2FS_IOC_PRECACHE_EXTENTS: u32 = 62735;
+pub const DFL_FPGA_PORT_DMA_MAP: u32 = 46659;
+pub const MGSL_IOCGXCTRL: u32 = 27926;
+pub const FW_CDEV_IOC_SEND_REQUEST: u32 = 1076372225;
+pub const SONYPI_IOCGBLUE: u32 = 2147579400;
+pub const F2FS_IOC_DECOMPRESS_FILE: u32 = 62743;
+pub const I2OHTML: u32 = 3224398089;
+pub const VFIO_GET_API_VERSION: u32 = 15204;
+pub const IDT77105_GETSTATZ: u32 = 1074815283;
+pub const I2OPARMSET: u32 = 3223873795;
+pub const TEE_IOC_CANCEL: u32 = 2148049924;
+pub const PTP_SYS_OFFSET_PRECISE2: u32 = 3225435409;
+pub const DFL_FPGA_PORT_RESET: u32 = 46656;
+pub const PPPIOCGASYNCMAP: u32 = 2147775576;
+pub const EVIOCGKEYCODE_V2: u32 = 2150122756;
+pub const DM_DEV_SET_GEOMETRY: u32 = 3241737487;
+pub const HIDIOCSUSAGE: u32 = 1075333132;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323664;
+pub const PTP_EXTTS_REQUEST: u32 = 1074806018;
+pub const SWITCHTEC_IOCTL_EVENT_CTL: u32 = 3223869251;
+pub const WDIOC_SETPRETIMEOUT: u32 = 3221509896;
+pub const VHOST_SCSI_CLEAR_ENDPOINT: u32 = 1088991041;
+pub const JSIOCGAXES: u32 = 2147576337;
+pub const HIDIOCSFLAG: u32 = 1074022415;
+pub const PTP_PEROUT_REQUEST2: u32 = 1077427468;
+pub const PPWDATA: u32 = 1073836166;
+pub const PTP_CLOCK_GETCAPS: u32 = 2152742145;
+pub const FDGETMAXERRS: u32 = 2148794894;
+pub const TUNSETQUEUE: u32 = 1074025689;
+pub const PTP_ENABLE_PPS: u32 = 1074019588;
+pub const SIOCSIFATMTCP: u32 = 24960;
+pub const CEC_ADAP_G_LOG_ADDRS: u32 = 2153537795;
+pub const ND_IOCTL_ARS_CAP: u32 = 3223342593;
+pub const NBD_SET_BLKSIZE: u32 = 43777;
+pub const NBD_SET_TIMEOUT: u32 = 43785;
+pub const VHOST_SCSI_GET_ABI_VERSION: u32 = 1074048834;
+pub const RIO_UNMAP_INBOUND: u32 = 1074294034;
+pub const ATM_QUERYLOOP: u32 = 1074815316;
+pub const DFL_FPGA_GET_API_VERSION: u32 = 46592;
+pub const USBDEVFS_WAIT_FOR_RESUME: u32 = 21795;
+pub const FBIO_CURSOR: u32 = 3228059144;
+pub const RNDCLEARPOOL: u32 = 20998;
+pub const VIDIOC_QUERYSTD: u32 = 2148030015;
+pub const DMA_BUF_IOCTL_SYNC: u32 = 1074291200;
+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 = 2150651402;
+pub const PTP_ENABLE_PPS2: u32 = 1074019597;
+pub const PCITEST_CLEAR_IRQ: u32 = 20496;
+pub const IPMICTL_SET_GETS_EVENTS_CMD: u32 = 2147772688;
+pub const BTRFS_IOC_DEVICES_READY: u32 = 2415957031;
+pub const JSIOCGAXMAP: u32 = 2151705138;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER: u32 = 2148541196;
+pub const FW_CDEV_IOC_SET_ISO_CHANNELS: u32 = 1074799383;
+pub const RTC_WIE_OFF: u32 = 28688;
+pub const PPGETMODE: u32 = 2147774616;
+pub const VIDIOC_DBG_G_REGISTER: u32 = 3224917584;
+pub const PTP_SYS_OFFSET: u32 = 1128283397;
+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 = 37894;
+pub const INOTIFY_IOC_SETNEXTWD: u32 = 1074022656;
+pub const SNAPSHOT_GET_IMAGE_SIZE: u32 = 2148021006;
+pub const TUNDETACHFILTER: u32 = 1074812118;
+pub const ND_IOCTL_CLEAR_ERROR: u32 = 3223342596;
+pub const IOC_PR_CLEAR: u32 = 1074819277;
+pub const SCIF_READFROM: u32 = 3223876362;
+pub const PPPIOCGDEBUG: u32 = 2147775553;
+pub const BLKGETZONESZ: u32 = 2147750532;
+pub const HIDIOCGUSAGES: u32 = 3491514387;
+pub const SONYPI_IOCGTEMP: u32 = 2147579404;
+pub const UI_SET_MSCBIT: u32 = 1074025832;
+pub const APM_IOC_SUSPEND: u32 = 16642;
+pub const BTRFS_IOC_TREE_SEARCH: u32 = 3489698833;
+pub const RTC_PLL_GET: u32 = 2149609489;
+pub const RIO_CM_EP_GET_LIST: u32 = 3221512962;
+pub const USBDEVFS_DISCSIGNAL: u32 = 2148553998;
+pub const LIRC_GET_MIN_TIMEOUT: u32 = 2147772680;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY: u32 = 2174244674;
+pub const DM_TARGET_MSG: u32 = 3241737486;
+pub const SONYPI_IOCGBAT1REM: u32 = 2147644931;
+pub const EVIOCSFF: u32 = 1076905344;
+pub const TUNSETGROUP: u32 = 1074025678;
+pub const EVIOCGKEYCODE: u32 = 2148025604;
+pub const KCOV_REMOTE_ENABLE: u32 = 1075340134;
+pub const ND_IOCTL_GET_CONFIG_SIZE: u32 = 3222031876;
+pub const FDEJECT: u32 = 602;
+pub const TUNSETOFFLOAD: u32 = 1074025680;
+pub const PPPIOCCONNECT: u32 = 1074033722;
+pub const ATM_ADDADDR: u32 = 1074815368;
+pub const VDUSE_DEV_INJECT_CONFIG_IRQ: u32 = 33043;
+pub const AUTOFS_DEV_IOCTL_ASKUMOUNT: u32 = 3222836093;
+pub const VHOST_VDPA_GET_STATUS: u32 = 2147594097;
+pub const CCISS_PASSTHRU: u32 = 3227009547;
+pub const MGSL_IOCCLRMODCOUNT: u32 = 27919;
+pub const TEE_IOC_SUPPL_SEND: u32 = 2148574215;
+pub const ATMARPD_CTRL: u32 = 25057;
+pub const UI_ABS_SETUP: u32 = 1075598596;
+pub const UI_DEV_DESTROY: u32 = 21762;
+pub const BTRFS_IOC_QUOTA_CTL: u32 = 3222311976;
+pub const RTC_AIE_ON: u32 = 28673;
+pub const AUTOFS_IOC_EXPIRE: u32 = 2165085029;
+pub const PPPIOCSDEBUG: u32 = 1074033728;
+pub const GPIO_V2_LINE_SET_VALUES_IOCTL: u32 = 3222320143;
+pub const PPPIOCSMRU: u32 = 1074033746;
+pub const CCISS_DEREGDISK: u32 = 16908;
+pub const UI_DEV_CREATE: u32 = 21761;
+pub const FUSE_DEV_IOC_CLONE: u32 = 2147804416;
+pub const BTRFS_IOC_START_SYNC: u32 = 2148045848;
+pub const NILFS_IOCTL_DELETE_CHECKPOINT: u32 = 1074294401;
+pub const SNAPSHOT_AVAIL_SWAP_SIZE: u32 = 2148021011;
+pub const DM_TABLE_CLEAR: u32 = 3241737482;
+pub const CCISS_GETINTINFO: u32 = 2148024834;
+pub const PPPIOCSASYNCMAP: u32 = 1074033751;
+pub const I2OEVTGET: u32 = 2154326283;
+pub const NVME_IOCTL_RESET: u32 = 20036;
+pub const PPYIELD: u32 = 28813;
+pub const NVME_IOCTL_IO64_CMD: u32 = 3226488392;
+pub const TUNSETCARRIER: u32 = 1074025698;
+pub const DM_DEV_WAIT: u32 = 3241737480;
+pub const RTC_WIE_ON: u32 = 28687;
+pub const MEDIA_IOC_DEVICE_INFO: u32 = 3238034432;
+pub const RIO_CM_CHAN_CREATE: u32 = 3221381891;
+pub const MGSL_IOCSPARAMS: u32 = 1076915456;
+pub const RTC_SET_TIME: u32 = 1076129802;
+pub const VHOST_RESET_OWNER: u32 = 44802;
+pub const IOC_OPAL_PSID_REVERT_TPR: u32 = 1091072232;
+pub const AUTOFS_DEV_IOCTL_OPENMOUNT: u32 = 3222836084;
+pub const UDF_GETEABLOCK: u32 = 2148035649;
+pub const VFIO_IOMMU_MAP_DMA: u32 = 15217;
+pub const VIDIOC_SUBSCRIBE_EVENT: u32 = 1075861082;
+pub const HIDIOCGFLAG: u32 = 2147764238;
+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 = 1074835969;
+pub const CCISS_GETFIRMVER: u32 = 2147762696;
+pub const ND_IOCTL_ARS_START: u32 = 3223342594;
+pub const PPPIOCSMRRU: u32 = 1074033723;
+pub const CEC_ADAP_S_LOG_ADDRS: u32 = 3227279620;
+pub const RPROC_GET_SHUTDOWN_ON_RELEASE: u32 = 2147792642;
+pub const DMA_HEAP_IOCTL_ALLOC: u32 = 3222816768;
+pub const PPSETTIME: u32 = 1074819222;
+pub const RTC_ALM_READ: u32 = 2149871624;
+pub const VDUSE_SET_API_VERSION: u32 = 1074299137;
+pub const RIO_MPORT_MAINT_WRITE_REMOTE: u32 = 1075342600;
+pub const VIDIOC_SUBDEV_S_CROP: u32 = 3224917564;
+pub const USBDEVFS_CONNECT: u32 = 21783;
+pub const SYNC_IOC_FILE_INFO: u32 = 3224911364;
+pub const ATMARP_MKIP: u32 = 25058;
+pub const VFIO_IOMMU_SPAPR_TCE_GET_INFO: u32 = 15216;
+pub const CCISS_GETHEARTBEAT: u32 = 2147762694;
+pub const ATM_RSTADDR: u32 = 1074815367;
+pub const NBD_SET_SIZE: u32 = 43778;
+pub const UDF_GETVOLIDENT: u32 = 2148035650;
+pub const GPIO_V2_LINE_GET_VALUES_IOCTL: u32 = 3222320142;
+pub const MGSL_IOCSTXIDLE: u32 = 27906;
+pub const FSL_HV_IOCTL_SETPROP: u32 = 3223891720;
+pub const BTRFS_IOC_GET_DEV_STATS: u32 = 3288896564;
+pub const PPRSTATUS: u32 = 2147577985;
+pub const MGSL_IOCTXENABLE: u32 = 27908;
+pub const UDF_GETEASIZE: u32 = 2147773504;
+pub const NVME_IOCTL_ADMIN64_CMD: u32 = 3226488391;
+pub const VHOST_SET_OWNER: u32 = 44801;
+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 = 1074815371;
+pub const HPET_IE_ON: u32 = 26625;
+pub const PERF_EVENT_IOC_ID: u32 = 2148017159;
+pub const TUNSETSNDBUF: u32 = 1074025684;
+pub const PTP_PIN_SETFUNC: u32 = 1080048903;
+pub const PPPIOCDISCONN: u32 = 29753;
+pub const VIDIOC_QUERYCTRL: u32 = 3225703972;
+pub const PPEXCL: u32 = 28815;
+pub const PCITEST_MSI: u32 = 1074024451;
+pub const FDWERRORCLR: u32 = 598;
+pub const AUTOFS_IOC_FAIL: u32 = 37729;
+pub const USBDEVFS_IOCTL: u32 = 3222295826;
+pub const VIDIOC_S_STD: u32 = 1074288152;
+pub const F2FS_IOC_RESIZE_FS: u32 = 1074328848;
+pub const SONET_SETDIAG: u32 = 3221512466;
+pub const BTRFS_IOC_DEFRAG: u32 = 1342215170;
+pub const CCISS_GETDRIVVER: u32 = 2147762697;
+pub const IPMICTL_GET_TIMING_PARMS_CMD: u32 = 2148034839;
+pub const HPET_IRQFREQ: u32 = 1074292742;
+pub const ATM_GETESI: u32 = 1074815365;
+pub const CCISS_GETLUNINFO: u32 = 2148286993;
+pub const AUTOFS_DEV_IOCTL_ISMOUNTPOINT: u32 = 3222836094;
+pub const TEE_IOC_SHM_ALLOC: u32 = 3222316033;
+pub const PERF_EVENT_IOC_SET_BPF: u32 = 1074013192;
+pub const UDMABUF_CREATE_LIST: u32 = 1074296131;
+pub const VHOST_SET_LOG_BASE: u32 = 1074310916;
+pub const ZATM_GETPOOL: u32 = 1074815329;
+pub const BR2684_SETFILT: u32 = 1075601808;
+pub const RNDGETPOOL: u32 = 2148028930;
+pub const PPS_GETPARAMS: u32 = 2148036769;
+pub const IOC_PR_RESERVE: u32 = 1074819273;
+pub const VIDIOC_TRY_DECODER_CMD: u32 = 3225966177;
+pub const RIO_CM_CHAN_CLOSE: u32 = 1073898244;
+pub const VIDIOC_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const IOCTL_MEI_CONNECT_CLIENT_VTAG: u32 = 3222554628;
+pub const PMU_IOC_GET_BACKLIGHT: u32 = 2148024833;
+pub const USBDEVFS_GET_CAPABILITIES: u32 = 2147767578;
+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 = 16910;
+pub const FAT_IOCTL_SET_ATTRIBUTES: u32 = 1074033169;
+pub const VIDIOC_CREATE_BUFS: u32 = 3238024796;
+pub const CAPI_GET_VERSION: u32 = 3222291207;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY: u32 = 2228770626;
+pub const VFIO_EEH_PE_OP: u32 = 15225;
+pub const FW_CDEV_IOC_CREATE_ISO_CONTEXT: u32 = 3223331592;
+pub const F2FS_IOC_RELEASE_COMPRESS_BLOCKS: u32 = 2148070674;
+pub const NBD_SET_SIZE_BLOCKS: u32 = 43783;
+pub const IPMI_BMC_IOCTL_SET_SMS_ATN: u32 = 45312;
+pub const ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG: u32 = 3222319873;
+pub const VIDIOC_S_AUDOUT: u32 = 1077171762;
+pub const VIDIOC_S_FMT: u32 = 3234878981;
+pub const PPPIOCATTACH: u32 = 1074033725;
+pub const VHOST_GET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310948;
+pub const FS_IOC_MEASURE_VERITY: u32 = 3221513862;
+pub const CCISS_BIG_PASSTHRU: u32 = 3227533842;
+pub const IPMICTL_SET_MY_LUN_CMD: u32 = 2147772691;
+pub const PCITEST_LEGACY_IRQ: u32 = 20482;
+pub const USBDEVFS_SUBMITURB: u32 = 2151175434;
+pub const AUTOFS_IOC_READY: u32 = 37728;
+pub const BTRFS_IOC_SEND: u32 = 1078498342;
+pub const VIDIOC_G_EXT_CTRLS: u32 = 3223344711;
+pub const JSIOCSBTNMAP: u32 = 1140877875;
+pub const PPPIOCSFLAGS: u32 = 1074033753;
+pub const NVRAM_INIT: u32 = 28736;
+pub const RFKILL_IOCTL_NOINPUT: u32 = 20993;
+pub const BTRFS_IOC_BALANCE: u32 = 1342215180;
+pub const FS_IOC_GETFSMAP: u32 = 3233830971;
+pub const IPMICTL_GET_MY_CHANNEL_LUN_CMD: u32 = 2147772699;
+pub const STP_POLICY_ID_GET: u32 = 2148541697;
+pub const PPSETFLAGS: u32 = 1074032795;
+pub const CEC_ADAP_S_PHYS_ADDR: u32 = 1073897730;
+pub const ATMTCP_CREATE: u32 = 24974;
+pub const IPMI_BMC_IOCTL_FORCE_ABORT: u32 = 45314;
+pub const PPPIOCGXASYNCMAP: u32 = 2149610576;
+pub const VHOST_SET_VRING_CALL: u32 = 1074310945;
+pub const LIRC_GET_FEATURES: u32 = 2147772672;
+pub const GSMIOC_DISABLE_NET: u32 = 18179;
+pub const AUTOFS_IOC_CATATONIC: u32 = 37730;
+pub const NBD_DO_IT: u32 = 43779;
+pub const LIRC_SET_REC_CARRIER_RANGE: u32 = 1074030879;
+pub const IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772697;
+pub const EVIOCSCLOCKID: u32 = 1074021792;
+pub const USBDEVFS_FREE_STREAMS: u32 = 2148029725;
+pub const FSI_SCOM_RESET: u32 = 1074033411;
+pub const PMU_IOC_GRAB_BACKLIGHT: u32 = 2148024838;
+pub const VIDIOC_SUBDEV_S_FMT: u32 = 3227014661;
+pub const FDDEFPRM: u32 = 1075839555;
+pub const TEE_IOC_INVOKE: u32 = 2148574211;
+pub const USBDEVFS_BULK: u32 = 3222820098;
+pub const SCIF_VWRITETO: u32 = 3223876365;
+pub const SONYPI_IOCSBRT: u32 = 1073837568;
+pub const BTRFS_IOC_FILE_EXTENT_SAME: u32 = 3222836278;
+pub const RTC_PIE_ON: u32 = 28677;
+pub const BTRFS_IOC_SCAN_DEV: u32 = 1342215172;
+pub const PPPIOCXFERUNIT: u32 = 29774;
+pub const WDIOC_GETTIMEOUT: u32 = 2147768071;
+pub const BTRFS_IOC_SET_RECEIVED_SUBVOL: u32 = 3234370597;
+pub const DFL_FPGA_PORT_ERR_SET_IRQ: u32 = 1074312774;
+pub const FBIO_WAITFORVSYNC: u32 = 1074021920;
+pub const RTC_PIE_OFF: u32 = 28678;
+pub const EVIOCGRAB: u32 = 1074021776;
+pub const PMU_IOC_SET_BACKLIGHT: u32 = 1074283010;
+pub const EVIOCGREP: u32 = 2148025603;
+pub const PERF_EVENT_IOC_MODIFY_ATTRIBUTES: u32 = 1074275339;
+pub const UFFDIO_CONTINUE: u32 = 3223366151;
+pub const VDUSE_GET_API_VERSION: u32 = 2148040960;
+pub const RTC_RD_TIME: u32 = 2149871625;
+pub const FDMSGOFF: u32 = 582;
+pub const IPMICTL_REGISTER_FOR_CMD_CHANS: u32 = 2148296988;
+pub const CAPI_GET_ERRCODE: u32 = 2147631905;
+pub const PCITEST_SET_IRQTYPE: u32 = 1074024456;
+pub const VIDIOC_SUBDEV_S_EDID: u32 = 3223868969;
+pub const MATROXFB_SET_OUTPUT_MODE: u32 = 1074294522;
+pub const RIO_DEV_ADD: u32 = 1075866903;
+pub const VIDIOC_ENUM_FREQ_BANDS: u32 = 3225441893;
+pub const FBIO_RADEON_SET_MIRROR: u32 = 1074282500;
+pub const PCITEST_GET_IRQTYPE: u32 = 20489;
+pub const JSIOCGVERSION: u32 = 2147772929;
+pub const SONYPI_IOCSBLUE: u32 = 1073837577;
+pub const SNAPSHOT_PREF_IMAGE_SIZE: u32 = 13074;
+pub const F2FS_IOC_GET_FEATURES: u32 = 2147808524;
+pub const SCIF_REG: u32 = 3223876360;
+pub const NILFS_IOCTL_CLEAN_SEGMENTS: u32 = 1081634440;
+pub const FW_CDEV_IOC_INITIATE_BUS_RESET: u32 = 1074012933;
+pub const RIO_WAIT_FOR_ASYNC: u32 = 1074294038;
+pub const VHOST_SET_VRING_NUM: u32 = 1074310928;
+pub const AUTOFS_DEV_IOCTL_PROTOVER: u32 = 3222836082;
+pub const RIO_FREE_DMA: u32 = 1074294036;
+pub const MGSL_IOCRXENABLE: u32 = 27909;
+pub const IOCTL_VM_SOCKETS_GET_LOCAL_CID: u32 = 1977;
+pub const IPMICTL_SET_TIMING_PARMS_CMD: u32 = 2148034838;
+pub const PPPIOCGL2TPSTATS: u32 = 2152231990;
+pub const PERF_EVENT_IOC_PERIOD: u32 = 1074275332;
+pub const PTP_PIN_SETFUNC2: u32 = 1080048912;
+pub const CHIOEXCHANGE: u32 = 1075602178;
+pub const NILFS_IOCTL_GET_SUINFO: u32 = 2149084804;
+pub const CEC_DQEVENT: u32 = 3226493191;
+pub const UI_SET_SWBIT: u32 = 1074025837;
+pub const VHOST_VDPA_SET_CONFIG: u32 = 1074311028;
+pub const TUNSETIFF: u32 = 1074025674;
+pub const CHIOPOSITION: u32 = 1074553603;
+pub const IPMICTL_SET_MAINTENANCE_MODE_CMD: u32 = 1074030879;
+pub const BTRFS_IOC_DEFAULT_SUBVOL: u32 = 1074304019;
+pub const RIO_UNMAP_OUTBOUND: u32 = 1076391184;
+pub const CAPI_CLR_FLAGS: u32 = 2147762981;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323663;
+pub const MATROXFB_GET_OUTPUT_CONNECTION: u32 = 2148036344;
+pub const EVIOCSMASK: u32 = 1074808211;
+pub const BTRFS_IOC_FORGET_DEV: u32 = 1342215173;
+pub const CXL_MEM_QUERY_COMMANDS: u32 = 2148060673;
+pub const CEC_S_MODE: u32 = 1074028809;
+pub const MGSL_IOCSIF: u32 = 27914;
+pub const SWITCHTEC_IOCTL_PFF_TO_PORT: u32 = 3222034244;
+pub const PPSETMODE: u32 = 1074032768;
+pub const VFIO_DEVICE_SET_IRQS: u32 = 15214;
+pub const VIDIOC_PREPARE_BUF: u32 = 3227014749;
+pub const CEC_ADAP_G_CONNECTOR_INFO: u32 = 2151964938;
+pub const IOC_OPAL_WRITE_SHADOW_MBR: u32 = 1092645098;
+pub const VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: u32 = 3225441867;
+pub const UDMABUF_CREATE: u32 = 1075344706;
+pub const SONET_CLRDIAG: u32 = 3221512467;
+pub const PHN_SET_REG: u32 = 1074294785;
+pub const RNDADDTOENTCNT: u32 = 1074024961;
+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 = 28674;
+pub const VFIO_GROUP_SET_CONTAINER: u32 = 15208;
+pub const FW_CDEV_IOC_RECEIVE_PHY_PACKETS: u32 = 1074275094;
+pub const VFIO_IOMMU_SPAPR_TCE_REMOVE: u32 = 15224;
+pub const VFIO_IOMMU_GET_INFO: u32 = 15216;
+pub const DM_DEV_SUSPEND: u32 = 3241737478;
+pub const F2FS_IOC_GET_COMPRESS_OPTION: u32 = 2147677461;
+pub const FW_CDEV_IOC_STOP_ISO: u32 = 1074012939;
+pub const GPIO_V2_GET_LINEINFO_IOCTL: u32 = 3238048773;
+pub const ATMMPC_CTRL: u32 = 25048;
+pub const PPPIOCSXASYNCMAP: u32 = 1075868751;
+pub const CHIOGSTATUS: u32 = 1074815752;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE: u32 = 3222807309;
+pub const RIO_MPORT_MAINT_PORT_IDX_GET: u32 = 2147773699;
+pub const CAPI_SET_FLAGS: u32 = 2147762980;
+pub const VFIO_GROUP_GET_DEVICE_FD: u32 = 15210;
+pub const VHOST_SET_MEM_TABLE: u32 = 1074310915;
+pub const MATROXFB_SET_OUTPUT_CONNECTION: u32 = 1074294520;
+pub const DFL_FPGA_PORT_GET_REGION_INFO: u32 = 46658;
+pub const VHOST_GET_FEATURES: u32 = 2148052736;
+pub const LIRC_GET_REC_RESOLUTION: u32 = 2147772679;
+pub const PACKET_CTRL_CMD: u32 = 3222820865;
+pub const LIRC_SET_TRANSMITTER_MASK: u32 = 1074030871;
+pub const BTRFS_IOC_ADD_DEV: u32 = 1342215178;
+pub const JSIOCGCORR: u32 = 2149870114;
+pub const VIDIOC_G_FMT: u32 = 3234878980;
+pub const RTC_EPOCH_SET: u32 = 1074294798;
+pub const CAPI_GET_PROFILE: u32 = 3225436937;
+pub const ATM_GETLOOP: u32 = 1074815314;
+pub const SCIF_LISTEN: u32 = 1074033410;
+pub const NBD_CLEAR_QUE: u32 = 43781;
+pub const F2FS_IOC_MOVE_RANGE: u32 = 3223385353;
+pub const LIRC_GET_LENGTH: u32 = 2147772687;
+pub const I8K_SET_FAN: u32 = 3221776775;
+pub const FDSETMAXERRS: u32 = 1075053132;
+pub const VIDIOC_SUBDEV_QUERYCAP: u32 = 2151699968;
+pub const SNAPSHOT_SET_SWAP_AREA: u32 = 1074541325;
+pub const LIRC_GET_REC_TIMEOUT: u32 = 2147772708;
+pub const EVIOCRMFF: u32 = 1074021761;
+pub const GPIO_GET_LINEEVENT_IOCTL: u32 = 3224417284;
+pub const PPRDATA: u32 = 2147577989;
+pub const RIO_MPORT_GET_PROPERTIES: u32 = 2150657284;
+pub const TUNSETVNETHDRSZ: u32 = 1074025688;
+pub const GPIO_GET_LINEINFO_IOCTL: u32 = 3225990146;
+pub const GSMIOC_GETCONF: u32 = 2152482560;
+pub const LIRC_GET_SEND_MODE: u32 = 2147772673;
+pub const PPPIOCSACTIVE: u32 = 1074820166;
+pub const SIOCGSTAMPNS_NEW: u32 = 2148567303;
+pub const IPMICTL_RECEIVE_MSG: u32 = 3224398092;
+pub const LIRC_SET_SEND_DUTY_CYCLE: u32 = 1074030869;
+pub const UI_END_FF_ERASE: u32 = 1074550219;
+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 = 43786;
+pub const VFIO_DEVICE_GET_REGION_INFO: u32 = 15212;
+pub const REISERFS_IOC_UNPACK: u32 = 1074318593;
+pub const FW_CDEV_IOC_REMOVE_DESCRIPTOR: u32 = 1074012935;
+pub const RIO_SET_EVENT_MASK: u32 = 1074031885;
+pub const SNAPSHOT_ALLOC_SWAP_PAGE: u32 = 2148021012;
+pub const VDUSE_VQ_INJECT_IRQ: u32 = 1074037015;
+pub const I2OPASSTHRU: u32 = 2148559116;
+pub const IOC_OPAL_SET_PW: u32 = 1109422304;
+pub const FSI_SCOM_READ: u32 = 3223352065;
+pub const VHOST_VDPA_GET_DEVICE_ID: u32 = 2147790704;
+pub const VIDIOC_QBUF: u32 = 3227014671;
+pub const VIDIOC_S_TUNER: u32 = 1079268894;
+pub const TUNGETVNETHDRSZ: u32 = 2147767511;
+pub const CAPI_NCCI_GETUNIT: u32 = 2147762983;
+pub const DFL_FPGA_PORT_UINT_GET_IRQ_NUM: u32 = 2147792455;
+pub const VIDIOC_OMAP3ISP_STAT_EN: u32 = 3221771975;
+pub const GPIO_V2_LINE_SET_CONFIG_IOCTL: u32 = 3239097357;
+pub const TEE_IOC_VERSION: u32 = 2148312064;
+pub const VIDIOC_LOG_STATUS: u32 = 22086;
+pub const IPMICTL_SEND_COMMAND_SETTIME: u32 = 2150656277;
+pub const VHOST_SET_LOG_FD: u32 = 1074048775;
+pub const SCIF_SEND: u32 = 3222827782;
+pub const VIDIOC_SUBDEV_G_FMT: u32 = 3227014660;
+pub const NS_ADJBUFLEV: u32 = 24931;
+pub const VIDIOC_DBG_S_REGISTER: u32 = 1077433935;
+pub const NILFS_IOCTL_RESIZE: u32 = 1074294411;
+pub const PHN_GETREG: u32 = 3221778437;
+pub const I2OSWDL: u32 = 3224398085;
+pub const VBG_IOCTL_VMMDEV_REQUEST_BIG: u32 = 22019;
+pub const JSIOCGBUTTONS: u32 = 2147576338;
+pub const VFIO_IOMMU_ENABLE: u32 = 15219;
+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 = 1074048887;
+pub const VIDIOC_SUBDEV_G_CROP: u32 = 3224917563;
+pub const VIDIOC_S_CROP: u32 = 1075074620;
+pub const WDIOC_GETTEMP: u32 = 2147768067;
+pub const IOC_OPAL_ADD_USR_TO_LR: u32 = 1092120804;
+pub const UI_SET_LEDBIT: u32 = 1074025833;
+pub const NBD_SET_SOCK: u32 = 43776;
+pub const BTRFS_IOC_SNAP_DESTROY_V2: u32 = 1342215231;
+pub const HIDIOCGCOLLECTIONINFO: u32 = 3222292497;
+pub const I2OSWUL: u32 = 3224398086;
+pub const IOCTL_MEI_NOTIFY_GET: u32 = 2147764227;
+pub const FDFMTTRK: u32 = 1074528840;
+pub const MMTIMER_GETBITS: u32 = 27908;
+pub const VIDIOC_ENUMSTD: u32 = 3225966105;
+pub const VHOST_GET_VRING_BASE: u32 = 3221794578;
+pub const VFIO_DEVICE_IOEVENTFD: u32 = 15220;
+pub const ATMARP_SETENTRY: u32 = 25059;
+pub const CCISS_REVALIDVOLS: u32 = 16906;
+pub const MGSL_IOCLOOPTXDONE: u32 = 27913;
+pub const RTC_VL_READ: u32 = 2147774483;
+pub const ND_IOCTL_ARS_STATUS: u32 = 3224391171;
+pub const RIO_DEV_DEL: u32 = 1075866904;
+pub const VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: u32 = 3223606797;
+pub const VIDIOC_SUBDEV_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const SONYPI_IOCSFAN: u32 = 1073837579;
+pub const SPIOCSTYPE: u32 = 1074295041;
+pub const IPMICTL_REGISTER_FOR_CMD: u32 = 2147641614;
+pub const I8K_GET_FAN: u32 = 3221776774;
+pub const TUNGETVNETBE: u32 = 2147767519;
+pub const AUTOFS_DEV_IOCTL_FAIL: u32 = 3222836087;
+pub const UI_END_FF_UPLOAD: u32 = 1080579529;
+pub const TOSH_SMM: u32 = 3222828176;
+pub const SONYPI_IOCGBAT2REM: u32 = 2147644933;
+pub const F2FS_IOC_GET_COMPRESS_BLOCKS: u32 = 2148070673;
+pub const PPPIOCSNPMODE: u32 = 1074295883;
+pub const USBDEVFS_CONTROL: u32 = 3222820096;
+pub const HIDIOCGUSAGE: u32 = 3222816779;
+pub const TUNSETTXFILTER: u32 = 1074025681;
+pub const TUNGETVNETLE: u32 = 2147767517;
+pub const VIDIOC_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const BTRFS_IOC_INO_PATHS: u32 = 3224933411;
+pub const MGSL_IOCGXSYNC: u32 = 27924;
+pub const HIDIOCGFIELDINFO: u32 = 3224913930;
+pub const VIDIOC_SUBDEV_G_STD: u32 = 2148029975;
+pub const I2OVALIDATE: u32 = 2147772680;
+pub const VIDIOC_TRY_ENCODER_CMD: u32 = 3223869006;
+pub const NILFS_IOCTL_GET_CPINFO: u32 = 2149084802;
+pub const VIDIOC_G_FREQUENCY: u32 = 3224131128;
+pub const VFAT_IOCTL_READDIR_SHORT: u32 = 2184212994;
+pub const ND_IOCTL_GET_CONFIG_DATA: u32 = 3222031877;
+pub const F2FS_IOC_RESERVE_COMPRESS_BLOCKS: u32 = 2148070675;
+pub const FDGETDRVSTAT: u32 = 2152727058;
+pub const SYNC_IOC_MERGE: u32 = 3224387075;
+pub const VIDIOC_S_DV_TIMINGS: u32 = 3229898327;
+pub const PPPIOCBRIDGECHAN: u32 = 1074033717;
+pub const LIRC_SET_SEND_MODE: u32 = 1074030865;
+pub const RIO_ENABLE_PORTWRITE_RANGE: u32 = 1074818315;
+pub const ATM_GETTYPE: u32 = 1074815364;
+pub const PHN_GETREGS: u32 = 3223875591;
+pub const FDSETEMSGTRESH: u32 = 586;
+pub const NILFS_IOCTL_GET_VINFO: u32 = 3222826630;
+pub const MGSL_IOCWAITEVENT: u32 = 3221515528;
+pub const CAPI_INSTALLED: u32 = 2147631906;
+pub const EVIOCGMASK: u32 = 2148550034;
+pub const BTRFS_IOC_SUBVOL_GETFLAGS: u32 = 2148045849;
+pub const FSL_HV_IOCTL_PARTITION_GET_STATUS: u32 = 3222056706;
+pub const MEDIA_IOC_ENUM_ENTITIES: u32 = 3238034433;
+pub const GSMIOC_GETFIRST: u32 = 2147763972;
+pub const FW_CDEV_IOC_FLUSH_ISO: u32 = 1074012952;
+pub const VIDIOC_DBG_G_CHIP_INFO: u32 = 3234354790;
+pub const F2FS_IOC_RELEASE_VOLATILE_WRITE: u32 = 62724;
+pub const CAPI_GET_SERIAL: u32 = 3221504776;
+pub const FDSETDRVPRM: u32 = 1082131088;
+pub const IOC_OPAL_SAVE: u32 = 1092120796;
+pub const VIDIOC_G_DV_TIMINGS: u32 = 3229898328;
+pub const TUNSETIFINDEX: u32 = 1074025690;
+pub const CCISS_SETINTINFO: u32 = 1074283011;
+pub const RTC_VL_CLR: u32 = 28692;
+pub const VIDIOC_REQBUFS: u32 = 3222558216;
+pub const USBDEVFS_REAPURBNDELAY32: u32 = 1074025741;
+pub const TEE_IOC_SHM_REGISTER: u32 = 3222840329;
+pub const USBDEVFS_SETCONFIGURATION: u32 = 2147767557;
+pub const CCISS_GETNODENAME: u32 = 2148549124;
+pub const VIDIOC_SUBDEV_S_FRAME_INTERVAL: u32 = 3224393238;
+pub const VIDIOC_ENUM_FRAMESIZES: u32 = 3224131146;
+pub const VFIO_DEVICE_PCI_HOT_RESET: u32 = 15217;
+pub const FW_CDEV_IOC_SEND_BROADCAST_REQUEST: u32 = 1076372242;
+pub const LPSETTIMEOUT_NEW: u32 = 1074791951;
+pub const RIO_CM_MPORT_GET_LIST: u32 = 3221512971;
+pub const FW_CDEV_IOC_QUEUE_ISO: u32 = 3222807305;
+pub const FDRAWCMD: u32 = 600;
+pub const SCIF_UNREG: u32 = 3222303497;
+pub const PPPIOCGIDLE64: u32 = 2148561983;
+pub const USBDEVFS_RELEASEINTERFACE: u32 = 2147767568;
+pub const VIDIOC_CROPCAP: u32 = 3224131130;
+pub const DFL_FPGA_PORT_GET_INFO: u32 = 46657;
+pub const PHN_SET_REGS: u32 = 1074294787;
+pub const ATMLEC_DATA: u32 = 25041;
+pub const PPPOEIOCDFWD: u32 = 45313;
+pub const VIDIOC_S_SELECTION: u32 = 3225441887;
+pub const SNAPSHOT_FREE_SWAP_PAGES: u32 = 13065;
+pub const BTRFS_IOC_LOGICAL_INO: u32 = 3224933412;
+pub const VIDIOC_S_CTRL: u32 = 3221771804;
+pub const ZATM_SETPOOL: u32 = 1074815331;
+pub const MTIOCPOS: u32 = 2148035843;
+pub const PMU_IOC_SLEEP: u32 = 16896;
+pub const AUTOFS_DEV_IOCTL_PROTOSUBVER: u32 = 3222836083;
+pub const VBG_IOCTL_CHANGE_FILTER_MASK: u32 = 3223344652;
+pub const NILFS_IOCTL_GET_SUSTAT: u32 = 2150657669;
+pub const VIDIOC_QUERYCAP: u32 = 2154321408;
+pub const HPET_INFO: u32 = 2149083139;
+pub const VIDIOC_AM437X_CCDC_CFG: u32 = 1074288321;
+pub const DM_LIST_DEVICES: u32 = 3241737474;
+pub const TUNSETOWNER: u32 = 1074025676;
+pub const VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: u32 = 3223344654;
+pub const RNDADDENTROPY: u32 = 1074287107;
+pub const USBDEVFS_RESET: u32 = 21780;
+pub const BTRFS_IOC_SUBVOL_CREATE: u32 = 1342215182;
+pub const USBDEVFS_FORBID_SUSPEND: u32 = 21793;
+pub const FDGETDRVTYP: u32 = 2148532751;
+pub const PPWCONTROL: u32 = 1073836164;
+pub const VIDIOC_ENUM_FRAMEINTERVALS: u32 = 3224655435;
+pub const KCOV_DISABLE: u32 = 25445;
+pub const IOC_OPAL_ACTIVATE_LSP: u32 = 1092120799;
+pub const VHOST_VDPA_GET_IOVA_RANGE: u32 = 2148577144;
+pub const PPPIOCSPASS: u32 = 1074820167;
+pub const RIO_CM_CHAN_CONNECT: u32 = 1074291464;
+pub const I2OSWDEL: u32 = 3224398087;
+pub const FS_IOC_SET_ENCRYPTION_POLICY: u32 = 2148296211;
+pub const IOC_OPAL_MBR_DONE: u32 = 1091596521;
+pub const PPPIOCSMAXCID: u32 = 1074033745;
+pub const PPSETPHASE: u32 = 1074032788;
+pub const VHOST_VDPA_SET_VRING_ENABLE: u32 = 1074311029;
+pub const USBDEVFS_GET_SPEED: u32 = 21791;
+pub const SONET_GETFRAMING: u32 = 2147770646;
+pub const VIDIOC_QUERYBUF: u32 = 3227014665;
+pub const VIDIOC_S_EDID: u32 = 3223868969;
+pub const BTRFS_IOC_QGROUP_ASSIGN: u32 = 1075352617;
+pub const PPS_GETCAP: u32 = 2148036771;
+pub const SNAPSHOT_PLATFORM_SUPPORT: u32 = 13071;
+pub const LIRC_SET_REC_TIMEOUT_REPORTS: u32 = 1074030873;
+pub const SCIF_GET_NODEIDS: u32 = 3222827790;
+pub const NBD_DISCONNECT: u32 = 43784;
+pub const VIDIOC_SUBDEV_G_FRAME_INTERVAL: u32 = 3224393237;
+pub const VFIO_IOMMU_DISABLE: u32 = 15220;
+pub const SNAPSHOT_CREATE_IMAGE: u32 = 1074017041;
+pub const SNAPSHOT_POWER_OFF: u32 = 13072;
+pub const APM_IOC_STANDBY: u32 = 16641;
+pub const PPPIOCGUNIT: u32 = 2147775574;
+pub const AUTOFS_IOC_EXPIRE_MULTI: u32 = 1074041702;
+pub const SCIF_BIND: u32 = 3221779201;
+pub const IOC_WATCH_QUEUE_SET_SIZE: u32 = 22368;
+pub const NILFS_IOCTL_CHANGE_CPMODE: u32 = 1074818688;
+pub const IOC_OPAL_LOCK_UNLOCK: u32 = 1092120797;
+pub const F2FS_IOC_SET_PIN_FILE: u32 = 1074066701;
+pub const PPPIOCGRASYNCMAP: u32 = 2147775573;
+pub const MMTIMER_MMAPAVAIL: u32 = 27910;
+pub const I2OPASSTHRU32: u32 = 2148034828;
+pub const DFL_FPGA_FME_PORT_RELEASE: u32 = 1074050689;
+pub const VIDIOC_SUBDEV_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const UI_SET_SNDBIT: u32 = 1074025834;
+pub const VIDIOC_G_AUDOUT: u32 = 2150913585;
+pub const RTC_PLL_SET: u32 = 1075867666;
+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 = 1074048836;
+pub const VHOST_SET_VRING_ADDR: u32 = 1076408081;
+pub const VDUSE_CREATE_DEV: u32 = 1095794946;
+pub const FDFLUSH: u32 = 587;
+pub const VBG_IOCTL_WAIT_FOR_EVENTS: u32 = 3223344650;
+pub const DFL_FPGA_FME_ERR_SET_IRQ: u32 = 1074312836;
+pub const F2FS_IOC_GET_PIN_FILE: u32 = 2147808526;
+pub const SCIF_CONNECT: u32 = 3221779203;
+pub const BLKREPORTZONE: u32 = 3222278786;
+pub const AUTOFS_IOC_ASKUMOUNT: u32 = 2147783536;
+pub const ATM_ADDPARTY: u32 = 1074815476;
+pub const FDSETPRM: u32 = 1075839554;
+pub const ATM_GETSTATZ: u32 = 1074815313;
+pub const ISST_IF_MSR_COMMAND: u32 = 3221814788;
+pub const BTRFS_IOC_GET_SUBVOL_INFO: u32 = 2180551740;
+pub const VIDIOC_UNSUBSCRIBE_EVENT: u32 = 1075861083;
+pub const SEV_ISSUE_CMD: u32 = 3222295296;
+pub const GPIOHANDLE_SET_LINE_VALUES_IOCTL: u32 = 3225465865;
+pub const PCITEST_COPY: u32 = 1074286598;
+pub const IPMICTL_GET_MY_ADDRESS_CMD: u32 = 2147772690;
+pub const CHIOGPICKER: u32 = 2147771140;
+pub const CAPI_NCCI_OPENCOUNT: u32 = 2147762982;
+pub const CXL_MEM_SEND_COMMAND: u32 = 3224423938;
+pub const PERF_EVENT_IOC_SET_FILTER: u32 = 1074275334;
+pub const IOC_OPAL_REVERT_TPR: u32 = 1091072226;
+pub const CHIOGVPARAMS: u32 = 2154849043;
+pub const PTP_PEROUT_REQUEST: u32 = 1077427459;
+pub const FSI_SCOM_CHECK: u32 = 2147775232;
+pub const RTC_IRQP_READ: u32 = 2148036619;
+pub const RIO_MPORT_MAINT_READ_LOCAL: u32 = 2149084421;
+pub const HIDIOCGRDESCSIZE: u32 = 2147764225;
+pub const UI_GET_VERSION: u32 = 2147767597;
+pub const NILFS_IOCTL_GET_CPSTAT: u32 = 2149084803;
+pub const CCISS_GETBUSTYPES: u32 = 2147762695;
+pub const VFIO_IOMMU_SPAPR_TCE_CREATE: u32 = 15223;
+pub const VIDIOC_EXPBUF: u32 = 3225441808;
+pub const UI_SET_RELBIT: u32 = 1074025830;
+pub const VFIO_SET_IOMMU: u32 = 15206;
+pub const VIDIOC_S_MODULATOR: u32 = 1078220343;
+pub const TUNGETFILTER: u32 = 2148553947;
+pub const CCISS_SETNODENAME: u32 = 1074807301;
+pub const FBIO_GETCONTROL2: u32 = 2148025993;
+pub const TUNSETDEBUG: u32 = 1074025673;
+pub const DM_DEV_REMOVE: u32 = 3241737476;
+pub const HIDIOCSUSAGES: u32 = 1344030740;
+pub const FS_IOC_ADD_ENCRYPTION_KEY: u32 = 3226494487;
+pub const FBIOGET_VBLANK: u32 = 2149598738;
+pub const ATM_GETSTAT: u32 = 1074815312;
+pub const VIDIOC_G_JPEGCOMP: u32 = 2156680765;
+pub const TUNATTACHFILTER: u32 = 1074812117;
+pub const UI_SET_ABSBIT: u32 = 1074025831;
+pub const DFL_FPGA_PORT_ERR_GET_IRQ_NUM: u32 = 2147792453;
+pub const USBDEVFS_REAPURB32: u32 = 1074025740;
+pub const BTRFS_IOC_TRANS_END: u32 = 37895;
+pub const CAPI_REGISTER: u32 = 1074545409;
+pub const F2FS_IOC_COMPRESS_FILE: u32 = 62744;
+pub const USBDEVFS_DISCARDURB: u32 = 21771;
+pub const HE_GET_REG: u32 = 1074815328;
+pub const ATM_SETLOOP: u32 = 1074815315;
+pub const ATMSIGD_CTRL: u32 = 25072;
+pub const CIOC_KERNEL_VERSION: u32 = 3221775114;
+pub const BTRFS_IOC_CLONE_RANGE: u32 = 1075876877;
+pub const SNAPSHOT_UNFREEZE: u32 = 13058;
+pub const F2FS_IOC_START_VOLATILE_WRITE: u32 = 62723;
+pub const PMU_IOC_HAS_ADB: u32 = 2148024836;
+pub const I2OGETIOPS: u32 = 2149607680;
+pub const VIDIOC_S_FBUF: u32 = 1076909579;
+pub const PPRCONTROL: u32 = 2147577987;
+pub const CHIOSPICKER: u32 = 1074029317;
+pub const VFIO_IOMMU_SPAPR_REGISTER_MEMORY: u32 = 15221;
+pub const TUNGETSNDBUF: u32 = 2147767507;
+pub const GSMIOC_SETCONF: u32 = 1078740737;
+pub const IOC_PR_PREEMPT: u32 = 1075343563;
+pub const KCOV_INIT_TRACE: u32 = 2148033281;
+pub const SONYPI_IOCGBAT1CAP: u32 = 2147644930;
+pub const SWITCHTEC_IOCTL_FLASH_INFO: u32 = 2148554560;
+pub const MTIOCTOP: u32 = 1074294017;
+pub const VHOST_VDPA_SET_STATUS: u32 = 1073852274;
+pub const VHOST_SCSI_SET_EVENTS_MISSED: u32 = 1074048835;
+pub const VFIO_IOMMU_DIRTY_PAGES: u32 = 15221;
+pub const BTRFS_IOC_SCRUB_PROGRESS: u32 = 3288372253;
+pub const PPPIOCGMRU: u32 = 2147775571;
+pub const BTRFS_IOC_DEV_REPLACE: u32 = 3391657013;
+pub const PPPIOCGFLAGS: u32 = 2147775578;
+pub const NILFS_IOCTL_SET_SUINFO: u32 = 1075342989;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER2: u32 = 3222807316;
+pub const ATM_DELLECSADDR: u32 = 1074815375;
+pub const FW_CDEV_IOC_GET_SPEED: u32 = 8977;
+pub const PPPIOCGIDLE32: u32 = 2148037695;
+pub const VFIO_DEVICE_RESET: u32 = 15215;
+pub const GPIO_GET_LINEINFO_UNWATCH_IOCTL: u32 = 3221533708;
+pub const WDIOC_GETSTATUS: u32 = 2147768065;
+pub const BTRFS_IOC_SET_FEATURES: u32 = 1076925497;
+pub const IOCTL_MEI_CONNECT_CLIENT: u32 = 3222292481;
+pub const VIDIOC_OMAP3ISP_AEWB_CFG: u32 = 3223344835;
+pub const PCITEST_READ: u32 = 1074286597;
+pub const VFIO_GROUP_GET_STATUS: u32 = 15207;
+pub const MATROXFB_GET_ALL_OUTPUTS: u32 = 2148036347;
+pub const USBDEVFS_CLEAR_HALT: u32 = 2147767573;
+pub const VIDIOC_DECODER_CMD: u32 = 3225966176;
+pub const VIDIOC_G_AUDIO: u32 = 2150913569;
+pub const CCISS_RESCANDISK: u32 = 16912;
+pub const RIO_DISABLE_PORTWRITE_RANGE: u32 = 1074818316;
+pub const IOC_OPAL_SECURE_ERASE_LR: u32 = 1091596519;
+pub const USBDEVFS_REAPURB: u32 = 1074287884;
+pub const DFL_FPGA_CHECK_EXTENSION: u32 = 46593;
+pub const AUTOFS_IOC_PROTOVER: u32 = 2147783523;
+pub const FSL_HV_IOCTL_MEMCPY: u32 = 3223891717;
+pub const BTRFS_IOC_GET_FEATURES: u32 = 2149094457;
+pub const PCITEST_MSIX: u32 = 1074024455;
+pub const BTRFS_IOC_DEFRAG_RANGE: u32 = 1076925456;
+pub const UI_BEGIN_FF_ERASE: u32 = 3222033866;
+pub const DM_GET_TARGET_VERSION: u32 = 3241737489;
+pub const PPPIOCGIDLE: u32 = 2148561983;
+pub const NVRAM_SETCKS: u32 = 28737;
+pub const WDIOC_GETSUPPORT: u32 = 2150127360;
+pub const GSMIOC_ENABLE_NET: u32 = 1077167874;
+pub const GPIO_GET_CHIPINFO_IOCTL: u32 = 2151986177;
+pub const NE_ADD_VCPU: u32 = 3221532193;
+pub const EVIOCSKEYCODE_V2: u32 = 1076380932;
+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 = 1075342598;
+pub const I2OEVTREG: u32 = 1074555146;
+pub const I2OPARMGET: u32 = 3223873796;
+pub const EVIOCGID: u32 = 2148025602;
+pub const BTRFS_IOC_QGROUP_CREATE: u32 = 1074828330;
+pub const AUTOFS_DEV_IOCTL_SETPIPEFD: u32 = 3222836088;
+pub const VIDIOC_S_PARM: u32 = 3234616854;
+pub const TUNSETSTEERINGEBPF: u32 = 2147767520;
+pub const ATM_GETNAMES: u32 = 1074815363;
+pub const VIDIOC_QUERYMENU: u32 = 3224131109;
+pub const DFL_FPGA_PORT_DMA_UNMAP: u32 = 46660;
+pub const I2OLCTGET: u32 = 3222825218;
+pub const FS_IOC_GET_ENCRYPTION_PWSALT: u32 = 1074816532;
+pub const NS_SETBUFLEV: u32 = 1074815330;
+pub const BLKCLOSEZONE: u32 = 1074795143;
+pub const SONET_GETFRSENSE: u32 = 2147901719;
+pub const UI_SET_EVBIT: u32 = 1074025828;
+pub const DM_LIST_VERSIONS: u32 = 3241737485;
+pub const HIDIOCGSTRING: u32 = 2164541444;
+pub const PPPIOCATTCHAN: u32 = 1074033720;
+pub const VDUSE_DEV_SET_CONFIG: u32 = 1074299154;
+pub const TUNGETFEATURES: u32 = 2147767503;
+pub const VFIO_GROUP_UNSET_CONTAINER: u32 = 15209;
+pub const IPMICTL_SET_MY_ADDRESS_CMD: u32 = 2147772689;
+pub const CCISS_REGNEWDISK: u32 = 1074020877;
+pub const VIDIOC_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const PHN_SETREGS: u32 = 1076391944;
+pub const FAT_IOCTL_GET_ATTRIBUTES: u32 = 2147774992;
+pub const FSL_MC_SEND_MC_COMMAND: u32 = 3225440992;
+pub const TUNGETIFF: u32 = 2147767506;
+pub const PTP_CLOCK_GETCAPS2: u32 = 2152742154;
+pub const BTRFS_IOC_RESIZE: u32 = 1342215171;
+pub const VHOST_SET_VRING_ENDIAN: u32 = 1074310931;
+pub const PPS_KC_BIND: u32 = 1074294949;
+pub const F2FS_IOC_WRITE_CHECKPOINT: u32 = 62727;
+pub const UI_SET_FFBIT: u32 = 1074025835;
+pub const IPMICTL_GET_MY_LUN_CMD: u32 = 2147772692;
+pub const CEC_ADAP_G_PHYS_ADDR: u32 = 2147639553;
+pub const CEC_G_MODE: u32 = 2147770632;
+pub const USBDEVFS_RESETEP: u32 = 2147767555;
+pub const MEDIA_REQUEST_IOC_QUEUE: u32 = 31872;
+pub const USBDEVFS_ALLOC_STREAMS: u32 = 2148029724;
+pub const MGSL_IOCSXCTRL: u32 = 27925;
+pub const MEDIA_IOC_G_TOPOLOGY: u32 = 3225975812;
+pub const PPPIOCUNBRIDGECHAN: u32 = 29748;
+pub const F2FS_IOC_COMMIT_ATOMIC_WRITE: u32 = 62722;
+pub const ISST_IF_GET_PLATFORM_INFO: u32 = 2148072960;
+pub const SCIF_FENCE_MARK: u32 = 3222303503;
+pub const USBDEVFS_RELEASE_PORT: u32 = 2147767577;
+pub const VFIO_CHECK_EXTENSION: u32 = 15205;
+pub const BTRFS_IOC_QGROUP_LIMIT: u32 = 2150667307;
+pub const FAT_IOCTL_GET_VOLUME_ID: u32 = 2147774995;
+pub const UI_SET_PHYS: u32 = 1074287980;
+pub const FDWERRORGET: u32 = 2150105623;
+pub const VIDIOC_SUBDEV_G_EDID: u32 = 3223868968;
+pub const MGSL_IOCGSTATS: u32 = 27911;
+pub const RPROC_SET_SHUTDOWN_ON_RELEASE: u32 = 1074050817;
+pub const SIOCGSTAMP_NEW: u32 = 2148567302;
+pub const RTC_WKALM_RD: u32 = 2150133776;
+pub const PHN_GET_REG: u32 = 3221778432;
+pub const DELL_WMI_SMBIOS_CMD: u32 = 3224655616;
+pub const PHN_NOT_OH: u32 = 28676;
+pub const PPGETMODES: u32 = 2147774615;
+pub const CHIOGPARAMS: u32 = 2148819718;
+pub const VFIO_DEVICE_GET_GFX_DMABUF: u32 = 15219;
+pub const VHOST_SET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310947;
+pub const VIDIOC_SUBDEV_G_SELECTION: u32 = 3225441853;
+pub const BTRFS_IOC_RM_DEV_V2: u32 = 1342215226;
+pub const MGSL_IOCWAITGPIO: u32 = 3222301970;
+pub const PMU_IOC_CAN_SLEEP: u32 = 2148024837;
+pub const KCOV_ENABLE: u32 = 25444;
+pub const BTRFS_IOC_CLONE: u32 = 1074041865;
+pub const F2FS_IOC_DEFRAGMENT: u32 = 3222336776;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE: u32 = 1074012942;
+pub const AGPIOC_ALLOCATE: u32 = 3221766406;
+pub const NE_SET_USER_MEMORY_REGION: u32 = 1075359267;
+pub const MGSL_IOCTXABORT: u32 = 27910;
+pub const MGSL_IOCSGPIO: u32 = 1074818320;
+pub const LIRC_SET_REC_CARRIER: u32 = 1074030868;
+pub const F2FS_IOC_FLUSH_DEVICE: u32 = 1074328842;
+pub const SNAPSHOT_ATOMIC_RESTORE: u32 = 13060;
+pub const RTC_UIE_OFF: u32 = 28676;
+pub const BT_BMC_IOCTL_SMS_ATN: u32 = 45312;
+pub const NVME_IOCTL_ID: u32 = 20032;
+pub const NE_START_ENCLAVE: u32 = 3222318628;
+pub const VIDIOC_STREAMON: u32 = 1074026002;
+pub const FDPOLLDRVSTAT: u32 = 2152727059;
+pub const AUTOFS_DEV_IOCTL_READY: u32 = 3222836086;
+pub const VIDIOC_ENUMAUDOUT: u32 = 3224655426;
+pub const VIDIOC_SUBDEV_S_STD: u32 = 1074288152;
+pub const WDIOC_GETTIMELEFT: u32 = 2147768074;
+pub const ATM_GETLINKRATE: u32 = 1074815361;
+pub const RTC_WKALM_SET: u32 = 1076391951;
+pub const VHOST_GET_BACKEND_FEATURES: u32 = 2148052774;
+pub const ATMARP_ENCAP: u32 = 25061;
+pub const CAPI_GET_FLAGS: u32 = 2147762979;
+pub const IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772696;
+pub const DFL_FPGA_FME_PORT_ASSIGN: u32 = 1074050690;
+pub const NS_GET_OWNER_UID: u32 = 46852;
+pub const VIDIOC_OVERLAY: u32 = 1074025998;
+pub const BTRFS_IOC_WAIT_SYNC: u32 = 1074304022;
+pub const GPIOHANDLE_SET_CONFIG_IOCTL: u32 = 3226776586;
+pub const VHOST_GET_VRING_ENDIAN: u32 = 1074310932;
+pub const ATM_GETADDR: u32 = 1074815366;
+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 = 13067;
+pub const JSIOCSAXMAP: u32 = 1077963313;
+pub const F2FS_IOC_SET_COMPRESS_OPTION: u32 = 1073935638;
+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 = 15216;
+pub const VIDIOC_SUBDEV_ENUM_MBUS_CODE: u32 = 3224393218;
+pub const MMTIMER_GETOFFSET: u32 = 27904;
+pub const RIO_CM_CHAN_LISTEN: u32 = 1073898246;
+pub const ATM_SETSC: u32 = 1074029041;
+pub const F2FS_IOC_SHUTDOWN: u32 = 2147768445;
+pub const NVME_IOCTL_RESCAN: u32 = 20038;
+pub const BLKOPENZONE: u32 = 1074795142;
+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 = 25056;
+pub const IPMI_BMC_IOCTL_CLEAR_SMS_ATN: u32 = 45313;
+pub const HIDIOCGVERSION: u32 = 2147764225;
+pub const VIDIOC_S_INPUT: u32 = 3221509671;
+pub const VIDIOC_G_CROP: u32 = 3222558267;
+pub const LIRC_SET_WIDEBAND_RECEIVER: u32 = 1074030883;
+pub const EVIOCGEFFECTS: u32 = 2147763588;
+pub const UVCIOC_CTRL_QUERY: u32 = 3222304033;
+pub const IOC_OPAL_GENERIC_TABLE_RW: u32 = 1094217963;
+pub const FS_IOC_READ_VERITY_METADATA: u32 = 3223873159;
+pub const ND_IOCTL_SET_CONFIG_DATA: u32 = 3221769734;
+pub const USBDEVFS_GETDRIVER: u32 = 1090802952;
+pub const IDT77105_GETSTAT: u32 = 1074815282;
+pub const HIDIOCINITREPORT: u32 = 18437;
+pub const VFIO_DEVICE_GET_INFO: u32 = 15211;
+pub const RIO_CM_CHAN_RECEIVE: u32 = 3222299402;
+pub const RNDGETENTCNT: u32 = 2147766784;
+pub const PPPIOCNEWUNIT: u32 = 3221517374;
+pub const BTRFS_IOC_INO_LOOKUP: u32 = 3489698834;
+pub const FDRESET: u32 = 596;
+pub const IOC_PR_REGISTER: u32 = 1075343560;
+pub const HIDIOCSREPORT: u32 = 1074546696;
+pub const TEE_IOC_OPEN_SESSION: u32 = 2148574210;
+pub const TEE_IOC_SUPPL_RECV: u32 = 2148574214;
+pub const BTRFS_IOC_BALANCE_CTL: u32 = 1074041889;
+pub const GPIO_GET_LINEINFO_WATCH_IOCTL: u32 = 3225990155;
+pub const HIDIOCGRAWINFO: u32 = 2148026371;
+pub const PPPIOCSCOMPRESS: u32 = 1074820173;
+pub const USBDEVFS_CONNECTINFO: u32 = 1074287889;
+pub const BLKRESETZONE: u32 = 1074795139;
+pub const CHIOINITELEM: u32 = 25361;
+pub const NILFS_IOCTL_SET_ALLOC_RANGE: u32 = 1074818700;
+pub const AUTOFS_DEV_IOCTL_CATATONIC: u32 = 3222836089;
+pub const RIO_MPORT_MAINT_HDID_SET: u32 = 1073900801;
+pub const PPGETPHASE: u32 = 2147774617;
+pub const USBDEVFS_DISCONNECT_CLAIM: u32 = 2164806939;
+pub const FDMSGON: u32 = 581;
+pub const VIDIOC_G_SLICED_VBI_CAP: u32 = 3228849733;
+pub const BTRFS_IOC_BALANCE_V2: u32 = 3288372256;
+pub const MEDIA_REQUEST_IOC_REINIT: u32 = 31873;
+pub const IOC_OPAL_ERASE_LR: u32 = 1091596518;
+pub const FDFMTBEG: u32 = 583;
+pub const RNDRESEEDCRNG: u32 = 20999;
+pub const ISST_IF_GET_PHY_ID: u32 = 3221814785;
+pub const TUNSETNOCSUM: u32 = 1074025672;
+pub const SONET_GETSTAT: u32 = 2149867792;
+pub const TFD_IOC_SET_TICKS: u32 = 1074287616;
+pub const PPDATADIR: u32 = 1074032784;
+pub const IOC_OPAL_ENABLE_DISABLE_MBR: u32 = 1091596517;
+pub const GPIO_V2_GET_LINE_IOCTL: u32 = 3260068871;
+pub const RIO_CM_CHAN_SEND: u32 = 1074815753;
+pub const PPWCTLONIRQ: u32 = 1073836178;
+pub const SONYPI_IOCGBRT: u32 = 2147579392;
+pub const IOC_PR_RELEASE: u32 = 1074819274;
+pub const PPCLRIRQ: u32 = 2147774611;
+pub const IPMICTL_SET_MY_CHANNEL_LUN_CMD: u32 = 2147772698;
+pub const MGSL_IOCSXSYNC: u32 = 27923;
+pub const HPET_IE_OFF: u32 = 26626;
+pub const IOC_OPAL_ACTIVATE_USR: u32 = 1091596513;
+pub const SONET_SETFRAMING: u32 = 1074028821;
+pub const PERF_EVENT_IOC_PAUSE_OUTPUT: u32 = 1074013193;
+pub const BTRFS_IOC_LOGICAL_INO_V2: u32 = 3224933435;
+pub const VBG_IOCTL_HGCM_CONNECT: u32 = 3231471108;
+pub const BLKFINISHZONE: u32 = 1074795144;
+pub const EVIOCREVOKE: u32 = 1074021777;
+pub const VFIO_DEVICE_FEATURE: u32 = 15221;
+pub const CCISS_GETPCIINFO: u32 = 2148024833;
+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 = 1074026003;
+pub const VDUSE_DESTROY_DEV: u32 = 1090552067;
+pub const FDGETFDCSTAT: u32 = 2150105621;
+pub const VIDIOC_S_PRIORITY: u32 = 1074026052;
+pub const SNAPSHOT_FREEZE: u32 = 13057;
+pub const VIDIOC_ENUMINPUT: u32 = 3226490394;
+pub const ZATM_GETPOOLZ: u32 = 1074815330;
+pub const RIO_DISABLE_DOORBELL_RANGE: u32 = 1074294026;
+pub const GPIO_V2_GET_LINEINFO_WATCH_IOCTL: u32 = 3238048774;
+pub const VIDIOC_G_STD: u32 = 2148029975;
+pub const USBDEVFS_ALLOW_SUSPEND: u32 = 21794;
+pub const SONET_GETSTATZ: u32 = 2149867793;
+pub const SCIF_ACCEPTREG: u32 = 3221779205;
+pub const VIDIOC_ENCODER_CMD: u32 = 3223869005;
+pub const PPPIOCSRASYNCMAP: u32 = 1074033748;
+pub const IOCTL_MEI_NOTIFY_SET: u32 = 1074022402;
+pub const BTRFS_IOC_QUOTA_RESCAN_STATUS: u32 = 2151715885;
+pub const F2FS_IOC_GARBAGE_COLLECT: u32 = 1074066694;
+pub const ATMLEC_CTRL: u32 = 25040;
+pub const MATROXFB_GET_AVAILABLE_OUTPUTS: u32 = 2148036345;
+pub const DM_DEV_CREATE: u32 = 3241737475;
+pub const VHOST_VDPA_GET_VRING_NUM: u32 = 2147659638;
+pub const VIDIOC_G_CTRL: u32 = 3221771803;
+pub const NBD_CLEAR_SOCK: u32 = 43780;
+pub const VFIO_DEVICE_QUERY_GFX_PLANE: u32 = 15218;
+pub const WDIOC_KEEPALIVE: u32 = 2147768069;
+pub const NVME_IOCTL_SUBSYS_RESET: u32 = 20037;
+pub const PTP_EXTTS_REQUEST2: u32 = 1074806027;
+pub const PCITEST_BAR: u32 = 20481;
+pub const MGSL_IOCGGPIO: u32 = 2148560145;
+pub const EVIOCSREP: u32 = 1074283779;
+pub const VFIO_DEVICE_GET_IRQ_INFO: u32 = 15213;
+pub const HPET_DPI: u32 = 26629;
+pub const VDUSE_VQ_SETUP_KICKFD: u32 = 1074299158;
+pub const ND_IOCTL_CALL: u32 = 3225439754;
+pub const HIDIOCGDEVINFO: u32 = 2149337091;
+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 = 2147767875;
+pub const ATM_NEWBACKENDIF: u32 = 1073897971;
+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 = 1076909650;
+pub const DM_TABLE_LOAD: u32 = 3241737481;
+pub const F2FS_IOC_START_ATOMIC_WRITE: u32 = 62721;
+pub const VIDIOC_G_OUTPUT: u32 = 2147767854;
+pub const ATM_DROPPARTY: u32 = 1074029045;
+pub const CHIOGELEM: u32 = 1080845072;
+pub const BTRFS_IOC_GET_SUPPORTED_FEATURES: u32 = 2152240185;
+pub const EVIOCSKEYCODE: u32 = 1074283780;
+pub const NE_GET_IMAGE_LOAD_INFO: u32 = 3222318626;
+pub const TUNSETLINK: u32 = 1074025677;
+pub const FW_CDEV_IOC_ADD_DESCRIPTOR: u32 = 3222807302;
+pub const BTRFS_IOC_SCRUB_CANCEL: u32 = 37916;
+pub const PPS_SETPARAMS: u32 = 1074294946;
+pub const IOC_OPAL_LR_SETUP: u32 = 1093169379;
+pub const FW_CDEV_IOC_DEALLOCATE: u32 = 1074012931;
+pub const WDIOC_SETTIMEOUT: u32 = 3221509894;
+pub const IOC_WATCH_QUEUE_SET_FILTER: u32 = 22369;
+pub const CAPI_GET_MANUFACTURER: u32 = 3221504774;
+pub const VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY: u32 = 15222;
+pub const ASPEED_P2A_CTRL_IOCTL_SET_WINDOW: u32 = 1074836224;
+pub const VIDIOC_G_EDID: u32 = 3223868968;
+pub const F2FS_IOC_GARBAGE_COLLECT_RANGE: u32 = 1075377419;
+pub const RIO_MAP_INBOUND: u32 = 3223874833;
+pub const IOC_OPAL_TAKE_OWNERSHIP: u32 = 1091072222;
+pub const USBDEVFS_CLAIM_PORT: u32 = 2147767576;
+pub const VIDIOC_S_AUDIO: u32 = 1077171746;
+pub const FS_IOC_GET_ENCRYPTION_NONCE: u32 = 2148558363;
+pub const FW_CDEV_IOC_SEND_STREAM_PACKET: u32 = 1076372243;
+pub const BTRFS_IOC_SNAP_DESTROY: u32 = 1342215183;
+pub const SNAPSHOT_FREE: u32 = 13061;
+pub const I8K_GET_SPEED: u32 = 3221776773;
+pub const HIDIOCGREPORT: u32 = 1074546695;
+pub const HPET_EPI: u32 = 26628;
+pub const JSIOCSCORR: u32 = 1076128289;
+pub const IOC_PR_PREEMPT_ABORT: u32 = 1075343564;
+pub const RIO_MAP_OUTBOUND: u32 = 3223874831;
+pub const ATM_SETESI: u32 = 1074815372;
+pub const FW_CDEV_IOC_START_ISO: u32 = 1074799370;
+pub const ATM_DELADDR: u32 = 1074815369;
+pub const PPFCONTROL: u32 = 1073901710;
+pub const SONYPI_IOCGFAN: u32 = 2147579402;
+pub const RTC_IRQP_SET: u32 = 1074294796;
+pub const PCITEST_WRITE: u32 = 1074286596;
+pub const PPCLAIM: u32 = 28811;
+pub const VIDIOC_S_JPEGCOMP: u32 = 1082938942;
+pub const IPMICTL_UNREGISTER_FOR_CMD: u32 = 2147641615;
+pub const VHOST_SET_FEATURES: u32 = 1074310912;
+pub const TOSHIBA_ACPI_SCI: u32 = 3222828177;
+pub const VIDIOC_DQBUF: u32 = 3227014673;
+pub const BTRFS_IOC_BALANCE_PROGRESS: u32 = 2214630434;
+pub const BTRFS_IOC_SUBVOL_SETFLAGS: u32 = 1074304026;
+pub const ATMLEC_MCAST: u32 = 25042;
+pub const MMTIMER_GETFREQ: u32 = 2148035842;
+pub const VIDIOC_G_SELECTION: u32 = 3225441886;
+pub const RTC_ALM_SET: u32 = 1076129799;
+pub const PPPOEIOCSFWD: u32 = 1074311424;
+pub const IPMICTL_GET_MAINTENANCE_MODE_CMD: u32 = 2147772702;
+pub const FS_IOC_ENABLE_VERITY: u32 = 1082156677;
+pub const NILFS_IOCTL_GET_BDESCS: u32 = 3222826631;
+pub const FDFMTEND: u32 = 585;
+pub const DMA_BUF_SET_NAME: u32 = 1074291201;
+pub const UI_BEGIN_FF_UPLOAD: u32 = 3228063176;
+pub const RTC_UIE_ON: u32 = 28675;
+pub const PPRELEASE: u32 = 28812;
+pub const VFIO_IOMMU_UNMAP_DMA: u32 = 15218;
+pub const VIDIOC_OMAP3ISP_PRV_CFG: u32 = 3228587714;
+pub const GPIO_GET_LINEHANDLE_IOCTL: u32 = 3245126659;
+pub const VFAT_IOCTL_READDIR_BOTH: u32 = 2184212993;
+pub const NVME_IOCTL_ADMIN_CMD: u32 = 3225964097;
+pub const VHOST_SET_VRING_KICK: u32 = 1074310944;
+pub const BTRFS_IOC_SUBVOL_CREATE_V2: u32 = 1342215192;
+pub const BTRFS_IOC_SNAP_CREATE: u32 = 1342215169;
+pub const SONYPI_IOCGBAT2CAP: u32 = 2147644932;
+pub const PPNEGOT: u32 = 1074032785;
+pub const NBD_PRINT_DEBUG: u32 = 43782;
+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 = 2214630431;
+pub const VIDIOC_ENUM_FMT: u32 = 3225441794;
+pub const VIDIOC_G_INPUT: u32 = 2147767846;
+pub const VTPM_PROXY_IOC_NEW_DEV: u32 = 3222577408;
+pub const DFL_FPGA_FME_ERR_GET_IRQ_NUM: u32 = 2147792515;
+pub const ND_IOCTL_DIMM_FLAGS: u32 = 3221769731;
+pub const BTRFS_IOC_QUOTA_RESCAN: u32 = 1077974060;
+pub const MMTIMER_GETCOUNTER: u32 = 2148035849;
+pub const MATROXFB_GET_OUTPUT_MODE: u32 = 3221778170;
+pub const BTRFS_IOC_QUOTA_RESCAN_WAIT: u32 = 37934;
+pub const RIO_CM_CHAN_BIND: u32 = 1074291461;
+pub const HIDIOCGRDESC: u32 = 2416199682;
+pub const MGSL_IOCGIF: u32 = 27915;
+pub const VIDIOC_S_OUTPUT: u32 = 3221509679;
+pub const HIDIOCGREPORTINFO: u32 = 3222030345;
+pub const WDIOC_GETBOOTSTATUS: u32 = 2147768066;
+pub const VDUSE_VQ_GET_INFO: u32 = 3224404245;
+pub const ACRN_IOCTL_ASSIGN_PCIDEV: u32 = 1076142677;
+pub const BLKGETDISKSEQ: u32 = 2148012672;
+pub const ACRN_IOCTL_PM_GET_CPU_STATE: u32 = 3221791328;
+pub const ACRN_IOCTL_DESTROY_VM: u32 = 41489;
+pub const ACRN_IOCTL_SET_PTDEV_INTR: u32 = 1075094099;
+pub const ACRN_IOCTL_CREATE_IOREQ_CLIENT: u32 = 41522;
+pub const ACRN_IOCTL_IRQFD: u32 = 1075356273;
+pub const ACRN_IOCTL_CREATE_VM: u32 = 3224412688;
+pub const ACRN_IOCTL_INJECT_MSI: u32 = 1074831907;
+pub const ACRN_IOCTL_ATTACH_IOREQ_CLIENT: u32 = 41523;
+pub const ACRN_IOCTL_RESET_PTDEV_INTR: u32 = 1075094100;
+pub const ACRN_IOCTL_NOTIFY_REQUEST_FINISH: u32 = 1074307633;
+pub const ACRN_IOCTL_SET_IRQLINE: u32 = 1074307621;
+pub const ACRN_IOCTL_START_VM: u32 = 41490;
+pub const ACRN_IOCTL_SET_VCPU_REGS: u32 = 1093181974;
+pub const ACRN_IOCTL_SET_MEMSEG: u32 = 1075880513;
+pub const ACRN_IOCTL_PAUSE_VM: u32 = 41491;
+pub const ACRN_IOCTL_CLEAR_VM_IOREQ: u32 = 41525;
+pub const ACRN_IOCTL_UNSET_MEMSEG: u32 = 1075880514;
+pub const ACRN_IOCTL_IOEVENTFD: u32 = 1075880560;
+pub const ACRN_IOCTL_DEASSIGN_PCIDEV: u32 = 1076142678;
+pub const ACRN_IOCTL_RESET_VM: u32 = 41493;
+pub const ACRN_IOCTL_DESTROY_IOREQ_CLIENT: u32 = 41524;
+pub const ACRN_IOCTL_VM_INTR_MONITOR: u32 = 1074307620;
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/landlock.rs
new file mode 100644
index 0000000..d06925d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/landlock.rs
@@ -0,0 +1,120 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type addr_t = crate::ctypes::c_ulong;
+pub type saddr_t = crate::ctypes::c_long;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_ulong;
+pub type __kernel_ssize_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+pub type __kernel_ino_t = crate::ctypes::c_uint;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+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_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_sigset_t = crate::ctypes::c_ulong;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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(4))]
+#[derive(Copy, Clone)]
+pub struct __vector128 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128__bindgen_ty_1__bindgen_ty_1 {
+pub high: __u64,
+pub low: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __vector128__bindgen_ty_1 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1__bindgen_ty_1,
+pub u: [__u32; 4usize],
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/loop_device.rs
new file mode 100644
index 0000000..5690fb8
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/loop_device.rs
@@ -0,0 +1,154 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub type __kernel_size_t = crate::ctypes::c_ulong;
+pub type __kernel_ssize_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+pub type __kernel_ino_t = crate::ctypes::c_uint;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+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_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_sigset_t = crate::ctypes::c_ulong;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type addr_t = crate::ctypes::c_ulong;
+pub type saddr_t = crate::ctypes::c_long;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __s128 = i128;
+pub type __u128 = u128;
+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(4))]
+#[derive(Copy, Clone)]
+pub struct __vector128 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128__bindgen_ty_1__bindgen_ty_1 {
+pub high: __u64,
+pub low: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __vector128__bindgen_ty_1 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1__bindgen_ty_1,
+pub u: [__u32; 4usize],
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/mempolicy.rs
new file mode 100644
index 0000000..ad4957c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/mempolicy.rs
@@ -0,0 +1,175 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
+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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/net.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/net.rs
new file mode 100644
index 0000000..8f2741d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/net.rs
@@ -0,0 +1,3447 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type addr_t = crate::ctypes::c_ulong;
+pub type saddr_t = crate::ctypes::c_long;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_ulong;
+pub type __kernel_ssize_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+pub type __kernel_ino_t = crate::ctypes::c_uint;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+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_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_sigset_t = crate::ctypes::c_ulong;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C, packed(4))]
+#[derive(Copy, Clone)]
+pub struct __vector128 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128__bindgen_ty_1__bindgen_ty_1 {
+pub high: __u64,
+pub low: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 34usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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 SIOCGSTAMP_OLD: u32 = 35078;
+pub const SIOCGSTAMPNS_OLD: u32 = 35079;
+pub const SOL_SOCKET: u32 = 1;
+pub const SO_DEBUG: u32 = 1;
+pub const SO_REUSEADDR: u32 = 2;
+pub const SO_TYPE: u32 = 3;
+pub const SO_ERROR: u32 = 4;
+pub const SO_DONTROUTE: u32 = 5;
+pub const SO_BROADCAST: u32 = 6;
+pub const SO_SNDBUF: u32 = 7;
+pub const SO_RCVBUF: u32 = 8;
+pub const SO_SNDBUFFORCE: u32 = 32;
+pub const SO_RCVBUFFORCE: u32 = 33;
+pub const SO_KEEPALIVE: u32 = 9;
+pub const SO_OOBINLINE: u32 = 10;
+pub const SO_NO_CHECK: u32 = 11;
+pub const SO_PRIORITY: u32 = 12;
+pub const SO_LINGER: u32 = 13;
+pub const SO_BSDCOMPAT: u32 = 14;
+pub const SO_REUSEPORT: u32 = 15;
+pub const SO_PASSCRED: u32 = 16;
+pub const SO_PEERCRED: u32 = 17;
+pub const SO_RCVLOWAT: u32 = 18;
+pub const SO_SNDLOWAT: u32 = 19;
+pub const SO_RCVTIMEO_OLD: u32 = 20;
+pub const SO_SNDTIMEO_OLD: u32 = 21;
+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_ACCEPTCONN: u32 = 30;
+pub const SO_PEERSEC: u32 = 31;
+pub const SO_PASSSEC: u32 = 34;
+pub const SO_MARK: u32 = 36;
+pub const SO_PROTOCOL: u32 = 38;
+pub const SO_DOMAIN: u32 = 39;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+pub const SO_TIMESTAMP: u32 = 29;
+pub const SO_TIMESTAMPNS: u32 = 35;
+pub const SO_TIMESTAMPING: u32 = 37;
+pub const SO_RCVTIMEO: u32 = 20;
+pub const SO_SNDTIMEO: u32 = 21;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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 = 1;
+pub const SOCK_DGRAM: u32 = 2;
+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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __vector128__bindgen_ty_1 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1__bindgen_ty_1,
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/netlink.rs
new file mode 100644
index 0000000..b2cabbb
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/netlink.rs
@@ -0,0 +1,2966 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type addr_t = crate::ctypes::c_ulong;
+pub type saddr_t = crate::ctypes::c_long;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_ulong;
+pub type __kernel_ssize_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+pub type __kernel_ino_t = crate::ctypes::c_uint;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+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_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_sigset_t = crate::ctypes::c_ulong;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C, packed(4))]
+#[derive(Copy, Clone)]
+pub struct __vector128 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128__bindgen_ty_1__bindgen_ty_1 {
+pub high: __u64,
+pub low: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+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 __vector128__bindgen_ty_1 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1__bindgen_ty_1,
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/s390x/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/prctl.rs
new file mode 100644
index 0000000..6f4c20f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/prctl.rs
@@ -0,0 +1,282 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type addr_t = crate::ctypes::c_ulong;
+pub type saddr_t = crate::ctypes::c_long;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_ulong;
+pub type __kernel_ssize_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+pub type __kernel_ino_t = crate::ctypes::c_uint;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+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_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_sigset_t = crate::ctypes::c_ulong;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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(4))]
+#[derive(Copy, Clone)]
+pub struct __vector128 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128__bindgen_ty_1__bindgen_ty_1 {
+pub high: __u64,
+pub low: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __vector128__bindgen_ty_1 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1__bindgen_ty_1,
+pub u: [__u32; 4usize],
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/ptrace.rs
new file mode 100644
index 0000000..2148d8d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/ptrace.rs
@@ -0,0 +1,1749 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type addr_t = crate::ctypes::c_ulong;
+pub type saddr_t = crate::ctypes::c_long;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_ulong;
+pub type __kernel_ssize_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+pub type __kernel_ino_t = crate::ctypes::c_uint;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+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_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_sigset_t = crate::ctypes::c_ulong;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C, packed(4))]
+#[derive(Copy, Clone)]
+pub struct __vector128 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128__bindgen_ty_1__bindgen_ty_1 {
+pub high: __u64,
+pub low: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct freg_t__bindgen_ty_1 {
+pub hi: __u32,
+pub lo: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct s390_fp_regs {
+pub fpc: __u32,
+pub pad: __u32,
+pub fprs: [freg_t; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct psw_t {
+pub mask: crate::ctypes::c_ulong,
+pub addr: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct s390_regs {
+pub psw: psw_t,
+pub gprs: [crate::ctypes::c_ulong; 16usize],
+pub acrs: [crate::ctypes::c_uint; 16usize],
+pub orig_gpr2: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_pt_regs {
+pub args: [crate::ctypes::c_ulong; 1usize],
+pub psw: psw_t,
+pub gprs: [crate::ctypes::c_ulong; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct per_cr_words {
+pub cr: [crate::ctypes::c_ulong; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct per_cr_bits {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
+pub starting_addr: crate::ctypes::c_ulong,
+pub ending_addr: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct per_lowcore_words {
+pub perc_atmid: crate::ctypes::c_ushort,
+pub address: crate::ctypes::c_ulong,
+pub access_id: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct per_lowcore_bits {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub address: crate::ctypes::c_ulong,
+pub _bitfield_align_2: [u8; 0],
+pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub __bindgen_padding_0: [u8; 7usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct per_struct {
+pub control_regs: per_struct__bindgen_ty_1,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub starting_addr: crate::ctypes::c_ulong,
+pub ending_addr: crate::ctypes::c_ulong,
+pub lowcore: per_struct__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_area {
+pub len: crate::ctypes::c_uint,
+pub kernel_addr: crate::ctypes::c_ulong,
+pub process_addr: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptprot_area {
+pub lowaddr: crate::ctypes::c_ulong,
+pub hiaddr: crate::ctypes::c_ulong,
+pub prot: ptprot_flags,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct user_regs_struct {
+pub psw: psw_t,
+pub gprs: [crate::ctypes::c_ulong; 16usize],
+pub acrs: [crate::ctypes::c_uint; 16usize],
+pub orig_gpr2: crate::ctypes::c_ulong,
+pub fp_regs: s390_fp_regs,
+pub per_info: per_struct,
+pub ieee_instruction_pointer: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const PT_PSWMASK: u32 = 0;
+pub const PT_PSWADDR: u32 = 8;
+pub const PT_GPR0: u32 = 16;
+pub const PT_GPR1: u32 = 24;
+pub const PT_GPR2: u32 = 32;
+pub const PT_GPR3: u32 = 40;
+pub const PT_GPR4: u32 = 48;
+pub const PT_GPR5: u32 = 56;
+pub const PT_GPR6: u32 = 64;
+pub const PT_GPR7: u32 = 72;
+pub const PT_GPR8: u32 = 80;
+pub const PT_GPR9: u32 = 88;
+pub const PT_GPR10: u32 = 96;
+pub const PT_GPR11: u32 = 104;
+pub const PT_GPR12: u32 = 112;
+pub const PT_GPR13: u32 = 120;
+pub const PT_GPR14: u32 = 128;
+pub const PT_GPR15: u32 = 136;
+pub const PT_ACR0: u32 = 144;
+pub const PT_ACR1: u32 = 148;
+pub const PT_ACR2: u32 = 152;
+pub const PT_ACR3: u32 = 156;
+pub const PT_ACR4: u32 = 160;
+pub const PT_ACR5: u32 = 164;
+pub const PT_ACR6: u32 = 168;
+pub const PT_ACR7: u32 = 172;
+pub const PT_ACR8: u32 = 176;
+pub const PT_ACR9: u32 = 180;
+pub const PT_ACR10: u32 = 184;
+pub const PT_ACR11: u32 = 188;
+pub const PT_ACR12: u32 = 192;
+pub const PT_ACR13: u32 = 196;
+pub const PT_ACR14: u32 = 200;
+pub const PT_ACR15: u32 = 204;
+pub const PT_ORIGGPR2: u32 = 208;
+pub const PT_FPC: u32 = 216;
+pub const PT_FPR0: u32 = 224;
+pub const PT_FPR1: u32 = 232;
+pub const PT_FPR2: u32 = 240;
+pub const PT_FPR3: u32 = 248;
+pub const PT_FPR4: u32 = 256;
+pub const PT_FPR5: u32 = 264;
+pub const PT_FPR6: u32 = 272;
+pub const PT_FPR7: u32 = 280;
+pub const PT_FPR8: u32 = 288;
+pub const PT_FPR9: u32 = 296;
+pub const PT_FPR10: u32 = 304;
+pub const PT_FPR11: u32 = 312;
+pub const PT_FPR12: u32 = 320;
+pub const PT_FPR13: u32 = 328;
+pub const PT_FPR14: u32 = 336;
+pub const PT_FPR15: u32 = 344;
+pub const PT_CR_9: u32 = 352;
+pub const PT_CR_10: u32 = 360;
+pub const PT_CR_11: u32 = 368;
+pub const PT_IEEE_IP: u32 = 424;
+pub const PT_LASTOFF: u32 = 424;
+pub const PT_ENDREGS: u32 = 431;
+pub const GPR_SIZE: u32 = 8;
+pub const CR_SIZE: u32 = 8;
+pub const STACK_FRAME_OVERHEAD: u32 = 160;
+pub const NUM_GPRS: u32 = 16;
+pub const NUM_FPRS: u32 = 16;
+pub const NUM_CRS: u32 = 16;
+pub const NUM_ACRS: u32 = 16;
+pub const NUM_CR_WORDS: u32 = 3;
+pub const FPR_SIZE: u32 = 8;
+pub const FPC_SIZE: u32 = 4;
+pub const FPC_PAD_SIZE: u32 = 4;
+pub const ACR_SIZE: u32 = 4;
+pub const PTRACE_OLDSETOPTIONS: u32 = 21;
+pub const PTRACE_SYSEMU: u32 = 31;
+pub const PTRACE_SYSEMU_SINGLESTEP: u32 = 32;
+pub const FPC_EXCEPTION_MASK: u32 = 4160749568;
+pub const FPC_FLAGS_MASK: u32 = 16252928;
+pub const FPC_DXC_MASK: u32 = 65280;
+pub const FPC_RM_MASK: u32 = 3;
+pub const PER_EM_MASK: u32 = 3892314112;
+pub const PTRACE_PEEKUSR_AREA: u32 = 20480;
+pub const PTRACE_POKEUSR_AREA: u32 = 20481;
+pub const PTRACE_PEEKTEXT_AREA: u32 = 20482;
+pub const PTRACE_PEEKDATA_AREA: u32 = 20483;
+pub const PTRACE_POKETEXT_AREA: u32 = 20484;
+pub const PTRACE_POKEDATA_AREA: u32 = 20485;
+pub const PTRACE_GET_LAST_BREAK: u32 = 20486;
+pub const PTRACE_PEEK_SYSTEM_CALL: u32 = 20487;
+pub const PTRACE_POKE_SYSTEM_CALL: u32 = 20488;
+pub const PTRACE_ENABLE_TE: u32 = 20489;
+pub const PTRACE_DISABLE_TE: u32 = 20496;
+pub const PTRACE_TE_ABORT_RAND: u32 = 20497;
+pub const PTRACE_SINGLEBLOCK: u32 = 12;
+pub const PTRACE_PROT: u32 = 21;
+pub const S390_SYSCALL_SIZE: u32 = 2;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum ptprot_flags {
+ptprot_set_access_watchpoint = 0,
+ptprot_set_write_watchpoint = 1,
+ptprot_disable_watchpoint = 2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __vector128__bindgen_ty_1 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1__bindgen_ty_1,
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union freg_t {
+pub f: f32,
+pub d: f64,
+pub ui: __u64,
+pub fp: freg_t__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union per_struct__bindgen_ty_1 {
+pub words: per_cr_words,
+pub bits: per_cr_bits,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union per_struct__bindgen_ty_2 {
+pub words: per_lowcore_words,
+pub bits: per_lowcore_bits,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl per_cr_bits {
+#[inline]
+pub fn em_branching(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_em_branching(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(32usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn em_branching_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 32usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_em_branching_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 32usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn em_instruction_fetch(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_em_instruction_fetch(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(33usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn em_instruction_fetch_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 33usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_em_instruction_fetch_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 33usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn em_storage_alteration(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_em_storage_alteration(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(34usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn em_storage_alteration_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 34usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_em_storage_alteration_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 34usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn em_gpr_alt_unused(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_em_gpr_alt_unused(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(35usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn em_gpr_alt_unused_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 35usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_em_gpr_alt_unused_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 35usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn em_store_real_address(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_em_store_real_address(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(36usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn em_store_real_address_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 36usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_em_store_real_address_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 36usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn branch_addr_ctl(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(40usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_branch_addr_ctl(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(40usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn branch_addr_ctl_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 40usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_branch_addr_ctl_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 40usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn storage_alt_space_ctl(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(42usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_storage_alt_space_ctl(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(42usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn storage_alt_space_ctl_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 42usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_storage_alt_space_ctl_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 42usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(em_branching: crate::ctypes::c_uint, em_instruction_fetch: crate::ctypes::c_uint, em_storage_alteration: crate::ctypes::c_uint, em_gpr_alt_unused: crate::ctypes::c_uint, em_store_real_address: crate::ctypes::c_uint, branch_addr_ctl: crate::ctypes::c_uint, storage_alt_space_ctl: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 8usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
+__bindgen_bitfield_unit.set(32usize, 1u8, {
+let em_branching: u32 = unsafe { ::core::mem::transmute(em_branching) };
+em_branching as u64
+});
+__bindgen_bitfield_unit.set(33usize, 1u8, {
+let em_instruction_fetch: u32 = unsafe { ::core::mem::transmute(em_instruction_fetch) };
+em_instruction_fetch as u64
+});
+__bindgen_bitfield_unit.set(34usize, 1u8, {
+let em_storage_alteration: u32 = unsafe { ::core::mem::transmute(em_storage_alteration) };
+em_storage_alteration as u64
+});
+__bindgen_bitfield_unit.set(35usize, 1u8, {
+let em_gpr_alt_unused: u32 = unsafe { ::core::mem::transmute(em_gpr_alt_unused) };
+em_gpr_alt_unused as u64
+});
+__bindgen_bitfield_unit.set(36usize, 1u8, {
+let em_store_real_address: u32 = unsafe { ::core::mem::transmute(em_store_real_address) };
+em_store_real_address as u64
+});
+__bindgen_bitfield_unit.set(40usize, 1u8, {
+let branch_addr_ctl: u32 = unsafe { ::core::mem::transmute(branch_addr_ctl) };
+branch_addr_ctl as u64
+});
+__bindgen_bitfield_unit.set(42usize, 1u8, {
+let storage_alt_space_ctl: u32 = unsafe { ::core::mem::transmute(storage_alt_space_ctl) };
+storage_alt_space_ctl as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl per_lowcore_bits {
+#[inline]
+pub fn perc_branching(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_perc_branching(&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 unsafe fn perc_branching_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_perc_branching_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn perc_instruction_fetch(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_perc_instruction_fetch(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn perc_instruction_fetch_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_perc_instruction_fetch_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn perc_storage_alteration(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_perc_storage_alteration(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn perc_storage_alteration_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_perc_storage_alteration_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn perc_gpr_alt_unused(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_perc_gpr_alt_unused(&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 unsafe fn perc_gpr_alt_unused_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_perc_gpr_alt_unused_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn perc_store_real_address(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_perc_store_real_address(&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 unsafe fn perc_store_real_address_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_perc_store_real_address_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn atmid_psw_bit_31(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_atmid_psw_bit_31(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn atmid_psw_bit_31_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_atmid_psw_bit_31_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn atmid_validity_bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_atmid_validity_bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn atmid_validity_bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_atmid_validity_bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn atmid_psw_bit_32(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_atmid_psw_bit_32(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn atmid_psw_bit_32_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_atmid_psw_bit_32_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn atmid_psw_bit_5(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_atmid_psw_bit_5(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn atmid_psw_bit_5_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_atmid_psw_bit_5_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn atmid_psw_bit_16(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_atmid_psw_bit_16(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn atmid_psw_bit_16_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_atmid_psw_bit_16_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn atmid_psw_bit_17(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_atmid_psw_bit_17(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn atmid_psw_bit_17_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_atmid_psw_bit_17_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn si(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 2u8) as u32) }
+}
+#[inline]
+pub fn set_si(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(14usize, 2u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn si_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_si_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 14usize, 2u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(
+perc_branching: crate::ctypes::c_uint,
+perc_instruction_fetch: crate::ctypes::c_uint,
+perc_storage_alteration: crate::ctypes::c_uint,
+perc_gpr_alt_unused: crate::ctypes::c_uint,
+perc_store_real_address: crate::ctypes::c_uint,
+atmid_psw_bit_31: crate::ctypes::c_uint,
+atmid_validity_bit: crate::ctypes::c_uint,
+atmid_psw_bit_32: crate::ctypes::c_uint,
+atmid_psw_bit_5: crate::ctypes::c_uint,
+atmid_psw_bit_16: crate::ctypes::c_uint,
+atmid_psw_bit_17: crate::ctypes::c_uint,
+si: crate::ctypes::c_uint,
+) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let perc_branching: u32 = unsafe { ::core::mem::transmute(perc_branching) };
+perc_branching as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let perc_instruction_fetch: u32 = unsafe { ::core::mem::transmute(perc_instruction_fetch) };
+perc_instruction_fetch as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let perc_storage_alteration: u32 = unsafe { ::core::mem::transmute(perc_storage_alteration) };
+perc_storage_alteration as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let perc_gpr_alt_unused: u32 = unsafe { ::core::mem::transmute(perc_gpr_alt_unused) };
+perc_gpr_alt_unused as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let perc_store_real_address: u32 = unsafe { ::core::mem::transmute(perc_store_real_address) };
+perc_store_real_address as u64
+});
+__bindgen_bitfield_unit.set(8usize, 1u8, {
+let atmid_psw_bit_31: u32 = unsafe { ::core::mem::transmute(atmid_psw_bit_31) };
+atmid_psw_bit_31 as u64
+});
+__bindgen_bitfield_unit.set(9usize, 1u8, {
+let atmid_validity_bit: u32 = unsafe { ::core::mem::transmute(atmid_validity_bit) };
+atmid_validity_bit as u64
+});
+__bindgen_bitfield_unit.set(10usize, 1u8, {
+let atmid_psw_bit_32: u32 = unsafe { ::core::mem::transmute(atmid_psw_bit_32) };
+atmid_psw_bit_32 as u64
+});
+__bindgen_bitfield_unit.set(11usize, 1u8, {
+let atmid_psw_bit_5: u32 = unsafe { ::core::mem::transmute(atmid_psw_bit_5) };
+atmid_psw_bit_5 as u64
+});
+__bindgen_bitfield_unit.set(12usize, 1u8, {
+let atmid_psw_bit_16: u32 = unsafe { ::core::mem::transmute(atmid_psw_bit_16) };
+atmid_psw_bit_16 as u64
+});
+__bindgen_bitfield_unit.set(13usize, 1u8, {
+let atmid_psw_bit_17: u32 = unsafe { ::core::mem::transmute(atmid_psw_bit_17) };
+atmid_psw_bit_17 as u64
+});
+__bindgen_bitfield_unit.set(14usize, 2u8, {
+let si: u32 = unsafe { ::core::mem::transmute(si) };
+si as u64
+});
+__bindgen_bitfield_unit
+}
+#[inline]
+pub fn access_id(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_2.get(4usize, 4u8) as u32) }
+}
+#[inline]
+pub fn set_access_id(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_2.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn access_id_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_2), 4usize, 4u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_access_id_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_2), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_2(access_id: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let access_id: u32 = unsafe { ::core::mem::transmute(access_id) };
+access_id as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl per_struct {
+#[inline]
+pub fn single_step(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_single_step(&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 unsafe fn single_step_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_single_step_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn instruction_fetch(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_instruction_fetch(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn instruction_fetch_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_instruction_fetch_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(single_step: crate::ctypes::c_uint, instruction_fetch: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let single_step: u32 = unsafe { ::core::mem::transmute(single_step) };
+single_step as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let instruction_fetch: u32 = unsafe { ::core::mem::transmute(instruction_fetch) };
+instruction_fetch as u64
+});
+__bindgen_bitfield_unit
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/system.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/system.rs
new file mode 100644
index 0000000..e3947a4
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/system.rs
@@ -0,0 +1,152 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type addr_t = crate::ctypes::c_ulong;
+pub type saddr_t = crate::ctypes::c_long;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_ulong;
+pub type __kernel_ssize_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+pub type __kernel_ino_t = crate::ctypes::c_uint;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+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_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_sigset_t = crate::ctypes::c_ulong;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C, packed(4))]
+#[derive(Copy, Clone)]
+pub struct __vector128 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128__bindgen_ty_1__bindgen_ty_1 {
+pub high: __u64,
+pub low: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct sysinfo {
+pub uptime: __kernel_long_t,
+pub loads: [__kernel_ulong_t; 3usize],
+pub totalram: __kernel_ulong_t,
+pub freeram: __kernel_ulong_t,
+pub sharedram: __kernel_ulong_t,
+pub bufferram: __kernel_ulong_t,
+pub totalswap: __kernel_ulong_t,
+pub freeswap: __kernel_ulong_t,
+pub procs: __u16,
+pub pad: __u16,
+pub totalhigh: __kernel_ulong_t,
+pub freehigh: __kernel_ulong_t,
+pub mem_unit: __u32,
+pub _f: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct oldold_utsname {
+pub sysname: [crate::ctypes::c_char; 9usize],
+pub nodename: [crate::ctypes::c_char; 9usize],
+pub release: [crate::ctypes::c_char; 9usize],
+pub version: [crate::ctypes::c_char; 9usize],
+pub machine: [crate::ctypes::c_char; 9usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct old_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct new_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+pub domainname: [crate::ctypes::c_char; 65usize],
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __vector128__bindgen_ty_1 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1__bindgen_ty_1,
+pub u: [__u32; 4usize],
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/s390x/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/s390x/xdp.rs
new file mode 100644
index 0000000..6b9bf80
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/s390x/xdp.rs
@@ -0,0 +1,211 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type addr_t = crate::ctypes::c_ulong;
+pub type saddr_t = crate::ctypes::c_long;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_ulong;
+pub type __kernel_ssize_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+pub type __kernel_ino_t = crate::ctypes::c_uint;
+pub type __kernel_mode_t = crate::ctypes::c_uint;
+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_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_sigset_t = crate::ctypes::c_ulong;
+pub type __kernel_long_t = crate::ctypes::c_long;
+pub type __kernel_ulong_t = crate::ctypes::c_ulong;
+pub type __kernel_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_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 __s128 = i128;
+pub type __u128 = u128;
+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(4))]
+#[derive(Copy, Clone)]
+pub struct __vector128 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __vector128__bindgen_ty_1__bindgen_ty_1 {
+pub high: __u64,
+pub low: __u64,
+}
+#[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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __vector128__bindgen_ty_1 {
+pub __bindgen_anon_1: __vector128__bindgen_ty_1__bindgen_ty_1,
+pub u: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/bootparam.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/bootparam.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/btrfs.rs
new file mode 100644
index 0000000..e95c606
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/btrfs.rs
@@ -0,0 +1,1867 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+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_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const _IOC_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 13;
+pub const _IOC_DIRBITS: u32 = 3;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 8191;
+pub const _IOC_XSIZEMASK: u32 = 16383;
+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_NONE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const _IOC_WRITE: u32 = 4;
+pub const IOC_IN: u32 = 2147483648;
+pub const IOC_OUT: u32 = 1073741824;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/elf_uapi.rs
new file mode 100644
index 0000000..8cef967
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/elf_uapi.rs
@@ -0,0 +1,522 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+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_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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc/errno.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/errno.rs
new file mode 100644
index 0000000..994fb91
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/errno.rs
@@ -0,0 +1,137 @@
+/* automatically generated by rust-bindgen 0.71.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 EWOULDBLOCK: u32 = 11;
+pub const EINPROGRESS: u32 = 36;
+pub const EALREADY: u32 = 37;
+pub const ENOTSOCK: u32 = 38;
+pub const EDESTADDRREQ: u32 = 39;
+pub const EMSGSIZE: u32 = 40;
+pub const EPROTOTYPE: u32 = 41;
+pub const ENOPROTOOPT: u32 = 42;
+pub const EPROTONOSUPPORT: u32 = 43;
+pub const ESOCKTNOSUPPORT: u32 = 44;
+pub const EOPNOTSUPP: u32 = 45;
+pub const EPFNOSUPPORT: u32 = 46;
+pub const EAFNOSUPPORT: u32 = 47;
+pub const EADDRINUSE: u32 = 48;
+pub const EADDRNOTAVAIL: u32 = 49;
+pub const ENETDOWN: u32 = 50;
+pub const ENETUNREACH: u32 = 51;
+pub const ENETRESET: u32 = 52;
+pub const ECONNABORTED: u32 = 53;
+pub const ECONNRESET: u32 = 54;
+pub const ENOBUFS: u32 = 55;
+pub const EISCONN: u32 = 56;
+pub const ENOTCONN: u32 = 57;
+pub const ESHUTDOWN: u32 = 58;
+pub const ETOOMANYREFS: u32 = 59;
+pub const ETIMEDOUT: u32 = 60;
+pub const ECONNREFUSED: u32 = 61;
+pub const ELOOP: u32 = 62;
+pub const ENAMETOOLONG: u32 = 63;
+pub const EHOSTDOWN: u32 = 64;
+pub const EHOSTUNREACH: u32 = 65;
+pub const ENOTEMPTY: u32 = 66;
+pub const EPROCLIM: u32 = 67;
+pub const EUSERS: u32 = 68;
+pub const EDQUOT: u32 = 69;
+pub const ESTALE: u32 = 70;
+pub const EREMOTE: u32 = 71;
+pub const ENOSTR: u32 = 72;
+pub const ETIME: u32 = 73;
+pub const ENOSR: u32 = 74;
+pub const ENOMSG: u32 = 75;
+pub const EBADMSG: u32 = 76;
+pub const EIDRM: u32 = 77;
+pub const EDEADLK: u32 = 78;
+pub const ENOLCK: u32 = 79;
+pub const ENONET: u32 = 80;
+pub const ERREMOTE: u32 = 81;
+pub const ENOLINK: u32 = 82;
+pub const EADV: u32 = 83;
+pub const ESRMNT: u32 = 84;
+pub const ECOMM: u32 = 85;
+pub const EPROTO: u32 = 86;
+pub const EMULTIHOP: u32 = 87;
+pub const EDOTDOT: u32 = 88;
+pub const EREMCHG: u32 = 89;
+pub const ENOSYS: u32 = 90;
+pub const ESTRPIPE: u32 = 91;
+pub const EOVERFLOW: u32 = 92;
+pub const EBADFD: u32 = 93;
+pub const ECHRNG: u32 = 94;
+pub const EL2NSYNC: u32 = 95;
+pub const EL3HLT: u32 = 96;
+pub const EL3RST: u32 = 97;
+pub const ELNRNG: u32 = 98;
+pub const EUNATCH: u32 = 99;
+pub const ENOCSI: u32 = 100;
+pub const EL2HLT: u32 = 101;
+pub const EBADE: u32 = 102;
+pub const EBADR: u32 = 103;
+pub const EXFULL: u32 = 104;
+pub const ENOANO: u32 = 105;
+pub const EBADRQC: u32 = 106;
+pub const EBADSLT: u32 = 107;
+pub const EDEADLOCK: u32 = 108;
+pub const EBFONT: u32 = 109;
+pub const ELIBEXEC: u32 = 110;
+pub const ENODATA: u32 = 111;
+pub const ELIBBAD: u32 = 112;
+pub const ENOPKG: u32 = 113;
+pub const ELIBACC: u32 = 114;
+pub const ENOTUNIQ: u32 = 115;
+pub const ERESTART: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EILSEQ: u32 = 122;
+pub const ELIBMAX: u32 = 123;
+pub const ELIBSCN: u32 = 124;
+pub const ENOMEDIUM: u32 = 125;
+pub const EMEDIUMTYPE: u32 = 126;
+pub const ECANCELED: u32 = 127;
+pub const ENOKEY: u32 = 128;
+pub const EKEYEXPIRED: u32 = 129;
+pub const EKEYREVOKED: u32 = 130;
+pub const EKEYREJECTED: u32 = 131;
+pub const EOWNERDEAD: u32 = 132;
+pub const ENOTRECOVERABLE: u32 = 133;
+pub const ERFKILL: u32 = 134;
+pub const EHWPOISON: u32 = 135;
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc/general.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/general.rs
new file mode 100644
index 0000000..b99fba6
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/general.rs
@@ -0,0 +1,3370 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+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_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type cap_user_header_t = *mut __user_cap_header_struct;
+pub type cap_user_data_t = *mut __user_cap_data_struct;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+pub type old_sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_ulong;
+pub type __fsword_t = __u32;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 32usize],
+}
+#[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,
+pub __unused: crate::ctypes::c_short,
+}
+#[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,
+pub __unused: crate::ctypes::c_short,
+}
+#[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 epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 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 sigstack {
+pub the_stack: *mut crate::ctypes::c_char,
+pub cur_status: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaction {
+pub sa_handler: __sighandler_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_restorer: __sigrestore_t,
+pub sa_mask: sigset_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct old_sigaction {
+pub sa_handler: __sighandler_t,
+pub sa_mask: old_sigset_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_restorer: ::core::option::Option<unsafe extern "C" fn()>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaltstack {
+pub ss_sp: *mut crate::ctypes::c_void,
+pub ss_flags: crate::ctypes::c_int,
+pub ss_size: __kernel_size_t,
+}
+#[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; 4usize],
+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; 4usize],
+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_errno: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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; 17usize],
+}
+#[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; 19usize],
+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; 19usize],
+pub c_ispeed: speed_t,
+pub c_ospeed: speed_t,
+}
+#[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_uchar,
+pub c_cc: [crate::ctypes::c_uchar; 8usize],
+}
+#[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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulonglong,
+pub d_off: crate::ctypes::c_longlong,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_ushort,
+pub st_ino: __kernel_ino_t,
+pub st_mode: __kernel_mode_t,
+pub st_nlink: crate::ctypes::c_short,
+pub st_uid: crate::ctypes::c_ushort,
+pub st_gid: crate::ctypes::c_ushort,
+pub st_rdev: crate::ctypes::c_ushort,
+pub st_size: crate::ctypes::c_long,
+pub st_atime: crate::ctypes::c_long,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_long,
+pub st_mtime_nsec: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_long,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub st_blksize: crate::ctypes::c_long,
+pub st_blocks: crate::ctypes::c_long,
+pub __unused4: [crate::ctypes::c_ulong; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat64 {
+pub st_dev: crate::ctypes::c_ulonglong,
+pub st_ino: crate::ctypes::c_ulonglong,
+pub st_mode: crate::ctypes::c_uint,
+pub st_nlink: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_uint,
+pub st_gid: crate::ctypes::c_uint,
+pub st_rdev: crate::ctypes::c_ulonglong,
+pub __pad3: [crate::ctypes::c_uchar; 8usize],
+pub st_size: crate::ctypes::c_longlong,
+pub st_blksize: crate::ctypes::c_uint,
+pub __pad4: [crate::ctypes::c_uchar; 8usize],
+pub st_blocks: crate::ctypes::c_uint,
+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 __unused4: crate::ctypes::c_uint,
+pub __unused5: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u32,
+pub f_bfree: __u32,
+pub f_bavail: __u32,
+pub f_files: __u32,
+pub f_ffree: __u32,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct compat_statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[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 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+pub const LINUX_VERSION_SUBLEVEL: u32 = 0;
+pub const AT_SYSINFO_EHDR: u32 = 33;
+pub const AT_ADI_BLKSZ: u32 = 48;
+pub const AT_ADI_NBITS: u32 = 49;
+pub const AT_ADI_UEONADI: u32 = 50;
+pub const AT_VECTOR_SIZE_ARCH: u32 = 4;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+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 FASYNC: u32 = 64;
+pub const O_CREAT: u32 = 512;
+pub const O_TRUNC: u32 = 1024;
+pub const O_EXCL: u32 = 2048;
+pub const O_DSYNC: u32 = 8192;
+pub const O_NONBLOCK: u32 = 16384;
+pub const O_NDELAY: u32 = 16388;
+pub const O_NOCTTY: u32 = 32768;
+pub const O_LARGEFILE: u32 = 262144;
+pub const O_DIRECT: u32 = 1048576;
+pub const O_NOATIME: u32 = 2097152;
+pub const O_CLOEXEC: u32 = 4194304;
+pub const __O_SYNC: u32 = 8388608;
+pub const O_SYNC: u32 = 8396800;
+pub const O_PATH: u32 = 16777216;
+pub const __O_TMPFILE: u32 = 33554432;
+pub const F_GETOWN: u32 = 5;
+pub const F_SETOWN: u32 = 6;
+pub const F_GETLK: u32 = 7;
+pub const F_SETLK: u32 = 8;
+pub const F_SETLKW: u32 = 9;
+pub const F_RDLCK: u32 = 1;
+pub const F_WRLCK: u32 = 2;
+pub const F_UNLCK: u32 = 3;
+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_TMPFILE: u32 = 33619968;
+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_GETLK64: u32 = 12;
+pub const F_SETLK64: u32 = 13;
+pub const F_SETLKW64: u32 = 14;
+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_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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+pub const EPOLL_CLOEXEC: u32 = 4194304;
+pub const EPOLL_CTL_ADD: u32 = 1;
+pub const EPOLL_CTL_DEL: u32 = 2;
+pub const EPOLL_CTL_MOD: u32 = 3;
+pub const EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 13;
+pub const _IOC_DIRBITS: u32 = 3;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 8191;
+pub const _IOC_XSIZEMASK: u32 = 16383;
+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_NONE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const _IOC_WRITE: u32 = 4;
+pub const IOC_IN: u32 = 2147483648;
+pub const IOC_OUT: u32 = 1073741824;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+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 = 4194304;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 = 4194304;
+pub const IN_NONBLOCK: u32 = 16384;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+pub const PROT_READ: u32 = 1;
+pub const PROT_WRITE: u32 = 2;
+pub const PROT_EXEC: u32 = 4;
+pub const PROT_SEM: u32 = 8;
+pub const PROT_NONE: u32 = 0;
+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_ANONYMOUS: u32 = 32;
+pub const MAP_POPULATE: u32 = 32768;
+pub const MAP_NONBLOCK: u32 = 65536;
+pub const MAP_STACK: u32 = 131072;
+pub const MAP_HUGETLB: u32 = 262144;
+pub const MAP_SYNC: u32 = 524288;
+pub const MAP_FIXED_NOREPLACE: u32 = 1048576;
+pub const MAP_UNINITIALIZED: u32 = 67108864;
+pub const MLOCK_ONFAULT: u32 = 1;
+pub const MS_ASYNC: u32 = 1;
+pub const MS_INVALIDATE: u32 = 2;
+pub const MS_SYNC: u32 = 4;
+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_HWPOISON: u32 = 100;
+pub const MADV_SOFT_OFFLINE: u32 = 101;
+pub const MADV_MERGEABLE: u32 = 12;
+pub const MADV_UNMERGEABLE: u32 = 13;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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 PROT_ADI: u32 = 16;
+pub const MAP_RENAME: u32 = 32;
+pub const MAP_NORESERVE: u32 = 64;
+pub const MAP_INHERIT: u32 = 128;
+pub const MAP_LOCKED: u32 = 256;
+pub const _MAP_NEW: u32 = 2147483648;
+pub const MAP_GROWSDOWN: u32 = 512;
+pub const MAP_DENYWRITE: u32 = 2048;
+pub const MAP_EXECUTABLE: u32 = 4096;
+pub const MCL_CURRENT: u32 = 8192;
+pub const MCL_FUTURE: u32 = 16384;
+pub const MCL_ONFAULT: u32 = 32768;
+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_DROPPABLE: u32 = 8;
+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 POLLMSG: u32 = 512;
+pub const POLLREMOVE: u32 = 1024;
+pub const POLLRDHUP: u32 = 2048;
+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 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 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 = 6;
+pub const RLIMIT_NPROC: u32 = 7;
+pub const RLIM_INFINITY: u32 = 2147483647;
+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_RSS: u32 = 5;
+pub const RLIMIT_MEMLOCK: u32 = 8;
+pub const RLIMIT_AS: u32 = 9;
+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 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_EXT: u32 = 7;
+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 SIGHUP: u32 = 1;
+pub const SIGINT: u32 = 2;
+pub const SIGQUIT: u32 = 3;
+pub const SIGILL: u32 = 4;
+pub const SUBSIG_STACK: u32 = 0;
+pub const SUBSIG_ILLINST: u32 = 2;
+pub const SUBSIG_PRIVINST: u32 = 3;
+pub const SIGTRAP: u32 = 5;
+pub const SIGABRT: u32 = 6;
+pub const SIGIOT: u32 = 6;
+pub const SIGEMT: u32 = 7;
+pub const SUBSIG_TAG: u32 = 10;
+pub const SIGFPE: u32 = 8;
+pub const SUBSIG_FPDISABLED: u32 = 1024;
+pub const SUBSIG_FPERROR: u32 = 1028;
+pub const SUBSIG_FPINTOVFL: u32 = 1;
+pub const SUBSIG_FPSTSIG: u32 = 2;
+pub const SUBSIG_IDIVZERO: u32 = 20;
+pub const SUBSIG_FPINEXACT: u32 = 196;
+pub const SUBSIG_FPDIVZERO: u32 = 200;
+pub const SUBSIG_FPUNFLOW: u32 = 204;
+pub const SUBSIG_FPOPERROR: u32 = 208;
+pub const SUBSIG_FPOVFLOW: u32 = 212;
+pub const SIGKILL: u32 = 9;
+pub const SIGBUS: u32 = 10;
+pub const SUBSIG_BUSTIMEOUT: u32 = 1;
+pub const SUBSIG_ALIGNMENT: u32 = 2;
+pub const SUBSIG_MISCERROR: u32 = 5;
+pub const SIGSEGV: u32 = 11;
+pub const SUBSIG_NOMAPPING: u32 = 3;
+pub const SUBSIG_PROTECTION: u32 = 4;
+pub const SUBSIG_SEGERROR: u32 = 5;
+pub const SIGSYS: u32 = 12;
+pub const SIGPIPE: u32 = 13;
+pub const SIGALRM: u32 = 14;
+pub const SIGTERM: u32 = 15;
+pub const SIGURG: u32 = 16;
+pub const SIGSTOP: u32 = 17;
+pub const SIGTSTP: u32 = 18;
+pub const SIGCONT: u32 = 19;
+pub const SIGCHLD: u32 = 20;
+pub const SIGTTIN: u32 = 21;
+pub const SIGTTOU: u32 = 22;
+pub const SIGIO: u32 = 23;
+pub const SIGPOLL: u32 = 23;
+pub const SIGXCPU: u32 = 24;
+pub const SIGXFSZ: u32 = 25;
+pub const SIGVTALRM: u32 = 26;
+pub const SIGPROF: u32 = 27;
+pub const SIGWINCH: u32 = 28;
+pub const SIGLOST: u32 = 29;
+pub const SIGPWR: u32 = 29;
+pub const SIGUSR1: u32 = 30;
+pub const SIGUSR2: u32 = 31;
+pub const __OLD_NSIG: u32 = 32;
+pub const __NEW_NSIG: u32 = 64;
+pub const _NSIG_BPW: u32 = 32;
+pub const _NSIG_WORDS: u32 = 2;
+pub const SIGRTMIN: u32 = 32;
+pub const SIGRTMAX: u32 = 64;
+pub const _NSIG: u32 = 64;
+pub const _SV_SSTACK: u32 = 1;
+pub const _SV_INTR: u32 = 2;
+pub const _SV_RESET: u32 = 4;
+pub const _SV_IGNCHILD: u32 = 8;
+pub const SA_NOCLDSTOP: u32 = 8;
+pub const SA_STACK: u32 = 1;
+pub const SA_ONSTACK: u32 = 1;
+pub const SA_RESTART: u32 = 2;
+pub const SA_RESETHAND: u32 = 4;
+pub const SA_NODEFER: u32 = 32;
+pub const SA_NOCLDWAIT: u32 = 256;
+pub const SA_SIGINFO: u32 = 512;
+pub const SIG_BLOCK: u32 = 1;
+pub const SIG_UNBLOCK: u32 = 2;
+pub const SIG_SETMASK: u32 = 4;
+pub const MINSIGSTKSZ: u32 = 4096;
+pub const SIGSTKSZ: u32 = 16384;
+pub const SA_UNSUPPORTED: u32 = 1024;
+pub const SA_EXPOSE_TAGBITS: u32 = 2048;
+pub const SA_NOMASK: u32 = 32;
+pub const SA_ONESHOT: u32 = 4;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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 SI_NOINFO: u32 = 32767;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 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 = 17;
+pub const VINTR: u32 = 0;
+pub const VQUIT: u32 = 1;
+pub const VERASE: u32 = 2;
+pub const VKILL: u32 = 3;
+pub const VEOF: u32 = 4;
+pub const VEOL: u32 = 5;
+pub const VEOL2: u32 = 6;
+pub const VSWTC: u32 = 7;
+pub const VSTART: u32 = 8;
+pub const VSTOP: u32 = 9;
+pub const VSUSP: u32 = 10;
+pub const VDSUSP: u32 = 11;
+pub const VREPRINT: u32 = 12;
+pub const VDISCARD: u32 = 13;
+pub const VWERASE: u32 = 14;
+pub const VLNEXT: u32 = 15;
+pub const VMIN: u32 = 4;
+pub const VTIME: u32 = 5;
+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 PAGEOUT: u32 = 65536;
+pub const WRAP: u32 = 131072;
+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 B76800: u32 = 4101;
+pub const B153600: u32 = 4102;
+pub const B307200: u32 = 4103;
+pub const B614400: u32 = 4104;
+pub const B921600: u32 = 4105;
+pub const B500000: u32 = 4106;
+pub const B576000: u32 = 4107;
+pub const B1000000: u32 = 4108;
+pub const B1152000: u32 = 4109;
+pub const B1500000: u32 = 4110;
+pub const B2000000: 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 TOSTOP: u32 = 256;
+pub const ECHOCTL: u32 = 512;
+pub const ECHOPRT: u32 = 1024;
+pub const ECHOKE: u32 = 2048;
+pub const DEFECHO: u32 = 4096;
+pub const FLUSHO: u32 = 8192;
+pub const PENDIN: u32 = 16384;
+pub const IEXTEN: u32 = 32768;
+pub const EXTPROC: u32 = 65536;
+pub const TIOCM_LE: u32 = 1;
+pub const TIOCM_DTR: u32 = 2;
+pub const TIOCM_RTS: u32 = 4;
+pub const TIOCM_ST: u32 = 8;
+pub const TIOCM_SR: u32 = 16;
+pub const TIOCM_CTS: u32 = 32;
+pub const TIOCM_CAR: u32 = 64;
+pub const TIOCM_RNG: u32 = 128;
+pub const TIOCM_DSR: u32 = 256;
+pub const TIOCM_CD: u32 = 64;
+pub const TIOCM_RI: u32 = 128;
+pub const TIOCM_OUT1: u32 = 8192;
+pub const TIOCM_OUT2: u32 = 16384;
+pub const TIOCM_LOOP: u32 = 32768;
+pub const TIOCSER_TEMT: u32 = 1;
+pub const TCSANOW: u32 = 0;
+pub const TCSADRAIN: u32 = 1;
+pub const TCSAFLUSH: u32 = 2;
+pub const NCC: u32 = 8;
+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 UIO_FASTIOV: u32 = 8;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const __NR_restart_syscall: u32 = 0;
+pub const __NR_exit: u32 = 1;
+pub const __NR_fork: u32 = 2;
+pub const __NR_read: u32 = 3;
+pub const __NR_write: u32 = 4;
+pub const __NR_open: u32 = 5;
+pub const __NR_close: u32 = 6;
+pub const __NR_wait4: u32 = 7;
+pub const __NR_creat: u32 = 8;
+pub const __NR_link: u32 = 9;
+pub const __NR_unlink: u32 = 10;
+pub const __NR_execv: u32 = 11;
+pub const __NR_chdir: u32 = 12;
+pub const __NR_chown: u32 = 13;
+pub const __NR_mknod: u32 = 14;
+pub const __NR_chmod: u32 = 15;
+pub const __NR_lchown: u32 = 16;
+pub const __NR_brk: u32 = 17;
+pub const __NR_perfctr: u32 = 18;
+pub const __NR_lseek: u32 = 19;
+pub const __NR_getpid: u32 = 20;
+pub const __NR_capget: u32 = 21;
+pub const __NR_capset: u32 = 22;
+pub const __NR_setuid: u32 = 23;
+pub const __NR_getuid: u32 = 24;
+pub const __NR_vmsplice: u32 = 25;
+pub const __NR_ptrace: u32 = 26;
+pub const __NR_alarm: u32 = 27;
+pub const __NR_sigaltstack: u32 = 28;
+pub const __NR_pause: u32 = 29;
+pub const __NR_utime: u32 = 30;
+pub const __NR_lchown32: u32 = 31;
+pub const __NR_fchown32: u32 = 32;
+pub const __NR_access: u32 = 33;
+pub const __NR_nice: u32 = 34;
+pub const __NR_chown32: u32 = 35;
+pub const __NR_sync: u32 = 36;
+pub const __NR_kill: u32 = 37;
+pub const __NR_stat: u32 = 38;
+pub const __NR_sendfile: u32 = 39;
+pub const __NR_lstat: u32 = 40;
+pub const __NR_dup: u32 = 41;
+pub const __NR_pipe: u32 = 42;
+pub const __NR_times: u32 = 43;
+pub const __NR_getuid32: u32 = 44;
+pub const __NR_umount2: u32 = 45;
+pub const __NR_setgid: u32 = 46;
+pub const __NR_getgid: u32 = 47;
+pub const __NR_signal: u32 = 48;
+pub const __NR_geteuid: u32 = 49;
+pub const __NR_getegid: u32 = 50;
+pub const __NR_acct: u32 = 51;
+pub const __NR_getgid32: u32 = 53;
+pub const __NR_ioctl: u32 = 54;
+pub const __NR_reboot: u32 = 55;
+pub const __NR_mmap2: u32 = 56;
+pub const __NR_symlink: u32 = 57;
+pub const __NR_readlink: u32 = 58;
+pub const __NR_execve: u32 = 59;
+pub const __NR_umask: u32 = 60;
+pub const __NR_chroot: u32 = 61;
+pub const __NR_fstat: u32 = 62;
+pub const __NR_fstat64: u32 = 63;
+pub const __NR_getpagesize: u32 = 64;
+pub const __NR_msync: u32 = 65;
+pub const __NR_vfork: u32 = 66;
+pub const __NR_pread64: u32 = 67;
+pub const __NR_pwrite64: u32 = 68;
+pub const __NR_geteuid32: u32 = 69;
+pub const __NR_getegid32: u32 = 70;
+pub const __NR_mmap: u32 = 71;
+pub const __NR_setreuid32: u32 = 72;
+pub const __NR_munmap: u32 = 73;
+pub const __NR_mprotect: u32 = 74;
+pub const __NR_madvise: u32 = 75;
+pub const __NR_vhangup: u32 = 76;
+pub const __NR_truncate64: u32 = 77;
+pub const __NR_mincore: u32 = 78;
+pub const __NR_getgroups: u32 = 79;
+pub const __NR_setgroups: u32 = 80;
+pub const __NR_getpgrp: u32 = 81;
+pub const __NR_setgroups32: u32 = 82;
+pub const __NR_setitimer: u32 = 83;
+pub const __NR_ftruncate64: u32 = 84;
+pub const __NR_swapon: u32 = 85;
+pub const __NR_getitimer: u32 = 86;
+pub const __NR_setuid32: u32 = 87;
+pub const __NR_sethostname: u32 = 88;
+pub const __NR_setgid32: u32 = 89;
+pub const __NR_dup2: u32 = 90;
+pub const __NR_setfsuid32: u32 = 91;
+pub const __NR_fcntl: u32 = 92;
+pub const __NR_select: u32 = 93;
+pub const __NR_setfsgid32: u32 = 94;
+pub const __NR_fsync: u32 = 95;
+pub const __NR_setpriority: u32 = 96;
+pub const __NR_socket: u32 = 97;
+pub const __NR_connect: u32 = 98;
+pub const __NR_accept: u32 = 99;
+pub const __NR_getpriority: u32 = 100;
+pub const __NR_rt_sigreturn: u32 = 101;
+pub const __NR_rt_sigaction: u32 = 102;
+pub const __NR_rt_sigprocmask: u32 = 103;
+pub const __NR_rt_sigpending: u32 = 104;
+pub const __NR_rt_sigtimedwait: u32 = 105;
+pub const __NR_rt_sigqueueinfo: u32 = 106;
+pub const __NR_rt_sigsuspend: u32 = 107;
+pub const __NR_setresuid32: u32 = 108;
+pub const __NR_getresuid32: u32 = 109;
+pub const __NR_setresgid32: u32 = 110;
+pub const __NR_getresgid32: u32 = 111;
+pub const __NR_setregid32: u32 = 112;
+pub const __NR_recvmsg: u32 = 113;
+pub const __NR_sendmsg: u32 = 114;
+pub const __NR_getgroups32: u32 = 115;
+pub const __NR_gettimeofday: u32 = 116;
+pub const __NR_getrusage: u32 = 117;
+pub const __NR_getsockopt: u32 = 118;
+pub const __NR_getcwd: u32 = 119;
+pub const __NR_readv: u32 = 120;
+pub const __NR_writev: u32 = 121;
+pub const __NR_settimeofday: u32 = 122;
+pub const __NR_fchown: u32 = 123;
+pub const __NR_fchmod: u32 = 124;
+pub const __NR_recvfrom: u32 = 125;
+pub const __NR_setreuid: u32 = 126;
+pub const __NR_setregid: u32 = 127;
+pub const __NR_rename: u32 = 128;
+pub const __NR_truncate: u32 = 129;
+pub const __NR_ftruncate: u32 = 130;
+pub const __NR_flock: u32 = 131;
+pub const __NR_lstat64: u32 = 132;
+pub const __NR_sendto: u32 = 133;
+pub const __NR_shutdown: u32 = 134;
+pub const __NR_socketpair: u32 = 135;
+pub const __NR_mkdir: u32 = 136;
+pub const __NR_rmdir: u32 = 137;
+pub const __NR_utimes: u32 = 138;
+pub const __NR_stat64: u32 = 139;
+pub const __NR_sendfile64: u32 = 140;
+pub const __NR_getpeername: u32 = 141;
+pub const __NR_futex: u32 = 142;
+pub const __NR_gettid: u32 = 143;
+pub const __NR_getrlimit: u32 = 144;
+pub const __NR_setrlimit: u32 = 145;
+pub const __NR_pivot_root: u32 = 146;
+pub const __NR_prctl: u32 = 147;
+pub const __NR_pciconfig_read: u32 = 148;
+pub const __NR_pciconfig_write: u32 = 149;
+pub const __NR_getsockname: u32 = 150;
+pub const __NR_inotify_init: u32 = 151;
+pub const __NR_inotify_add_watch: u32 = 152;
+pub const __NR_poll: u32 = 153;
+pub const __NR_getdents64: u32 = 154;
+pub const __NR_fcntl64: u32 = 155;
+pub const __NR_inotify_rm_watch: u32 = 156;
+pub const __NR_statfs: u32 = 157;
+pub const __NR_fstatfs: u32 = 158;
+pub const __NR_umount: u32 = 159;
+pub const __NR_sched_set_affinity: u32 = 160;
+pub const __NR_sched_get_affinity: u32 = 161;
+pub const __NR_getdomainname: u32 = 162;
+pub const __NR_setdomainname: u32 = 163;
+pub const __NR_quotactl: u32 = 165;
+pub const __NR_set_tid_address: u32 = 166;
+pub const __NR_mount: u32 = 167;
+pub const __NR_ustat: u32 = 168;
+pub const __NR_setxattr: u32 = 169;
+pub const __NR_lsetxattr: u32 = 170;
+pub const __NR_fsetxattr: u32 = 171;
+pub const __NR_getxattr: u32 = 172;
+pub const __NR_lgetxattr: u32 = 173;
+pub const __NR_getdents: u32 = 174;
+pub const __NR_setsid: u32 = 175;
+pub const __NR_fchdir: u32 = 176;
+pub const __NR_fgetxattr: u32 = 177;
+pub const __NR_listxattr: u32 = 178;
+pub const __NR_llistxattr: u32 = 179;
+pub const __NR_flistxattr: u32 = 180;
+pub const __NR_removexattr: u32 = 181;
+pub const __NR_lremovexattr: u32 = 182;
+pub const __NR_sigpending: u32 = 183;
+pub const __NR_query_module: u32 = 184;
+pub const __NR_setpgid: u32 = 185;
+pub const __NR_fremovexattr: u32 = 186;
+pub const __NR_tkill: u32 = 187;
+pub const __NR_exit_group: u32 = 188;
+pub const __NR_uname: u32 = 189;
+pub const __NR_init_module: u32 = 190;
+pub const __NR_personality: u32 = 191;
+pub const __NR_remap_file_pages: u32 = 192;
+pub const __NR_epoll_create: u32 = 193;
+pub const __NR_epoll_ctl: u32 = 194;
+pub const __NR_epoll_wait: u32 = 195;
+pub const __NR_ioprio_set: u32 = 196;
+pub const __NR_getppid: u32 = 197;
+pub const __NR_sigaction: u32 = 198;
+pub const __NR_sgetmask: u32 = 199;
+pub const __NR_ssetmask: u32 = 200;
+pub const __NR_sigsuspend: u32 = 201;
+pub const __NR_oldlstat: u32 = 202;
+pub const __NR_uselib: u32 = 203;
+pub const __NR_readdir: u32 = 204;
+pub const __NR_readahead: u32 = 205;
+pub const __NR_socketcall: u32 = 206;
+pub const __NR_syslog: u32 = 207;
+pub const __NR_lookup_dcookie: u32 = 208;
+pub const __NR_fadvise64: u32 = 209;
+pub const __NR_fadvise64_64: u32 = 210;
+pub const __NR_tgkill: u32 = 211;
+pub const __NR_waitpid: u32 = 212;
+pub const __NR_swapoff: u32 = 213;
+pub const __NR_sysinfo: u32 = 214;
+pub const __NR_ipc: u32 = 215;
+pub const __NR_sigreturn: u32 = 216;
+pub const __NR_clone: u32 = 217;
+pub const __NR_ioprio_get: u32 = 218;
+pub const __NR_adjtimex: u32 = 219;
+pub const __NR_sigprocmask: u32 = 220;
+pub const __NR_create_module: u32 = 221;
+pub const __NR_delete_module: u32 = 222;
+pub const __NR_get_kernel_syms: u32 = 223;
+pub const __NR_getpgid: u32 = 224;
+pub const __NR_bdflush: u32 = 225;
+pub const __NR_sysfs: u32 = 226;
+pub const __NR_afs_syscall: u32 = 227;
+pub const __NR_setfsuid: u32 = 228;
+pub const __NR_setfsgid: u32 = 229;
+pub const __NR__newselect: u32 = 230;
+pub const __NR_time: u32 = 231;
+pub const __NR_splice: u32 = 232;
+pub const __NR_stime: u32 = 233;
+pub const __NR_statfs64: u32 = 234;
+pub const __NR_fstatfs64: u32 = 235;
+pub const __NR__llseek: u32 = 236;
+pub const __NR_mlock: u32 = 237;
+pub const __NR_munlock: u32 = 238;
+pub const __NR_mlockall: u32 = 239;
+pub const __NR_munlockall: u32 = 240;
+pub const __NR_sched_setparam: u32 = 241;
+pub const __NR_sched_getparam: u32 = 242;
+pub const __NR_sched_setscheduler: u32 = 243;
+pub const __NR_sched_getscheduler: u32 = 244;
+pub const __NR_sched_yield: u32 = 245;
+pub const __NR_sched_get_priority_max: u32 = 246;
+pub const __NR_sched_get_priority_min: u32 = 247;
+pub const __NR_sched_rr_get_interval: u32 = 248;
+pub const __NR_nanosleep: u32 = 249;
+pub const __NR_mremap: u32 = 250;
+pub const __NR__sysctl: u32 = 251;
+pub const __NR_getsid: u32 = 252;
+pub const __NR_fdatasync: u32 = 253;
+pub const __NR_nfsservctl: u32 = 254;
+pub const __NR_sync_file_range: u32 = 255;
+pub const __NR_clock_settime: u32 = 256;
+pub const __NR_clock_gettime: u32 = 257;
+pub const __NR_clock_getres: u32 = 258;
+pub const __NR_clock_nanosleep: u32 = 259;
+pub const __NR_sched_getaffinity: u32 = 260;
+pub const __NR_sched_setaffinity: u32 = 261;
+pub const __NR_timer_settime: u32 = 262;
+pub const __NR_timer_gettime: u32 = 263;
+pub const __NR_timer_getoverrun: u32 = 264;
+pub const __NR_timer_delete: u32 = 265;
+pub const __NR_timer_create: u32 = 266;
+pub const __NR_vserver: u32 = 267;
+pub const __NR_io_setup: u32 = 268;
+pub const __NR_io_destroy: u32 = 269;
+pub const __NR_io_submit: u32 = 270;
+pub const __NR_io_cancel: u32 = 271;
+pub const __NR_io_getevents: u32 = 272;
+pub const __NR_mq_open: u32 = 273;
+pub const __NR_mq_unlink: u32 = 274;
+pub const __NR_mq_timedsend: u32 = 275;
+pub const __NR_mq_timedreceive: u32 = 276;
+pub const __NR_mq_notify: u32 = 277;
+pub const __NR_mq_getsetattr: u32 = 278;
+pub const __NR_waitid: u32 = 279;
+pub const __NR_tee: u32 = 280;
+pub const __NR_add_key: u32 = 281;
+pub const __NR_request_key: u32 = 282;
+pub const __NR_keyctl: u32 = 283;
+pub const __NR_openat: u32 = 284;
+pub const __NR_mkdirat: u32 = 285;
+pub const __NR_mknodat: u32 = 286;
+pub const __NR_fchownat: u32 = 287;
+pub const __NR_futimesat: u32 = 288;
+pub const __NR_fstatat64: u32 = 289;
+pub const __NR_unlinkat: u32 = 290;
+pub const __NR_renameat: u32 = 291;
+pub const __NR_linkat: u32 = 292;
+pub const __NR_symlinkat: u32 = 293;
+pub const __NR_readlinkat: u32 = 294;
+pub const __NR_fchmodat: u32 = 295;
+pub const __NR_faccessat: u32 = 296;
+pub const __NR_pselect6: u32 = 297;
+pub const __NR_ppoll: u32 = 298;
+pub const __NR_unshare: u32 = 299;
+pub const __NR_set_robust_list: u32 = 300;
+pub const __NR_get_robust_list: u32 = 301;
+pub const __NR_migrate_pages: u32 = 302;
+pub const __NR_mbind: u32 = 303;
+pub const __NR_get_mempolicy: u32 = 304;
+pub const __NR_set_mempolicy: u32 = 305;
+pub const __NR_kexec_load: u32 = 306;
+pub const __NR_move_pages: u32 = 307;
+pub const __NR_getcpu: u32 = 308;
+pub const __NR_epoll_pwait: u32 = 309;
+pub const __NR_utimensat: u32 = 310;
+pub const __NR_signalfd: u32 = 311;
+pub const __NR_timerfd_create: u32 = 312;
+pub const __NR_eventfd: u32 = 313;
+pub const __NR_fallocate: u32 = 314;
+pub const __NR_timerfd_settime: u32 = 315;
+pub const __NR_timerfd_gettime: u32 = 316;
+pub const __NR_signalfd4: u32 = 317;
+pub const __NR_eventfd2: u32 = 318;
+pub const __NR_epoll_create1: u32 = 319;
+pub const __NR_dup3: u32 = 320;
+pub const __NR_pipe2: u32 = 321;
+pub const __NR_inotify_init1: u32 = 322;
+pub const __NR_accept4: u32 = 323;
+pub const __NR_preadv: u32 = 324;
+pub const __NR_pwritev: u32 = 325;
+pub const __NR_rt_tgsigqueueinfo: u32 = 326;
+pub const __NR_perf_event_open: u32 = 327;
+pub const __NR_recvmmsg: u32 = 328;
+pub const __NR_fanotify_init: u32 = 329;
+pub const __NR_fanotify_mark: u32 = 330;
+pub const __NR_prlimit64: u32 = 331;
+pub const __NR_name_to_handle_at: u32 = 332;
+pub const __NR_open_by_handle_at: u32 = 333;
+pub const __NR_clock_adjtime: u32 = 334;
+pub const __NR_syncfs: u32 = 335;
+pub const __NR_sendmmsg: u32 = 336;
+pub const __NR_setns: u32 = 337;
+pub const __NR_process_vm_readv: u32 = 338;
+pub const __NR_process_vm_writev: u32 = 339;
+pub const __NR_kern_features: u32 = 340;
+pub const __NR_kcmp: u32 = 341;
+pub const __NR_finit_module: u32 = 342;
+pub const __NR_sched_setattr: u32 = 343;
+pub const __NR_sched_getattr: u32 = 344;
+pub const __NR_renameat2: u32 = 345;
+pub const __NR_seccomp: u32 = 346;
+pub const __NR_getrandom: u32 = 347;
+pub const __NR_memfd_create: u32 = 348;
+pub const __NR_bpf: u32 = 349;
+pub const __NR_execveat: u32 = 350;
+pub const __NR_membarrier: u32 = 351;
+pub const __NR_userfaultfd: u32 = 352;
+pub const __NR_bind: u32 = 353;
+pub const __NR_listen: u32 = 354;
+pub const __NR_setsockopt: u32 = 355;
+pub const __NR_mlock2: u32 = 356;
+pub const __NR_copy_file_range: u32 = 357;
+pub const __NR_preadv2: u32 = 358;
+pub const __NR_pwritev2: u32 = 359;
+pub const __NR_statx: u32 = 360;
+pub const __NR_io_pgetevents: u32 = 361;
+pub const __NR_pkey_mprotect: u32 = 362;
+pub const __NR_pkey_alloc: u32 = 363;
+pub const __NR_pkey_free: u32 = 364;
+pub const __NR_rseq: u32 = 365;
+pub const __NR_semget: u32 = 393;
+pub const __NR_semctl: u32 = 394;
+pub const __NR_shmget: u32 = 395;
+pub const __NR_shmctl: u32 = 396;
+pub const __NR_shmat: u32 = 397;
+pub const __NR_shmdt: u32 = 398;
+pub const __NR_msgget: u32 = 399;
+pub const __NR_msgsnd: u32 = 400;
+pub const __NR_msgrcv: u32 = 401;
+pub const __NR_msgctl: u32 = 402;
+pub const __NR_clock_gettime64: u32 = 403;
+pub const __NR_clock_settime64: u32 = 404;
+pub const __NR_clock_adjtime64: u32 = 405;
+pub const __NR_clock_getres_time64: u32 = 406;
+pub const __NR_clock_nanosleep_time64: u32 = 407;
+pub const __NR_timer_gettime64: u32 = 408;
+pub const __NR_timer_settime64: u32 = 409;
+pub const __NR_timerfd_gettime64: u32 = 410;
+pub const __NR_timerfd_settime64: u32 = 411;
+pub const __NR_utimensat_time64: u32 = 412;
+pub const __NR_pselect6_time64: u32 = 413;
+pub const __NR_ppoll_time64: u32 = 414;
+pub const __NR_io_pgetevents_time64: u32 = 416;
+pub const __NR_recvmmsg_time64: u32 = 417;
+pub const __NR_mq_timedsend_time64: u32 = 418;
+pub const __NR_mq_timedreceive_time64: u32 = 419;
+pub const __NR_semtimedop_time64: u32 = 420;
+pub const __NR_rt_sigtimedwait_time64: u32 = 421;
+pub const __NR_futex_time64: u32 = 422;
+pub const __NR_sched_rr_get_interval_time64: u32 = 423;
+pub const __NR_pidfd_send_signal: u32 = 424;
+pub const __NR_io_uring_setup: u32 = 425;
+pub const __NR_io_uring_enter: u32 = 426;
+pub const __NR_io_uring_register: u32 = 427;
+pub const __NR_open_tree: u32 = 428;
+pub const __NR_move_mount: u32 = 429;
+pub const __NR_fsopen: u32 = 430;
+pub const __NR_fsconfig: u32 = 431;
+pub const __NR_fsmount: u32 = 432;
+pub const __NR_fspick: u32 = 433;
+pub const __NR_pidfd_open: u32 = 434;
+pub const __NR_close_range: u32 = 436;
+pub const __NR_openat2: u32 = 437;
+pub const __NR_pidfd_getfd: u32 = 438;
+pub const __NR_faccessat2: u32 = 439;
+pub const __NR_process_madvise: u32 = 440;
+pub const __NR_epoll_pwait2: u32 = 441;
+pub const __NR_mount_setattr: u32 = 442;
+pub const __NR_quotactl_fd: u32 = 443;
+pub const __NR_landlock_create_ruleset: u32 = 444;
+pub const __NR_landlock_add_rule: u32 = 445;
+pub const __NR_landlock_restrict_self: u32 = 446;
+pub const __NR_process_mrelease: u32 = 448;
+pub const __NR_futex_waitv: u32 = 449;
+pub const __NR_set_mempolicy_home_node: u32 = 450;
+pub const __NR_cachestat: u32 = 451;
+pub const __NR_fchmodat2: u32 = 452;
+pub const __NR_map_shadow_stack: u32 = 453;
+pub const __NR_futex_wake: u32 = 454;
+pub const __NR_futex_wait: u32 = 455;
+pub const __NR_futex_requeue: u32 = 456;
+pub const __NR_statmount: u32 = 457;
+pub const __NR_listmount: u32 = 458;
+pub const __NR_lsm_get_self_attr: u32 = 459;
+pub const __NR_lsm_set_self_attr: u32 = 460;
+pub const __NR_lsm_list_modules: u32 = 461;
+pub const __NR_mseal: u32 = 462;
+pub const __NR_setxattrat: u32 = 463;
+pub const __NR_getxattrat: u32 = 464;
+pub const __NR_listxattrat: u32 = 465;
+pub const __NR_removexattrat: u32 = 466;
+pub const KERN_FEATURE_MIXED_MODE_STACK: u32 = 1;
+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 = 4194304;
+pub const TFD_NONBLOCK: u32 = 16384;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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 = 4194304;
+pub const EFD_NONBLOCK: u32 = 16384;
+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 = 4210688;
+pub const TFD_CREATE_FLAGS: u32 = 4210688;
+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 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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[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; 13usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/sparc/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/if_arp.rs
new file mode 100644
index 0000000..14a7a5a
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/if_arp.rs
@@ -0,0 +1,2971 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+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_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 __BITS_PER_LONG_LONG: u32 = 64;
+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 ASI_NULL1: u32 = 0;
+pub const ASI_NULL2: u32 = 1;
+pub const ASI_CONTROL: u32 = 2;
+pub const ASI_SEGMAP: u32 = 3;
+pub const ASI_PTE: u32 = 4;
+pub const ASI_HWFLUSHSEG: u32 = 5;
+pub const ASI_HWFLUSHPAGE: u32 = 6;
+pub const ASI_REGMAP: u32 = 6;
+pub const ASI_HWFLUSHCONTEXT: u32 = 7;
+pub const ASI_USERTXT: u32 = 8;
+pub const ASI_KERNELTXT: u32 = 9;
+pub const ASI_USERDATA: u32 = 10;
+pub const ASI_KERNELDATA: u32 = 11;
+pub const ASI_FLUSHSEG: u32 = 12;
+pub const ASI_FLUSHPG: u32 = 13;
+pub const ASI_FLUSHCTX: u32 = 14;
+pub const ASI_M_RES00: u32 = 0;
+pub const ASI_M_UNA01: u32 = 1;
+pub const ASI_M_MXCC: u32 = 2;
+pub const ASI_M_FLUSH_PROBE: u32 = 3;
+pub const ASI_M_MMUREGS: u32 = 4;
+pub const ASI_M_TLBDIAG: u32 = 5;
+pub const ASI_M_DIAGS: u32 = 6;
+pub const ASI_M_IODIAG: u32 = 7;
+pub const ASI_M_USERTXT: u32 = 8;
+pub const ASI_M_KERNELTXT: u32 = 9;
+pub const ASI_M_USERDATA: u32 = 10;
+pub const ASI_M_KERNELDATA: u32 = 11;
+pub const ASI_M_TXTC_TAG: u32 = 12;
+pub const ASI_M_TXTC_DATA: u32 = 13;
+pub const ASI_M_DATAC_TAG: u32 = 14;
+pub const ASI_M_DATAC_DATA: u32 = 15;
+pub const ASI_M_FLUSH_PAGE: u32 = 16;
+pub const ASI_M_FLUSH_SEG: u32 = 17;
+pub const ASI_M_FLUSH_REGION: u32 = 18;
+pub const ASI_M_FLUSH_CTX: u32 = 19;
+pub const ASI_M_FLUSH_USER: u32 = 20;
+pub const ASI_M_BCOPY: u32 = 23;
+pub const ASI_M_IFLUSH_PAGE: u32 = 24;
+pub const ASI_M_IFLUSH_SEG: u32 = 25;
+pub const ASI_M_IFLUSH_REGION: u32 = 26;
+pub const ASI_M_IFLUSH_CTX: u32 = 27;
+pub const ASI_M_IFLUSH_USER: u32 = 28;
+pub const ASI_M_BFILL: u32 = 31;
+pub const ASI_M_BYPASS: u32 = 32;
+pub const ASI_M_FBMEM: u32 = 41;
+pub const ASI_M_VMEUS: u32 = 42;
+pub const ASI_M_VMEPS: u32 = 43;
+pub const ASI_M_VMEUT: u32 = 44;
+pub const ASI_M_VMEPT: u32 = 45;
+pub const ASI_M_SBUS: u32 = 46;
+pub const ASI_M_CTL: u32 = 47;
+pub const ASI_M_FLUSH_IWHOLE: u32 = 49;
+pub const ASI_M_IC_FLCLEAR: u32 = 54;
+pub const ASI_M_DC_FLCLEAR: u32 = 55;
+pub const ASI_M_DCDR: u32 = 57;
+pub const ASI_M_VIKING_TMP1: u32 = 64;
+pub const ASI_M_ACTION: u32 = 76;
+pub const ASI_LEON_NOCACHE: u32 = 1;
+pub const ASI_LEON_DCACHE_MISS: u32 = 1;
+pub const ASI_LEON_CACHEREGS: u32 = 2;
+pub const ASI_LEON_IFLUSH: u32 = 16;
+pub const ASI_LEON_DFLUSH: u32 = 17;
+pub const ASI_LEON_MMUFLUSH: u32 = 24;
+pub const ASI_LEON_MMUREGS: u32 = 25;
+pub const ASI_LEON_BYPASS: u32 = 28;
+pub const ASI_LEON_FLUSH_PAGE: u32 = 16;
+pub const ASI_N: u32 = 4;
+pub const ASI_NL: u32 = 12;
+pub const ASI_AIUP: u32 = 16;
+pub const ASI_AIUS: u32 = 17;
+pub const ASI_AIUPL: u32 = 24;
+pub const ASI_AIUSL: u32 = 25;
+pub const ASI_P: u32 = 128;
+pub const ASI_S: u32 = 129;
+pub const ASI_PNF: u32 = 130;
+pub const ASI_SNF: u32 = 131;
+pub const ASI_PL: u32 = 136;
+pub const ASI_SL: u32 = 137;
+pub const ASI_PNFL: u32 = 138;
+pub const ASI_SNFL: u32 = 139;
+pub const ASI_MCD_PRIV_PRIMARY: u32 = 2;
+pub const ASI_MCD_REAL: u32 = 5;
+pub const ASI_PHYS_USE_EC: u32 = 20;
+pub const ASI_PHYS_BYPASS_EC_E: u32 = 21;
+pub const ASI_BLK_AIUP_4V: u32 = 22;
+pub const ASI_BLK_AIUS_4V: u32 = 23;
+pub const ASI_PHYS_USE_EC_L: u32 = 28;
+pub const ASI_PHYS_BYPASS_EC_E_L: u32 = 29;
+pub const ASI_BLK_AIUP_L_4V: u32 = 30;
+pub const ASI_BLK_AIUS_L_4V: u32 = 31;
+pub const ASI_SCRATCHPAD: u32 = 32;
+pub const ASI_MMU: u32 = 33;
+pub const ASI_BLK_INIT_QUAD_LDD_AIUS: u32 = 35;
+pub const ASI_NUCLEUS_QUAD_LDD: u32 = 36;
+pub const ASI_QUEUE: u32 = 37;
+pub const ASI_QUAD_LDD_PHYS_4V: u32 = 38;
+pub const ASI_NUCLEUS_QUAD_LDD_L: u32 = 44;
+pub const ASI_QUAD_LDD_PHYS_L_4V: u32 = 46;
+pub const ASI_PCACHE_DATA_STATUS: u32 = 48;
+pub const ASI_PCACHE_DATA: u32 = 49;
+pub const ASI_PCACHE_TAG: u32 = 50;
+pub const ASI_PCACHE_SNOOP_TAG: u32 = 51;
+pub const ASI_QUAD_LDD_PHYS: u32 = 52;
+pub const ASI_WCACHE_VALID_BITS: u32 = 56;
+pub const ASI_WCACHE_DATA: u32 = 57;
+pub const ASI_WCACHE_TAG: u32 = 58;
+pub const ASI_WCACHE_SNOOP_TAG: u32 = 59;
+pub const ASI_QUAD_LDD_PHYS_L: u32 = 60;
+pub const ASI_SRAM_FAST_INIT: u32 = 64;
+pub const ASI_CORE_AVAILABLE: u32 = 65;
+pub const ASI_CORE_ENABLE_STAT: u32 = 65;
+pub const ASI_CORE_ENABLE: u32 = 65;
+pub const ASI_XIR_STEERING: u32 = 65;
+pub const ASI_CORE_RUNNING_RW: u32 = 65;
+pub const ASI_CORE_RUNNING_W1S: u32 = 65;
+pub const ASI_CORE_RUNNING_W1C: u32 = 65;
+pub const ASI_CORE_RUNNING_STAT: u32 = 65;
+pub const ASI_CMT_ERROR_STEERING: u32 = 65;
+pub const ASI_DCACHE_INVALIDATE: u32 = 66;
+pub const ASI_DCACHE_UTAG: u32 = 67;
+pub const ASI_DCACHE_SNOOP_TAG: u32 = 68;
+pub const ASI_LSU_CONTROL: u32 = 69;
+pub const ASI_DCU_CONTROL_REG: u32 = 69;
+pub const ASI_DCACHE_DATA: u32 = 70;
+pub const ASI_DCACHE_TAG: u32 = 71;
+pub const ASI_INTR_DISPATCH_STAT: u32 = 72;
+pub const ASI_INTR_RECEIVE: u32 = 73;
+pub const ASI_UPA_CONFIG: u32 = 74;
+pub const ASI_JBUS_CONFIG: u32 = 74;
+pub const ASI_SAFARI_CONFIG: u32 = 74;
+pub const ASI_SAFARI_ADDRESS: u32 = 74;
+pub const ASI_ESTATE_ERROR_EN: u32 = 75;
+pub const ASI_AFSR: u32 = 76;
+pub const ASI_AFAR: u32 = 77;
+pub const ASI_EC_TAG_DATA: u32 = 78;
+pub const ASI_IMMU: u32 = 80;
+pub const ASI_IMMU_TSB_8KB_PTR: u32 = 81;
+pub const ASI_IMMU_TSB_64KB_PTR: u32 = 82;
+pub const ASI_ITLB_DATA_IN: u32 = 84;
+pub const ASI_ITLB_DATA_ACCESS: u32 = 85;
+pub const ASI_ITLB_TAG_READ: u32 = 86;
+pub const ASI_IMMU_DEMAP: u32 = 87;
+pub const ASI_DMMU: u32 = 88;
+pub const ASI_DMMU_TSB_8KB_PTR: u32 = 89;
+pub const ASI_DMMU_TSB_64KB_PTR: u32 = 90;
+pub const ASI_DMMU_TSB_DIRECT_PTR: u32 = 91;
+pub const ASI_DTLB_DATA_IN: u32 = 92;
+pub const ASI_DTLB_DATA_ACCESS: u32 = 93;
+pub const ASI_DTLB_TAG_READ: u32 = 94;
+pub const ASI_DMMU_DEMAP: u32 = 95;
+pub const ASI_IIU_INST_TRAP: u32 = 96;
+pub const ASI_INTR_ID: u32 = 99;
+pub const ASI_CORE_ID: u32 = 99;
+pub const ASI_CESR_ID: u32 = 99;
+pub const ASI_IC_INSTR: u32 = 102;
+pub const ASI_IC_TAG: u32 = 103;
+pub const ASI_IC_STAG: u32 = 104;
+pub const ASI_IC_PRE_DECODE: u32 = 110;
+pub const ASI_IC_NEXT_FIELD: u32 = 111;
+pub const ASI_BRPRED_ARRAY: u32 = 111;
+pub const ASI_BLK_AIUP: u32 = 112;
+pub const ASI_BLK_AIUS: u32 = 113;
+pub const ASI_MCU_CTRL_REG: u32 = 114;
+pub const ASI_EC_DATA: u32 = 116;
+pub const ASI_EC_CTRL: u32 = 117;
+pub const ASI_EC_W: u32 = 118;
+pub const ASI_UDB_ERROR_W: u32 = 119;
+pub const ASI_UDB_CONTROL_W: u32 = 119;
+pub const ASI_INTR_W: u32 = 119;
+pub const ASI_INTR_DATAN_W: u32 = 119;
+pub const ASI_INTR_DISPATCH_W: u32 = 119;
+pub const ASI_BLK_AIUPL: u32 = 120;
+pub const ASI_BLK_AIUSL: u32 = 121;
+pub const ASI_EC_R: u32 = 126;
+pub const ASI_UDBH_ERROR_R: u32 = 127;
+pub const ASI_UDBL_ERROR_R: u32 = 127;
+pub const ASI_UDBH_CONTROL_R: u32 = 127;
+pub const ASI_UDBL_CONTROL_R: u32 = 127;
+pub const ASI_INTR_R: u32 = 127;
+pub const ASI_INTR_DATAN_R: u32 = 127;
+pub const ASI_MCD_PRIMARY: u32 = 144;
+pub const ASI_MCD_ST_BLKINIT_PRIMARY: u32 = 146;
+pub const ASI_PIC: u32 = 176;
+pub const ASI_PST8_P: u32 = 192;
+pub const ASI_PST8_S: u32 = 193;
+pub const ASI_PST16_P: u32 = 194;
+pub const ASI_PST16_S: u32 = 195;
+pub const ASI_PST32_P: u32 = 196;
+pub const ASI_PST32_S: u32 = 197;
+pub const ASI_PST8_PL: u32 = 200;
+pub const ASI_PST8_SL: u32 = 201;
+pub const ASI_PST16_PL: u32 = 202;
+pub const ASI_PST16_SL: u32 = 203;
+pub const ASI_PST32_PL: u32 = 204;
+pub const ASI_PST32_SL: u32 = 205;
+pub const ASI_FL8_P: u32 = 208;
+pub const ASI_FL8_S: u32 = 209;
+pub const ASI_FL16_P: u32 = 210;
+pub const ASI_FL16_S: u32 = 211;
+pub const ASI_FL8_PL: u32 = 216;
+pub const ASI_FL8_SL: u32 = 217;
+pub const ASI_FL16_PL: u32 = 218;
+pub const ASI_FL16_SL: u32 = 219;
+pub const ASI_BLK_COMMIT_P: u32 = 224;
+pub const ASI_BLK_COMMIT_S: u32 = 225;
+pub const ASI_BLK_INIT_QUAD_LDD_P: u32 = 226;
+pub const ASI_BLK_INIT_QUAD_LDD_S: u32 = 227;
+pub const ASI_BLK_P: u32 = 240;
+pub const ASI_BLK_S: u32 = 241;
+pub const ASI_ST_BLKINIT_MRU_P: u32 = 242;
+pub const ASI_ST_BLKINIT_MRU_S: u32 = 243;
+pub const ASI_BLK_PL: u32 = 248;
+pub const ASI_BLK_SL: u32 = 249;
+pub const ASI_ST_BLKINIT_MRU_PL: u32 = 250;
+pub const ASI_ST_BLKINIT_MRU_SL: u32 = 251;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/sparc/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/if_ether.rs
new file mode 100644
index 0000000..530c646
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/if_ether.rs
@@ -0,0 +1,168 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+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_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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/sparc/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/if_packet.rs
new file mode 100644
index 0000000..efdbb66
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/if_packet.rs
@@ -0,0 +1,525 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+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_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 __BITS_PER_LONG_LONG: u32 = 64;
+pub const ASI_NULL1: u32 = 0;
+pub const ASI_NULL2: u32 = 1;
+pub const ASI_CONTROL: u32 = 2;
+pub const ASI_SEGMAP: u32 = 3;
+pub const ASI_PTE: u32 = 4;
+pub const ASI_HWFLUSHSEG: u32 = 5;
+pub const ASI_HWFLUSHPAGE: u32 = 6;
+pub const ASI_REGMAP: u32 = 6;
+pub const ASI_HWFLUSHCONTEXT: u32 = 7;
+pub const ASI_USERTXT: u32 = 8;
+pub const ASI_KERNELTXT: u32 = 9;
+pub const ASI_USERDATA: u32 = 10;
+pub const ASI_KERNELDATA: u32 = 11;
+pub const ASI_FLUSHSEG: u32 = 12;
+pub const ASI_FLUSHPG: u32 = 13;
+pub const ASI_FLUSHCTX: u32 = 14;
+pub const ASI_M_RES00: u32 = 0;
+pub const ASI_M_UNA01: u32 = 1;
+pub const ASI_M_MXCC: u32 = 2;
+pub const ASI_M_FLUSH_PROBE: u32 = 3;
+pub const ASI_M_MMUREGS: u32 = 4;
+pub const ASI_M_TLBDIAG: u32 = 5;
+pub const ASI_M_DIAGS: u32 = 6;
+pub const ASI_M_IODIAG: u32 = 7;
+pub const ASI_M_USERTXT: u32 = 8;
+pub const ASI_M_KERNELTXT: u32 = 9;
+pub const ASI_M_USERDATA: u32 = 10;
+pub const ASI_M_KERNELDATA: u32 = 11;
+pub const ASI_M_TXTC_TAG: u32 = 12;
+pub const ASI_M_TXTC_DATA: u32 = 13;
+pub const ASI_M_DATAC_TAG: u32 = 14;
+pub const ASI_M_DATAC_DATA: u32 = 15;
+pub const ASI_M_FLUSH_PAGE: u32 = 16;
+pub const ASI_M_FLUSH_SEG: u32 = 17;
+pub const ASI_M_FLUSH_REGION: u32 = 18;
+pub const ASI_M_FLUSH_CTX: u32 = 19;
+pub const ASI_M_FLUSH_USER: u32 = 20;
+pub const ASI_M_BCOPY: u32 = 23;
+pub const ASI_M_IFLUSH_PAGE: u32 = 24;
+pub const ASI_M_IFLUSH_SEG: u32 = 25;
+pub const ASI_M_IFLUSH_REGION: u32 = 26;
+pub const ASI_M_IFLUSH_CTX: u32 = 27;
+pub const ASI_M_IFLUSH_USER: u32 = 28;
+pub const ASI_M_BFILL: u32 = 31;
+pub const ASI_M_BYPASS: u32 = 32;
+pub const ASI_M_FBMEM: u32 = 41;
+pub const ASI_M_VMEUS: u32 = 42;
+pub const ASI_M_VMEPS: u32 = 43;
+pub const ASI_M_VMEUT: u32 = 44;
+pub const ASI_M_VMEPT: u32 = 45;
+pub const ASI_M_SBUS: u32 = 46;
+pub const ASI_M_CTL: u32 = 47;
+pub const ASI_M_FLUSH_IWHOLE: u32 = 49;
+pub const ASI_M_IC_FLCLEAR: u32 = 54;
+pub const ASI_M_DC_FLCLEAR: u32 = 55;
+pub const ASI_M_DCDR: u32 = 57;
+pub const ASI_M_VIKING_TMP1: u32 = 64;
+pub const ASI_M_ACTION: u32 = 76;
+pub const ASI_LEON_NOCACHE: u32 = 1;
+pub const ASI_LEON_DCACHE_MISS: u32 = 1;
+pub const ASI_LEON_CACHEREGS: u32 = 2;
+pub const ASI_LEON_IFLUSH: u32 = 16;
+pub const ASI_LEON_DFLUSH: u32 = 17;
+pub const ASI_LEON_MMUFLUSH: u32 = 24;
+pub const ASI_LEON_MMUREGS: u32 = 25;
+pub const ASI_LEON_BYPASS: u32 = 28;
+pub const ASI_LEON_FLUSH_PAGE: u32 = 16;
+pub const ASI_N: u32 = 4;
+pub const ASI_NL: u32 = 12;
+pub const ASI_AIUP: u32 = 16;
+pub const ASI_AIUS: u32 = 17;
+pub const ASI_AIUPL: u32 = 24;
+pub const ASI_AIUSL: u32 = 25;
+pub const ASI_P: u32 = 128;
+pub const ASI_S: u32 = 129;
+pub const ASI_PNF: u32 = 130;
+pub const ASI_SNF: u32 = 131;
+pub const ASI_PL: u32 = 136;
+pub const ASI_SL: u32 = 137;
+pub const ASI_PNFL: u32 = 138;
+pub const ASI_SNFL: u32 = 139;
+pub const ASI_MCD_PRIV_PRIMARY: u32 = 2;
+pub const ASI_MCD_REAL: u32 = 5;
+pub const ASI_PHYS_USE_EC: u32 = 20;
+pub const ASI_PHYS_BYPASS_EC_E: u32 = 21;
+pub const ASI_BLK_AIUP_4V: u32 = 22;
+pub const ASI_BLK_AIUS_4V: u32 = 23;
+pub const ASI_PHYS_USE_EC_L: u32 = 28;
+pub const ASI_PHYS_BYPASS_EC_E_L: u32 = 29;
+pub const ASI_BLK_AIUP_L_4V: u32 = 30;
+pub const ASI_BLK_AIUS_L_4V: u32 = 31;
+pub const ASI_SCRATCHPAD: u32 = 32;
+pub const ASI_MMU: u32 = 33;
+pub const ASI_BLK_INIT_QUAD_LDD_AIUS: u32 = 35;
+pub const ASI_NUCLEUS_QUAD_LDD: u32 = 36;
+pub const ASI_QUEUE: u32 = 37;
+pub const ASI_QUAD_LDD_PHYS_4V: u32 = 38;
+pub const ASI_NUCLEUS_QUAD_LDD_L: u32 = 44;
+pub const ASI_QUAD_LDD_PHYS_L_4V: u32 = 46;
+pub const ASI_PCACHE_DATA_STATUS: u32 = 48;
+pub const ASI_PCACHE_DATA: u32 = 49;
+pub const ASI_PCACHE_TAG: u32 = 50;
+pub const ASI_PCACHE_SNOOP_TAG: u32 = 51;
+pub const ASI_QUAD_LDD_PHYS: u32 = 52;
+pub const ASI_WCACHE_VALID_BITS: u32 = 56;
+pub const ASI_WCACHE_DATA: u32 = 57;
+pub const ASI_WCACHE_TAG: u32 = 58;
+pub const ASI_WCACHE_SNOOP_TAG: u32 = 59;
+pub const ASI_QUAD_LDD_PHYS_L: u32 = 60;
+pub const ASI_SRAM_FAST_INIT: u32 = 64;
+pub const ASI_CORE_AVAILABLE: u32 = 65;
+pub const ASI_CORE_ENABLE_STAT: u32 = 65;
+pub const ASI_CORE_ENABLE: u32 = 65;
+pub const ASI_XIR_STEERING: u32 = 65;
+pub const ASI_CORE_RUNNING_RW: u32 = 65;
+pub const ASI_CORE_RUNNING_W1S: u32 = 65;
+pub const ASI_CORE_RUNNING_W1C: u32 = 65;
+pub const ASI_CORE_RUNNING_STAT: u32 = 65;
+pub const ASI_CMT_ERROR_STEERING: u32 = 65;
+pub const ASI_DCACHE_INVALIDATE: u32 = 66;
+pub const ASI_DCACHE_UTAG: u32 = 67;
+pub const ASI_DCACHE_SNOOP_TAG: u32 = 68;
+pub const ASI_LSU_CONTROL: u32 = 69;
+pub const ASI_DCU_CONTROL_REG: u32 = 69;
+pub const ASI_DCACHE_DATA: u32 = 70;
+pub const ASI_DCACHE_TAG: u32 = 71;
+pub const ASI_INTR_DISPATCH_STAT: u32 = 72;
+pub const ASI_INTR_RECEIVE: u32 = 73;
+pub const ASI_UPA_CONFIG: u32 = 74;
+pub const ASI_JBUS_CONFIG: u32 = 74;
+pub const ASI_SAFARI_CONFIG: u32 = 74;
+pub const ASI_SAFARI_ADDRESS: u32 = 74;
+pub const ASI_ESTATE_ERROR_EN: u32 = 75;
+pub const ASI_AFSR: u32 = 76;
+pub const ASI_AFAR: u32 = 77;
+pub const ASI_EC_TAG_DATA: u32 = 78;
+pub const ASI_IMMU: u32 = 80;
+pub const ASI_IMMU_TSB_8KB_PTR: u32 = 81;
+pub const ASI_IMMU_TSB_64KB_PTR: u32 = 82;
+pub const ASI_ITLB_DATA_IN: u32 = 84;
+pub const ASI_ITLB_DATA_ACCESS: u32 = 85;
+pub const ASI_ITLB_TAG_READ: u32 = 86;
+pub const ASI_IMMU_DEMAP: u32 = 87;
+pub const ASI_DMMU: u32 = 88;
+pub const ASI_DMMU_TSB_8KB_PTR: u32 = 89;
+pub const ASI_DMMU_TSB_64KB_PTR: u32 = 90;
+pub const ASI_DMMU_TSB_DIRECT_PTR: u32 = 91;
+pub const ASI_DTLB_DATA_IN: u32 = 92;
+pub const ASI_DTLB_DATA_ACCESS: u32 = 93;
+pub const ASI_DTLB_TAG_READ: u32 = 94;
+pub const ASI_DMMU_DEMAP: u32 = 95;
+pub const ASI_IIU_INST_TRAP: u32 = 96;
+pub const ASI_INTR_ID: u32 = 99;
+pub const ASI_CORE_ID: u32 = 99;
+pub const ASI_CESR_ID: u32 = 99;
+pub const ASI_IC_INSTR: u32 = 102;
+pub const ASI_IC_TAG: u32 = 103;
+pub const ASI_IC_STAG: u32 = 104;
+pub const ASI_IC_PRE_DECODE: u32 = 110;
+pub const ASI_IC_NEXT_FIELD: u32 = 111;
+pub const ASI_BRPRED_ARRAY: u32 = 111;
+pub const ASI_BLK_AIUP: u32 = 112;
+pub const ASI_BLK_AIUS: u32 = 113;
+pub const ASI_MCU_CTRL_REG: u32 = 114;
+pub const ASI_EC_DATA: u32 = 116;
+pub const ASI_EC_CTRL: u32 = 117;
+pub const ASI_EC_W: u32 = 118;
+pub const ASI_UDB_ERROR_W: u32 = 119;
+pub const ASI_UDB_CONTROL_W: u32 = 119;
+pub const ASI_INTR_W: u32 = 119;
+pub const ASI_INTR_DATAN_W: u32 = 119;
+pub const ASI_INTR_DISPATCH_W: u32 = 119;
+pub const ASI_BLK_AIUPL: u32 = 120;
+pub const ASI_BLK_AIUSL: u32 = 121;
+pub const ASI_EC_R: u32 = 126;
+pub const ASI_UDBH_ERROR_R: u32 = 127;
+pub const ASI_UDBL_ERROR_R: u32 = 127;
+pub const ASI_UDBH_CONTROL_R: u32 = 127;
+pub const ASI_UDBL_CONTROL_R: u32 = 127;
+pub const ASI_INTR_R: u32 = 127;
+pub const ASI_INTR_DATAN_R: u32 = 127;
+pub const ASI_MCD_PRIMARY: u32 = 144;
+pub const ASI_MCD_ST_BLKINIT_PRIMARY: u32 = 146;
+pub const ASI_PIC: u32 = 176;
+pub const ASI_PST8_P: u32 = 192;
+pub const ASI_PST8_S: u32 = 193;
+pub const ASI_PST16_P: u32 = 194;
+pub const ASI_PST16_S: u32 = 195;
+pub const ASI_PST32_P: u32 = 196;
+pub const ASI_PST32_S: u32 = 197;
+pub const ASI_PST8_PL: u32 = 200;
+pub const ASI_PST8_SL: u32 = 201;
+pub const ASI_PST16_PL: u32 = 202;
+pub const ASI_PST16_SL: u32 = 203;
+pub const ASI_PST32_PL: u32 = 204;
+pub const ASI_PST32_SL: u32 = 205;
+pub const ASI_FL8_P: u32 = 208;
+pub const ASI_FL8_S: u32 = 209;
+pub const ASI_FL16_P: u32 = 210;
+pub const ASI_FL16_S: u32 = 211;
+pub const ASI_FL8_PL: u32 = 216;
+pub const ASI_FL8_SL: u32 = 217;
+pub const ASI_FL16_PL: u32 = 218;
+pub const ASI_FL16_SL: u32 = 219;
+pub const ASI_BLK_COMMIT_P: u32 = 224;
+pub const ASI_BLK_COMMIT_S: u32 = 225;
+pub const ASI_BLK_INIT_QUAD_LDD_P: u32 = 226;
+pub const ASI_BLK_INIT_QUAD_LDD_S: u32 = 227;
+pub const ASI_BLK_P: u32 = 240;
+pub const ASI_BLK_S: u32 = 241;
+pub const ASI_ST_BLKINIT_MRU_P: u32 = 242;
+pub const ASI_ST_BLKINIT_MRU_S: u32 = 243;
+pub const ASI_BLK_PL: u32 = 248;
+pub const ASI_BLK_SL: u32 = 249;
+pub const ASI_ST_BLKINIT_MRU_PL: u32 = 250;
+pub const ASI_ST_BLKINIT_MRU_SL: u32 = 251;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/sparc/image.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/io_uring.rs
new file mode 100644
index 0000000..db4174b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/io_uring.rs
@@ -0,0 +1,1335 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+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_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 13;
+pub const _IOC_DIRBITS: u32 = 3;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 8191;
+pub const _IOC_XSIZEMASK: u32 = 16383;
+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_NONE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const _IOC_WRITE: u32 = 4;
+pub const IOC_IN: u32 = 2147483648;
+pub const IOC_OUT: u32 = 1073741824;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/ioctl.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/ioctl.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/landlock.rs
new file mode 100644
index 0000000..fb2f679
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/landlock.rs
@@ -0,0 +1,98 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+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_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 landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/loop_device.rs
new file mode 100644
index 0000000..de73aea
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/loop_device.rs
@@ -0,0 +1,132 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+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_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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/sparc/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/mempolicy.rs
new file mode 100644
index 0000000..b26dbf9
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/mempolicy.rs
@@ -0,0 +1,177 @@
+/* automatically generated by rust-bindgen 0.71.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 EWOULDBLOCK: u32 = 11;
+pub const EINPROGRESS: u32 = 36;
+pub const EALREADY: u32 = 37;
+pub const ENOTSOCK: u32 = 38;
+pub const EDESTADDRREQ: u32 = 39;
+pub const EMSGSIZE: u32 = 40;
+pub const EPROTOTYPE: u32 = 41;
+pub const ENOPROTOOPT: u32 = 42;
+pub const EPROTONOSUPPORT: u32 = 43;
+pub const ESOCKTNOSUPPORT: u32 = 44;
+pub const EOPNOTSUPP: u32 = 45;
+pub const EPFNOSUPPORT: u32 = 46;
+pub const EAFNOSUPPORT: u32 = 47;
+pub const EADDRINUSE: u32 = 48;
+pub const EADDRNOTAVAIL: u32 = 49;
+pub const ENETDOWN: u32 = 50;
+pub const ENETUNREACH: u32 = 51;
+pub const ENETRESET: u32 = 52;
+pub const ECONNABORTED: u32 = 53;
+pub const ECONNRESET: u32 = 54;
+pub const ENOBUFS: u32 = 55;
+pub const EISCONN: u32 = 56;
+pub const ENOTCONN: u32 = 57;
+pub const ESHUTDOWN: u32 = 58;
+pub const ETOOMANYREFS: u32 = 59;
+pub const ETIMEDOUT: u32 = 60;
+pub const ECONNREFUSED: u32 = 61;
+pub const ELOOP: u32 = 62;
+pub const ENAMETOOLONG: u32 = 63;
+pub const EHOSTDOWN: u32 = 64;
+pub const EHOSTUNREACH: u32 = 65;
+pub const ENOTEMPTY: u32 = 66;
+pub const EPROCLIM: u32 = 67;
+pub const EUSERS: u32 = 68;
+pub const EDQUOT: u32 = 69;
+pub const ESTALE: u32 = 70;
+pub const EREMOTE: u32 = 71;
+pub const ENOSTR: u32 = 72;
+pub const ETIME: u32 = 73;
+pub const ENOSR: u32 = 74;
+pub const ENOMSG: u32 = 75;
+pub const EBADMSG: u32 = 76;
+pub const EIDRM: u32 = 77;
+pub const EDEADLK: u32 = 78;
+pub const ENOLCK: u32 = 79;
+pub const ENONET: u32 = 80;
+pub const ERREMOTE: u32 = 81;
+pub const ENOLINK: u32 = 82;
+pub const EADV: u32 = 83;
+pub const ESRMNT: u32 = 84;
+pub const ECOMM: u32 = 85;
+pub const EPROTO: u32 = 86;
+pub const EMULTIHOP: u32 = 87;
+pub const EDOTDOT: u32 = 88;
+pub const EREMCHG: u32 = 89;
+pub const ENOSYS: u32 = 90;
+pub const ESTRPIPE: u32 = 91;
+pub const EOVERFLOW: u32 = 92;
+pub const EBADFD: u32 = 93;
+pub const ECHRNG: u32 = 94;
+pub const EL2NSYNC: u32 = 95;
+pub const EL3HLT: u32 = 96;
+pub const EL3RST: u32 = 97;
+pub const ELNRNG: u32 = 98;
+pub const EUNATCH: u32 = 99;
+pub const ENOCSI: u32 = 100;
+pub const EL2HLT: u32 = 101;
+pub const EBADE: u32 = 102;
+pub const EBADR: u32 = 103;
+pub const EXFULL: u32 = 104;
+pub const ENOANO: u32 = 105;
+pub const EBADRQC: u32 = 106;
+pub const EBADSLT: u32 = 107;
+pub const EDEADLOCK: u32 = 108;
+pub const EBFONT: u32 = 109;
+pub const ELIBEXEC: u32 = 110;
+pub const ENODATA: u32 = 111;
+pub const ELIBBAD: u32 = 112;
+pub const ENOPKG: u32 = 113;
+pub const ELIBACC: u32 = 114;
+pub const ENOTUNIQ: u32 = 115;
+pub const ERESTART: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EILSEQ: u32 = 122;
+pub const ELIBMAX: u32 = 123;
+pub const ELIBSCN: u32 = 124;
+pub const ENOMEDIUM: u32 = 125;
+pub const EMEDIUMTYPE: u32 = 126;
+pub const ECANCELED: u32 = 127;
+pub const ENOKEY: u32 = 128;
+pub const EKEYEXPIRED: u32 = 129;
+pub const EKEYREVOKED: u32 = 130;
+pub const EKEYREJECTED: u32 = 131;
+pub const EOWNERDEAD: u32 = 132;
+pub const ENOTRECOVERABLE: u32 = 133;
+pub const ERFKILL: u32 = 134;
+pub const EHWPOISON: u32 = 135;
+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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc/net.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/net.rs
new file mode 100644
index 0000000..0bd7a9a
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/net.rs
@@ -0,0 +1,3635 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+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_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u32; 67usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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 ASI_NULL1: u32 = 0;
+pub const ASI_NULL2: u32 = 1;
+pub const ASI_CONTROL: u32 = 2;
+pub const ASI_SEGMAP: u32 = 3;
+pub const ASI_PTE: u32 = 4;
+pub const ASI_HWFLUSHSEG: u32 = 5;
+pub const ASI_HWFLUSHPAGE: u32 = 6;
+pub const ASI_REGMAP: u32 = 6;
+pub const ASI_HWFLUSHCONTEXT: u32 = 7;
+pub const ASI_USERTXT: u32 = 8;
+pub const ASI_KERNELTXT: u32 = 9;
+pub const ASI_USERDATA: u32 = 10;
+pub const ASI_KERNELDATA: u32 = 11;
+pub const ASI_FLUSHSEG: u32 = 12;
+pub const ASI_FLUSHPG: u32 = 13;
+pub const ASI_FLUSHCTX: u32 = 14;
+pub const ASI_M_RES00: u32 = 0;
+pub const ASI_M_UNA01: u32 = 1;
+pub const ASI_M_MXCC: u32 = 2;
+pub const ASI_M_FLUSH_PROBE: u32 = 3;
+pub const ASI_M_MMUREGS: u32 = 4;
+pub const ASI_M_TLBDIAG: u32 = 5;
+pub const ASI_M_DIAGS: u32 = 6;
+pub const ASI_M_IODIAG: u32 = 7;
+pub const ASI_M_USERTXT: u32 = 8;
+pub const ASI_M_KERNELTXT: u32 = 9;
+pub const ASI_M_USERDATA: u32 = 10;
+pub const ASI_M_KERNELDATA: u32 = 11;
+pub const ASI_M_TXTC_TAG: u32 = 12;
+pub const ASI_M_TXTC_DATA: u32 = 13;
+pub const ASI_M_DATAC_TAG: u32 = 14;
+pub const ASI_M_DATAC_DATA: u32 = 15;
+pub const ASI_M_FLUSH_PAGE: u32 = 16;
+pub const ASI_M_FLUSH_SEG: u32 = 17;
+pub const ASI_M_FLUSH_REGION: u32 = 18;
+pub const ASI_M_FLUSH_CTX: u32 = 19;
+pub const ASI_M_FLUSH_USER: u32 = 20;
+pub const ASI_M_BCOPY: u32 = 23;
+pub const ASI_M_IFLUSH_PAGE: u32 = 24;
+pub const ASI_M_IFLUSH_SEG: u32 = 25;
+pub const ASI_M_IFLUSH_REGION: u32 = 26;
+pub const ASI_M_IFLUSH_CTX: u32 = 27;
+pub const ASI_M_IFLUSH_USER: u32 = 28;
+pub const ASI_M_BFILL: u32 = 31;
+pub const ASI_M_BYPASS: u32 = 32;
+pub const ASI_M_FBMEM: u32 = 41;
+pub const ASI_M_VMEUS: u32 = 42;
+pub const ASI_M_VMEPS: u32 = 43;
+pub const ASI_M_VMEUT: u32 = 44;
+pub const ASI_M_VMEPT: u32 = 45;
+pub const ASI_M_SBUS: u32 = 46;
+pub const ASI_M_CTL: u32 = 47;
+pub const ASI_M_FLUSH_IWHOLE: u32 = 49;
+pub const ASI_M_IC_FLCLEAR: u32 = 54;
+pub const ASI_M_DC_FLCLEAR: u32 = 55;
+pub const ASI_M_DCDR: u32 = 57;
+pub const ASI_M_VIKING_TMP1: u32 = 64;
+pub const ASI_M_ACTION: u32 = 76;
+pub const ASI_LEON_NOCACHE: u32 = 1;
+pub const ASI_LEON_DCACHE_MISS: u32 = 1;
+pub const ASI_LEON_CACHEREGS: u32 = 2;
+pub const ASI_LEON_IFLUSH: u32 = 16;
+pub const ASI_LEON_DFLUSH: u32 = 17;
+pub const ASI_LEON_MMUFLUSH: u32 = 24;
+pub const ASI_LEON_MMUREGS: u32 = 25;
+pub const ASI_LEON_BYPASS: u32 = 28;
+pub const ASI_LEON_FLUSH_PAGE: u32 = 16;
+pub const ASI_N: u32 = 4;
+pub const ASI_NL: u32 = 12;
+pub const ASI_AIUP: u32 = 16;
+pub const ASI_AIUS: u32 = 17;
+pub const ASI_AIUPL: u32 = 24;
+pub const ASI_AIUSL: u32 = 25;
+pub const ASI_P: u32 = 128;
+pub const ASI_S: u32 = 129;
+pub const ASI_PNF: u32 = 130;
+pub const ASI_SNF: u32 = 131;
+pub const ASI_PL: u32 = 136;
+pub const ASI_SL: u32 = 137;
+pub const ASI_PNFL: u32 = 138;
+pub const ASI_SNFL: u32 = 139;
+pub const ASI_MCD_PRIV_PRIMARY: u32 = 2;
+pub const ASI_MCD_REAL: u32 = 5;
+pub const ASI_PHYS_USE_EC: u32 = 20;
+pub const ASI_PHYS_BYPASS_EC_E: u32 = 21;
+pub const ASI_BLK_AIUP_4V: u32 = 22;
+pub const ASI_BLK_AIUS_4V: u32 = 23;
+pub const ASI_PHYS_USE_EC_L: u32 = 28;
+pub const ASI_PHYS_BYPASS_EC_E_L: u32 = 29;
+pub const ASI_BLK_AIUP_L_4V: u32 = 30;
+pub const ASI_BLK_AIUS_L_4V: u32 = 31;
+pub const ASI_SCRATCHPAD: u32 = 32;
+pub const ASI_MMU: u32 = 33;
+pub const ASI_BLK_INIT_QUAD_LDD_AIUS: u32 = 35;
+pub const ASI_NUCLEUS_QUAD_LDD: u32 = 36;
+pub const ASI_QUEUE: u32 = 37;
+pub const ASI_QUAD_LDD_PHYS_4V: u32 = 38;
+pub const ASI_NUCLEUS_QUAD_LDD_L: u32 = 44;
+pub const ASI_QUAD_LDD_PHYS_L_4V: u32 = 46;
+pub const ASI_PCACHE_DATA_STATUS: u32 = 48;
+pub const ASI_PCACHE_DATA: u32 = 49;
+pub const ASI_PCACHE_TAG: u32 = 50;
+pub const ASI_PCACHE_SNOOP_TAG: u32 = 51;
+pub const ASI_QUAD_LDD_PHYS: u32 = 52;
+pub const ASI_WCACHE_VALID_BITS: u32 = 56;
+pub const ASI_WCACHE_DATA: u32 = 57;
+pub const ASI_WCACHE_TAG: u32 = 58;
+pub const ASI_WCACHE_SNOOP_TAG: u32 = 59;
+pub const ASI_QUAD_LDD_PHYS_L: u32 = 60;
+pub const ASI_SRAM_FAST_INIT: u32 = 64;
+pub const ASI_CORE_AVAILABLE: u32 = 65;
+pub const ASI_CORE_ENABLE_STAT: u32 = 65;
+pub const ASI_CORE_ENABLE: u32 = 65;
+pub const ASI_XIR_STEERING: u32 = 65;
+pub const ASI_CORE_RUNNING_RW: u32 = 65;
+pub const ASI_CORE_RUNNING_W1S: u32 = 65;
+pub const ASI_CORE_RUNNING_W1C: u32 = 65;
+pub const ASI_CORE_RUNNING_STAT: u32 = 65;
+pub const ASI_CMT_ERROR_STEERING: u32 = 65;
+pub const ASI_DCACHE_INVALIDATE: u32 = 66;
+pub const ASI_DCACHE_UTAG: u32 = 67;
+pub const ASI_DCACHE_SNOOP_TAG: u32 = 68;
+pub const ASI_LSU_CONTROL: u32 = 69;
+pub const ASI_DCU_CONTROL_REG: u32 = 69;
+pub const ASI_DCACHE_DATA: u32 = 70;
+pub const ASI_DCACHE_TAG: u32 = 71;
+pub const ASI_INTR_DISPATCH_STAT: u32 = 72;
+pub const ASI_INTR_RECEIVE: u32 = 73;
+pub const ASI_UPA_CONFIG: u32 = 74;
+pub const ASI_JBUS_CONFIG: u32 = 74;
+pub const ASI_SAFARI_CONFIG: u32 = 74;
+pub const ASI_SAFARI_ADDRESS: u32 = 74;
+pub const ASI_ESTATE_ERROR_EN: u32 = 75;
+pub const ASI_AFSR: u32 = 76;
+pub const ASI_AFAR: u32 = 77;
+pub const ASI_EC_TAG_DATA: u32 = 78;
+pub const ASI_IMMU: u32 = 80;
+pub const ASI_IMMU_TSB_8KB_PTR: u32 = 81;
+pub const ASI_IMMU_TSB_64KB_PTR: u32 = 82;
+pub const ASI_ITLB_DATA_IN: u32 = 84;
+pub const ASI_ITLB_DATA_ACCESS: u32 = 85;
+pub const ASI_ITLB_TAG_READ: u32 = 86;
+pub const ASI_IMMU_DEMAP: u32 = 87;
+pub const ASI_DMMU: u32 = 88;
+pub const ASI_DMMU_TSB_8KB_PTR: u32 = 89;
+pub const ASI_DMMU_TSB_64KB_PTR: u32 = 90;
+pub const ASI_DMMU_TSB_DIRECT_PTR: u32 = 91;
+pub const ASI_DTLB_DATA_IN: u32 = 92;
+pub const ASI_DTLB_DATA_ACCESS: u32 = 93;
+pub const ASI_DTLB_TAG_READ: u32 = 94;
+pub const ASI_DMMU_DEMAP: u32 = 95;
+pub const ASI_IIU_INST_TRAP: u32 = 96;
+pub const ASI_INTR_ID: u32 = 99;
+pub const ASI_CORE_ID: u32 = 99;
+pub const ASI_CESR_ID: u32 = 99;
+pub const ASI_IC_INSTR: u32 = 102;
+pub const ASI_IC_TAG: u32 = 103;
+pub const ASI_IC_STAG: u32 = 104;
+pub const ASI_IC_PRE_DECODE: u32 = 110;
+pub const ASI_IC_NEXT_FIELD: u32 = 111;
+pub const ASI_BRPRED_ARRAY: u32 = 111;
+pub const ASI_BLK_AIUP: u32 = 112;
+pub const ASI_BLK_AIUS: u32 = 113;
+pub const ASI_MCU_CTRL_REG: u32 = 114;
+pub const ASI_EC_DATA: u32 = 116;
+pub const ASI_EC_CTRL: u32 = 117;
+pub const ASI_EC_W: u32 = 118;
+pub const ASI_UDB_ERROR_W: u32 = 119;
+pub const ASI_UDB_CONTROL_W: u32 = 119;
+pub const ASI_INTR_W: u32 = 119;
+pub const ASI_INTR_DATAN_W: u32 = 119;
+pub const ASI_INTR_DISPATCH_W: u32 = 119;
+pub const ASI_BLK_AIUPL: u32 = 120;
+pub const ASI_BLK_AIUSL: u32 = 121;
+pub const ASI_EC_R: u32 = 126;
+pub const ASI_UDBH_ERROR_R: u32 = 127;
+pub const ASI_UDBL_ERROR_R: u32 = 127;
+pub const ASI_UDBH_CONTROL_R: u32 = 127;
+pub const ASI_UDBL_CONTROL_R: u32 = 127;
+pub const ASI_INTR_R: u32 = 127;
+pub const ASI_INTR_DATAN_R: u32 = 127;
+pub const ASI_MCD_PRIMARY: u32 = 144;
+pub const ASI_MCD_ST_BLKINIT_PRIMARY: u32 = 146;
+pub const ASI_PIC: u32 = 176;
+pub const ASI_PST8_P: u32 = 192;
+pub const ASI_PST8_S: u32 = 193;
+pub const ASI_PST16_P: u32 = 194;
+pub const ASI_PST16_S: u32 = 195;
+pub const ASI_PST32_P: u32 = 196;
+pub const ASI_PST32_S: u32 = 197;
+pub const ASI_PST8_PL: u32 = 200;
+pub const ASI_PST8_SL: u32 = 201;
+pub const ASI_PST16_PL: u32 = 202;
+pub const ASI_PST16_SL: u32 = 203;
+pub const ASI_PST32_PL: u32 = 204;
+pub const ASI_PST32_SL: u32 = 205;
+pub const ASI_FL8_P: u32 = 208;
+pub const ASI_FL8_S: u32 = 209;
+pub const ASI_FL16_P: u32 = 210;
+pub const ASI_FL16_S: u32 = 211;
+pub const ASI_FL8_PL: u32 = 216;
+pub const ASI_FL8_SL: u32 = 217;
+pub const ASI_FL16_PL: u32 = 218;
+pub const ASI_FL16_SL: u32 = 219;
+pub const ASI_BLK_COMMIT_P: u32 = 224;
+pub const ASI_BLK_COMMIT_S: u32 = 225;
+pub const ASI_BLK_INIT_QUAD_LDD_P: u32 = 226;
+pub const ASI_BLK_INIT_QUAD_LDD_S: u32 = 227;
+pub const ASI_BLK_P: u32 = 240;
+pub const ASI_BLK_S: u32 = 241;
+pub const ASI_ST_BLKINIT_MRU_P: u32 = 242;
+pub const ASI_ST_BLKINIT_MRU_S: u32 = 243;
+pub const ASI_BLK_PL: u32 = 248;
+pub const ASI_BLK_SL: u32 = 249;
+pub const ASI_ST_BLKINIT_MRU_PL: u32 = 250;
+pub const ASI_ST_BLKINIT_MRU_SL: u32 = 251;
+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 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_PASSCRED: u32 = 2;
+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_PEERCRED: u32 = 64;
+pub const SO_LINGER: u32 = 128;
+pub const SO_OOBINLINE: u32 = 256;
+pub const SO_REUSEPORT: u32 = 512;
+pub const SO_BSDCOMPAT: u32 = 1024;
+pub const SO_RCVLOWAT: u32 = 2048;
+pub const SO_SNDLOWAT: u32 = 4096;
+pub const SO_RCVTIMEO_OLD: u32 = 8192;
+pub const SO_SNDTIMEO_OLD: u32 = 16384;
+pub const SO_ACCEPTCONN: u32 = 32768;
+pub const SO_SNDBUF: u32 = 4097;
+pub const SO_RCVBUF: u32 = 4098;
+pub const SO_SNDBUFFORCE: u32 = 4106;
+pub const SO_RCVBUFFORCE: u32 = 4107;
+pub const SO_ERROR: u32 = 4103;
+pub const SO_TYPE: u32 = 4104;
+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_BINDTODEVICE: u32 = 13;
+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_PASSSEC: u32 = 31;
+pub const SO_MARK: u32 = 34;
+pub const SO_RXQ_OVFL: u32 = 36;
+pub const SO_WIFI_STATUS: u32 = 37;
+pub const SCM_WIFI_STATUS: u32 = 37;
+pub const SO_PEEK_OFF: u32 = 38;
+pub const SO_NOFCS: u32 = 39;
+pub const SO_LOCK_FILTER: u32 = 40;
+pub const SO_SELECT_ERR_QUEUE: u32 = 41;
+pub const SO_BUSY_POLL: u32 = 48;
+pub const SO_MAX_PACING_RATE: u32 = 49;
+pub const SO_BPF_EXTENSIONS: u32 = 50;
+pub const SO_INCOMING_CPU: u32 = 51;
+pub const SO_ATTACH_BPF: u32 = 52;
+pub const SO_DETACH_BPF: u32 = 27;
+pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 53;
+pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 54;
+pub const SO_CNX_ADVICE: u32 = 55;
+pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 56;
+pub const SO_MEMINFO: u32 = 57;
+pub const SO_INCOMING_NAPI_ID: u32 = 58;
+pub const SO_COOKIE: u32 = 59;
+pub const SCM_TIMESTAMPING_PKTINFO: u32 = 60;
+pub const SO_PEERGROUPS: u32 = 61;
+pub const SO_ZEROCOPY: u32 = 62;
+pub const SO_TXTIME: u32 = 63;
+pub const SCM_TXTIME: u32 = 63;
+pub const SO_BINDTOIFINDEX: u32 = 65;
+pub const SO_SECURITY_AUTHENTICATION: u32 = 20481;
+pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 20482;
+pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 20484;
+pub const SO_TIMESTAMP_OLD: u32 = 29;
+pub const SO_TIMESTAMPNS_OLD: u32 = 33;
+pub const SO_TIMESTAMPING_OLD: u32 = 35;
+pub const SO_TIMESTAMP_NEW: u32 = 70;
+pub const SO_TIMESTAMPNS_NEW: u32 = 66;
+pub const SO_TIMESTAMPING_NEW: u32 = 67;
+pub const SO_RCVTIMEO_NEW: u32 = 68;
+pub const SO_SNDTIMEO_NEW: u32 = 69;
+pub const SO_DETACH_REUSEPORT_BPF: u32 = 71;
+pub const SO_PREFER_BUSY_POLL: u32 = 72;
+pub const SO_BUSY_POLL_BUDGET: u32 = 73;
+pub const SO_NETNS_COOKIE: u32 = 80;
+pub const SO_BUF_LOCK: u32 = 81;
+pub const SO_RESERVE_MEM: u32 = 82;
+pub const SO_TXREHASH: u32 = 83;
+pub const SO_RCVMARK: u32 = 84;
+pub const SO_PASSPIDFD: u32 = 85;
+pub const SO_PEERPIDFD: u32 = 86;
+pub const SO_DEVMEM_LINEAR: u32 = 87;
+pub const SCM_DEVMEM_LINEAR: u32 = 87;
+pub const SO_DEVMEM_DMABUF: u32 = 88;
+pub const SCM_DEVMEM_DMABUF: u32 = 88;
+pub const SO_DEVMEM_DONTNEED: u32 = 89;
+pub const SCM_TS_OPT_ID: u32 = 90;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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 = 1;
+pub const SOCK_DGRAM: u32 = 2;
+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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/netlink.rs
new file mode 100644
index 0000000..ae0f359
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/netlink.rs
@@ -0,0 +1,2944 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+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_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_nl {
+pub nl_family: __kernel_sa_family_t,
+pub nl_pad: crate::ctypes::c_ushort,
+pub nl_pid: __u32,
+pub nl_groups: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsghdr {
+pub nlmsg_len: __u32,
+pub nlmsg_type: __u16,
+pub nlmsg_flags: __u16,
+pub nlmsg_seq: __u32,
+pub nlmsg_pid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsgerr {
+pub error: crate::ctypes::c_int,
+pub msg: nlmsghdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_pktinfo {
+pub group: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_req {
+pub nm_block_size: crate::ctypes::c_uint,
+pub nm_block_nr: crate::ctypes::c_uint,
+pub nm_frame_size: crate::ctypes::c_uint,
+pub nm_frame_nr: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_hdr {
+pub nm_status: crate::ctypes::c_uint,
+pub nm_len: crate::ctypes::c_uint,
+pub nm_group: __u32,
+pub nm_pid: __u32,
+pub nm_uid: __u32,
+pub nm_gid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlattr {
+pub nla_len: __u16,
+pub nla_type: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nla_bitfield32 {
+pub value: __u32,
+pub selector: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats {
+pub rx_packets: __u32,
+pub tx_packets: __u32,
+pub rx_bytes: __u32,
+pub tx_bytes: __u32,
+pub rx_errors: __u32,
+pub tx_errors: __u32,
+pub rx_dropped: __u32,
+pub tx_dropped: __u32,
+pub multicast: __u32,
+pub collisions: __u32,
+pub rx_length_errors: __u32,
+pub rx_over_errors: __u32,
+pub rx_crc_errors: __u32,
+pub rx_frame_errors: __u32,
+pub rx_fifo_errors: __u32,
+pub rx_missed_errors: __u32,
+pub tx_aborted_errors: __u32,
+pub tx_carrier_errors: __u32,
+pub tx_fifo_errors: __u32,
+pub tx_heartbeat_errors: __u32,
+pub tx_window_errors: __u32,
+pub rx_compressed: __u32,
+pub tx_compressed: __u32,
+pub rx_nohandler: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+pub collisions: __u64,
+pub rx_length_errors: __u64,
+pub rx_over_errors: __u64,
+pub rx_crc_errors: __u64,
+pub rx_frame_errors: __u64,
+pub rx_fifo_errors: __u64,
+pub rx_missed_errors: __u64,
+pub tx_aborted_errors: __u64,
+pub tx_carrier_errors: __u64,
+pub tx_fifo_errors: __u64,
+pub tx_heartbeat_errors: __u64,
+pub tx_window_errors: __u64,
+pub rx_compressed: __u64,
+pub tx_compressed: __u64,
+pub rx_nohandler: __u64,
+pub rx_otherhost_dropped: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_hw_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_ifmap {
+pub mem_start: __u64,
+pub mem_end: __u64,
+pub base_addr: __u64,
+pub irq: __u16,
+pub dma: __u8,
+pub port: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_bridge_id {
+pub prio: [__u8; 2usize],
+pub addr: [__u8; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_cacheinfo {
+pub max_reasm_len: __u32,
+pub tstamp: __u32,
+pub reachable_time: __u32,
+pub retrans_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_qos_mapping {
+pub from: __u32,
+pub to: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tunnel_msg {
+pub family: __u8,
+pub flags: __u8,
+pub reserved2: __u16,
+pub ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vxlan_port_range {
+pub low: __be16,
+pub high: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_mac {
+pub vf: __u32,
+pub mac: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_broadcast {
+pub broadcast: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan_info {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+pub vlan_proto: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_tx_rate {
+pub vf: __u32,
+pub rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rate {
+pub vf: __u32,
+pub min_tx_rate: __u32,
+pub max_tx_rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_spoofchk {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_guid {
+pub vf: __u32,
+pub guid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_link_state {
+pub vf: __u32,
+pub link_state: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rss_query_en {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_trust {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_port_vsi {
+pub vsi_mgr_id: __u8,
+pub vsi_type_id: [__u8; 3usize],
+pub vsi_type_version: __u8,
+pub pad: [__u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_stats_msg {
+pub family: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub ifindex: __u32,
+pub filter_mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_rmnet_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifaddrmsg {
+pub ifa_family: __u8,
+pub ifa_prefixlen: __u8,
+pub ifa_flags: __u8,
+pub ifa_scope: __u8,
+pub ifa_index: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifa_cacheinfo {
+pub ifa_prefered: __u32,
+pub ifa_valid: __u32,
+pub cstamp: __u32,
+pub tstamp: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndmsg {
+pub ndm_family: __u8,
+pub ndm_pad1: __u8,
+pub ndm_pad2: __u16,
+pub ndm_ifindex: __s32,
+pub ndm_state: __u16,
+pub ndm_flags: __u8,
+pub ndm_type: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nda_cacheinfo {
+pub ndm_confirmed: __u32,
+pub ndm_used: __u32,
+pub ndm_updated: __u32,
+pub ndm_refcnt: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_stats {
+pub ndts_allocs: __u64,
+pub ndts_destroys: __u64,
+pub ndts_hash_grows: __u64,
+pub ndts_res_failed: __u64,
+pub ndts_lookups: __u64,
+pub ndts_hits: __u64,
+pub ndts_rcv_probes_mcast: __u64,
+pub ndts_rcv_probes_ucast: __u64,
+pub ndts_periodic_gc_runs: __u64,
+pub ndts_forced_gc_runs: __u64,
+pub ndts_table_fulls: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndtmsg {
+pub ndtm_family: __u8,
+pub ndtm_pad1: __u8,
+pub ndtm_pad2: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_config {
+pub ndtc_key_len: __u16,
+pub ndtc_entry_size: __u16,
+pub ndtc_entries: __u32,
+pub ndtc_last_flush: __u32,
+pub ndtc_last_rand: __u32,
+pub ndtc_hash_rnd: __u32,
+pub ndtc_hash_mask: __u32,
+pub ndtc_hash_chain_gc: __u32,
+pub ndtc_proxy_qlen: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtattr {
+pub rta_len: crate::ctypes::c_ushort,
+pub rta_type: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtmsg {
+pub rtm_family: crate::ctypes::c_uchar,
+pub rtm_dst_len: crate::ctypes::c_uchar,
+pub rtm_src_len: crate::ctypes::c_uchar,
+pub rtm_tos: crate::ctypes::c_uchar,
+pub rtm_table: crate::ctypes::c_uchar,
+pub rtm_protocol: crate::ctypes::c_uchar,
+pub rtm_scope: crate::ctypes::c_uchar,
+pub rtm_type: crate::ctypes::c_uchar,
+pub rtm_flags: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnexthop {
+pub rtnh_len: crate::ctypes::c_ushort,
+pub rtnh_flags: crate::ctypes::c_uchar,
+pub rtnh_hops: crate::ctypes::c_uchar,
+pub rtnh_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct rtvia {
+pub rtvia_family: __kernel_sa_family_t,
+pub rtvia_addr: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_cacheinfo {
+pub rta_clntref: __u32,
+pub rta_lastuse: __u32,
+pub rta_expires: __s32,
+pub rta_error: __u32,
+pub rta_used: __u32,
+pub rta_id: __u32,
+pub rta_ts: __u32,
+pub rta_tsage: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rta_session {
+pub proto: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub u: rta_session__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_1 {
+pub sport: __u16,
+pub dport: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_2 {
+pub type_: __u8,
+pub code: __u8,
+pub ident: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_mfc_stats {
+pub mfcs_packets: __u64,
+pub mfcs_bytes: __u64,
+pub mfcs_wrong_if: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtgenmsg {
+pub rtgen_family: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifinfomsg {
+pub ifi_family: crate::ctypes::c_uchar,
+pub __ifi_pad: crate::ctypes::c_uchar,
+pub ifi_type: crate::ctypes::c_ushort,
+pub ifi_index: crate::ctypes::c_int,
+pub ifi_flags: crate::ctypes::c_uint,
+pub ifi_change: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefixmsg {
+pub prefix_family: crate::ctypes::c_uchar,
+pub prefix_pad1: crate::ctypes::c_uchar,
+pub prefix_pad2: crate::ctypes::c_ushort,
+pub prefix_ifindex: crate::ctypes::c_int,
+pub prefix_type: crate::ctypes::c_uchar,
+pub prefix_len: crate::ctypes::c_uchar,
+pub prefix_flags: crate::ctypes::c_uchar,
+pub prefix_pad3: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefix_cacheinfo {
+pub preferred_time: __u32,
+pub valid_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcmsg {
+pub tcm_family: crate::ctypes::c_uchar,
+pub tcm__pad1: crate::ctypes::c_uchar,
+pub tcm__pad2: crate::ctypes::c_ushort,
+pub tcm_ifindex: crate::ctypes::c_int,
+pub tcm_handle: __u32,
+pub tcm_parent: __u32,
+pub tcm_info: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nduseroptmsg {
+pub nduseropt_family: crate::ctypes::c_uchar,
+pub nduseropt_pad1: crate::ctypes::c_uchar,
+pub nduseropt_opts_len: crate::ctypes::c_ushort,
+pub nduseropt_ifindex: crate::ctypes::c_int,
+pub nduseropt_icmp_type: __u8,
+pub nduseropt_icmp_code: __u8,
+pub nduseropt_pad2: crate::ctypes::c_ushort,
+pub nduseropt_pad3: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcamsg {
+pub tca_family: crate::ctypes::c_uchar,
+pub tca__pad1: crate::ctypes::c_uchar,
+pub tca__pad2: crate::ctypes::c_ushort,
+}
+pub const _K_SS_MAXSIZE: u32 = 128;
+pub const SOCK_SNDBUF_LOCK: u32 = 1;
+pub const SOCK_RCVBUF_LOCK: u32 = 2;
+pub const SOCK_BUF_LOCK_MASK: u32 = 3;
+pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
+pub const SOCK_TXREHASH_DISABLED: u32 = 0;
+pub const SOCK_TXREHASH_ENABLED: u32 = 1;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/sparc/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/prctl.rs
new file mode 100644
index 0000000..0f3f1ca
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/prctl.rs
@@ -0,0 +1,260 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+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_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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/ptrace.rs
new file mode 100644
index 0000000..a81af84
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/ptrace.rs
@@ -0,0 +1,992 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+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_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pt_regs {
+pub psr: crate::ctypes::c_ulong,
+pub pc: crate::ctypes::c_ulong,
+pub npc: crate::ctypes::c_ulong,
+pub y: crate::ctypes::c_ulong,
+pub u_regs: [crate::ctypes::c_ulong; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct reg_window32 {
+pub locals: [crate::ctypes::c_ulong; 8usize],
+pub ins: [crate::ctypes::c_ulong; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sparc_stackf {
+pub locals: [crate::ctypes::c_ulong; 8usize],
+pub ins: [crate::ctypes::c_ulong; 6usize],
+pub fp: *mut sparc_stackf,
+pub callers_pc: crate::ctypes::c_ulong,
+pub structptr: *mut crate::ctypes::c_char,
+pub xargs: [crate::ctypes::c_ulong; 6usize],
+pub xxargs: [crate::ctypes::c_ulong; 1usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const PSR_CWP: u32 = 31;
+pub const PSR_ET: u32 = 32;
+pub const PSR_PS: u32 = 64;
+pub const PSR_S: u32 = 128;
+pub const PSR_PIL: u32 = 3840;
+pub const PSR_EF: u32 = 4096;
+pub const PSR_EC: u32 = 8192;
+pub const PSR_SYSCALL: u32 = 16384;
+pub const PSR_LE: u32 = 32768;
+pub const PSR_ICC: u32 = 15728640;
+pub const PSR_C: u32 = 1048576;
+pub const PSR_V: u32 = 2097152;
+pub const PSR_Z: u32 = 4194304;
+pub const PSR_N: u32 = 8388608;
+pub const PSR_VERS: u32 = 251658240;
+pub const PSR_IMPL: u32 = 4026531840;
+pub const PSR_VERS_SHIFT: u32 = 24;
+pub const PSR_IMPL_SHIFT: u32 = 28;
+pub const PSR_VERS_SHIFTED_MASK: u32 = 15;
+pub const PSR_IMPL_SHIFTED_MASK: u32 = 15;
+pub const PSR_IMPL_TI: u32 = 4;
+pub const PSR_IMPL_LEON: u32 = 15;
+pub const UREG_G0: u32 = 0;
+pub const UREG_G1: u32 = 1;
+pub const UREG_G2: u32 = 2;
+pub const UREG_G3: u32 = 3;
+pub const UREG_G4: u32 = 4;
+pub const UREG_G5: u32 = 5;
+pub const UREG_G6: u32 = 6;
+pub const UREG_G7: u32 = 7;
+pub const UREG_I0: u32 = 8;
+pub const UREG_I1: u32 = 9;
+pub const UREG_I2: u32 = 10;
+pub const UREG_I3: u32 = 11;
+pub const UREG_I4: u32 = 12;
+pub const UREG_I5: u32 = 13;
+pub const UREG_I6: u32 = 14;
+pub const UREG_I7: u32 = 15;
+pub const UREG_FP: u32 = 14;
+pub const UREG_RETPC: u32 = 15;
+pub const PT_V9_G0: u32 = 0;
+pub const PT_V9_G1: u32 = 8;
+pub const PT_V9_G2: u32 = 16;
+pub const PT_V9_G3: u32 = 24;
+pub const PT_V9_G4: u32 = 32;
+pub const PT_V9_G5: u32 = 40;
+pub const PT_V9_G6: u32 = 48;
+pub const PT_V9_G7: u32 = 56;
+pub const PT_V9_I0: u32 = 64;
+pub const PT_V9_I1: u32 = 72;
+pub const PT_V9_I2: u32 = 80;
+pub const PT_V9_I3: u32 = 88;
+pub const PT_V9_I4: u32 = 96;
+pub const PT_V9_I5: u32 = 104;
+pub const PT_V9_I6: u32 = 112;
+pub const PT_V9_FP: u32 = 112;
+pub const PT_V9_I7: u32 = 120;
+pub const PT_V9_TSTATE: u32 = 128;
+pub const PT_V9_TPC: u32 = 136;
+pub const PT_V9_TNPC: u32 = 144;
+pub const PT_V9_Y: u32 = 152;
+pub const PT_V9_MAGIC: u32 = 156;
+pub const PT_TSTATE: u32 = 128;
+pub const PT_TPC: u32 = 136;
+pub const PT_TNPC: u32 = 144;
+pub const PT_PSR: u32 = 0;
+pub const PT_PC: u32 = 4;
+pub const PT_NPC: u32 = 8;
+pub const PT_Y: u32 = 12;
+pub const PT_G0: u32 = 16;
+pub const PT_WIM: u32 = 16;
+pub const PT_G1: u32 = 20;
+pub const PT_G2: u32 = 24;
+pub const PT_G3: u32 = 28;
+pub const PT_G4: u32 = 32;
+pub const PT_G5: u32 = 36;
+pub const PT_G6: u32 = 40;
+pub const PT_G7: u32 = 44;
+pub const PT_I0: u32 = 48;
+pub const PT_I1: u32 = 52;
+pub const PT_I2: u32 = 56;
+pub const PT_I3: u32 = 60;
+pub const PT_I4: u32 = 64;
+pub const PT_I5: u32 = 68;
+pub const PT_I6: u32 = 72;
+pub const PT_FP: u32 = 72;
+pub const PT_I7: u32 = 76;
+pub const RW_V9_L0: u32 = 0;
+pub const RW_V9_L1: u32 = 8;
+pub const RW_V9_L2: u32 = 16;
+pub const RW_V9_L3: u32 = 24;
+pub const RW_V9_L4: u32 = 32;
+pub const RW_V9_L5: u32 = 40;
+pub const RW_V9_L6: u32 = 48;
+pub const RW_V9_L7: u32 = 56;
+pub const RW_V9_I0: u32 = 64;
+pub const RW_V9_I1: u32 = 72;
+pub const RW_V9_I2: u32 = 80;
+pub const RW_V9_I3: u32 = 88;
+pub const RW_V9_I4: u32 = 96;
+pub const RW_V9_I5: u32 = 104;
+pub const RW_V9_I6: u32 = 112;
+pub const RW_V9_I7: u32 = 120;
+pub const RW_L0: u32 = 0;
+pub const RW_L1: u32 = 4;
+pub const RW_L2: u32 = 8;
+pub const RW_L3: u32 = 12;
+pub const RW_L4: u32 = 16;
+pub const RW_L5: u32 = 20;
+pub const RW_L6: u32 = 24;
+pub const RW_L7: u32 = 28;
+pub const RW_I0: u32 = 32;
+pub const RW_I1: u32 = 36;
+pub const RW_I2: u32 = 40;
+pub const RW_I3: u32 = 44;
+pub const RW_I4: u32 = 48;
+pub const RW_I5: u32 = 52;
+pub const RW_I6: u32 = 56;
+pub const RW_I7: u32 = 60;
+pub const SF_V9_L0: u32 = 0;
+pub const SF_V9_L1: u32 = 8;
+pub const SF_V9_L2: u32 = 16;
+pub const SF_V9_L3: u32 = 24;
+pub const SF_V9_L4: u32 = 32;
+pub const SF_V9_L5: u32 = 40;
+pub const SF_V9_L6: u32 = 48;
+pub const SF_V9_L7: u32 = 56;
+pub const SF_V9_I0: u32 = 64;
+pub const SF_V9_I1: u32 = 72;
+pub const SF_V9_I2: u32 = 80;
+pub const SF_V9_I3: u32 = 88;
+pub const SF_V9_I4: u32 = 96;
+pub const SF_V9_I5: u32 = 104;
+pub const SF_V9_FP: u32 = 112;
+pub const SF_V9_PC: u32 = 120;
+pub const SF_V9_RETP: u32 = 128;
+pub const SF_V9_XARG0: u32 = 136;
+pub const SF_V9_XARG1: u32 = 144;
+pub const SF_V9_XARG2: u32 = 152;
+pub const SF_V9_XARG3: u32 = 160;
+pub const SF_V9_XARG4: u32 = 168;
+pub const SF_V9_XARG5: u32 = 176;
+pub const SF_V9_XXARG: u32 = 184;
+pub const SF_L0: u32 = 0;
+pub const SF_L1: u32 = 4;
+pub const SF_L2: u32 = 8;
+pub const SF_L3: u32 = 12;
+pub const SF_L4: u32 = 16;
+pub const SF_L5: u32 = 20;
+pub const SF_L6: u32 = 24;
+pub const SF_L7: u32 = 28;
+pub const SF_I0: u32 = 32;
+pub const SF_I1: u32 = 36;
+pub const SF_I2: u32 = 40;
+pub const SF_I3: u32 = 44;
+pub const SF_I4: u32 = 48;
+pub const SF_I5: u32 = 52;
+pub const SF_FP: u32 = 56;
+pub const SF_PC: u32 = 60;
+pub const SF_RETP: u32 = 64;
+pub const SF_XARG0: u32 = 68;
+pub const SF_XARG1: u32 = 72;
+pub const SF_XARG2: u32 = 76;
+pub const SF_XARG3: u32 = 80;
+pub const SF_XARG4: u32 = 84;
+pub const SF_XARG5: u32 = 88;
+pub const SF_XXARG: u32 = 92;
+pub const PTRACE_SPARC_DETACH: u32 = 11;
+pub const PTRACE_GETREGS: u32 = 12;
+pub const PTRACE_SETREGS: u32 = 13;
+pub const PTRACE_GETFPREGS: u32 = 14;
+pub const PTRACE_SETFPREGS: u32 = 15;
+pub const PTRACE_READDATA: u32 = 16;
+pub const PTRACE_WRITEDATA: u32 = 17;
+pub const PTRACE_READTEXT: u32 = 18;
+pub const PTRACE_WRITETEXT: u32 = 19;
+pub const PTRACE_GETFPAREGS: u32 = 20;
+pub const PTRACE_SETFPAREGS: u32 = 21;
+pub const PTRACE_GETREGS64: u32 = 22;
+pub const PTRACE_SETREGS64: u32 = 23;
+pub const PTRACE_GETFPREGS64: u32 = 25;
+pub const PTRACE_SETFPREGS64: u32 = 26;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc/system.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/system.rs
new file mode 100644
index 0000000..203e479
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/system.rs
@@ -0,0 +1,100 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+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_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 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: [crate::ctypes::c_char; 8usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/sparc/xdp.rs
new file mode 100644
index 0000000..be90b47
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc/xdp.rs
@@ -0,0 +1,189 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_long;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_daddr_t = crate::ctypes::c_long;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+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_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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc64/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/bootparam.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/bootparam.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc64/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/btrfs.rs
new file mode 100644
index 0000000..90496dd
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/btrfs.rs
@@ -0,0 +1,1875 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_suseconds_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_old_timeval {
+pub tv_sec: __kernel_long_t,
+pub tv_usec: __kernel_suseconds_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const _IOC_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 13;
+pub const _IOC_DIRBITS: u32 = 3;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 8191;
+pub const _IOC_XSIZEMASK: u32 = 16383;
+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_NONE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const _IOC_WRITE: u32 = 4;
+pub const IOC_IN: u32 = 2147483648;
+pub const IOC_OUT: u32 = 1073741824;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc64/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/elf_uapi.rs
new file mode 100644
index 0000000..e691b02
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/elf_uapi.rs
@@ -0,0 +1,530 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_suseconds_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_old_timeval {
+pub tv_sec: __kernel_long_t,
+pub tv_usec: __kernel_suseconds_t,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc64/errno.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/errno.rs
new file mode 100644
index 0000000..994fb91
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/errno.rs
@@ -0,0 +1,137 @@
+/* automatically generated by rust-bindgen 0.71.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 EWOULDBLOCK: u32 = 11;
+pub const EINPROGRESS: u32 = 36;
+pub const EALREADY: u32 = 37;
+pub const ENOTSOCK: u32 = 38;
+pub const EDESTADDRREQ: u32 = 39;
+pub const EMSGSIZE: u32 = 40;
+pub const EPROTOTYPE: u32 = 41;
+pub const ENOPROTOOPT: u32 = 42;
+pub const EPROTONOSUPPORT: u32 = 43;
+pub const ESOCKTNOSUPPORT: u32 = 44;
+pub const EOPNOTSUPP: u32 = 45;
+pub const EPFNOSUPPORT: u32 = 46;
+pub const EAFNOSUPPORT: u32 = 47;
+pub const EADDRINUSE: u32 = 48;
+pub const EADDRNOTAVAIL: u32 = 49;
+pub const ENETDOWN: u32 = 50;
+pub const ENETUNREACH: u32 = 51;
+pub const ENETRESET: u32 = 52;
+pub const ECONNABORTED: u32 = 53;
+pub const ECONNRESET: u32 = 54;
+pub const ENOBUFS: u32 = 55;
+pub const EISCONN: u32 = 56;
+pub const ENOTCONN: u32 = 57;
+pub const ESHUTDOWN: u32 = 58;
+pub const ETOOMANYREFS: u32 = 59;
+pub const ETIMEDOUT: u32 = 60;
+pub const ECONNREFUSED: u32 = 61;
+pub const ELOOP: u32 = 62;
+pub const ENAMETOOLONG: u32 = 63;
+pub const EHOSTDOWN: u32 = 64;
+pub const EHOSTUNREACH: u32 = 65;
+pub const ENOTEMPTY: u32 = 66;
+pub const EPROCLIM: u32 = 67;
+pub const EUSERS: u32 = 68;
+pub const EDQUOT: u32 = 69;
+pub const ESTALE: u32 = 70;
+pub const EREMOTE: u32 = 71;
+pub const ENOSTR: u32 = 72;
+pub const ETIME: u32 = 73;
+pub const ENOSR: u32 = 74;
+pub const ENOMSG: u32 = 75;
+pub const EBADMSG: u32 = 76;
+pub const EIDRM: u32 = 77;
+pub const EDEADLK: u32 = 78;
+pub const ENOLCK: u32 = 79;
+pub const ENONET: u32 = 80;
+pub const ERREMOTE: u32 = 81;
+pub const ENOLINK: u32 = 82;
+pub const EADV: u32 = 83;
+pub const ESRMNT: u32 = 84;
+pub const ECOMM: u32 = 85;
+pub const EPROTO: u32 = 86;
+pub const EMULTIHOP: u32 = 87;
+pub const EDOTDOT: u32 = 88;
+pub const EREMCHG: u32 = 89;
+pub const ENOSYS: u32 = 90;
+pub const ESTRPIPE: u32 = 91;
+pub const EOVERFLOW: u32 = 92;
+pub const EBADFD: u32 = 93;
+pub const ECHRNG: u32 = 94;
+pub const EL2NSYNC: u32 = 95;
+pub const EL3HLT: u32 = 96;
+pub const EL3RST: u32 = 97;
+pub const ELNRNG: u32 = 98;
+pub const EUNATCH: u32 = 99;
+pub const ENOCSI: u32 = 100;
+pub const EL2HLT: u32 = 101;
+pub const EBADE: u32 = 102;
+pub const EBADR: u32 = 103;
+pub const EXFULL: u32 = 104;
+pub const ENOANO: u32 = 105;
+pub const EBADRQC: u32 = 106;
+pub const EBADSLT: u32 = 107;
+pub const EDEADLOCK: u32 = 108;
+pub const EBFONT: u32 = 109;
+pub const ELIBEXEC: u32 = 110;
+pub const ENODATA: u32 = 111;
+pub const ELIBBAD: u32 = 112;
+pub const ENOPKG: u32 = 113;
+pub const ELIBACC: u32 = 114;
+pub const ENOTUNIQ: u32 = 115;
+pub const ERESTART: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EILSEQ: u32 = 122;
+pub const ELIBMAX: u32 = 123;
+pub const ELIBSCN: u32 = 124;
+pub const ENOMEDIUM: u32 = 125;
+pub const EMEDIUMTYPE: u32 = 126;
+pub const ECANCELED: u32 = 127;
+pub const ENOKEY: u32 = 128;
+pub const EKEYEXPIRED: u32 = 129;
+pub const EKEYREVOKED: u32 = 130;
+pub const EKEYREJECTED: u32 = 131;
+pub const EOWNERDEAD: u32 = 132;
+pub const ENOTRECOVERABLE: u32 = 133;
+pub const ERFKILL: u32 = 134;
+pub const EHWPOISON: u32 = 135;
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc64/general.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/general.rs
new file mode 100644
index 0000000..e91368a
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/general.rs
@@ -0,0 +1,3326 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_suseconds_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type cap_user_header_t = *mut __user_cap_header_struct;
+pub type cap_user_data_t = *mut __user_cap_data_struct;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+pub type old_sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type __fsword_t = __kernel_long_t;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_old_timeval {
+pub tv_sec: __kernel_long_t,
+pub tv_usec: __kernel_suseconds_t,
+}
+#[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,
+pub __unused: crate::ctypes::c_short,
+}
+#[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,
+pub __unused: crate::ctypes::c_short,
+}
+#[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 epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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_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 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; 1usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigstack {
+pub the_stack: *mut crate::ctypes::c_char,
+pub cur_status: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaction {
+pub sa_handler: __sighandler_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_restorer: __sigrestore_t,
+pub sa_mask: sigset_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct old_sigaction {
+pub sa_handler: __sighandler_t,
+pub sa_mask: old_sigset_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_restorer: ::core::option::Option<unsafe extern "C" fn()>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaltstack {
+pub ss_sp: *mut crate::ctypes::c_void,
+pub ss_flags: crate::ctypes::c_int,
+pub ss_size: __kernel_size_t,
+}
+#[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_int,
+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_errno: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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; 17usize],
+}
+#[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; 19usize],
+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; 19usize],
+pub c_ispeed: speed_t,
+pub c_ospeed: speed_t,
+}
+#[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_uchar,
+pub c_cc: [crate::ctypes::c_uchar; 8usize],
+}
+#[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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulong,
+pub d_off: crate::ctypes::c_long,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_uint,
+pub st_ino: __kernel_ino_t,
+pub st_mode: __kernel_mode_t,
+pub st_nlink: crate::ctypes::c_short,
+pub st_uid: __kernel_uid32_t,
+pub st_gid: __kernel_gid32_t,
+pub st_rdev: crate::ctypes::c_uint,
+pub st_size: crate::ctypes::c_long,
+pub st_atime: crate::ctypes::c_long,
+pub st_mtime: crate::ctypes::c_long,
+pub st_ctime: crate::ctypes::c_long,
+pub st_blksize: crate::ctypes::c_long,
+pub st_blocks: crate::ctypes::c_long,
+pub __unused4: [crate::ctypes::c_ulong; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat64 {
+pub st_dev: crate::ctypes::c_ulong,
+pub st_ino: crate::ctypes::c_ulong,
+pub st_nlink: crate::ctypes::c_ulong,
+pub st_mode: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_uint,
+pub st_gid: crate::ctypes::c_uint,
+pub __pad0: crate::ctypes::c_uint,
+pub st_rdev: crate::ctypes::c_ulong,
+pub st_size: crate::ctypes::c_long,
+pub st_blksize: crate::ctypes::c_long,
+pub st_blocks: crate::ctypes::c_long,
+pub st_atime: crate::ctypes::c_ulong,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_ulong,
+pub st_mtime_nsec: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_ulong,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub __unused: [crate::ctypes::c_long; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: __kernel_long_t,
+pub f_bsize: __kernel_long_t,
+pub f_blocks: __kernel_long_t,
+pub f_bfree: __kernel_long_t,
+pub f_bavail: __kernel_long_t,
+pub f_files: __kernel_long_t,
+pub f_ffree: __kernel_long_t,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __kernel_long_t,
+pub f_frsize: __kernel_long_t,
+pub f_flags: __kernel_long_t,
+pub f_spare: [__kernel_long_t; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: __kernel_long_t,
+pub f_bsize: __kernel_long_t,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __kernel_long_t,
+pub f_frsize: __kernel_long_t,
+pub f_flags: __kernel_long_t,
+pub f_spare: [__kernel_long_t; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct compat_statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[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; 1usize],
+}
+#[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 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+pub const LINUX_VERSION_SUBLEVEL: u32 = 0;
+pub const AT_SYSINFO_EHDR: u32 = 33;
+pub const AT_ADI_BLKSZ: u32 = 48;
+pub const AT_ADI_NBITS: u32 = 49;
+pub const AT_ADI_UEONADI: u32 = 50;
+pub const AT_VECTOR_SIZE_ARCH: u32 = 4;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+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 FASYNC: u32 = 64;
+pub const O_CREAT: u32 = 512;
+pub const O_TRUNC: u32 = 1024;
+pub const O_EXCL: u32 = 2048;
+pub const O_DSYNC: u32 = 8192;
+pub const O_NONBLOCK: u32 = 16384;
+pub const O_NDELAY: u32 = 4;
+pub const O_NOCTTY: u32 = 32768;
+pub const O_LARGEFILE: u32 = 262144;
+pub const O_DIRECT: u32 = 1048576;
+pub const O_NOATIME: u32 = 2097152;
+pub const O_CLOEXEC: u32 = 4194304;
+pub const __O_SYNC: u32 = 8388608;
+pub const O_SYNC: u32 = 8396800;
+pub const O_PATH: u32 = 16777216;
+pub const __O_TMPFILE: u32 = 33554432;
+pub const F_GETOWN: u32 = 5;
+pub const F_SETOWN: u32 = 6;
+pub const F_GETLK: u32 = 7;
+pub const F_SETLK: u32 = 8;
+pub const F_SETLKW: u32 = 9;
+pub const F_RDLCK: u32 = 1;
+pub const F_WRLCK: u32 = 2;
+pub const F_UNLCK: u32 = 3;
+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_TMPFILE: u32 = 33619968;
+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_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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+pub const EPOLL_CLOEXEC: u32 = 4194304;
+pub const EPOLL_CTL_ADD: u32 = 1;
+pub const EPOLL_CTL_DEL: u32 = 2;
+pub const EPOLL_CTL_MOD: u32 = 3;
+pub const EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 13;
+pub const _IOC_DIRBITS: u32 = 3;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 8191;
+pub const _IOC_XSIZEMASK: u32 = 16383;
+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_NONE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const _IOC_WRITE: u32 = 4;
+pub const IOC_IN: u32 = 2147483648;
+pub const IOC_OUT: u32 = 1073741824;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+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 = 4194304;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 = 4194304;
+pub const IN_NONBLOCK: u32 = 16384;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+pub const PROT_READ: u32 = 1;
+pub const PROT_WRITE: u32 = 2;
+pub const PROT_EXEC: u32 = 4;
+pub const PROT_SEM: u32 = 8;
+pub const PROT_NONE: u32 = 0;
+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_ANONYMOUS: u32 = 32;
+pub const MAP_POPULATE: u32 = 32768;
+pub const MAP_NONBLOCK: u32 = 65536;
+pub const MAP_STACK: u32 = 131072;
+pub const MAP_HUGETLB: u32 = 262144;
+pub const MAP_SYNC: u32 = 524288;
+pub const MAP_FIXED_NOREPLACE: u32 = 1048576;
+pub const MAP_UNINITIALIZED: u32 = 67108864;
+pub const MLOCK_ONFAULT: u32 = 1;
+pub const MS_ASYNC: u32 = 1;
+pub const MS_INVALIDATE: u32 = 2;
+pub const MS_SYNC: u32 = 4;
+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_HWPOISON: u32 = 100;
+pub const MADV_SOFT_OFFLINE: u32 = 101;
+pub const MADV_MERGEABLE: u32 = 12;
+pub const MADV_UNMERGEABLE: u32 = 13;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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 PROT_ADI: u32 = 16;
+pub const MAP_RENAME: u32 = 32;
+pub const MAP_NORESERVE: u32 = 64;
+pub const MAP_INHERIT: u32 = 128;
+pub const MAP_LOCKED: u32 = 256;
+pub const _MAP_NEW: u32 = 2147483648;
+pub const MAP_GROWSDOWN: u32 = 512;
+pub const MAP_DENYWRITE: u32 = 2048;
+pub const MAP_EXECUTABLE: u32 = 4096;
+pub const MCL_CURRENT: u32 = 8192;
+pub const MCL_FUTURE: u32 = 16384;
+pub const MCL_ONFAULT: u32 = 32768;
+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_DROPPABLE: u32 = 8;
+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 POLLMSG: u32 = 512;
+pub const POLLREMOVE: u32 = 1024;
+pub const POLLRDHUP: u32 = 2048;
+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 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 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 = 6;
+pub const RLIMIT_NPROC: u32 = 7;
+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_RSS: u32 = 5;
+pub const RLIMIT_MEMLOCK: u32 = 8;
+pub const RLIMIT_AS: u32 = 9;
+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_EXT: u32 = 7;
+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 SIGHUP: u32 = 1;
+pub const SIGINT: u32 = 2;
+pub const SIGQUIT: u32 = 3;
+pub const SIGILL: u32 = 4;
+pub const SUBSIG_STACK: u32 = 0;
+pub const SUBSIG_ILLINST: u32 = 2;
+pub const SUBSIG_PRIVINST: u32 = 3;
+pub const SIGTRAP: u32 = 5;
+pub const SIGABRT: u32 = 6;
+pub const SIGIOT: u32 = 6;
+pub const SIGEMT: u32 = 7;
+pub const SUBSIG_TAG: u32 = 10;
+pub const SIGFPE: u32 = 8;
+pub const SUBSIG_FPDISABLED: u32 = 1024;
+pub const SUBSIG_FPERROR: u32 = 1028;
+pub const SUBSIG_FPINTOVFL: u32 = 1;
+pub const SUBSIG_FPSTSIG: u32 = 2;
+pub const SUBSIG_IDIVZERO: u32 = 20;
+pub const SUBSIG_FPINEXACT: u32 = 196;
+pub const SUBSIG_FPDIVZERO: u32 = 200;
+pub const SUBSIG_FPUNFLOW: u32 = 204;
+pub const SUBSIG_FPOPERROR: u32 = 208;
+pub const SUBSIG_FPOVFLOW: u32 = 212;
+pub const SIGKILL: u32 = 9;
+pub const SIGBUS: u32 = 10;
+pub const SUBSIG_BUSTIMEOUT: u32 = 1;
+pub const SUBSIG_ALIGNMENT: u32 = 2;
+pub const SUBSIG_MISCERROR: u32 = 5;
+pub const SIGSEGV: u32 = 11;
+pub const SUBSIG_NOMAPPING: u32 = 3;
+pub const SUBSIG_PROTECTION: u32 = 4;
+pub const SUBSIG_SEGERROR: u32 = 5;
+pub const SIGSYS: u32 = 12;
+pub const SIGPIPE: u32 = 13;
+pub const SIGALRM: u32 = 14;
+pub const SIGTERM: u32 = 15;
+pub const SIGURG: u32 = 16;
+pub const SIGSTOP: u32 = 17;
+pub const SIGTSTP: u32 = 18;
+pub const SIGCONT: u32 = 19;
+pub const SIGCHLD: u32 = 20;
+pub const SIGTTIN: u32 = 21;
+pub const SIGTTOU: u32 = 22;
+pub const SIGIO: u32 = 23;
+pub const SIGPOLL: u32 = 23;
+pub const SIGXCPU: u32 = 24;
+pub const SIGXFSZ: u32 = 25;
+pub const SIGVTALRM: u32 = 26;
+pub const SIGPROF: u32 = 27;
+pub const SIGWINCH: u32 = 28;
+pub const SIGLOST: u32 = 29;
+pub const SIGPWR: u32 = 29;
+pub const SIGUSR1: u32 = 30;
+pub const SIGUSR2: u32 = 31;
+pub const __OLD_NSIG: u32 = 32;
+pub const __NEW_NSIG: u32 = 64;
+pub const _NSIG_BPW: u32 = 64;
+pub const _NSIG_WORDS: u32 = 1;
+pub const SIGRTMIN: u32 = 32;
+pub const SIGRTMAX: u32 = 64;
+pub const _NSIG: u32 = 64;
+pub const _SV_SSTACK: u32 = 1;
+pub const _SV_INTR: u32 = 2;
+pub const _SV_RESET: u32 = 4;
+pub const _SV_IGNCHILD: u32 = 8;
+pub const SA_NOCLDSTOP: u32 = 8;
+pub const SA_STACK: u32 = 1;
+pub const SA_ONSTACK: u32 = 1;
+pub const SA_RESTART: u32 = 2;
+pub const SA_RESETHAND: u32 = 4;
+pub const SA_NODEFER: u32 = 32;
+pub const SA_NOCLDWAIT: u32 = 256;
+pub const SA_SIGINFO: u32 = 512;
+pub const SIG_BLOCK: u32 = 1;
+pub const SIG_UNBLOCK: u32 = 2;
+pub const SIG_SETMASK: u32 = 4;
+pub const MINSIGSTKSZ: u32 = 4096;
+pub const SIGSTKSZ: u32 = 16384;
+pub const SA_UNSUPPORTED: u32 = 1024;
+pub const SA_EXPOSE_TAGBITS: u32 = 2048;
+pub const SA_NOMASK: u32 = 32;
+pub const SA_ONESHOT: u32 = 4;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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 SI_NOINFO: u32 = 32767;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 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 = 17;
+pub const VINTR: u32 = 0;
+pub const VQUIT: u32 = 1;
+pub const VERASE: u32 = 2;
+pub const VKILL: u32 = 3;
+pub const VEOF: u32 = 4;
+pub const VEOL: u32 = 5;
+pub const VEOL2: u32 = 6;
+pub const VSWTC: u32 = 7;
+pub const VSTART: u32 = 8;
+pub const VSTOP: u32 = 9;
+pub const VSUSP: u32 = 10;
+pub const VDSUSP: u32 = 11;
+pub const VREPRINT: u32 = 12;
+pub const VDISCARD: u32 = 13;
+pub const VWERASE: u32 = 14;
+pub const VLNEXT: u32 = 15;
+pub const VMIN: u32 = 4;
+pub const VTIME: u32 = 5;
+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 PAGEOUT: u32 = 65536;
+pub const WRAP: u32 = 131072;
+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 B76800: u32 = 4101;
+pub const B153600: u32 = 4102;
+pub const B307200: u32 = 4103;
+pub const B614400: u32 = 4104;
+pub const B921600: u32 = 4105;
+pub const B500000: u32 = 4106;
+pub const B576000: u32 = 4107;
+pub const B1000000: u32 = 4108;
+pub const B1152000: u32 = 4109;
+pub const B1500000: u32 = 4110;
+pub const B2000000: 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 TOSTOP: u32 = 256;
+pub const ECHOCTL: u32 = 512;
+pub const ECHOPRT: u32 = 1024;
+pub const ECHOKE: u32 = 2048;
+pub const DEFECHO: u32 = 4096;
+pub const FLUSHO: u32 = 8192;
+pub const PENDIN: u32 = 16384;
+pub const IEXTEN: u32 = 32768;
+pub const EXTPROC: u32 = 65536;
+pub const TIOCM_LE: u32 = 1;
+pub const TIOCM_DTR: u32 = 2;
+pub const TIOCM_RTS: u32 = 4;
+pub const TIOCM_ST: u32 = 8;
+pub const TIOCM_SR: u32 = 16;
+pub const TIOCM_CTS: u32 = 32;
+pub const TIOCM_CAR: u32 = 64;
+pub const TIOCM_RNG: u32 = 128;
+pub const TIOCM_DSR: u32 = 256;
+pub const TIOCM_CD: u32 = 64;
+pub const TIOCM_RI: u32 = 128;
+pub const TIOCM_OUT1: u32 = 8192;
+pub const TIOCM_OUT2: u32 = 16384;
+pub const TIOCM_LOOP: u32 = 32768;
+pub const TIOCSER_TEMT: u32 = 1;
+pub const TCSANOW: u32 = 0;
+pub const TCSADRAIN: u32 = 1;
+pub const TCSAFLUSH: u32 = 2;
+pub const NCC: u32 = 8;
+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 UIO_FASTIOV: u32 = 8;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const __NR_restart_syscall: u32 = 0;
+pub const __NR_exit: u32 = 1;
+pub const __NR_fork: u32 = 2;
+pub const __NR_read: u32 = 3;
+pub const __NR_write: u32 = 4;
+pub const __NR_open: u32 = 5;
+pub const __NR_close: u32 = 6;
+pub const __NR_wait4: u32 = 7;
+pub const __NR_creat: u32 = 8;
+pub const __NR_link: u32 = 9;
+pub const __NR_unlink: u32 = 10;
+pub const __NR_execv: u32 = 11;
+pub const __NR_chdir: u32 = 12;
+pub const __NR_chown: u32 = 13;
+pub const __NR_mknod: u32 = 14;
+pub const __NR_chmod: u32 = 15;
+pub const __NR_lchown: u32 = 16;
+pub const __NR_brk: u32 = 17;
+pub const __NR_perfctr: u32 = 18;
+pub const __NR_lseek: u32 = 19;
+pub const __NR_getpid: u32 = 20;
+pub const __NR_capget: u32 = 21;
+pub const __NR_capset: u32 = 22;
+pub const __NR_setuid: u32 = 23;
+pub const __NR_getuid: u32 = 24;
+pub const __NR_vmsplice: u32 = 25;
+pub const __NR_ptrace: u32 = 26;
+pub const __NR_alarm: u32 = 27;
+pub const __NR_sigaltstack: u32 = 28;
+pub const __NR_pause: u32 = 29;
+pub const __NR_utime: u32 = 30;
+pub const __NR_access: u32 = 33;
+pub const __NR_nice: u32 = 34;
+pub const __NR_sync: u32 = 36;
+pub const __NR_kill: u32 = 37;
+pub const __NR_stat: u32 = 38;
+pub const __NR_sendfile: u32 = 39;
+pub const __NR_lstat: u32 = 40;
+pub const __NR_dup: u32 = 41;
+pub const __NR_pipe: u32 = 42;
+pub const __NR_times: u32 = 43;
+pub const __NR_umount2: u32 = 45;
+pub const __NR_setgid: u32 = 46;
+pub const __NR_getgid: u32 = 47;
+pub const __NR_signal: u32 = 48;
+pub const __NR_geteuid: u32 = 49;
+pub const __NR_getegid: u32 = 50;
+pub const __NR_acct: u32 = 51;
+pub const __NR_memory_ordering: u32 = 52;
+pub const __NR_ioctl: u32 = 54;
+pub const __NR_reboot: u32 = 55;
+pub const __NR_symlink: u32 = 57;
+pub const __NR_readlink: u32 = 58;
+pub const __NR_execve: u32 = 59;
+pub const __NR_umask: u32 = 60;
+pub const __NR_chroot: u32 = 61;
+pub const __NR_fstat: u32 = 62;
+pub const __NR_fstat64: u32 = 63;
+pub const __NR_getpagesize: u32 = 64;
+pub const __NR_msync: u32 = 65;
+pub const __NR_vfork: u32 = 66;
+pub const __NR_pread64: u32 = 67;
+pub const __NR_pwrite64: u32 = 68;
+pub const __NR_mmap: u32 = 71;
+pub const __NR_munmap: u32 = 73;
+pub const __NR_mprotect: u32 = 74;
+pub const __NR_madvise: u32 = 75;
+pub const __NR_vhangup: u32 = 76;
+pub const __NR_mincore: u32 = 78;
+pub const __NR_getgroups: u32 = 79;
+pub const __NR_setgroups: u32 = 80;
+pub const __NR_getpgrp: u32 = 81;
+pub const __NR_setitimer: u32 = 83;
+pub const __NR_swapon: u32 = 85;
+pub const __NR_getitimer: u32 = 86;
+pub const __NR_sethostname: u32 = 88;
+pub const __NR_dup2: u32 = 90;
+pub const __NR_fcntl: u32 = 92;
+pub const __NR_select: u32 = 93;
+pub const __NR_fsync: u32 = 95;
+pub const __NR_setpriority: u32 = 96;
+pub const __NR_socket: u32 = 97;
+pub const __NR_connect: u32 = 98;
+pub const __NR_accept: u32 = 99;
+pub const __NR_getpriority: u32 = 100;
+pub const __NR_rt_sigreturn: u32 = 101;
+pub const __NR_rt_sigaction: u32 = 102;
+pub const __NR_rt_sigprocmask: u32 = 103;
+pub const __NR_rt_sigpending: u32 = 104;
+pub const __NR_rt_sigtimedwait: u32 = 105;
+pub const __NR_rt_sigqueueinfo: u32 = 106;
+pub const __NR_rt_sigsuspend: u32 = 107;
+pub const __NR_setresuid: u32 = 108;
+pub const __NR_getresuid: u32 = 109;
+pub const __NR_setresgid: u32 = 110;
+pub const __NR_getresgid: u32 = 111;
+pub const __NR_recvmsg: u32 = 113;
+pub const __NR_sendmsg: u32 = 114;
+pub const __NR_gettimeofday: u32 = 116;
+pub const __NR_getrusage: u32 = 117;
+pub const __NR_getsockopt: u32 = 118;
+pub const __NR_getcwd: u32 = 119;
+pub const __NR_readv: u32 = 120;
+pub const __NR_writev: u32 = 121;
+pub const __NR_settimeofday: u32 = 122;
+pub const __NR_fchown: u32 = 123;
+pub const __NR_fchmod: u32 = 124;
+pub const __NR_recvfrom: u32 = 125;
+pub const __NR_setreuid: u32 = 126;
+pub const __NR_setregid: u32 = 127;
+pub const __NR_rename: u32 = 128;
+pub const __NR_truncate: u32 = 129;
+pub const __NR_ftruncate: u32 = 130;
+pub const __NR_flock: u32 = 131;
+pub const __NR_lstat64: u32 = 132;
+pub const __NR_sendto: u32 = 133;
+pub const __NR_shutdown: u32 = 134;
+pub const __NR_socketpair: u32 = 135;
+pub const __NR_mkdir: u32 = 136;
+pub const __NR_rmdir: u32 = 137;
+pub const __NR_utimes: u32 = 138;
+pub const __NR_stat64: u32 = 139;
+pub const __NR_sendfile64: u32 = 140;
+pub const __NR_getpeername: u32 = 141;
+pub const __NR_futex: u32 = 142;
+pub const __NR_gettid: u32 = 143;
+pub const __NR_getrlimit: u32 = 144;
+pub const __NR_setrlimit: u32 = 145;
+pub const __NR_pivot_root: u32 = 146;
+pub const __NR_prctl: u32 = 147;
+pub const __NR_pciconfig_read: u32 = 148;
+pub const __NR_pciconfig_write: u32 = 149;
+pub const __NR_getsockname: u32 = 150;
+pub const __NR_inotify_init: u32 = 151;
+pub const __NR_inotify_add_watch: u32 = 152;
+pub const __NR_poll: u32 = 153;
+pub const __NR_getdents64: u32 = 154;
+pub const __NR_inotify_rm_watch: u32 = 156;
+pub const __NR_statfs: u32 = 157;
+pub const __NR_fstatfs: u32 = 158;
+pub const __NR_umount: u32 = 159;
+pub const __NR_sched_set_affinity: u32 = 160;
+pub const __NR_sched_get_affinity: u32 = 161;
+pub const __NR_getdomainname: u32 = 162;
+pub const __NR_setdomainname: u32 = 163;
+pub const __NR_utrap_install: u32 = 164;
+pub const __NR_quotactl: u32 = 165;
+pub const __NR_set_tid_address: u32 = 166;
+pub const __NR_mount: u32 = 167;
+pub const __NR_ustat: u32 = 168;
+pub const __NR_setxattr: u32 = 169;
+pub const __NR_lsetxattr: u32 = 170;
+pub const __NR_fsetxattr: u32 = 171;
+pub const __NR_getxattr: u32 = 172;
+pub const __NR_lgetxattr: u32 = 173;
+pub const __NR_getdents: u32 = 174;
+pub const __NR_setsid: u32 = 175;
+pub const __NR_fchdir: u32 = 176;
+pub const __NR_fgetxattr: u32 = 177;
+pub const __NR_listxattr: u32 = 178;
+pub const __NR_llistxattr: u32 = 179;
+pub const __NR_flistxattr: u32 = 180;
+pub const __NR_removexattr: u32 = 181;
+pub const __NR_lremovexattr: u32 = 182;
+pub const __NR_sigpending: u32 = 183;
+pub const __NR_query_module: u32 = 184;
+pub const __NR_setpgid: u32 = 185;
+pub const __NR_fremovexattr: u32 = 186;
+pub const __NR_tkill: u32 = 187;
+pub const __NR_exit_group: u32 = 188;
+pub const __NR_uname: u32 = 189;
+pub const __NR_init_module: u32 = 190;
+pub const __NR_personality: u32 = 191;
+pub const __NR_remap_file_pages: u32 = 192;
+pub const __NR_epoll_create: u32 = 193;
+pub const __NR_epoll_ctl: u32 = 194;
+pub const __NR_epoll_wait: u32 = 195;
+pub const __NR_ioprio_set: u32 = 196;
+pub const __NR_getppid: u32 = 197;
+pub const __NR_sigaction: u32 = 198;
+pub const __NR_sgetmask: u32 = 199;
+pub const __NR_ssetmask: u32 = 200;
+pub const __NR_sigsuspend: u32 = 201;
+pub const __NR_oldlstat: u32 = 202;
+pub const __NR_uselib: u32 = 203;
+pub const __NR_readdir: u32 = 204;
+pub const __NR_readahead: u32 = 205;
+pub const __NR_socketcall: u32 = 206;
+pub const __NR_syslog: u32 = 207;
+pub const __NR_lookup_dcookie: u32 = 208;
+pub const __NR_fadvise64: u32 = 209;
+pub const __NR_fadvise64_64: u32 = 210;
+pub const __NR_tgkill: u32 = 211;
+pub const __NR_waitpid: u32 = 212;
+pub const __NR_swapoff: u32 = 213;
+pub const __NR_sysinfo: u32 = 214;
+pub const __NR_ipc: u32 = 215;
+pub const __NR_sigreturn: u32 = 216;
+pub const __NR_clone: u32 = 217;
+pub const __NR_ioprio_get: u32 = 218;
+pub const __NR_adjtimex: u32 = 219;
+pub const __NR_sigprocmask: u32 = 220;
+pub const __NR_create_module: u32 = 221;
+pub const __NR_delete_module: u32 = 222;
+pub const __NR_get_kernel_syms: u32 = 223;
+pub const __NR_getpgid: u32 = 224;
+pub const __NR_bdflush: u32 = 225;
+pub const __NR_sysfs: u32 = 226;
+pub const __NR_afs_syscall: u32 = 227;
+pub const __NR_setfsuid: u32 = 228;
+pub const __NR_setfsgid: u32 = 229;
+pub const __NR__newselect: u32 = 230;
+pub const __NR_splice: u32 = 232;
+pub const __NR_stime: u32 = 233;
+pub const __NR_statfs64: u32 = 234;
+pub const __NR_fstatfs64: u32 = 235;
+pub const __NR__llseek: u32 = 236;
+pub const __NR_mlock: u32 = 237;
+pub const __NR_munlock: u32 = 238;
+pub const __NR_mlockall: u32 = 239;
+pub const __NR_munlockall: u32 = 240;
+pub const __NR_sched_setparam: u32 = 241;
+pub const __NR_sched_getparam: u32 = 242;
+pub const __NR_sched_setscheduler: u32 = 243;
+pub const __NR_sched_getscheduler: u32 = 244;
+pub const __NR_sched_yield: u32 = 245;
+pub const __NR_sched_get_priority_max: u32 = 246;
+pub const __NR_sched_get_priority_min: u32 = 247;
+pub const __NR_sched_rr_get_interval: u32 = 248;
+pub const __NR_nanosleep: u32 = 249;
+pub const __NR_mremap: u32 = 250;
+pub const __NR__sysctl: u32 = 251;
+pub const __NR_getsid: u32 = 252;
+pub const __NR_fdatasync: u32 = 253;
+pub const __NR_nfsservctl: u32 = 254;
+pub const __NR_sync_file_range: u32 = 255;
+pub const __NR_clock_settime: u32 = 256;
+pub const __NR_clock_gettime: u32 = 257;
+pub const __NR_clock_getres: u32 = 258;
+pub const __NR_clock_nanosleep: u32 = 259;
+pub const __NR_sched_getaffinity: u32 = 260;
+pub const __NR_sched_setaffinity: u32 = 261;
+pub const __NR_timer_settime: u32 = 262;
+pub const __NR_timer_gettime: u32 = 263;
+pub const __NR_timer_getoverrun: u32 = 264;
+pub const __NR_timer_delete: u32 = 265;
+pub const __NR_timer_create: u32 = 266;
+pub const __NR_vserver: u32 = 267;
+pub const __NR_io_setup: u32 = 268;
+pub const __NR_io_destroy: u32 = 269;
+pub const __NR_io_submit: u32 = 270;
+pub const __NR_io_cancel: u32 = 271;
+pub const __NR_io_getevents: u32 = 272;
+pub const __NR_mq_open: u32 = 273;
+pub const __NR_mq_unlink: u32 = 274;
+pub const __NR_mq_timedsend: u32 = 275;
+pub const __NR_mq_timedreceive: u32 = 276;
+pub const __NR_mq_notify: u32 = 277;
+pub const __NR_mq_getsetattr: u32 = 278;
+pub const __NR_waitid: u32 = 279;
+pub const __NR_tee: u32 = 280;
+pub const __NR_add_key: u32 = 281;
+pub const __NR_request_key: u32 = 282;
+pub const __NR_keyctl: u32 = 283;
+pub const __NR_openat: u32 = 284;
+pub const __NR_mkdirat: u32 = 285;
+pub const __NR_mknodat: u32 = 286;
+pub const __NR_fchownat: u32 = 287;
+pub const __NR_futimesat: u32 = 288;
+pub const __NR_fstatat64: u32 = 289;
+pub const __NR_unlinkat: u32 = 290;
+pub const __NR_renameat: u32 = 291;
+pub const __NR_linkat: u32 = 292;
+pub const __NR_symlinkat: u32 = 293;
+pub const __NR_readlinkat: u32 = 294;
+pub const __NR_fchmodat: u32 = 295;
+pub const __NR_faccessat: u32 = 296;
+pub const __NR_pselect6: u32 = 297;
+pub const __NR_ppoll: u32 = 298;
+pub const __NR_unshare: u32 = 299;
+pub const __NR_set_robust_list: u32 = 300;
+pub const __NR_get_robust_list: u32 = 301;
+pub const __NR_migrate_pages: u32 = 302;
+pub const __NR_mbind: u32 = 303;
+pub const __NR_get_mempolicy: u32 = 304;
+pub const __NR_set_mempolicy: u32 = 305;
+pub const __NR_kexec_load: u32 = 306;
+pub const __NR_move_pages: u32 = 307;
+pub const __NR_getcpu: u32 = 308;
+pub const __NR_epoll_pwait: u32 = 309;
+pub const __NR_utimensat: u32 = 310;
+pub const __NR_signalfd: u32 = 311;
+pub const __NR_timerfd_create: u32 = 312;
+pub const __NR_eventfd: u32 = 313;
+pub const __NR_fallocate: u32 = 314;
+pub const __NR_timerfd_settime: u32 = 315;
+pub const __NR_timerfd_gettime: u32 = 316;
+pub const __NR_signalfd4: u32 = 317;
+pub const __NR_eventfd2: u32 = 318;
+pub const __NR_epoll_create1: u32 = 319;
+pub const __NR_dup3: u32 = 320;
+pub const __NR_pipe2: u32 = 321;
+pub const __NR_inotify_init1: u32 = 322;
+pub const __NR_accept4: u32 = 323;
+pub const __NR_preadv: u32 = 324;
+pub const __NR_pwritev: u32 = 325;
+pub const __NR_rt_tgsigqueueinfo: u32 = 326;
+pub const __NR_perf_event_open: u32 = 327;
+pub const __NR_recvmmsg: u32 = 328;
+pub const __NR_fanotify_init: u32 = 329;
+pub const __NR_fanotify_mark: u32 = 330;
+pub const __NR_prlimit64: u32 = 331;
+pub const __NR_name_to_handle_at: u32 = 332;
+pub const __NR_open_by_handle_at: u32 = 333;
+pub const __NR_clock_adjtime: u32 = 334;
+pub const __NR_syncfs: u32 = 335;
+pub const __NR_sendmmsg: u32 = 336;
+pub const __NR_setns: u32 = 337;
+pub const __NR_process_vm_readv: u32 = 338;
+pub const __NR_process_vm_writev: u32 = 339;
+pub const __NR_kern_features: u32 = 340;
+pub const __NR_kcmp: u32 = 341;
+pub const __NR_finit_module: u32 = 342;
+pub const __NR_sched_setattr: u32 = 343;
+pub const __NR_sched_getattr: u32 = 344;
+pub const __NR_renameat2: u32 = 345;
+pub const __NR_seccomp: u32 = 346;
+pub const __NR_getrandom: u32 = 347;
+pub const __NR_memfd_create: u32 = 348;
+pub const __NR_bpf: u32 = 349;
+pub const __NR_execveat: u32 = 350;
+pub const __NR_membarrier: u32 = 351;
+pub const __NR_userfaultfd: u32 = 352;
+pub const __NR_bind: u32 = 353;
+pub const __NR_listen: u32 = 354;
+pub const __NR_setsockopt: u32 = 355;
+pub const __NR_mlock2: u32 = 356;
+pub const __NR_copy_file_range: u32 = 357;
+pub const __NR_preadv2: u32 = 358;
+pub const __NR_pwritev2: u32 = 359;
+pub const __NR_statx: u32 = 360;
+pub const __NR_io_pgetevents: u32 = 361;
+pub const __NR_pkey_mprotect: u32 = 362;
+pub const __NR_pkey_alloc: u32 = 363;
+pub const __NR_pkey_free: u32 = 364;
+pub const __NR_rseq: u32 = 365;
+pub const __NR_semtimedop: u32 = 392;
+pub const __NR_semget: u32 = 393;
+pub const __NR_semctl: u32 = 394;
+pub const __NR_shmget: u32 = 395;
+pub const __NR_shmctl: u32 = 396;
+pub const __NR_shmat: u32 = 397;
+pub const __NR_shmdt: u32 = 398;
+pub const __NR_msgget: u32 = 399;
+pub const __NR_msgsnd: u32 = 400;
+pub const __NR_msgrcv: u32 = 401;
+pub const __NR_msgctl: u32 = 402;
+pub const __NR_pidfd_send_signal: u32 = 424;
+pub const __NR_io_uring_setup: u32 = 425;
+pub const __NR_io_uring_enter: u32 = 426;
+pub const __NR_io_uring_register: u32 = 427;
+pub const __NR_open_tree: u32 = 428;
+pub const __NR_move_mount: u32 = 429;
+pub const __NR_fsopen: u32 = 430;
+pub const __NR_fsconfig: u32 = 431;
+pub const __NR_fsmount: u32 = 432;
+pub const __NR_fspick: u32 = 433;
+pub const __NR_pidfd_open: u32 = 434;
+pub const __NR_close_range: u32 = 436;
+pub const __NR_openat2: u32 = 437;
+pub const __NR_pidfd_getfd: u32 = 438;
+pub const __NR_faccessat2: u32 = 439;
+pub const __NR_process_madvise: u32 = 440;
+pub const __NR_epoll_pwait2: u32 = 441;
+pub const __NR_mount_setattr: u32 = 442;
+pub const __NR_quotactl_fd: u32 = 443;
+pub const __NR_landlock_create_ruleset: u32 = 444;
+pub const __NR_landlock_add_rule: u32 = 445;
+pub const __NR_landlock_restrict_self: u32 = 446;
+pub const __NR_process_mrelease: u32 = 448;
+pub const __NR_futex_waitv: u32 = 449;
+pub const __NR_set_mempolicy_home_node: u32 = 450;
+pub const __NR_cachestat: u32 = 451;
+pub const __NR_fchmodat2: u32 = 452;
+pub const __NR_map_shadow_stack: u32 = 453;
+pub const __NR_futex_wake: u32 = 454;
+pub const __NR_futex_wait: u32 = 455;
+pub const __NR_futex_requeue: u32 = 456;
+pub const __NR_statmount: u32 = 457;
+pub const __NR_listmount: u32 = 458;
+pub const __NR_lsm_get_self_attr: u32 = 459;
+pub const __NR_lsm_set_self_attr: u32 = 460;
+pub const __NR_lsm_list_modules: u32 = 461;
+pub const __NR_mseal: u32 = 462;
+pub const __NR_setxattrat: u32 = 463;
+pub const __NR_getxattrat: u32 = 464;
+pub const __NR_listxattrat: u32 = 465;
+pub const __NR_removexattrat: u32 = 466;
+pub const KERN_FEATURE_MIXED_MODE_STACK: u32 = 1;
+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 = 4194304;
+pub const TFD_NONBLOCK: u32 = 16384;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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 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 = 4194304;
+pub const EFD_NONBLOCK: u32 = 16384;
+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 = 4210688;
+pub const TFD_CREATE_FLAGS: u32 = 4210688;
+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 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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd {
+MEMBARRIER_CMD_QUERY = 0,
+MEMBARRIER_CMD_GLOBAL = 1,
+MEMBARRIER_CMD_GLOBAL_EXPEDITED = 2,
+MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 4,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED = 8,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 16,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 32,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 64,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 128,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 256,
+MEMBARRIER_CMD_GET_REGISTRATIONS = 512,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd_flag {
+MEMBARRIER_CMD_FLAG_CPU = 1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_get_policy_ex_arg__bindgen_ty_1 {
+pub version: __u8,
+pub v1: fscrypt_policy_v1,
+pub v2: fscrypt_policy_v2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_key_specifier__bindgen_ty_1 {
+pub __reserved: [__u8; 32usize],
+pub descriptor: [__u8; 8usize],
+pub identifier: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigval {
+pub sival_int: crate::ctypes::c_int,
+pub sival_ptr: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields {
+pub _kill: __sifields__bindgen_ty_1,
+pub _timer: __sifields__bindgen_ty_2,
+pub _rt: __sifields__bindgen_ty_3,
+pub _sigchld: __sifields__bindgen_ty_4,
+pub _sigfault: __sifields__bindgen_ty_5,
+pub _sigpoll: __sifields__bindgen_ty_6,
+pub _sigsys: __sifields__bindgen_ty_7,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields__bindgen_ty_5__bindgen_ty_1 {
+pub _trapno: crate::ctypes::c_int,
+pub _addr_lsb: crate::ctypes::c_short,
+pub _addr_bnd: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1,
+pub _addr_pkey: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2,
+pub _perf: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union siginfo__bindgen_ty_1 {
+pub __bindgen_anon_1: siginfo__bindgen_ty_1__bindgen_ty_1,
+pub _si_pad: [crate::ctypes::c_int; 32usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigevent__bindgen_ty_1 {
+pub _pad: [crate::ctypes::c_int; 12usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/sparc64/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/if_arp.rs
new file mode 100644
index 0000000..fc28e40
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/if_arp.rs
@@ -0,0 +1,2979 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_suseconds_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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(Debug, Copy, Clone)]
+pub struct __kernel_old_timeval {
+pub tv_sec: __kernel_long_t,
+pub tv_usec: __kernel_suseconds_t,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(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 __BITS_PER_LONG_LONG: u32 = 64;
+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 ASI_NULL1: u32 = 0;
+pub const ASI_NULL2: u32 = 1;
+pub const ASI_CONTROL: u32 = 2;
+pub const ASI_SEGMAP: u32 = 3;
+pub const ASI_PTE: u32 = 4;
+pub const ASI_HWFLUSHSEG: u32 = 5;
+pub const ASI_HWFLUSHPAGE: u32 = 6;
+pub const ASI_REGMAP: u32 = 6;
+pub const ASI_HWFLUSHCONTEXT: u32 = 7;
+pub const ASI_USERTXT: u32 = 8;
+pub const ASI_KERNELTXT: u32 = 9;
+pub const ASI_USERDATA: u32 = 10;
+pub const ASI_KERNELDATA: u32 = 11;
+pub const ASI_FLUSHSEG: u32 = 12;
+pub const ASI_FLUSHPG: u32 = 13;
+pub const ASI_FLUSHCTX: u32 = 14;
+pub const ASI_M_RES00: u32 = 0;
+pub const ASI_M_UNA01: u32 = 1;
+pub const ASI_M_MXCC: u32 = 2;
+pub const ASI_M_FLUSH_PROBE: u32 = 3;
+pub const ASI_M_MMUREGS: u32 = 4;
+pub const ASI_M_TLBDIAG: u32 = 5;
+pub const ASI_M_DIAGS: u32 = 6;
+pub const ASI_M_IODIAG: u32 = 7;
+pub const ASI_M_USERTXT: u32 = 8;
+pub const ASI_M_KERNELTXT: u32 = 9;
+pub const ASI_M_USERDATA: u32 = 10;
+pub const ASI_M_KERNELDATA: u32 = 11;
+pub const ASI_M_TXTC_TAG: u32 = 12;
+pub const ASI_M_TXTC_DATA: u32 = 13;
+pub const ASI_M_DATAC_TAG: u32 = 14;
+pub const ASI_M_DATAC_DATA: u32 = 15;
+pub const ASI_M_FLUSH_PAGE: u32 = 16;
+pub const ASI_M_FLUSH_SEG: u32 = 17;
+pub const ASI_M_FLUSH_REGION: u32 = 18;
+pub const ASI_M_FLUSH_CTX: u32 = 19;
+pub const ASI_M_FLUSH_USER: u32 = 20;
+pub const ASI_M_BCOPY: u32 = 23;
+pub const ASI_M_IFLUSH_PAGE: u32 = 24;
+pub const ASI_M_IFLUSH_SEG: u32 = 25;
+pub const ASI_M_IFLUSH_REGION: u32 = 26;
+pub const ASI_M_IFLUSH_CTX: u32 = 27;
+pub const ASI_M_IFLUSH_USER: u32 = 28;
+pub const ASI_M_BFILL: u32 = 31;
+pub const ASI_M_BYPASS: u32 = 32;
+pub const ASI_M_FBMEM: u32 = 41;
+pub const ASI_M_VMEUS: u32 = 42;
+pub const ASI_M_VMEPS: u32 = 43;
+pub const ASI_M_VMEUT: u32 = 44;
+pub const ASI_M_VMEPT: u32 = 45;
+pub const ASI_M_SBUS: u32 = 46;
+pub const ASI_M_CTL: u32 = 47;
+pub const ASI_M_FLUSH_IWHOLE: u32 = 49;
+pub const ASI_M_IC_FLCLEAR: u32 = 54;
+pub const ASI_M_DC_FLCLEAR: u32 = 55;
+pub const ASI_M_DCDR: u32 = 57;
+pub const ASI_M_VIKING_TMP1: u32 = 64;
+pub const ASI_M_ACTION: u32 = 76;
+pub const ASI_LEON_NOCACHE: u32 = 1;
+pub const ASI_LEON_DCACHE_MISS: u32 = 1;
+pub const ASI_LEON_CACHEREGS: u32 = 2;
+pub const ASI_LEON_IFLUSH: u32 = 16;
+pub const ASI_LEON_DFLUSH: u32 = 17;
+pub const ASI_LEON_MMUFLUSH: u32 = 24;
+pub const ASI_LEON_MMUREGS: u32 = 25;
+pub const ASI_LEON_BYPASS: u32 = 28;
+pub const ASI_LEON_FLUSH_PAGE: u32 = 16;
+pub const ASI_N: u32 = 4;
+pub const ASI_NL: u32 = 12;
+pub const ASI_AIUP: u32 = 16;
+pub const ASI_AIUS: u32 = 17;
+pub const ASI_AIUPL: u32 = 24;
+pub const ASI_AIUSL: u32 = 25;
+pub const ASI_P: u32 = 128;
+pub const ASI_S: u32 = 129;
+pub const ASI_PNF: u32 = 130;
+pub const ASI_SNF: u32 = 131;
+pub const ASI_PL: u32 = 136;
+pub const ASI_SL: u32 = 137;
+pub const ASI_PNFL: u32 = 138;
+pub const ASI_SNFL: u32 = 139;
+pub const ASI_MCD_PRIV_PRIMARY: u32 = 2;
+pub const ASI_MCD_REAL: u32 = 5;
+pub const ASI_PHYS_USE_EC: u32 = 20;
+pub const ASI_PHYS_BYPASS_EC_E: u32 = 21;
+pub const ASI_BLK_AIUP_4V: u32 = 22;
+pub const ASI_BLK_AIUS_4V: u32 = 23;
+pub const ASI_PHYS_USE_EC_L: u32 = 28;
+pub const ASI_PHYS_BYPASS_EC_E_L: u32 = 29;
+pub const ASI_BLK_AIUP_L_4V: u32 = 30;
+pub const ASI_BLK_AIUS_L_4V: u32 = 31;
+pub const ASI_SCRATCHPAD: u32 = 32;
+pub const ASI_MMU: u32 = 33;
+pub const ASI_BLK_INIT_QUAD_LDD_AIUS: u32 = 35;
+pub const ASI_NUCLEUS_QUAD_LDD: u32 = 36;
+pub const ASI_QUEUE: u32 = 37;
+pub const ASI_QUAD_LDD_PHYS_4V: u32 = 38;
+pub const ASI_NUCLEUS_QUAD_LDD_L: u32 = 44;
+pub const ASI_QUAD_LDD_PHYS_L_4V: u32 = 46;
+pub const ASI_PCACHE_DATA_STATUS: u32 = 48;
+pub const ASI_PCACHE_DATA: u32 = 49;
+pub const ASI_PCACHE_TAG: u32 = 50;
+pub const ASI_PCACHE_SNOOP_TAG: u32 = 51;
+pub const ASI_QUAD_LDD_PHYS: u32 = 52;
+pub const ASI_WCACHE_VALID_BITS: u32 = 56;
+pub const ASI_WCACHE_DATA: u32 = 57;
+pub const ASI_WCACHE_TAG: u32 = 58;
+pub const ASI_WCACHE_SNOOP_TAG: u32 = 59;
+pub const ASI_QUAD_LDD_PHYS_L: u32 = 60;
+pub const ASI_SRAM_FAST_INIT: u32 = 64;
+pub const ASI_CORE_AVAILABLE: u32 = 65;
+pub const ASI_CORE_ENABLE_STAT: u32 = 65;
+pub const ASI_CORE_ENABLE: u32 = 65;
+pub const ASI_XIR_STEERING: u32 = 65;
+pub const ASI_CORE_RUNNING_RW: u32 = 65;
+pub const ASI_CORE_RUNNING_W1S: u32 = 65;
+pub const ASI_CORE_RUNNING_W1C: u32 = 65;
+pub const ASI_CORE_RUNNING_STAT: u32 = 65;
+pub const ASI_CMT_ERROR_STEERING: u32 = 65;
+pub const ASI_DCACHE_INVALIDATE: u32 = 66;
+pub const ASI_DCACHE_UTAG: u32 = 67;
+pub const ASI_DCACHE_SNOOP_TAG: u32 = 68;
+pub const ASI_LSU_CONTROL: u32 = 69;
+pub const ASI_DCU_CONTROL_REG: u32 = 69;
+pub const ASI_DCACHE_DATA: u32 = 70;
+pub const ASI_DCACHE_TAG: u32 = 71;
+pub const ASI_INTR_DISPATCH_STAT: u32 = 72;
+pub const ASI_INTR_RECEIVE: u32 = 73;
+pub const ASI_UPA_CONFIG: u32 = 74;
+pub const ASI_JBUS_CONFIG: u32 = 74;
+pub const ASI_SAFARI_CONFIG: u32 = 74;
+pub const ASI_SAFARI_ADDRESS: u32 = 74;
+pub const ASI_ESTATE_ERROR_EN: u32 = 75;
+pub const ASI_AFSR: u32 = 76;
+pub const ASI_AFAR: u32 = 77;
+pub const ASI_EC_TAG_DATA: u32 = 78;
+pub const ASI_IMMU: u32 = 80;
+pub const ASI_IMMU_TSB_8KB_PTR: u32 = 81;
+pub const ASI_IMMU_TSB_64KB_PTR: u32 = 82;
+pub const ASI_ITLB_DATA_IN: u32 = 84;
+pub const ASI_ITLB_DATA_ACCESS: u32 = 85;
+pub const ASI_ITLB_TAG_READ: u32 = 86;
+pub const ASI_IMMU_DEMAP: u32 = 87;
+pub const ASI_DMMU: u32 = 88;
+pub const ASI_DMMU_TSB_8KB_PTR: u32 = 89;
+pub const ASI_DMMU_TSB_64KB_PTR: u32 = 90;
+pub const ASI_DMMU_TSB_DIRECT_PTR: u32 = 91;
+pub const ASI_DTLB_DATA_IN: u32 = 92;
+pub const ASI_DTLB_DATA_ACCESS: u32 = 93;
+pub const ASI_DTLB_TAG_READ: u32 = 94;
+pub const ASI_DMMU_DEMAP: u32 = 95;
+pub const ASI_IIU_INST_TRAP: u32 = 96;
+pub const ASI_INTR_ID: u32 = 99;
+pub const ASI_CORE_ID: u32 = 99;
+pub const ASI_CESR_ID: u32 = 99;
+pub const ASI_IC_INSTR: u32 = 102;
+pub const ASI_IC_TAG: u32 = 103;
+pub const ASI_IC_STAG: u32 = 104;
+pub const ASI_IC_PRE_DECODE: u32 = 110;
+pub const ASI_IC_NEXT_FIELD: u32 = 111;
+pub const ASI_BRPRED_ARRAY: u32 = 111;
+pub const ASI_BLK_AIUP: u32 = 112;
+pub const ASI_BLK_AIUS: u32 = 113;
+pub const ASI_MCU_CTRL_REG: u32 = 114;
+pub const ASI_EC_DATA: u32 = 116;
+pub const ASI_EC_CTRL: u32 = 117;
+pub const ASI_EC_W: u32 = 118;
+pub const ASI_UDB_ERROR_W: u32 = 119;
+pub const ASI_UDB_CONTROL_W: u32 = 119;
+pub const ASI_INTR_W: u32 = 119;
+pub const ASI_INTR_DATAN_W: u32 = 119;
+pub const ASI_INTR_DISPATCH_W: u32 = 119;
+pub const ASI_BLK_AIUPL: u32 = 120;
+pub const ASI_BLK_AIUSL: u32 = 121;
+pub const ASI_EC_R: u32 = 126;
+pub const ASI_UDBH_ERROR_R: u32 = 127;
+pub const ASI_UDBL_ERROR_R: u32 = 127;
+pub const ASI_UDBH_CONTROL_R: u32 = 127;
+pub const ASI_UDBL_CONTROL_R: u32 = 127;
+pub const ASI_INTR_R: u32 = 127;
+pub const ASI_INTR_DATAN_R: u32 = 127;
+pub const ASI_MCD_PRIMARY: u32 = 144;
+pub const ASI_MCD_ST_BLKINIT_PRIMARY: u32 = 146;
+pub const ASI_PIC: u32 = 176;
+pub const ASI_PST8_P: u32 = 192;
+pub const ASI_PST8_S: u32 = 193;
+pub const ASI_PST16_P: u32 = 194;
+pub const ASI_PST16_S: u32 = 195;
+pub const ASI_PST32_P: u32 = 196;
+pub const ASI_PST32_S: u32 = 197;
+pub const ASI_PST8_PL: u32 = 200;
+pub const ASI_PST8_SL: u32 = 201;
+pub const ASI_PST16_PL: u32 = 202;
+pub const ASI_PST16_SL: u32 = 203;
+pub const ASI_PST32_PL: u32 = 204;
+pub const ASI_PST32_SL: u32 = 205;
+pub const ASI_FL8_P: u32 = 208;
+pub const ASI_FL8_S: u32 = 209;
+pub const ASI_FL16_P: u32 = 210;
+pub const ASI_FL16_S: u32 = 211;
+pub const ASI_FL8_PL: u32 = 216;
+pub const ASI_FL8_SL: u32 = 217;
+pub const ASI_FL16_PL: u32 = 218;
+pub const ASI_FL16_SL: u32 = 219;
+pub const ASI_BLK_COMMIT_P: u32 = 224;
+pub const ASI_BLK_COMMIT_S: u32 = 225;
+pub const ASI_BLK_INIT_QUAD_LDD_P: u32 = 226;
+pub const ASI_BLK_INIT_QUAD_LDD_S: u32 = 227;
+pub const ASI_BLK_P: u32 = 240;
+pub const ASI_BLK_S: u32 = 241;
+pub const ASI_ST_BLKINIT_MRU_P: u32 = 242;
+pub const ASI_ST_BLKINIT_MRU_S: u32 = 243;
+pub const ASI_BLK_PL: u32 = 248;
+pub const ASI_BLK_SL: u32 = 249;
+pub const ASI_ST_BLKINIT_MRU_PL: u32 = 250;
+pub const ASI_ST_BLKINIT_MRU_SL: u32 = 251;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/sparc64/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/if_ether.rs
new file mode 100644
index 0000000..bac3e38
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/if_ether.rs
@@ -0,0 +1,176 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_suseconds_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 __kernel_old_timeval {
+pub tv_sec: __kernel_long_t,
+pub tv_usec: __kernel_suseconds_t,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/sparc64/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/if_packet.rs
new file mode 100644
index 0000000..0f5f1df
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/if_packet.rs
@@ -0,0 +1,533 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_suseconds_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 __kernel_old_timeval {
+pub tv_sec: __kernel_long_t,
+pub tv_usec: __kernel_suseconds_t,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+pub const ASI_NULL1: u32 = 0;
+pub const ASI_NULL2: u32 = 1;
+pub const ASI_CONTROL: u32 = 2;
+pub const ASI_SEGMAP: u32 = 3;
+pub const ASI_PTE: u32 = 4;
+pub const ASI_HWFLUSHSEG: u32 = 5;
+pub const ASI_HWFLUSHPAGE: u32 = 6;
+pub const ASI_REGMAP: u32 = 6;
+pub const ASI_HWFLUSHCONTEXT: u32 = 7;
+pub const ASI_USERTXT: u32 = 8;
+pub const ASI_KERNELTXT: u32 = 9;
+pub const ASI_USERDATA: u32 = 10;
+pub const ASI_KERNELDATA: u32 = 11;
+pub const ASI_FLUSHSEG: u32 = 12;
+pub const ASI_FLUSHPG: u32 = 13;
+pub const ASI_FLUSHCTX: u32 = 14;
+pub const ASI_M_RES00: u32 = 0;
+pub const ASI_M_UNA01: u32 = 1;
+pub const ASI_M_MXCC: u32 = 2;
+pub const ASI_M_FLUSH_PROBE: u32 = 3;
+pub const ASI_M_MMUREGS: u32 = 4;
+pub const ASI_M_TLBDIAG: u32 = 5;
+pub const ASI_M_DIAGS: u32 = 6;
+pub const ASI_M_IODIAG: u32 = 7;
+pub const ASI_M_USERTXT: u32 = 8;
+pub const ASI_M_KERNELTXT: u32 = 9;
+pub const ASI_M_USERDATA: u32 = 10;
+pub const ASI_M_KERNELDATA: u32 = 11;
+pub const ASI_M_TXTC_TAG: u32 = 12;
+pub const ASI_M_TXTC_DATA: u32 = 13;
+pub const ASI_M_DATAC_TAG: u32 = 14;
+pub const ASI_M_DATAC_DATA: u32 = 15;
+pub const ASI_M_FLUSH_PAGE: u32 = 16;
+pub const ASI_M_FLUSH_SEG: u32 = 17;
+pub const ASI_M_FLUSH_REGION: u32 = 18;
+pub const ASI_M_FLUSH_CTX: u32 = 19;
+pub const ASI_M_FLUSH_USER: u32 = 20;
+pub const ASI_M_BCOPY: u32 = 23;
+pub const ASI_M_IFLUSH_PAGE: u32 = 24;
+pub const ASI_M_IFLUSH_SEG: u32 = 25;
+pub const ASI_M_IFLUSH_REGION: u32 = 26;
+pub const ASI_M_IFLUSH_CTX: u32 = 27;
+pub const ASI_M_IFLUSH_USER: u32 = 28;
+pub const ASI_M_BFILL: u32 = 31;
+pub const ASI_M_BYPASS: u32 = 32;
+pub const ASI_M_FBMEM: u32 = 41;
+pub const ASI_M_VMEUS: u32 = 42;
+pub const ASI_M_VMEPS: u32 = 43;
+pub const ASI_M_VMEUT: u32 = 44;
+pub const ASI_M_VMEPT: u32 = 45;
+pub const ASI_M_SBUS: u32 = 46;
+pub const ASI_M_CTL: u32 = 47;
+pub const ASI_M_FLUSH_IWHOLE: u32 = 49;
+pub const ASI_M_IC_FLCLEAR: u32 = 54;
+pub const ASI_M_DC_FLCLEAR: u32 = 55;
+pub const ASI_M_DCDR: u32 = 57;
+pub const ASI_M_VIKING_TMP1: u32 = 64;
+pub const ASI_M_ACTION: u32 = 76;
+pub const ASI_LEON_NOCACHE: u32 = 1;
+pub const ASI_LEON_DCACHE_MISS: u32 = 1;
+pub const ASI_LEON_CACHEREGS: u32 = 2;
+pub const ASI_LEON_IFLUSH: u32 = 16;
+pub const ASI_LEON_DFLUSH: u32 = 17;
+pub const ASI_LEON_MMUFLUSH: u32 = 24;
+pub const ASI_LEON_MMUREGS: u32 = 25;
+pub const ASI_LEON_BYPASS: u32 = 28;
+pub const ASI_LEON_FLUSH_PAGE: u32 = 16;
+pub const ASI_N: u32 = 4;
+pub const ASI_NL: u32 = 12;
+pub const ASI_AIUP: u32 = 16;
+pub const ASI_AIUS: u32 = 17;
+pub const ASI_AIUPL: u32 = 24;
+pub const ASI_AIUSL: u32 = 25;
+pub const ASI_P: u32 = 128;
+pub const ASI_S: u32 = 129;
+pub const ASI_PNF: u32 = 130;
+pub const ASI_SNF: u32 = 131;
+pub const ASI_PL: u32 = 136;
+pub const ASI_SL: u32 = 137;
+pub const ASI_PNFL: u32 = 138;
+pub const ASI_SNFL: u32 = 139;
+pub const ASI_MCD_PRIV_PRIMARY: u32 = 2;
+pub const ASI_MCD_REAL: u32 = 5;
+pub const ASI_PHYS_USE_EC: u32 = 20;
+pub const ASI_PHYS_BYPASS_EC_E: u32 = 21;
+pub const ASI_BLK_AIUP_4V: u32 = 22;
+pub const ASI_BLK_AIUS_4V: u32 = 23;
+pub const ASI_PHYS_USE_EC_L: u32 = 28;
+pub const ASI_PHYS_BYPASS_EC_E_L: u32 = 29;
+pub const ASI_BLK_AIUP_L_4V: u32 = 30;
+pub const ASI_BLK_AIUS_L_4V: u32 = 31;
+pub const ASI_SCRATCHPAD: u32 = 32;
+pub const ASI_MMU: u32 = 33;
+pub const ASI_BLK_INIT_QUAD_LDD_AIUS: u32 = 35;
+pub const ASI_NUCLEUS_QUAD_LDD: u32 = 36;
+pub const ASI_QUEUE: u32 = 37;
+pub const ASI_QUAD_LDD_PHYS_4V: u32 = 38;
+pub const ASI_NUCLEUS_QUAD_LDD_L: u32 = 44;
+pub const ASI_QUAD_LDD_PHYS_L_4V: u32 = 46;
+pub const ASI_PCACHE_DATA_STATUS: u32 = 48;
+pub const ASI_PCACHE_DATA: u32 = 49;
+pub const ASI_PCACHE_TAG: u32 = 50;
+pub const ASI_PCACHE_SNOOP_TAG: u32 = 51;
+pub const ASI_QUAD_LDD_PHYS: u32 = 52;
+pub const ASI_WCACHE_VALID_BITS: u32 = 56;
+pub const ASI_WCACHE_DATA: u32 = 57;
+pub const ASI_WCACHE_TAG: u32 = 58;
+pub const ASI_WCACHE_SNOOP_TAG: u32 = 59;
+pub const ASI_QUAD_LDD_PHYS_L: u32 = 60;
+pub const ASI_SRAM_FAST_INIT: u32 = 64;
+pub const ASI_CORE_AVAILABLE: u32 = 65;
+pub const ASI_CORE_ENABLE_STAT: u32 = 65;
+pub const ASI_CORE_ENABLE: u32 = 65;
+pub const ASI_XIR_STEERING: u32 = 65;
+pub const ASI_CORE_RUNNING_RW: u32 = 65;
+pub const ASI_CORE_RUNNING_W1S: u32 = 65;
+pub const ASI_CORE_RUNNING_W1C: u32 = 65;
+pub const ASI_CORE_RUNNING_STAT: u32 = 65;
+pub const ASI_CMT_ERROR_STEERING: u32 = 65;
+pub const ASI_DCACHE_INVALIDATE: u32 = 66;
+pub const ASI_DCACHE_UTAG: u32 = 67;
+pub const ASI_DCACHE_SNOOP_TAG: u32 = 68;
+pub const ASI_LSU_CONTROL: u32 = 69;
+pub const ASI_DCU_CONTROL_REG: u32 = 69;
+pub const ASI_DCACHE_DATA: u32 = 70;
+pub const ASI_DCACHE_TAG: u32 = 71;
+pub const ASI_INTR_DISPATCH_STAT: u32 = 72;
+pub const ASI_INTR_RECEIVE: u32 = 73;
+pub const ASI_UPA_CONFIG: u32 = 74;
+pub const ASI_JBUS_CONFIG: u32 = 74;
+pub const ASI_SAFARI_CONFIG: u32 = 74;
+pub const ASI_SAFARI_ADDRESS: u32 = 74;
+pub const ASI_ESTATE_ERROR_EN: u32 = 75;
+pub const ASI_AFSR: u32 = 76;
+pub const ASI_AFAR: u32 = 77;
+pub const ASI_EC_TAG_DATA: u32 = 78;
+pub const ASI_IMMU: u32 = 80;
+pub const ASI_IMMU_TSB_8KB_PTR: u32 = 81;
+pub const ASI_IMMU_TSB_64KB_PTR: u32 = 82;
+pub const ASI_ITLB_DATA_IN: u32 = 84;
+pub const ASI_ITLB_DATA_ACCESS: u32 = 85;
+pub const ASI_ITLB_TAG_READ: u32 = 86;
+pub const ASI_IMMU_DEMAP: u32 = 87;
+pub const ASI_DMMU: u32 = 88;
+pub const ASI_DMMU_TSB_8KB_PTR: u32 = 89;
+pub const ASI_DMMU_TSB_64KB_PTR: u32 = 90;
+pub const ASI_DMMU_TSB_DIRECT_PTR: u32 = 91;
+pub const ASI_DTLB_DATA_IN: u32 = 92;
+pub const ASI_DTLB_DATA_ACCESS: u32 = 93;
+pub const ASI_DTLB_TAG_READ: u32 = 94;
+pub const ASI_DMMU_DEMAP: u32 = 95;
+pub const ASI_IIU_INST_TRAP: u32 = 96;
+pub const ASI_INTR_ID: u32 = 99;
+pub const ASI_CORE_ID: u32 = 99;
+pub const ASI_CESR_ID: u32 = 99;
+pub const ASI_IC_INSTR: u32 = 102;
+pub const ASI_IC_TAG: u32 = 103;
+pub const ASI_IC_STAG: u32 = 104;
+pub const ASI_IC_PRE_DECODE: u32 = 110;
+pub const ASI_IC_NEXT_FIELD: u32 = 111;
+pub const ASI_BRPRED_ARRAY: u32 = 111;
+pub const ASI_BLK_AIUP: u32 = 112;
+pub const ASI_BLK_AIUS: u32 = 113;
+pub const ASI_MCU_CTRL_REG: u32 = 114;
+pub const ASI_EC_DATA: u32 = 116;
+pub const ASI_EC_CTRL: u32 = 117;
+pub const ASI_EC_W: u32 = 118;
+pub const ASI_UDB_ERROR_W: u32 = 119;
+pub const ASI_UDB_CONTROL_W: u32 = 119;
+pub const ASI_INTR_W: u32 = 119;
+pub const ASI_INTR_DATAN_W: u32 = 119;
+pub const ASI_INTR_DISPATCH_W: u32 = 119;
+pub const ASI_BLK_AIUPL: u32 = 120;
+pub const ASI_BLK_AIUSL: u32 = 121;
+pub const ASI_EC_R: u32 = 126;
+pub const ASI_UDBH_ERROR_R: u32 = 127;
+pub const ASI_UDBL_ERROR_R: u32 = 127;
+pub const ASI_UDBH_CONTROL_R: u32 = 127;
+pub const ASI_UDBL_CONTROL_R: u32 = 127;
+pub const ASI_INTR_R: u32 = 127;
+pub const ASI_INTR_DATAN_R: u32 = 127;
+pub const ASI_MCD_PRIMARY: u32 = 144;
+pub const ASI_MCD_ST_BLKINIT_PRIMARY: u32 = 146;
+pub const ASI_PIC: u32 = 176;
+pub const ASI_PST8_P: u32 = 192;
+pub const ASI_PST8_S: u32 = 193;
+pub const ASI_PST16_P: u32 = 194;
+pub const ASI_PST16_S: u32 = 195;
+pub const ASI_PST32_P: u32 = 196;
+pub const ASI_PST32_S: u32 = 197;
+pub const ASI_PST8_PL: u32 = 200;
+pub const ASI_PST8_SL: u32 = 201;
+pub const ASI_PST16_PL: u32 = 202;
+pub const ASI_PST16_SL: u32 = 203;
+pub const ASI_PST32_PL: u32 = 204;
+pub const ASI_PST32_SL: u32 = 205;
+pub const ASI_FL8_P: u32 = 208;
+pub const ASI_FL8_S: u32 = 209;
+pub const ASI_FL16_P: u32 = 210;
+pub const ASI_FL16_S: u32 = 211;
+pub const ASI_FL8_PL: u32 = 216;
+pub const ASI_FL8_SL: u32 = 217;
+pub const ASI_FL16_PL: u32 = 218;
+pub const ASI_FL16_SL: u32 = 219;
+pub const ASI_BLK_COMMIT_P: u32 = 224;
+pub const ASI_BLK_COMMIT_S: u32 = 225;
+pub const ASI_BLK_INIT_QUAD_LDD_P: u32 = 226;
+pub const ASI_BLK_INIT_QUAD_LDD_S: u32 = 227;
+pub const ASI_BLK_P: u32 = 240;
+pub const ASI_BLK_S: u32 = 241;
+pub const ASI_ST_BLKINIT_MRU_P: u32 = 242;
+pub const ASI_ST_BLKINIT_MRU_S: u32 = 243;
+pub const ASI_BLK_PL: u32 = 248;
+pub const ASI_BLK_SL: u32 = 249;
+pub const ASI_ST_BLKINIT_MRU_PL: u32 = 250;
+pub const ASI_ST_BLKINIT_MRU_SL: u32 = 251;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/sparc64/image.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc64/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/io_uring.rs
new file mode 100644
index 0000000..06d715b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/io_uring.rs
@@ -0,0 +1,1337 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_suseconds_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_old_timeval {
+pub tv_sec: __kernel_long_t,
+pub tv_usec: __kernel_suseconds_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 13;
+pub const _IOC_DIRBITS: u32 = 3;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 8191;
+pub const _IOC_XSIZEMASK: u32 = 16383;
+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_NONE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const _IOC_WRITE: u32 = 4;
+pub const IOC_IN: u32 = 2147483648;
+pub const IOC_OUT: u32 = 1073741824;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc64/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/ioctl.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/ioctl.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc64/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/landlock.rs
new file mode 100644
index 0000000..c668c70
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/landlock.rs
@@ -0,0 +1,106 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_suseconds_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 __kernel_old_timeval {
+pub tv_sec: __kernel_long_t,
+pub tv_usec: __kernel_suseconds_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc64/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/loop_device.rs
new file mode 100644
index 0000000..e2201c1
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/loop_device.rs
@@ -0,0 +1,140 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_suseconds_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __s128 = i128;
+pub type __u128 = u128;
+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 __kernel_old_timeval {
+pub tv_sec: __kernel_long_t,
+pub tv_usec: __kernel_suseconds_t,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/sparc64/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/mempolicy.rs
new file mode 100644
index 0000000..b26dbf9
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/mempolicy.rs
@@ -0,0 +1,177 @@
+/* automatically generated by rust-bindgen 0.71.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 EWOULDBLOCK: u32 = 11;
+pub const EINPROGRESS: u32 = 36;
+pub const EALREADY: u32 = 37;
+pub const ENOTSOCK: u32 = 38;
+pub const EDESTADDRREQ: u32 = 39;
+pub const EMSGSIZE: u32 = 40;
+pub const EPROTOTYPE: u32 = 41;
+pub const ENOPROTOOPT: u32 = 42;
+pub const EPROTONOSUPPORT: u32 = 43;
+pub const ESOCKTNOSUPPORT: u32 = 44;
+pub const EOPNOTSUPP: u32 = 45;
+pub const EPFNOSUPPORT: u32 = 46;
+pub const EAFNOSUPPORT: u32 = 47;
+pub const EADDRINUSE: u32 = 48;
+pub const EADDRNOTAVAIL: u32 = 49;
+pub const ENETDOWN: u32 = 50;
+pub const ENETUNREACH: u32 = 51;
+pub const ENETRESET: u32 = 52;
+pub const ECONNABORTED: u32 = 53;
+pub const ECONNRESET: u32 = 54;
+pub const ENOBUFS: u32 = 55;
+pub const EISCONN: u32 = 56;
+pub const ENOTCONN: u32 = 57;
+pub const ESHUTDOWN: u32 = 58;
+pub const ETOOMANYREFS: u32 = 59;
+pub const ETIMEDOUT: u32 = 60;
+pub const ECONNREFUSED: u32 = 61;
+pub const ELOOP: u32 = 62;
+pub const ENAMETOOLONG: u32 = 63;
+pub const EHOSTDOWN: u32 = 64;
+pub const EHOSTUNREACH: u32 = 65;
+pub const ENOTEMPTY: u32 = 66;
+pub const EPROCLIM: u32 = 67;
+pub const EUSERS: u32 = 68;
+pub const EDQUOT: u32 = 69;
+pub const ESTALE: u32 = 70;
+pub const EREMOTE: u32 = 71;
+pub const ENOSTR: u32 = 72;
+pub const ETIME: u32 = 73;
+pub const ENOSR: u32 = 74;
+pub const ENOMSG: u32 = 75;
+pub const EBADMSG: u32 = 76;
+pub const EIDRM: u32 = 77;
+pub const EDEADLK: u32 = 78;
+pub const ENOLCK: u32 = 79;
+pub const ENONET: u32 = 80;
+pub const ERREMOTE: u32 = 81;
+pub const ENOLINK: u32 = 82;
+pub const EADV: u32 = 83;
+pub const ESRMNT: u32 = 84;
+pub const ECOMM: u32 = 85;
+pub const EPROTO: u32 = 86;
+pub const EMULTIHOP: u32 = 87;
+pub const EDOTDOT: u32 = 88;
+pub const EREMCHG: u32 = 89;
+pub const ENOSYS: u32 = 90;
+pub const ESTRPIPE: u32 = 91;
+pub const EOVERFLOW: u32 = 92;
+pub const EBADFD: u32 = 93;
+pub const ECHRNG: u32 = 94;
+pub const EL2NSYNC: u32 = 95;
+pub const EL3HLT: u32 = 96;
+pub const EL3RST: u32 = 97;
+pub const ELNRNG: u32 = 98;
+pub const EUNATCH: u32 = 99;
+pub const ENOCSI: u32 = 100;
+pub const EL2HLT: u32 = 101;
+pub const EBADE: u32 = 102;
+pub const EBADR: u32 = 103;
+pub const EXFULL: u32 = 104;
+pub const ENOANO: u32 = 105;
+pub const EBADRQC: u32 = 106;
+pub const EBADSLT: u32 = 107;
+pub const EDEADLOCK: u32 = 108;
+pub const EBFONT: u32 = 109;
+pub const ELIBEXEC: u32 = 110;
+pub const ENODATA: u32 = 111;
+pub const ELIBBAD: u32 = 112;
+pub const ENOPKG: u32 = 113;
+pub const ELIBACC: u32 = 114;
+pub const ENOTUNIQ: u32 = 115;
+pub const ERESTART: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EILSEQ: u32 = 122;
+pub const ELIBMAX: u32 = 123;
+pub const ELIBSCN: u32 = 124;
+pub const ENOMEDIUM: u32 = 125;
+pub const EMEDIUMTYPE: u32 = 126;
+pub const ECANCELED: u32 = 127;
+pub const ENOKEY: u32 = 128;
+pub const EKEYEXPIRED: u32 = 129;
+pub const EKEYREVOKED: u32 = 130;
+pub const EKEYREJECTED: u32 = 131;
+pub const EOWNERDEAD: u32 = 132;
+pub const ENOTRECOVERABLE: u32 = 133;
+pub const ERFKILL: u32 = 134;
+pub const EHWPOISON: u32 = 135;
+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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc64/net.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/net.rs
new file mode 100644
index 0000000..ef685a6
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/net.rs
@@ -0,0 +1,3649 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_suseconds_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_old_timeval {
+pub tv_sec: __kernel_long_t,
+pub tv_usec: __kernel_suseconds_t,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 34usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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 ASI_NULL1: u32 = 0;
+pub const ASI_NULL2: u32 = 1;
+pub const ASI_CONTROL: u32 = 2;
+pub const ASI_SEGMAP: u32 = 3;
+pub const ASI_PTE: u32 = 4;
+pub const ASI_HWFLUSHSEG: u32 = 5;
+pub const ASI_HWFLUSHPAGE: u32 = 6;
+pub const ASI_REGMAP: u32 = 6;
+pub const ASI_HWFLUSHCONTEXT: u32 = 7;
+pub const ASI_USERTXT: u32 = 8;
+pub const ASI_KERNELTXT: u32 = 9;
+pub const ASI_USERDATA: u32 = 10;
+pub const ASI_KERNELDATA: u32 = 11;
+pub const ASI_FLUSHSEG: u32 = 12;
+pub const ASI_FLUSHPG: u32 = 13;
+pub const ASI_FLUSHCTX: u32 = 14;
+pub const ASI_M_RES00: u32 = 0;
+pub const ASI_M_UNA01: u32 = 1;
+pub const ASI_M_MXCC: u32 = 2;
+pub const ASI_M_FLUSH_PROBE: u32 = 3;
+pub const ASI_M_MMUREGS: u32 = 4;
+pub const ASI_M_TLBDIAG: u32 = 5;
+pub const ASI_M_DIAGS: u32 = 6;
+pub const ASI_M_IODIAG: u32 = 7;
+pub const ASI_M_USERTXT: u32 = 8;
+pub const ASI_M_KERNELTXT: u32 = 9;
+pub const ASI_M_USERDATA: u32 = 10;
+pub const ASI_M_KERNELDATA: u32 = 11;
+pub const ASI_M_TXTC_TAG: u32 = 12;
+pub const ASI_M_TXTC_DATA: u32 = 13;
+pub const ASI_M_DATAC_TAG: u32 = 14;
+pub const ASI_M_DATAC_DATA: u32 = 15;
+pub const ASI_M_FLUSH_PAGE: u32 = 16;
+pub const ASI_M_FLUSH_SEG: u32 = 17;
+pub const ASI_M_FLUSH_REGION: u32 = 18;
+pub const ASI_M_FLUSH_CTX: u32 = 19;
+pub const ASI_M_FLUSH_USER: u32 = 20;
+pub const ASI_M_BCOPY: u32 = 23;
+pub const ASI_M_IFLUSH_PAGE: u32 = 24;
+pub const ASI_M_IFLUSH_SEG: u32 = 25;
+pub const ASI_M_IFLUSH_REGION: u32 = 26;
+pub const ASI_M_IFLUSH_CTX: u32 = 27;
+pub const ASI_M_IFLUSH_USER: u32 = 28;
+pub const ASI_M_BFILL: u32 = 31;
+pub const ASI_M_BYPASS: u32 = 32;
+pub const ASI_M_FBMEM: u32 = 41;
+pub const ASI_M_VMEUS: u32 = 42;
+pub const ASI_M_VMEPS: u32 = 43;
+pub const ASI_M_VMEUT: u32 = 44;
+pub const ASI_M_VMEPT: u32 = 45;
+pub const ASI_M_SBUS: u32 = 46;
+pub const ASI_M_CTL: u32 = 47;
+pub const ASI_M_FLUSH_IWHOLE: u32 = 49;
+pub const ASI_M_IC_FLCLEAR: u32 = 54;
+pub const ASI_M_DC_FLCLEAR: u32 = 55;
+pub const ASI_M_DCDR: u32 = 57;
+pub const ASI_M_VIKING_TMP1: u32 = 64;
+pub const ASI_M_ACTION: u32 = 76;
+pub const ASI_LEON_NOCACHE: u32 = 1;
+pub const ASI_LEON_DCACHE_MISS: u32 = 1;
+pub const ASI_LEON_CACHEREGS: u32 = 2;
+pub const ASI_LEON_IFLUSH: u32 = 16;
+pub const ASI_LEON_DFLUSH: u32 = 17;
+pub const ASI_LEON_MMUFLUSH: u32 = 24;
+pub const ASI_LEON_MMUREGS: u32 = 25;
+pub const ASI_LEON_BYPASS: u32 = 28;
+pub const ASI_LEON_FLUSH_PAGE: u32 = 16;
+pub const ASI_N: u32 = 4;
+pub const ASI_NL: u32 = 12;
+pub const ASI_AIUP: u32 = 16;
+pub const ASI_AIUS: u32 = 17;
+pub const ASI_AIUPL: u32 = 24;
+pub const ASI_AIUSL: u32 = 25;
+pub const ASI_P: u32 = 128;
+pub const ASI_S: u32 = 129;
+pub const ASI_PNF: u32 = 130;
+pub const ASI_SNF: u32 = 131;
+pub const ASI_PL: u32 = 136;
+pub const ASI_SL: u32 = 137;
+pub const ASI_PNFL: u32 = 138;
+pub const ASI_SNFL: u32 = 139;
+pub const ASI_MCD_PRIV_PRIMARY: u32 = 2;
+pub const ASI_MCD_REAL: u32 = 5;
+pub const ASI_PHYS_USE_EC: u32 = 20;
+pub const ASI_PHYS_BYPASS_EC_E: u32 = 21;
+pub const ASI_BLK_AIUP_4V: u32 = 22;
+pub const ASI_BLK_AIUS_4V: u32 = 23;
+pub const ASI_PHYS_USE_EC_L: u32 = 28;
+pub const ASI_PHYS_BYPASS_EC_E_L: u32 = 29;
+pub const ASI_BLK_AIUP_L_4V: u32 = 30;
+pub const ASI_BLK_AIUS_L_4V: u32 = 31;
+pub const ASI_SCRATCHPAD: u32 = 32;
+pub const ASI_MMU: u32 = 33;
+pub const ASI_BLK_INIT_QUAD_LDD_AIUS: u32 = 35;
+pub const ASI_NUCLEUS_QUAD_LDD: u32 = 36;
+pub const ASI_QUEUE: u32 = 37;
+pub const ASI_QUAD_LDD_PHYS_4V: u32 = 38;
+pub const ASI_NUCLEUS_QUAD_LDD_L: u32 = 44;
+pub const ASI_QUAD_LDD_PHYS_L_4V: u32 = 46;
+pub const ASI_PCACHE_DATA_STATUS: u32 = 48;
+pub const ASI_PCACHE_DATA: u32 = 49;
+pub const ASI_PCACHE_TAG: u32 = 50;
+pub const ASI_PCACHE_SNOOP_TAG: u32 = 51;
+pub const ASI_QUAD_LDD_PHYS: u32 = 52;
+pub const ASI_WCACHE_VALID_BITS: u32 = 56;
+pub const ASI_WCACHE_DATA: u32 = 57;
+pub const ASI_WCACHE_TAG: u32 = 58;
+pub const ASI_WCACHE_SNOOP_TAG: u32 = 59;
+pub const ASI_QUAD_LDD_PHYS_L: u32 = 60;
+pub const ASI_SRAM_FAST_INIT: u32 = 64;
+pub const ASI_CORE_AVAILABLE: u32 = 65;
+pub const ASI_CORE_ENABLE_STAT: u32 = 65;
+pub const ASI_CORE_ENABLE: u32 = 65;
+pub const ASI_XIR_STEERING: u32 = 65;
+pub const ASI_CORE_RUNNING_RW: u32 = 65;
+pub const ASI_CORE_RUNNING_W1S: u32 = 65;
+pub const ASI_CORE_RUNNING_W1C: u32 = 65;
+pub const ASI_CORE_RUNNING_STAT: u32 = 65;
+pub const ASI_CMT_ERROR_STEERING: u32 = 65;
+pub const ASI_DCACHE_INVALIDATE: u32 = 66;
+pub const ASI_DCACHE_UTAG: u32 = 67;
+pub const ASI_DCACHE_SNOOP_TAG: u32 = 68;
+pub const ASI_LSU_CONTROL: u32 = 69;
+pub const ASI_DCU_CONTROL_REG: u32 = 69;
+pub const ASI_DCACHE_DATA: u32 = 70;
+pub const ASI_DCACHE_TAG: u32 = 71;
+pub const ASI_INTR_DISPATCH_STAT: u32 = 72;
+pub const ASI_INTR_RECEIVE: u32 = 73;
+pub const ASI_UPA_CONFIG: u32 = 74;
+pub const ASI_JBUS_CONFIG: u32 = 74;
+pub const ASI_SAFARI_CONFIG: u32 = 74;
+pub const ASI_SAFARI_ADDRESS: u32 = 74;
+pub const ASI_ESTATE_ERROR_EN: u32 = 75;
+pub const ASI_AFSR: u32 = 76;
+pub const ASI_AFAR: u32 = 77;
+pub const ASI_EC_TAG_DATA: u32 = 78;
+pub const ASI_IMMU: u32 = 80;
+pub const ASI_IMMU_TSB_8KB_PTR: u32 = 81;
+pub const ASI_IMMU_TSB_64KB_PTR: u32 = 82;
+pub const ASI_ITLB_DATA_IN: u32 = 84;
+pub const ASI_ITLB_DATA_ACCESS: u32 = 85;
+pub const ASI_ITLB_TAG_READ: u32 = 86;
+pub const ASI_IMMU_DEMAP: u32 = 87;
+pub const ASI_DMMU: u32 = 88;
+pub const ASI_DMMU_TSB_8KB_PTR: u32 = 89;
+pub const ASI_DMMU_TSB_64KB_PTR: u32 = 90;
+pub const ASI_DMMU_TSB_DIRECT_PTR: u32 = 91;
+pub const ASI_DTLB_DATA_IN: u32 = 92;
+pub const ASI_DTLB_DATA_ACCESS: u32 = 93;
+pub const ASI_DTLB_TAG_READ: u32 = 94;
+pub const ASI_DMMU_DEMAP: u32 = 95;
+pub const ASI_IIU_INST_TRAP: u32 = 96;
+pub const ASI_INTR_ID: u32 = 99;
+pub const ASI_CORE_ID: u32 = 99;
+pub const ASI_CESR_ID: u32 = 99;
+pub const ASI_IC_INSTR: u32 = 102;
+pub const ASI_IC_TAG: u32 = 103;
+pub const ASI_IC_STAG: u32 = 104;
+pub const ASI_IC_PRE_DECODE: u32 = 110;
+pub const ASI_IC_NEXT_FIELD: u32 = 111;
+pub const ASI_BRPRED_ARRAY: u32 = 111;
+pub const ASI_BLK_AIUP: u32 = 112;
+pub const ASI_BLK_AIUS: u32 = 113;
+pub const ASI_MCU_CTRL_REG: u32 = 114;
+pub const ASI_EC_DATA: u32 = 116;
+pub const ASI_EC_CTRL: u32 = 117;
+pub const ASI_EC_W: u32 = 118;
+pub const ASI_UDB_ERROR_W: u32 = 119;
+pub const ASI_UDB_CONTROL_W: u32 = 119;
+pub const ASI_INTR_W: u32 = 119;
+pub const ASI_INTR_DATAN_W: u32 = 119;
+pub const ASI_INTR_DISPATCH_W: u32 = 119;
+pub const ASI_BLK_AIUPL: u32 = 120;
+pub const ASI_BLK_AIUSL: u32 = 121;
+pub const ASI_EC_R: u32 = 126;
+pub const ASI_UDBH_ERROR_R: u32 = 127;
+pub const ASI_UDBL_ERROR_R: u32 = 127;
+pub const ASI_UDBH_CONTROL_R: u32 = 127;
+pub const ASI_UDBL_CONTROL_R: u32 = 127;
+pub const ASI_INTR_R: u32 = 127;
+pub const ASI_INTR_DATAN_R: u32 = 127;
+pub const ASI_MCD_PRIMARY: u32 = 144;
+pub const ASI_MCD_ST_BLKINIT_PRIMARY: u32 = 146;
+pub const ASI_PIC: u32 = 176;
+pub const ASI_PST8_P: u32 = 192;
+pub const ASI_PST8_S: u32 = 193;
+pub const ASI_PST16_P: u32 = 194;
+pub const ASI_PST16_S: u32 = 195;
+pub const ASI_PST32_P: u32 = 196;
+pub const ASI_PST32_S: u32 = 197;
+pub const ASI_PST8_PL: u32 = 200;
+pub const ASI_PST8_SL: u32 = 201;
+pub const ASI_PST16_PL: u32 = 202;
+pub const ASI_PST16_SL: u32 = 203;
+pub const ASI_PST32_PL: u32 = 204;
+pub const ASI_PST32_SL: u32 = 205;
+pub const ASI_FL8_P: u32 = 208;
+pub const ASI_FL8_S: u32 = 209;
+pub const ASI_FL16_P: u32 = 210;
+pub const ASI_FL16_S: u32 = 211;
+pub const ASI_FL8_PL: u32 = 216;
+pub const ASI_FL8_SL: u32 = 217;
+pub const ASI_FL16_PL: u32 = 218;
+pub const ASI_FL16_SL: u32 = 219;
+pub const ASI_BLK_COMMIT_P: u32 = 224;
+pub const ASI_BLK_COMMIT_S: u32 = 225;
+pub const ASI_BLK_INIT_QUAD_LDD_P: u32 = 226;
+pub const ASI_BLK_INIT_QUAD_LDD_S: u32 = 227;
+pub const ASI_BLK_P: u32 = 240;
+pub const ASI_BLK_S: u32 = 241;
+pub const ASI_ST_BLKINIT_MRU_P: u32 = 242;
+pub const ASI_ST_BLKINIT_MRU_S: u32 = 243;
+pub const ASI_BLK_PL: u32 = 248;
+pub const ASI_BLK_SL: u32 = 249;
+pub const ASI_ST_BLKINIT_MRU_PL: u32 = 250;
+pub const ASI_ST_BLKINIT_MRU_SL: u32 = 251;
+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 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_PASSCRED: u32 = 2;
+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_PEERCRED: u32 = 64;
+pub const SO_LINGER: u32 = 128;
+pub const SO_OOBINLINE: u32 = 256;
+pub const SO_REUSEPORT: u32 = 512;
+pub const SO_BSDCOMPAT: u32 = 1024;
+pub const SO_RCVLOWAT: u32 = 2048;
+pub const SO_SNDLOWAT: u32 = 4096;
+pub const SO_RCVTIMEO_OLD: u32 = 8192;
+pub const SO_SNDTIMEO_OLD: u32 = 16384;
+pub const SO_ACCEPTCONN: u32 = 32768;
+pub const SO_SNDBUF: u32 = 4097;
+pub const SO_RCVBUF: u32 = 4098;
+pub const SO_SNDBUFFORCE: u32 = 4106;
+pub const SO_RCVBUFFORCE: u32 = 4107;
+pub const SO_ERROR: u32 = 4103;
+pub const SO_TYPE: u32 = 4104;
+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_BINDTODEVICE: u32 = 13;
+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_PASSSEC: u32 = 31;
+pub const SO_MARK: u32 = 34;
+pub const SO_RXQ_OVFL: u32 = 36;
+pub const SO_WIFI_STATUS: u32 = 37;
+pub const SCM_WIFI_STATUS: u32 = 37;
+pub const SO_PEEK_OFF: u32 = 38;
+pub const SO_NOFCS: u32 = 39;
+pub const SO_LOCK_FILTER: u32 = 40;
+pub const SO_SELECT_ERR_QUEUE: u32 = 41;
+pub const SO_BUSY_POLL: u32 = 48;
+pub const SO_MAX_PACING_RATE: u32 = 49;
+pub const SO_BPF_EXTENSIONS: u32 = 50;
+pub const SO_INCOMING_CPU: u32 = 51;
+pub const SO_ATTACH_BPF: u32 = 52;
+pub const SO_DETACH_BPF: u32 = 27;
+pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 53;
+pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 54;
+pub const SO_CNX_ADVICE: u32 = 55;
+pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 56;
+pub const SO_MEMINFO: u32 = 57;
+pub const SO_INCOMING_NAPI_ID: u32 = 58;
+pub const SO_COOKIE: u32 = 59;
+pub const SCM_TIMESTAMPING_PKTINFO: u32 = 60;
+pub const SO_PEERGROUPS: u32 = 61;
+pub const SO_ZEROCOPY: u32 = 62;
+pub const SO_TXTIME: u32 = 63;
+pub const SCM_TXTIME: u32 = 63;
+pub const SO_BINDTOIFINDEX: u32 = 65;
+pub const SO_SECURITY_AUTHENTICATION: u32 = 20481;
+pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 20482;
+pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 20484;
+pub const SO_TIMESTAMP_OLD: u32 = 29;
+pub const SO_TIMESTAMPNS_OLD: u32 = 33;
+pub const SO_TIMESTAMPING_OLD: u32 = 35;
+pub const SO_TIMESTAMP_NEW: u32 = 70;
+pub const SO_TIMESTAMPNS_NEW: u32 = 66;
+pub const SO_TIMESTAMPING_NEW: u32 = 67;
+pub const SO_RCVTIMEO_NEW: u32 = 68;
+pub const SO_SNDTIMEO_NEW: u32 = 69;
+pub const SO_DETACH_REUSEPORT_BPF: u32 = 71;
+pub const SO_PREFER_BUSY_POLL: u32 = 72;
+pub const SO_BUSY_POLL_BUDGET: u32 = 73;
+pub const SO_NETNS_COOKIE: u32 = 80;
+pub const SO_BUF_LOCK: u32 = 81;
+pub const SO_RESERVE_MEM: u32 = 82;
+pub const SO_TXREHASH: u32 = 83;
+pub const SO_RCVMARK: u32 = 84;
+pub const SO_PASSPIDFD: u32 = 85;
+pub const SO_PEERPIDFD: u32 = 86;
+pub const SO_DEVMEM_LINEAR: u32 = 87;
+pub const SCM_DEVMEM_LINEAR: u32 = 87;
+pub const SO_DEVMEM_DMABUF: u32 = 88;
+pub const SCM_DEVMEM_DMABUF: u32 = 88;
+pub const SO_DEVMEM_DONTNEED: u32 = 89;
+pub const SCM_TS_OPT_ID: u32 = 90;
+pub const SO_TIMESTAMP: u32 = 29;
+pub const SO_TIMESTAMPNS: u32 = 33;
+pub const SO_TIMESTAMPING: u32 = 35;
+pub const SO_RCVTIMEO: u32 = 8192;
+pub const SO_SNDTIMEO: u32 = 16384;
+pub const SCM_TIMESTAMP: u32 = 29;
+pub const SCM_TIMESTAMPNS: u32 = 33;
+pub const SCM_TIMESTAMPING: u32 = 35;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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 = 1;
+pub const SOCK_DGRAM: u32 = 2;
+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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc64/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/netlink.rs
new file mode 100644
index 0000000..38427e8
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/netlink.rs
@@ -0,0 +1,2952 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_suseconds_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_old_timeval {
+pub tv_sec: __kernel_long_t,
+pub tv_usec: __kernel_suseconds_t,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/sparc64/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/prctl.rs
new file mode 100644
index 0000000..a9fff70
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/prctl.rs
@@ -0,0 +1,268 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_suseconds_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 __kernel_old_timeval {
+pub tv_sec: __kernel_long_t,
+pub tv_usec: __kernel_suseconds_t,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc64/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/ptrace.rs
new file mode 100644
index 0000000..3c69cf5
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/ptrace.rs
@@ -0,0 +1,1014 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_suseconds_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_old_timeval {
+pub tv_sec: __kernel_long_t,
+pub tv_usec: __kernel_suseconds_t,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pt_regs {
+pub u_regs: [crate::ctypes::c_ulong; 16usize],
+pub tstate: crate::ctypes::c_ulong,
+pub tpc: crate::ctypes::c_ulong,
+pub tnpc: crate::ctypes::c_ulong,
+pub y: crate::ctypes::c_uint,
+pub magic: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pt_regs32 {
+pub psr: crate::ctypes::c_uint,
+pub pc: crate::ctypes::c_uint,
+pub npc: crate::ctypes::c_uint,
+pub y: crate::ctypes::c_uint,
+pub u_regs: [crate::ctypes::c_uint; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct reg_window {
+pub locals: [crate::ctypes::c_ulong; 8usize],
+pub ins: [crate::ctypes::c_ulong; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct reg_window32 {
+pub locals: [crate::ctypes::c_uint; 8usize],
+pub ins: [crate::ctypes::c_uint; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sparc_stackf {
+pub locals: [crate::ctypes::c_ulong; 8usize],
+pub ins: [crate::ctypes::c_ulong; 6usize],
+pub fp: *mut sparc_stackf,
+pub callers_pc: crate::ctypes::c_ulong,
+pub structptr: *mut crate::ctypes::c_char,
+pub xargs: [crate::ctypes::c_ulong; 6usize],
+pub xxargs: [crate::ctypes::c_ulong; 1usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sparc_stackf32 {
+pub locals: [crate::ctypes::c_uint; 8usize],
+pub ins: [crate::ctypes::c_uint; 6usize],
+pub fp: crate::ctypes::c_uint,
+pub callers_pc: crate::ctypes::c_uint,
+pub structptr: crate::ctypes::c_uint,
+pub xargs: [crate::ctypes::c_uint; 6usize],
+pub xxargs: [crate::ctypes::c_uint; 1usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sparc_trapf {
+pub locals: [crate::ctypes::c_ulong; 8usize],
+pub ins: [crate::ctypes::c_ulong; 8usize],
+pub _unused: crate::ctypes::c_ulong,
+pub regs: *mut pt_regs,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const PT_REGS_MAGIC: u32 = 1470917632;
+pub const UREG_G0: u32 = 0;
+pub const UREG_G1: u32 = 1;
+pub const UREG_G2: u32 = 2;
+pub const UREG_G3: u32 = 3;
+pub const UREG_G4: u32 = 4;
+pub const UREG_G5: u32 = 5;
+pub const UREG_G6: u32 = 6;
+pub const UREG_G7: u32 = 7;
+pub const UREG_I0: u32 = 8;
+pub const UREG_I1: u32 = 9;
+pub const UREG_I2: u32 = 10;
+pub const UREG_I3: u32 = 11;
+pub const UREG_I4: u32 = 12;
+pub const UREG_I5: u32 = 13;
+pub const UREG_I6: u32 = 14;
+pub const UREG_I7: u32 = 15;
+pub const UREG_FP: u32 = 14;
+pub const UREG_RETPC: u32 = 15;
+pub const PT_V9_G0: u32 = 0;
+pub const PT_V9_G1: u32 = 8;
+pub const PT_V9_G2: u32 = 16;
+pub const PT_V9_G3: u32 = 24;
+pub const PT_V9_G4: u32 = 32;
+pub const PT_V9_G5: u32 = 40;
+pub const PT_V9_G6: u32 = 48;
+pub const PT_V9_G7: u32 = 56;
+pub const PT_V9_I0: u32 = 64;
+pub const PT_V9_I1: u32 = 72;
+pub const PT_V9_I2: u32 = 80;
+pub const PT_V9_I3: u32 = 88;
+pub const PT_V9_I4: u32 = 96;
+pub const PT_V9_I5: u32 = 104;
+pub const PT_V9_I6: u32 = 112;
+pub const PT_V9_FP: u32 = 112;
+pub const PT_V9_I7: u32 = 120;
+pub const PT_V9_TSTATE: u32 = 128;
+pub const PT_V9_TPC: u32 = 136;
+pub const PT_V9_TNPC: u32 = 144;
+pub const PT_V9_Y: u32 = 152;
+pub const PT_V9_MAGIC: u32 = 156;
+pub const PT_TSTATE: u32 = 128;
+pub const PT_TPC: u32 = 136;
+pub const PT_TNPC: u32 = 144;
+pub const PT_PSR: u32 = 0;
+pub const PT_PC: u32 = 4;
+pub const PT_NPC: u32 = 8;
+pub const PT_Y: u32 = 12;
+pub const PT_G0: u32 = 16;
+pub const PT_WIM: u32 = 16;
+pub const PT_G1: u32 = 20;
+pub const PT_G2: u32 = 24;
+pub const PT_G3: u32 = 28;
+pub const PT_G4: u32 = 32;
+pub const PT_G5: u32 = 36;
+pub const PT_G6: u32 = 40;
+pub const PT_G7: u32 = 44;
+pub const PT_I0: u32 = 48;
+pub const PT_I1: u32 = 52;
+pub const PT_I2: u32 = 56;
+pub const PT_I3: u32 = 60;
+pub const PT_I4: u32 = 64;
+pub const PT_I5: u32 = 68;
+pub const PT_I6: u32 = 72;
+pub const PT_FP: u32 = 72;
+pub const PT_I7: u32 = 76;
+pub const RW_V9_L0: u32 = 0;
+pub const RW_V9_L1: u32 = 8;
+pub const RW_V9_L2: u32 = 16;
+pub const RW_V9_L3: u32 = 24;
+pub const RW_V9_L4: u32 = 32;
+pub const RW_V9_L5: u32 = 40;
+pub const RW_V9_L6: u32 = 48;
+pub const RW_V9_L7: u32 = 56;
+pub const RW_V9_I0: u32 = 64;
+pub const RW_V9_I1: u32 = 72;
+pub const RW_V9_I2: u32 = 80;
+pub const RW_V9_I3: u32 = 88;
+pub const RW_V9_I4: u32 = 96;
+pub const RW_V9_I5: u32 = 104;
+pub const RW_V9_I6: u32 = 112;
+pub const RW_V9_I7: u32 = 120;
+pub const RW_L0: u32 = 0;
+pub const RW_L1: u32 = 4;
+pub const RW_L2: u32 = 8;
+pub const RW_L3: u32 = 12;
+pub const RW_L4: u32 = 16;
+pub const RW_L5: u32 = 20;
+pub const RW_L6: u32 = 24;
+pub const RW_L7: u32 = 28;
+pub const RW_I0: u32 = 32;
+pub const RW_I1: u32 = 36;
+pub const RW_I2: u32 = 40;
+pub const RW_I3: u32 = 44;
+pub const RW_I4: u32 = 48;
+pub const RW_I5: u32 = 52;
+pub const RW_I6: u32 = 56;
+pub const RW_I7: u32 = 60;
+pub const SF_V9_L0: u32 = 0;
+pub const SF_V9_L1: u32 = 8;
+pub const SF_V9_L2: u32 = 16;
+pub const SF_V9_L3: u32 = 24;
+pub const SF_V9_L4: u32 = 32;
+pub const SF_V9_L5: u32 = 40;
+pub const SF_V9_L6: u32 = 48;
+pub const SF_V9_L7: u32 = 56;
+pub const SF_V9_I0: u32 = 64;
+pub const SF_V9_I1: u32 = 72;
+pub const SF_V9_I2: u32 = 80;
+pub const SF_V9_I3: u32 = 88;
+pub const SF_V9_I4: u32 = 96;
+pub const SF_V9_I5: u32 = 104;
+pub const SF_V9_FP: u32 = 112;
+pub const SF_V9_PC: u32 = 120;
+pub const SF_V9_RETP: u32 = 128;
+pub const SF_V9_XARG0: u32 = 136;
+pub const SF_V9_XARG1: u32 = 144;
+pub const SF_V9_XARG2: u32 = 152;
+pub const SF_V9_XARG3: u32 = 160;
+pub const SF_V9_XARG4: u32 = 168;
+pub const SF_V9_XARG5: u32 = 176;
+pub const SF_V9_XXARG: u32 = 184;
+pub const SF_L0: u32 = 0;
+pub const SF_L1: u32 = 4;
+pub const SF_L2: u32 = 8;
+pub const SF_L3: u32 = 12;
+pub const SF_L4: u32 = 16;
+pub const SF_L5: u32 = 20;
+pub const SF_L6: u32 = 24;
+pub const SF_L7: u32 = 28;
+pub const SF_I0: u32 = 32;
+pub const SF_I1: u32 = 36;
+pub const SF_I2: u32 = 40;
+pub const SF_I3: u32 = 44;
+pub const SF_I4: u32 = 48;
+pub const SF_I5: u32 = 52;
+pub const SF_FP: u32 = 56;
+pub const SF_PC: u32 = 60;
+pub const SF_RETP: u32 = 64;
+pub const SF_XARG0: u32 = 68;
+pub const SF_XARG1: u32 = 72;
+pub const SF_XARG2: u32 = 76;
+pub const SF_XARG3: u32 = 80;
+pub const SF_XARG4: u32 = 84;
+pub const SF_XARG5: u32 = 88;
+pub const SF_XXARG: u32 = 92;
+pub const PTRACE_SPARC_DETACH: u32 = 11;
+pub const PTRACE_GETREGS: u32 = 12;
+pub const PTRACE_SETREGS: u32 = 13;
+pub const PTRACE_GETFPREGS: u32 = 14;
+pub const PTRACE_SETFPREGS: u32 = 15;
+pub const PTRACE_READDATA: u32 = 16;
+pub const PTRACE_WRITEDATA: u32 = 17;
+pub const PTRACE_READTEXT: u32 = 18;
+pub const PTRACE_WRITETEXT: u32 = 19;
+pub const PTRACE_GETFPAREGS: u32 = 20;
+pub const PTRACE_SETFPAREGS: u32 = 21;
+pub const PTRACE_GETREGS64: u32 = 22;
+pub const PTRACE_SETREGS64: u32 = 23;
+pub const PTRACE_GETFPREGS64: u32 = 25;
+pub const PTRACE_SETFPREGS64: u32 = 26;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc64/system.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/system.rs
new file mode 100644
index 0000000..4e9f278
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/system.rs
@@ -0,0 +1,138 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_suseconds_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_old_timeval {
+pub tv_sec: __kernel_long_t,
+pub tv_usec: __kernel_suseconds_t,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct sysinfo {
+pub uptime: __kernel_long_t,
+pub loads: [__kernel_ulong_t; 3usize],
+pub totalram: __kernel_ulong_t,
+pub freeram: __kernel_ulong_t,
+pub sharedram: __kernel_ulong_t,
+pub bufferram: __kernel_ulong_t,
+pub totalswap: __kernel_ulong_t,
+pub freeswap: __kernel_ulong_t,
+pub procs: __u16,
+pub pad: __u16,
+pub totalhigh: __kernel_ulong_t,
+pub freehigh: __kernel_ulong_t,
+pub mem_unit: __u32,
+pub _f: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct oldold_utsname {
+pub sysname: [crate::ctypes::c_char; 9usize],
+pub nodename: [crate::ctypes::c_char; 9usize],
+pub release: [crate::ctypes::c_char; 9usize],
+pub version: [crate::ctypes::c_char; 9usize],
+pub machine: [crate::ctypes::c_char; 9usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct old_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct new_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+pub domainname: [crate::ctypes::c_char; 65usize],
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/sparc64/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/sparc64/xdp.rs
new file mode 100644
index 0000000..381065b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/sparc64/xdp.rs
@@ -0,0 +1,197 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_suseconds_t = crate::ctypes::c_int;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 __kernel_old_timeval {
+pub tv_sec: __kernel_long_t,
+pub tv_usec: __kernel_suseconds_t,
+}
+#[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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x32/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/x32/bootparam.rs
new file mode 100644
index 0000000..01afc71
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/bootparam.rs
@@ -0,0 +1,662 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 apm_event_t = crate::ctypes::c_ushort;
+pub type apm_eventinfo_t = crate::ctypes::c_ushort;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug)]
+pub struct setup_data {
+pub next: __u64,
+pub type_: __u32,
+pub len: __u32,
+pub data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct setup_indirect {
+pub type_: __u32,
+pub reserved: __u32,
+pub len: __u64,
+pub addr: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct boot_e820_entry {
+pub addr: __u64,
+pub size: __u64,
+pub type_: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct jailhouse_setup_data {
+pub hdr: jailhouse_setup_data__bindgen_ty_1,
+pub v1: jailhouse_setup_data__bindgen_ty_2,
+pub v2: jailhouse_setup_data__bindgen_ty_3,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct jailhouse_setup_data__bindgen_ty_1 {
+pub version: __u16,
+pub compatible_version: __u16,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct jailhouse_setup_data__bindgen_ty_2 {
+pub pm_timer_address: __u16,
+pub num_cpus: __u16,
+pub pci_mmconfig_base: __u64,
+pub tsc_khz: __u32,
+pub apic_khz: __u32,
+pub standard_ioapic: __u8,
+pub cpu_ids: [__u8; 255usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct jailhouse_setup_data__bindgen_ty_3 {
+pub flags: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ima_setup_data {
+pub addr: __u64,
+pub size: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct screen_info {
+pub orig_x: __u8,
+pub orig_y: __u8,
+pub ext_mem_k: __u16,
+pub orig_video_page: __u16,
+pub orig_video_mode: __u8,
+pub orig_video_cols: __u8,
+pub flags: __u8,
+pub unused2: __u8,
+pub orig_video_ega_bx: __u16,
+pub unused3: __u16,
+pub orig_video_lines: __u8,
+pub orig_video_isVGA: __u8,
+pub orig_video_points: __u16,
+pub lfb_width: __u16,
+pub lfb_height: __u16,
+pub lfb_depth: __u16,
+pub lfb_base: __u32,
+pub lfb_size: __u32,
+pub cl_magic: __u16,
+pub cl_offset: __u16,
+pub lfb_linelength: __u16,
+pub red_size: __u8,
+pub red_pos: __u8,
+pub green_size: __u8,
+pub green_pos: __u8,
+pub blue_size: __u8,
+pub blue_pos: __u8,
+pub rsvd_size: __u8,
+pub rsvd_pos: __u8,
+pub vesapm_seg: __u16,
+pub vesapm_off: __u16,
+pub pages: __u16,
+pub vesa_attributes: __u16,
+pub capabilities: __u32,
+pub ext_lfb_base: __u32,
+pub _reserved: [__u8; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct apm_bios_info {
+pub version: __u16,
+pub cseg: __u16,
+pub offset: __u32,
+pub cseg_16: __u16,
+pub dseg: __u16,
+pub flags: __u16,
+pub cseg_len: __u16,
+pub cseg_16_len: __u16,
+pub dseg_len: __u16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct edd_device_params {
+pub length: __u16,
+pub info_flags: __u16,
+pub num_default_cylinders: __u32,
+pub num_default_heads: __u32,
+pub sectors_per_track: __u32,
+pub number_of_sectors: __u64,
+pub bytes_per_sector: __u16,
+pub dpte_ptr: __u32,
+pub key: __u16,
+pub device_path_info_length: __u8,
+pub reserved2: __u8,
+pub reserved3: __u16,
+pub host_bus_type: [__u8; 4usize],
+pub interface_type: [__u8; 8usize],
+pub interface_path: edd_device_params__bindgen_ty_1,
+pub device_path: edd_device_params__bindgen_ty_2,
+pub reserved4: __u8,
+pub checksum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_1 {
+pub base_address: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_2 {
+pub bus: __u8,
+pub slot: __u8,
+pub function: __u8,
+pub channel: __u8,
+pub reserved: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_3 {
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_4 {
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_5 {
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_6 {
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_1 {
+pub device: __u8,
+pub reserved1: __u8,
+pub reserved2: __u16,
+pub reserved3: __u32,
+pub reserved4: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_2 {
+pub device: __u8,
+pub lun: __u8,
+pub reserved1: __u8,
+pub reserved2: __u8,
+pub reserved3: __u32,
+pub reserved4: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_3 {
+pub id: __u16,
+pub lun: __u64,
+pub reserved1: __u16,
+pub reserved2: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_4 {
+pub serial_number: __u64,
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_5 {
+pub eui: __u64,
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_6 {
+pub wwid: __u64,
+pub lun: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_7 {
+pub identity_tag: __u64,
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_8 {
+pub array_number: __u32,
+pub reserved1: __u32,
+pub reserved2: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_9 {
+pub device: __u8,
+pub reserved1: __u8,
+pub reserved2: __u16,
+pub reserved3: __u32,
+pub reserved4: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_10 {
+pub reserved1: __u64,
+pub reserved2: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct edd_info {
+pub device: __u8,
+pub version: __u8,
+pub interface_support: __u16,
+pub legacy_max_cylinder: __u16,
+pub legacy_max_head: __u8,
+pub legacy_sectors_per_track: __u8,
+pub params: edd_device_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct edd {
+pub mbr_signature: [crate::ctypes::c_uint; 16usize],
+pub edd_info: [edd_info; 6usize],
+pub mbr_signature_nr: crate::ctypes::c_uchar,
+pub edd_info_nr: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ist_info {
+pub signature: __u32,
+pub command: __u32,
+pub event: __u32,
+pub perf_level: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct edid_info {
+pub dummy: [crate::ctypes::c_uchar; 128usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct setup_header {
+pub setup_sects: __u8,
+pub root_flags: __u16,
+pub syssize: __u32,
+pub ram_size: __u16,
+pub vid_mode: __u16,
+pub root_dev: __u16,
+pub boot_flag: __u16,
+pub jump: __u16,
+pub header: __u32,
+pub version: __u16,
+pub realmode_swtch: __u32,
+pub start_sys_seg: __u16,
+pub kernel_version: __u16,
+pub type_of_loader: __u8,
+pub loadflags: __u8,
+pub setup_move_size: __u16,
+pub code32_start: __u32,
+pub ramdisk_image: __u32,
+pub ramdisk_size: __u32,
+pub bootsect_kludge: __u32,
+pub heap_end_ptr: __u16,
+pub ext_loader_ver: __u8,
+pub ext_loader_type: __u8,
+pub cmd_line_ptr: __u32,
+pub initrd_addr_max: __u32,
+pub kernel_alignment: __u32,
+pub relocatable_kernel: __u8,
+pub min_alignment: __u8,
+pub xloadflags: __u16,
+pub cmdline_size: __u32,
+pub hardware_subarch: __u32,
+pub hardware_subarch_data: __u64,
+pub payload_offset: __u32,
+pub payload_length: __u32,
+pub setup_data: __u64,
+pub pref_address: __u64,
+pub init_size: __u32,
+pub handover_offset: __u32,
+pub kernel_info_offset: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sys_desc_table {
+pub length: __u16,
+pub table: [__u8; 14usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct olpc_ofw_header {
+pub ofw_magic: __u32,
+pub ofw_version: __u32,
+pub cif_handler: __u32,
+pub irq_desc_table: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct efi_info {
+pub efi_loader_signature: __u32,
+pub efi_systab: __u32,
+pub efi_memdesc_size: __u32,
+pub efi_memdesc_version: __u32,
+pub efi_memmap: __u32,
+pub efi_memmap_size: __u32,
+pub efi_systab_hi: __u32,
+pub efi_memmap_hi: __u32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct boot_params {
+pub screen_info: screen_info,
+pub apm_bios_info: apm_bios_info,
+pub _pad2: [__u8; 4usize],
+pub tboot_addr: __u64,
+pub ist_info: ist_info,
+pub acpi_rsdp_addr: __u64,
+pub _pad3: [__u8; 8usize],
+pub hd0_info: [__u8; 16usize],
+pub hd1_info: [__u8; 16usize],
+pub sys_desc_table: sys_desc_table,
+pub olpc_ofw_header: olpc_ofw_header,
+pub ext_ramdisk_image: __u32,
+pub ext_ramdisk_size: __u32,
+pub ext_cmd_line_ptr: __u32,
+pub _pad4: [__u8; 112usize],
+pub cc_blob_address: __u32,
+pub edid_info: edid_info,
+pub efi_info: efi_info,
+pub alt_mem_k: __u32,
+pub scratch: __u32,
+pub e820_entries: __u8,
+pub eddbuf_entries: __u8,
+pub edd_mbr_sig_buf_entries: __u8,
+pub kbd_status: __u8,
+pub secure_boot: __u8,
+pub _pad5: [__u8; 2usize],
+pub sentinel: __u8,
+pub _pad6: [__u8; 1usize],
+pub hdr: setup_header,
+pub _pad7: [__u8; 36usize],
+pub edd_mbr_sig_buffer: [__u32; 16usize],
+pub e820_table: [boot_e820_entry; 128usize],
+pub _pad8: [__u8; 48usize],
+pub eddbuf: [edd_info; 6usize],
+pub _pad9: [__u8; 276usize],
+}
+pub const SETUP_NONE: u32 = 0;
+pub const SETUP_E820_EXT: u32 = 1;
+pub const SETUP_DTB: u32 = 2;
+pub const SETUP_PCI: u32 = 3;
+pub const SETUP_EFI: u32 = 4;
+pub const SETUP_APPLE_PROPERTIES: u32 = 5;
+pub const SETUP_JAILHOUSE: u32 = 6;
+pub const SETUP_CC_BLOB: u32 = 7;
+pub const SETUP_IMA: u32 = 8;
+pub const SETUP_RNG_SEED: u32 = 9;
+pub const SETUP_ENUM_MAX: u32 = 9;
+pub const SETUP_INDIRECT: u32 = 2147483648;
+pub const SETUP_TYPE_MAX: u32 = 2147483657;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const RAMDISK_IMAGE_START_MASK: u32 = 2047;
+pub const RAMDISK_PROMPT_FLAG: u32 = 32768;
+pub const RAMDISK_LOAD_FLAG: u32 = 16384;
+pub const LOADED_HIGH: u32 = 1;
+pub const KASLR_FLAG: u32 = 2;
+pub const QUIET_FLAG: u32 = 32;
+pub const KEEP_SEGMENTS: u32 = 64;
+pub const CAN_USE_HEAP: u32 = 128;
+pub const XLF_KERNEL_64: u32 = 1;
+pub const XLF_CAN_BE_LOADED_ABOVE_4G: u32 = 2;
+pub const XLF_EFI_HANDOVER_32: u32 = 4;
+pub const XLF_EFI_HANDOVER_64: u32 = 8;
+pub const XLF_EFI_KEXEC: u32 = 16;
+pub const XLF_5LEVEL: u32 = 32;
+pub const XLF_5LEVEL_ENABLED: u32 = 64;
+pub const XLF_MEM_ENCRYPTION: u32 = 128;
+pub const VIDEO_TYPE_MDA: u32 = 16;
+pub const VIDEO_TYPE_CGA: u32 = 17;
+pub const VIDEO_TYPE_EGAM: u32 = 32;
+pub const VIDEO_TYPE_EGAC: u32 = 33;
+pub const VIDEO_TYPE_VGAC: u32 = 34;
+pub const VIDEO_TYPE_VLFB: u32 = 35;
+pub const VIDEO_TYPE_PICA_S3: u32 = 48;
+pub const VIDEO_TYPE_MIPS_G364: u32 = 49;
+pub const VIDEO_TYPE_SGI: u32 = 51;
+pub const VIDEO_TYPE_TGAC: u32 = 64;
+pub const VIDEO_TYPE_SUN: u32 = 80;
+pub const VIDEO_TYPE_SUNPCI: u32 = 81;
+pub const VIDEO_TYPE_PMAC: u32 = 96;
+pub const VIDEO_TYPE_EFI: u32 = 112;
+pub const VIDEO_FLAGS_NOCURSOR: u32 = 1;
+pub const VIDEO_CAPABILITY_SKIP_QUIRKS: u32 = 1;
+pub const VIDEO_CAPABILITY_64BIT_BASE: u32 = 2;
+pub const APM_STATE_READY: u32 = 0;
+pub const APM_STATE_STANDBY: u32 = 1;
+pub const APM_STATE_SUSPEND: u32 = 2;
+pub const APM_STATE_OFF: u32 = 3;
+pub const APM_STATE_BUSY: u32 = 4;
+pub const APM_STATE_REJECT: u32 = 5;
+pub const APM_STATE_OEM_SYS: u32 = 32;
+pub const APM_STATE_OEM_DEV: u32 = 64;
+pub const APM_STATE_DISABLE: u32 = 0;
+pub const APM_STATE_ENABLE: u32 = 1;
+pub const APM_STATE_DISENGAGE: u32 = 0;
+pub const APM_STATE_ENGAGE: u32 = 1;
+pub const APM_SYS_STANDBY: u32 = 1;
+pub const APM_SYS_SUSPEND: u32 = 2;
+pub const APM_NORMAL_RESUME: u32 = 3;
+pub const APM_CRITICAL_RESUME: u32 = 4;
+pub const APM_LOW_BATTERY: u32 = 5;
+pub const APM_POWER_STATUS_CHANGE: u32 = 6;
+pub const APM_UPDATE_TIME: u32 = 7;
+pub const APM_CRITICAL_SUSPEND: u32 = 8;
+pub const APM_USER_STANDBY: u32 = 9;
+pub const APM_USER_SUSPEND: u32 = 10;
+pub const APM_STANDBY_RESUME: u32 = 11;
+pub const APM_CAPABILITY_CHANGE: u32 = 12;
+pub const APM_USER_HIBERNATION: u32 = 13;
+pub const APM_HIBERNATION_RESUME: u32 = 14;
+pub const APM_SUCCESS: u32 = 0;
+pub const APM_DISABLED: u32 = 1;
+pub const APM_CONNECTED: u32 = 2;
+pub const APM_NOT_CONNECTED: u32 = 3;
+pub const APM_16_CONNECTED: u32 = 5;
+pub const APM_16_UNSUPPORTED: u32 = 6;
+pub const APM_32_CONNECTED: u32 = 7;
+pub const APM_32_UNSUPPORTED: u32 = 8;
+pub const APM_BAD_DEVICE: u32 = 9;
+pub const APM_BAD_PARAM: u32 = 10;
+pub const APM_NOT_ENGAGED: u32 = 11;
+pub const APM_BAD_FUNCTION: u32 = 12;
+pub const APM_RESUME_DISABLED: u32 = 13;
+pub const APM_NO_ERROR: u32 = 83;
+pub const APM_BAD_STATE: u32 = 96;
+pub const APM_NO_EVENTS: u32 = 128;
+pub const APM_NOT_PRESENT: u32 = 134;
+pub const APM_DEVICE_BIOS: u32 = 0;
+pub const APM_DEVICE_ALL: u32 = 1;
+pub const APM_DEVICE_DISPLAY: u32 = 256;
+pub const APM_DEVICE_STORAGE: u32 = 512;
+pub const APM_DEVICE_PARALLEL: u32 = 768;
+pub const APM_DEVICE_SERIAL: u32 = 1024;
+pub const APM_DEVICE_NETWORK: u32 = 1280;
+pub const APM_DEVICE_PCMCIA: u32 = 1536;
+pub const APM_DEVICE_BATTERY: u32 = 32768;
+pub const APM_DEVICE_OEM: u32 = 57344;
+pub const APM_DEVICE_OLD_ALL: u32 = 65535;
+pub const APM_DEVICE_CLASS: u32 = 255;
+pub const APM_DEVICE_MASK: u32 = 65280;
+pub const APM_MAX_BATTERIES: u32 = 2;
+pub const APM_CAP_GLOBAL_STANDBY: u32 = 1;
+pub const APM_CAP_GLOBAL_SUSPEND: u32 = 2;
+pub const APM_CAP_RESUME_STANDBY_TIMER: u32 = 4;
+pub const APM_CAP_RESUME_SUSPEND_TIMER: u32 = 8;
+pub const APM_CAP_RESUME_STANDBY_RING: u32 = 16;
+pub const APM_CAP_RESUME_SUSPEND_RING: u32 = 32;
+pub const APM_CAP_RESUME_STANDBY_PCMCIA: u32 = 64;
+pub const APM_CAP_RESUME_SUSPEND_PCMCIA: u32 = 128;
+pub const _IOC_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+pub const EDDNR: u32 = 489;
+pub const EDDBUF: u32 = 3328;
+pub const EDDMAXNR: u32 = 6;
+pub const EDDEXTSIZE: u32 = 8;
+pub const EDDPARMSIZE: u32 = 74;
+pub const CHECKEXTENSIONSPRESENT: u32 = 65;
+pub const GETDEVICEPARAMETERS: u32 = 72;
+pub const LEGACYGETDEVICEPARAMETERS: u32 = 8;
+pub const EDDMAGIC1: u32 = 21930;
+pub const EDDMAGIC2: u32 = 43605;
+pub const READ_SECTORS: u32 = 2;
+pub const EDD_MBR_SIG_OFFSET: u32 = 440;
+pub const EDD_MBR_SIG_BUF: u32 = 656;
+pub const EDD_MBR_SIG_MAX: u32 = 16;
+pub const EDD_MBR_SIG_NR_BUF: u32 = 490;
+pub const EDD_EXT_FIXED_DISK_ACCESS: u32 = 1;
+pub const EDD_EXT_DEVICE_LOCKING_AND_EJECTING: u32 = 2;
+pub const EDD_EXT_ENHANCED_DISK_DRIVE_SUPPORT: u32 = 4;
+pub const EDD_EXT_64BIT_EXTENSIONS: u32 = 8;
+pub const EDD_INFO_DMA_BOUNDARY_ERROR_TRANSPARENT: u32 = 1;
+pub const EDD_INFO_GEOMETRY_VALID: u32 = 2;
+pub const EDD_INFO_REMOVABLE: u32 = 4;
+pub const EDD_INFO_WRITE_VERIFY: u32 = 8;
+pub const EDD_INFO_MEDIA_CHANGE_NOTIFICATION: u32 = 16;
+pub const EDD_INFO_LOCKABLE: u32 = 32;
+pub const EDD_INFO_NO_MEDIA_PRESENT: u32 = 64;
+pub const EDD_INFO_USE_INT13_FN50: u32 = 128;
+pub const E820_MAX_ENTRIES_ZEROPAGE: u32 = 128;
+pub const JAILHOUSE_SETUP_REQUIRED_VERSION: u32 = 1;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum x86_hardware_subarch {
+X86_SUBARCH_PC = 0,
+X86_SUBARCH_LGUEST = 1,
+X86_SUBARCH_XEN = 2,
+X86_SUBARCH_INTEL_MID = 3,
+X86_SUBARCH_CE4100 = 4,
+X86_NR_SUBARCHS = 5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union edd_device_params__bindgen_ty_1 {
+pub isa: edd_device_params__bindgen_ty_1__bindgen_ty_1,
+pub pci: edd_device_params__bindgen_ty_1__bindgen_ty_2,
+pub ibnd: edd_device_params__bindgen_ty_1__bindgen_ty_3,
+pub xprs: edd_device_params__bindgen_ty_1__bindgen_ty_4,
+pub htpt: edd_device_params__bindgen_ty_1__bindgen_ty_5,
+pub unknown: edd_device_params__bindgen_ty_1__bindgen_ty_6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union edd_device_params__bindgen_ty_2 {
+pub ata: edd_device_params__bindgen_ty_2__bindgen_ty_1,
+pub atapi: edd_device_params__bindgen_ty_2__bindgen_ty_2,
+pub scsi: edd_device_params__bindgen_ty_2__bindgen_ty_3,
+pub usb: edd_device_params__bindgen_ty_2__bindgen_ty_4,
+pub i1394: edd_device_params__bindgen_ty_2__bindgen_ty_5,
+pub fibre: edd_device_params__bindgen_ty_2__bindgen_ty_6,
+pub i2o: edd_device_params__bindgen_ty_2__bindgen_ty_7,
+pub raid: edd_device_params__bindgen_ty_2__bindgen_ty_8,
+pub sata: edd_device_params__bindgen_ty_2__bindgen_ty_9,
+pub unknown: edd_device_params__bindgen_ty_2__bindgen_ty_10,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x32/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/x32/btrfs.rs
new file mode 100644
index 0000000..c705c0b
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/btrfs.rs
@@ -0,0 +1,1868 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const _IOC_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x32/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/x32/elf_uapi.rs
new file mode 100644
index 0000000..08a756c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/elf_uapi.rs
@@ -0,0 +1,524 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x32/errno.rs b/vendor/linux-raw-sys-0.9.4/src/x32/errno.rs
new file mode 100644
index 0000000..5b018a2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/errno.rs
@@ -0,0 +1,135 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
diff --git a/vendor/linux-raw-sys-0.9.4/src/x32/general.rs b/vendor/linux-raw-sys-0.9.4/src/x32/general.rs
new file mode 100644
index 0000000..ef4a0f3
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/general.rs
@@ -0,0 +1,3270 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type __kernel_si_clock_t = crate::ctypes::c_longlong;
+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 __fsword_t = __u32;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 32usize],
+}
+#[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, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct epoll_event {
+pub events: __poll_t,
+pub data: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 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 sigaction {
+pub sa_handler: __sighandler_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_restorer: __sigrestore_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_flags: crate::ctypes::c_int,
+pub ss_size: __kernel_size_t,
+}
+#[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_si_clock_t,
+pub _stime: __kernel_si_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; 4usize],
+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; 4usize],
+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)]
+#[repr(align(8))]
+#[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_errno: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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; 19usize],
+}
+#[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; 19usize],
+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; 19usize],
+pub c_ispeed: speed_t,
+pub c_ospeed: speed_t,
+}
+#[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_uchar,
+pub c_cc: [crate::ctypes::c_uchar; 8usize],
+}
+#[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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulonglong,
+pub d_off: crate::ctypes::c_longlong,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: __kernel_ulong_t,
+pub st_ino: __kernel_ulong_t,
+pub st_nlink: __kernel_ulong_t,
+pub st_mode: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_uint,
+pub st_gid: crate::ctypes::c_uint,
+pub __pad0: crate::ctypes::c_uint,
+pub st_rdev: __kernel_ulong_t,
+pub st_size: __kernel_long_t,
+pub st_blksize: __kernel_long_t,
+pub st_blocks: __kernel_long_t,
+pub st_atime: __kernel_ulong_t,
+pub st_atime_nsec: __kernel_ulong_t,
+pub st_mtime: __kernel_ulong_t,
+pub st_mtime_nsec: __kernel_ulong_t,
+pub st_ctime: __kernel_ulong_t,
+pub st_ctime_nsec: __kernel_ulong_t,
+pub __unused: [__kernel_long_t; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __old_kernel_stat {
+pub st_dev: crate::ctypes::c_ushort,
+pub st_ino: crate::ctypes::c_ushort,
+pub st_mode: crate::ctypes::c_ushort,
+pub st_nlink: crate::ctypes::c_ushort,
+pub st_uid: crate::ctypes::c_ushort,
+pub st_gid: crate::ctypes::c_ushort,
+pub st_rdev: crate::ctypes::c_ushort,
+pub st_size: crate::ctypes::c_uint,
+pub st_atime: crate::ctypes::c_uint,
+pub st_mtime: crate::ctypes::c_uint,
+pub st_ctime: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u32,
+pub f_bfree: __u32,
+pub f_bavail: __u32,
+pub f_files: __u32,
+pub f_ffree: __u32,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[repr(C, packed(4))]
+#[derive(Debug, Copy, Clone)]
+pub struct compat_statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[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_restorer: __sigrestore_t,
+pub sa_mask: kernel_sigset_t,
+}
+pub const LINUX_VERSION_CODE: u32 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+pub const LINUX_VERSION_SUBLEVEL: u32 = 0;
+pub const AT_SYSINFO_EHDR: u32 = 33;
+pub const AT_VECTOR_SIZE_ARCH: u32 = 3;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+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_ACCMODE: u32 = 3;
+pub const O_RDONLY: u32 = 0;
+pub const O_WRONLY: u32 = 1;
+pub const O_RDWR: u32 = 2;
+pub const O_CREAT: u32 = 64;
+pub const O_EXCL: u32 = 128;
+pub const O_NOCTTY: u32 = 256;
+pub const O_TRUNC: u32 = 512;
+pub const O_APPEND: u32 = 1024;
+pub const O_NONBLOCK: u32 = 2048;
+pub const O_DSYNC: u32 = 4096;
+pub const FASYNC: u32 = 8192;
+pub const O_DIRECT: u32 = 16384;
+pub const O_LARGEFILE: u32 = 32768;
+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_SYNC: u32 = 1048576;
+pub const O_SYNC: u32 = 1052672;
+pub const O_PATH: u32 = 2097152;
+pub const __O_TMPFILE: u32 = 4194304;
+pub const O_TMPFILE: u32 = 4259840;
+pub const O_NDELAY: u32 = 2048;
+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_GETLK: u32 = 5;
+pub const F_SETLK: u32 = 6;
+pub const F_SETLKW: u32 = 7;
+pub const F_SETOWN: u32 = 8;
+pub const F_GETOWN: u32 = 9;
+pub const F_SETSIG: u32 = 10;
+pub const F_GETSIG: u32 = 11;
+pub const F_GETLK64: u32 = 12;
+pub const F_SETLK64: u32 = 13;
+pub const F_SETLKW64: u32 = 14;
+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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 = 2048;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+pub const MAP_32BIT: u32 = 64;
+pub const MAP_ABOVE4G: u32 = 128;
+pub const PROT_READ: u32 = 1;
+pub const PROT_WRITE: u32 = 2;
+pub const PROT_EXEC: u32 = 4;
+pub const PROT_SEM: u32 = 8;
+pub const PROT_NONE: u32 = 0;
+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_ANONYMOUS: u32 = 32;
+pub const MAP_POPULATE: u32 = 32768;
+pub const MAP_NONBLOCK: u32 = 65536;
+pub const MAP_STACK: u32 = 131072;
+pub const MAP_HUGETLB: u32 = 262144;
+pub const MAP_SYNC: u32 = 524288;
+pub const MAP_FIXED_NOREPLACE: u32 = 1048576;
+pub const MAP_UNINITIALIZED: u32 = 67108864;
+pub const MLOCK_ONFAULT: u32 = 1;
+pub const MS_ASYNC: u32 = 1;
+pub const MS_INVALIDATE: u32 = 2;
+pub const MS_SYNC: u32 = 4;
+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_HWPOISON: u32 = 100;
+pub const MADV_SOFT_OFFLINE: u32 = 101;
+pub const MADV_MERGEABLE: u32 = 12;
+pub const MADV_UNMERGEABLE: u32 = 13;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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 MAP_GROWSDOWN: u32 = 256;
+pub const MAP_DENYWRITE: u32 = 2048;
+pub const MAP_EXECUTABLE: u32 = 4096;
+pub const MAP_LOCKED: u32 = 8192;
+pub const MAP_NORESERVE: u32 = 16384;
+pub const MCL_CURRENT: u32 = 1;
+pub const MCL_FUTURE: u32 = 2;
+pub const MCL_ONFAULT: u32 = 4;
+pub const SHADOW_STACK_SET_TOKEN: u32 = 1;
+pub const SHADOW_STACK_SET_MARKER: u32 = 2;
+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_DROPPABLE: u32 = 8;
+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 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 POLLWRNORM: u32 = 256;
+pub const POLLWRBAND: u32 = 512;
+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 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_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_RSS: u32 = 5;
+pub const RLIMIT_NPROC: u32 = 6;
+pub const RLIMIT_NOFILE: u32 = 7;
+pub const RLIMIT_MEMLOCK: u32 = 8;
+pub const RLIMIT_AS: u32 = 9;
+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_EXT: u32 = 7;
+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 = 32;
+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 SIGABRT: u32 = 6;
+pub const SIGIOT: u32 = 6;
+pub const SIGBUS: u32 = 7;
+pub const SIGFPE: u32 = 8;
+pub const SIGKILL: u32 = 9;
+pub const SIGUSR1: u32 = 10;
+pub const SIGSEGV: u32 = 11;
+pub const SIGUSR2: u32 = 12;
+pub const SIGPIPE: u32 = 13;
+pub const SIGALRM: u32 = 14;
+pub const SIGTERM: u32 = 15;
+pub const SIGSTKFLT: u32 = 16;
+pub const SIGCHLD: u32 = 17;
+pub const SIGCONT: u32 = 18;
+pub const SIGSTOP: u32 = 19;
+pub const SIGTSTP: u32 = 20;
+pub const SIGTTIN: u32 = 21;
+pub const SIGTTOU: u32 = 22;
+pub const SIGURG: u32 = 23;
+pub const SIGXCPU: u32 = 24;
+pub const SIGXFSZ: u32 = 25;
+pub const SIGVTALRM: u32 = 26;
+pub const SIGPROF: u32 = 27;
+pub const SIGWINCH: u32 = 28;
+pub const SIGIO: u32 = 29;
+pub const SIGPOLL: u32 = 29;
+pub const SIGPWR: u32 = 30;
+pub const SIGSYS: u32 = 31;
+pub const SIGUNUSED: u32 = 31;
+pub const SIGRTMIN: u32 = 32;
+pub const SA_RESTORER: u32 = 67108864;
+pub const MINSIGSTKSZ: u32 = 2048;
+pub const SIGSTKSZ: u32 = 8192;
+pub const SA_NOCLDSTOP: u32 = 1;
+pub const SA_NOCLDWAIT: u32 = 2;
+pub const SA_SIGINFO: u32 = 4;
+pub const SA_UNSUPPORTED: u32 = 1024;
+pub const SA_EXPOSE_TAGBITS: u32 = 2048;
+pub const SA_ONSTACK: u32 = 134217728;
+pub const SA_RESTART: u32 = 268435456;
+pub const SA_NODEFER: u32 = 1073741824;
+pub const SA_RESETHAND: u32 = 2147483648;
+pub const SA_NOMASK: u32 = 1073741824;
+pub const SA_ONESHOT: u32 = 2147483648;
+pub const SIG_BLOCK: u32 = 0;
+pub const SIG_UNBLOCK: u32 = 1;
+pub const SIG_SETMASK: u32 = 2;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 = 19;
+pub const VINTR: u32 = 0;
+pub const VQUIT: u32 = 1;
+pub const VERASE: u32 = 2;
+pub const VKILL: u32 = 3;
+pub const VEOF: u32 = 4;
+pub const VTIME: u32 = 5;
+pub const VMIN: u32 = 6;
+pub const VSWTC: u32 = 7;
+pub const VSTART: u32 = 8;
+pub const VSTOP: u32 = 9;
+pub const VSUSP: u32 = 10;
+pub const VEOL: u32 = 11;
+pub const VREPRINT: u32 = 12;
+pub const VDISCARD: u32 = 13;
+pub const VWERASE: u32 = 14;
+pub const VLNEXT: u32 = 15;
+pub const VEOL2: u32 = 16;
+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 TOSTOP: u32 = 256;
+pub const ECHOCTL: u32 = 512;
+pub const ECHOPRT: u32 = 1024;
+pub const ECHOKE: u32 = 2048;
+pub const FLUSHO: u32 = 4096;
+pub const PENDIN: u32 = 16384;
+pub const IEXTEN: u32 = 32768;
+pub const EXTPROC: u32 = 65536;
+pub const TCSANOW: u32 = 0;
+pub const TCSADRAIN: u32 = 1;
+pub const TCSAFLUSH: u32 = 2;
+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 TIOCSER_TEMT: u32 = 1;
+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 = 8;
+pub const TIOCM_SR: u32 = 16;
+pub const TIOCM_CTS: u32 = 32;
+pub const TIOCM_CAR: u32 = 64;
+pub const TIOCM_RNG: u32 = 128;
+pub const TIOCM_DSR: u32 = 256;
+pub const TIOCM_CD: u32 = 64;
+pub const TIOCM_RI: u32 = 128;
+pub const TIOCM_OUT1: u32 = 8192;
+pub const TIOCM_OUT2: u32 = 16384;
+pub const TIOCM_LOOP: u32 = 32768;
+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 UIO_FASTIOV: u32 = 8;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const __X32_SYSCALL_BIT: u32 = 1073741824;
+pub const __NR_read: u32 = 1073741824;
+pub const __NR_write: u32 = 1073741825;
+pub const __NR_open: u32 = 1073741826;
+pub const __NR_close: u32 = 1073741827;
+pub const __NR_stat: u32 = 1073741828;
+pub const __NR_fstat: u32 = 1073741829;
+pub const __NR_lstat: u32 = 1073741830;
+pub const __NR_poll: u32 = 1073741831;
+pub const __NR_lseek: u32 = 1073741832;
+pub const __NR_mmap: u32 = 1073741833;
+pub const __NR_mprotect: u32 = 1073741834;
+pub const __NR_munmap: u32 = 1073741835;
+pub const __NR_brk: u32 = 1073741836;
+pub const __NR_rt_sigprocmask: u32 = 1073741838;
+pub const __NR_pread64: u32 = 1073741841;
+pub const __NR_pwrite64: u32 = 1073741842;
+pub const __NR_access: u32 = 1073741845;
+pub const __NR_pipe: u32 = 1073741846;
+pub const __NR_select: u32 = 1073741847;
+pub const __NR_sched_yield: u32 = 1073741848;
+pub const __NR_mremap: u32 = 1073741849;
+pub const __NR_msync: u32 = 1073741850;
+pub const __NR_mincore: u32 = 1073741851;
+pub const __NR_madvise: u32 = 1073741852;
+pub const __NR_shmget: u32 = 1073741853;
+pub const __NR_shmat: u32 = 1073741854;
+pub const __NR_shmctl: u32 = 1073741855;
+pub const __NR_dup: u32 = 1073741856;
+pub const __NR_dup2: u32 = 1073741857;
+pub const __NR_pause: u32 = 1073741858;
+pub const __NR_nanosleep: u32 = 1073741859;
+pub const __NR_getitimer: u32 = 1073741860;
+pub const __NR_alarm: u32 = 1073741861;
+pub const __NR_setitimer: u32 = 1073741862;
+pub const __NR_getpid: u32 = 1073741863;
+pub const __NR_sendfile: u32 = 1073741864;
+pub const __NR_socket: u32 = 1073741865;
+pub const __NR_connect: u32 = 1073741866;
+pub const __NR_accept: u32 = 1073741867;
+pub const __NR_sendto: u32 = 1073741868;
+pub const __NR_shutdown: u32 = 1073741872;
+pub const __NR_bind: u32 = 1073741873;
+pub const __NR_listen: u32 = 1073741874;
+pub const __NR_getsockname: u32 = 1073741875;
+pub const __NR_getpeername: u32 = 1073741876;
+pub const __NR_socketpair: u32 = 1073741877;
+pub const __NR_clone: u32 = 1073741880;
+pub const __NR_fork: u32 = 1073741881;
+pub const __NR_vfork: u32 = 1073741882;
+pub const __NR_exit: u32 = 1073741884;
+pub const __NR_wait4: u32 = 1073741885;
+pub const __NR_kill: u32 = 1073741886;
+pub const __NR_uname: u32 = 1073741887;
+pub const __NR_semget: u32 = 1073741888;
+pub const __NR_semop: u32 = 1073741889;
+pub const __NR_semctl: u32 = 1073741890;
+pub const __NR_shmdt: u32 = 1073741891;
+pub const __NR_msgget: u32 = 1073741892;
+pub const __NR_msgsnd: u32 = 1073741893;
+pub const __NR_msgrcv: u32 = 1073741894;
+pub const __NR_msgctl: u32 = 1073741895;
+pub const __NR_fcntl: u32 = 1073741896;
+pub const __NR_flock: u32 = 1073741897;
+pub const __NR_fsync: u32 = 1073741898;
+pub const __NR_fdatasync: u32 = 1073741899;
+pub const __NR_truncate: u32 = 1073741900;
+pub const __NR_ftruncate: u32 = 1073741901;
+pub const __NR_getdents: u32 = 1073741902;
+pub const __NR_getcwd: u32 = 1073741903;
+pub const __NR_chdir: u32 = 1073741904;
+pub const __NR_fchdir: u32 = 1073741905;
+pub const __NR_rename: u32 = 1073741906;
+pub const __NR_mkdir: u32 = 1073741907;
+pub const __NR_rmdir: u32 = 1073741908;
+pub const __NR_creat: u32 = 1073741909;
+pub const __NR_link: u32 = 1073741910;
+pub const __NR_unlink: u32 = 1073741911;
+pub const __NR_symlink: u32 = 1073741912;
+pub const __NR_readlink: u32 = 1073741913;
+pub const __NR_chmod: u32 = 1073741914;
+pub const __NR_fchmod: u32 = 1073741915;
+pub const __NR_chown: u32 = 1073741916;
+pub const __NR_fchown: u32 = 1073741917;
+pub const __NR_lchown: u32 = 1073741918;
+pub const __NR_umask: u32 = 1073741919;
+pub const __NR_gettimeofday: u32 = 1073741920;
+pub const __NR_getrlimit: u32 = 1073741921;
+pub const __NR_getrusage: u32 = 1073741922;
+pub const __NR_sysinfo: u32 = 1073741923;
+pub const __NR_times: u32 = 1073741924;
+pub const __NR_getuid: u32 = 1073741926;
+pub const __NR_syslog: u32 = 1073741927;
+pub const __NR_getgid: u32 = 1073741928;
+pub const __NR_setuid: u32 = 1073741929;
+pub const __NR_setgid: u32 = 1073741930;
+pub const __NR_geteuid: u32 = 1073741931;
+pub const __NR_getegid: u32 = 1073741932;
+pub const __NR_setpgid: u32 = 1073741933;
+pub const __NR_getppid: u32 = 1073741934;
+pub const __NR_getpgrp: u32 = 1073741935;
+pub const __NR_setsid: u32 = 1073741936;
+pub const __NR_setreuid: u32 = 1073741937;
+pub const __NR_setregid: u32 = 1073741938;
+pub const __NR_getgroups: u32 = 1073741939;
+pub const __NR_setgroups: u32 = 1073741940;
+pub const __NR_setresuid: u32 = 1073741941;
+pub const __NR_getresuid: u32 = 1073741942;
+pub const __NR_setresgid: u32 = 1073741943;
+pub const __NR_getresgid: u32 = 1073741944;
+pub const __NR_getpgid: u32 = 1073741945;
+pub const __NR_setfsuid: u32 = 1073741946;
+pub const __NR_setfsgid: u32 = 1073741947;
+pub const __NR_getsid: u32 = 1073741948;
+pub const __NR_capget: u32 = 1073741949;
+pub const __NR_capset: u32 = 1073741950;
+pub const __NR_rt_sigsuspend: u32 = 1073741954;
+pub const __NR_utime: u32 = 1073741956;
+pub const __NR_mknod: u32 = 1073741957;
+pub const __NR_personality: u32 = 1073741959;
+pub const __NR_ustat: u32 = 1073741960;
+pub const __NR_statfs: u32 = 1073741961;
+pub const __NR_fstatfs: u32 = 1073741962;
+pub const __NR_sysfs: u32 = 1073741963;
+pub const __NR_getpriority: u32 = 1073741964;
+pub const __NR_setpriority: u32 = 1073741965;
+pub const __NR_sched_setparam: u32 = 1073741966;
+pub const __NR_sched_getparam: u32 = 1073741967;
+pub const __NR_sched_setscheduler: u32 = 1073741968;
+pub const __NR_sched_getscheduler: u32 = 1073741969;
+pub const __NR_sched_get_priority_max: u32 = 1073741970;
+pub const __NR_sched_get_priority_min: u32 = 1073741971;
+pub const __NR_sched_rr_get_interval: u32 = 1073741972;
+pub const __NR_mlock: u32 = 1073741973;
+pub const __NR_munlock: u32 = 1073741974;
+pub const __NR_mlockall: u32 = 1073741975;
+pub const __NR_munlockall: u32 = 1073741976;
+pub const __NR_vhangup: u32 = 1073741977;
+pub const __NR_modify_ldt: u32 = 1073741978;
+pub const __NR_pivot_root: u32 = 1073741979;
+pub const __NR_prctl: u32 = 1073741981;
+pub const __NR_arch_prctl: u32 = 1073741982;
+pub const __NR_adjtimex: u32 = 1073741983;
+pub const __NR_setrlimit: u32 = 1073741984;
+pub const __NR_chroot: u32 = 1073741985;
+pub const __NR_sync: u32 = 1073741986;
+pub const __NR_acct: u32 = 1073741987;
+pub const __NR_settimeofday: u32 = 1073741988;
+pub const __NR_mount: u32 = 1073741989;
+pub const __NR_umount2: u32 = 1073741990;
+pub const __NR_swapon: u32 = 1073741991;
+pub const __NR_swapoff: u32 = 1073741992;
+pub const __NR_reboot: u32 = 1073741993;
+pub const __NR_sethostname: u32 = 1073741994;
+pub const __NR_setdomainname: u32 = 1073741995;
+pub const __NR_iopl: u32 = 1073741996;
+pub const __NR_ioperm: u32 = 1073741997;
+pub const __NR_init_module: u32 = 1073741999;
+pub const __NR_delete_module: u32 = 1073742000;
+pub const __NR_quotactl: u32 = 1073742003;
+pub const __NR_getpmsg: u32 = 1073742005;
+pub const __NR_putpmsg: u32 = 1073742006;
+pub const __NR_afs_syscall: u32 = 1073742007;
+pub const __NR_tuxcall: u32 = 1073742008;
+pub const __NR_security: u32 = 1073742009;
+pub const __NR_gettid: u32 = 1073742010;
+pub const __NR_readahead: u32 = 1073742011;
+pub const __NR_setxattr: u32 = 1073742012;
+pub const __NR_lsetxattr: u32 = 1073742013;
+pub const __NR_fsetxattr: u32 = 1073742014;
+pub const __NR_getxattr: u32 = 1073742015;
+pub const __NR_lgetxattr: u32 = 1073742016;
+pub const __NR_fgetxattr: u32 = 1073742017;
+pub const __NR_listxattr: u32 = 1073742018;
+pub const __NR_llistxattr: u32 = 1073742019;
+pub const __NR_flistxattr: u32 = 1073742020;
+pub const __NR_removexattr: u32 = 1073742021;
+pub const __NR_lremovexattr: u32 = 1073742022;
+pub const __NR_fremovexattr: u32 = 1073742023;
+pub const __NR_tkill: u32 = 1073742024;
+pub const __NR_time: u32 = 1073742025;
+pub const __NR_futex: u32 = 1073742026;
+pub const __NR_sched_setaffinity: u32 = 1073742027;
+pub const __NR_sched_getaffinity: u32 = 1073742028;
+pub const __NR_io_destroy: u32 = 1073742031;
+pub const __NR_io_getevents: u32 = 1073742032;
+pub const __NR_io_cancel: u32 = 1073742034;
+pub const __NR_lookup_dcookie: u32 = 1073742036;
+pub const __NR_epoll_create: u32 = 1073742037;
+pub const __NR_remap_file_pages: u32 = 1073742040;
+pub const __NR_getdents64: u32 = 1073742041;
+pub const __NR_set_tid_address: u32 = 1073742042;
+pub const __NR_restart_syscall: u32 = 1073742043;
+pub const __NR_semtimedop: u32 = 1073742044;
+pub const __NR_fadvise64: u32 = 1073742045;
+pub const __NR_timer_settime: u32 = 1073742047;
+pub const __NR_timer_gettime: u32 = 1073742048;
+pub const __NR_timer_getoverrun: u32 = 1073742049;
+pub const __NR_timer_delete: u32 = 1073742050;
+pub const __NR_clock_settime: u32 = 1073742051;
+pub const __NR_clock_gettime: u32 = 1073742052;
+pub const __NR_clock_getres: u32 = 1073742053;
+pub const __NR_clock_nanosleep: u32 = 1073742054;
+pub const __NR_exit_group: u32 = 1073742055;
+pub const __NR_epoll_wait: u32 = 1073742056;
+pub const __NR_epoll_ctl: u32 = 1073742057;
+pub const __NR_tgkill: u32 = 1073742058;
+pub const __NR_utimes: u32 = 1073742059;
+pub const __NR_mbind: u32 = 1073742061;
+pub const __NR_set_mempolicy: u32 = 1073742062;
+pub const __NR_get_mempolicy: u32 = 1073742063;
+pub const __NR_mq_open: u32 = 1073742064;
+pub const __NR_mq_unlink: u32 = 1073742065;
+pub const __NR_mq_timedsend: u32 = 1073742066;
+pub const __NR_mq_timedreceive: u32 = 1073742067;
+pub const __NR_mq_getsetattr: u32 = 1073742069;
+pub const __NR_add_key: u32 = 1073742072;
+pub const __NR_request_key: u32 = 1073742073;
+pub const __NR_keyctl: u32 = 1073742074;
+pub const __NR_ioprio_set: u32 = 1073742075;
+pub const __NR_ioprio_get: u32 = 1073742076;
+pub const __NR_inotify_init: u32 = 1073742077;
+pub const __NR_inotify_add_watch: u32 = 1073742078;
+pub const __NR_inotify_rm_watch: u32 = 1073742079;
+pub const __NR_migrate_pages: u32 = 1073742080;
+pub const __NR_openat: u32 = 1073742081;
+pub const __NR_mkdirat: u32 = 1073742082;
+pub const __NR_mknodat: u32 = 1073742083;
+pub const __NR_fchownat: u32 = 1073742084;
+pub const __NR_futimesat: u32 = 1073742085;
+pub const __NR_newfstatat: u32 = 1073742086;
+pub const __NR_unlinkat: u32 = 1073742087;
+pub const __NR_renameat: u32 = 1073742088;
+pub const __NR_linkat: u32 = 1073742089;
+pub const __NR_symlinkat: u32 = 1073742090;
+pub const __NR_readlinkat: u32 = 1073742091;
+pub const __NR_fchmodat: u32 = 1073742092;
+pub const __NR_faccessat: u32 = 1073742093;
+pub const __NR_pselect6: u32 = 1073742094;
+pub const __NR_ppoll: u32 = 1073742095;
+pub const __NR_unshare: u32 = 1073742096;
+pub const __NR_splice: u32 = 1073742099;
+pub const __NR_tee: u32 = 1073742100;
+pub const __NR_sync_file_range: u32 = 1073742101;
+pub const __NR_utimensat: u32 = 1073742104;
+pub const __NR_epoll_pwait: u32 = 1073742105;
+pub const __NR_signalfd: u32 = 1073742106;
+pub const __NR_timerfd_create: u32 = 1073742107;
+pub const __NR_eventfd: u32 = 1073742108;
+pub const __NR_fallocate: u32 = 1073742109;
+pub const __NR_timerfd_settime: u32 = 1073742110;
+pub const __NR_timerfd_gettime: u32 = 1073742111;
+pub const __NR_accept4: u32 = 1073742112;
+pub const __NR_signalfd4: u32 = 1073742113;
+pub const __NR_eventfd2: u32 = 1073742114;
+pub const __NR_epoll_create1: u32 = 1073742115;
+pub const __NR_dup3: u32 = 1073742116;
+pub const __NR_pipe2: u32 = 1073742117;
+pub const __NR_inotify_init1: u32 = 1073742118;
+pub const __NR_perf_event_open: u32 = 1073742122;
+pub const __NR_fanotify_init: u32 = 1073742124;
+pub const __NR_fanotify_mark: u32 = 1073742125;
+pub const __NR_prlimit64: u32 = 1073742126;
+pub const __NR_name_to_handle_at: u32 = 1073742127;
+pub const __NR_open_by_handle_at: u32 = 1073742128;
+pub const __NR_clock_adjtime: u32 = 1073742129;
+pub const __NR_syncfs: u32 = 1073742130;
+pub const __NR_setns: u32 = 1073742132;
+pub const __NR_getcpu: u32 = 1073742133;
+pub const __NR_kcmp: u32 = 1073742136;
+pub const __NR_finit_module: u32 = 1073742137;
+pub const __NR_sched_setattr: u32 = 1073742138;
+pub const __NR_sched_getattr: u32 = 1073742139;
+pub const __NR_renameat2: u32 = 1073742140;
+pub const __NR_seccomp: u32 = 1073742141;
+pub const __NR_getrandom: u32 = 1073742142;
+pub const __NR_memfd_create: u32 = 1073742143;
+pub const __NR_kexec_file_load: u32 = 1073742144;
+pub const __NR_bpf: u32 = 1073742145;
+pub const __NR_userfaultfd: u32 = 1073742147;
+pub const __NR_membarrier: u32 = 1073742148;
+pub const __NR_mlock2: u32 = 1073742149;
+pub const __NR_copy_file_range: u32 = 1073742150;
+pub const __NR_pkey_mprotect: u32 = 1073742153;
+pub const __NR_pkey_alloc: u32 = 1073742154;
+pub const __NR_pkey_free: u32 = 1073742155;
+pub const __NR_statx: u32 = 1073742156;
+pub const __NR_io_pgetevents: u32 = 1073742157;
+pub const __NR_rseq: u32 = 1073742158;
+pub const __NR_uretprobe: u32 = 1073742159;
+pub const __NR_pidfd_send_signal: u32 = 1073742248;
+pub const __NR_io_uring_setup: u32 = 1073742249;
+pub const __NR_io_uring_enter: u32 = 1073742250;
+pub const __NR_io_uring_register: u32 = 1073742251;
+pub const __NR_open_tree: u32 = 1073742252;
+pub const __NR_move_mount: u32 = 1073742253;
+pub const __NR_fsopen: u32 = 1073742254;
+pub const __NR_fsconfig: u32 = 1073742255;
+pub const __NR_fsmount: u32 = 1073742256;
+pub const __NR_fspick: u32 = 1073742257;
+pub const __NR_pidfd_open: u32 = 1073742258;
+pub const __NR_clone3: u32 = 1073742259;
+pub const __NR_close_range: u32 = 1073742260;
+pub const __NR_openat2: u32 = 1073742261;
+pub const __NR_pidfd_getfd: u32 = 1073742262;
+pub const __NR_faccessat2: u32 = 1073742263;
+pub const __NR_process_madvise: u32 = 1073742264;
+pub const __NR_epoll_pwait2: u32 = 1073742265;
+pub const __NR_mount_setattr: u32 = 1073742266;
+pub const __NR_quotactl_fd: u32 = 1073742267;
+pub const __NR_landlock_create_ruleset: u32 = 1073742268;
+pub const __NR_landlock_add_rule: u32 = 1073742269;
+pub const __NR_landlock_restrict_self: u32 = 1073742270;
+pub const __NR_memfd_secret: u32 = 1073742271;
+pub const __NR_process_mrelease: u32 = 1073742272;
+pub const __NR_futex_waitv: u32 = 1073742273;
+pub const __NR_set_mempolicy_home_node: u32 = 1073742274;
+pub const __NR_cachestat: u32 = 1073742275;
+pub const __NR_fchmodat2: u32 = 1073742276;
+pub const __NR_map_shadow_stack: u32 = 1073742277;
+pub const __NR_futex_wake: u32 = 1073742278;
+pub const __NR_futex_wait: u32 = 1073742279;
+pub const __NR_futex_requeue: u32 = 1073742280;
+pub const __NR_statmount: u32 = 1073742281;
+pub const __NR_listmount: u32 = 1073742282;
+pub const __NR_lsm_get_self_attr: u32 = 1073742283;
+pub const __NR_lsm_set_self_attr: u32 = 1073742284;
+pub const __NR_lsm_list_modules: u32 = 1073742285;
+pub const __NR_mseal: u32 = 1073742286;
+pub const __NR_setxattrat: u32 = 1073742287;
+pub const __NR_getxattrat: u32 = 1073742288;
+pub const __NR_listxattrat: u32 = 1073742289;
+pub const __NR_removexattrat: u32 = 1073742290;
+pub const __NR_rt_sigaction: u32 = 1073742336;
+pub const __NR_rt_sigreturn: u32 = 1073742337;
+pub const __NR_ioctl: u32 = 1073742338;
+pub const __NR_readv: u32 = 1073742339;
+pub const __NR_writev: u32 = 1073742340;
+pub const __NR_recvfrom: u32 = 1073742341;
+pub const __NR_sendmsg: u32 = 1073742342;
+pub const __NR_recvmsg: u32 = 1073742343;
+pub const __NR_execve: u32 = 1073742344;
+pub const __NR_ptrace: u32 = 1073742345;
+pub const __NR_rt_sigpending: u32 = 1073742346;
+pub const __NR_rt_sigtimedwait: u32 = 1073742347;
+pub const __NR_rt_sigqueueinfo: u32 = 1073742348;
+pub const __NR_sigaltstack: u32 = 1073742349;
+pub const __NR_timer_create: u32 = 1073742350;
+pub const __NR_mq_notify: u32 = 1073742351;
+pub const __NR_kexec_load: u32 = 1073742352;
+pub const __NR_waitid: u32 = 1073742353;
+pub const __NR_set_robust_list: u32 = 1073742354;
+pub const __NR_get_robust_list: u32 = 1073742355;
+pub const __NR_vmsplice: u32 = 1073742356;
+pub const __NR_move_pages: u32 = 1073742357;
+pub const __NR_preadv: u32 = 1073742358;
+pub const __NR_pwritev: u32 = 1073742359;
+pub const __NR_rt_tgsigqueueinfo: u32 = 1073742360;
+pub const __NR_recvmmsg: u32 = 1073742361;
+pub const __NR_sendmmsg: u32 = 1073742362;
+pub const __NR_process_vm_readv: u32 = 1073742363;
+pub const __NR_process_vm_writev: u32 = 1073742364;
+pub const __NR_setsockopt: u32 = 1073742365;
+pub const __NR_getsockopt: u32 = 1073742366;
+pub const __NR_io_setup: u32 = 1073742367;
+pub const __NR_io_submit: u32 = 1073742368;
+pub const __NR_execveat: u32 = 1073742369;
+pub const __NR_preadv2: u32 = 1073742370;
+pub const __NR_pwritev2: u32 = 1073742371;
+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 = 2048;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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 = 2048;
+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 = 526336;
+pub const TFD_CREATE_FLAGS: u32 = 526336;
+pub const TFD_SETTIME_FLAGS: u32 = 1;
+pub const ARCH_SET_FS: u32 = 4098;
+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 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;
+pub const _NSIG: u32 = 64;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[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; 13usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 6usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn lm(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_lm(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(7usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn lm_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 7usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_lm_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 7usize, 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, lm: 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.set(7usize, 1u8, {
+let lm: u32 = unsafe { ::core::mem::transmute(lm) };
+lm as u64
+});
+__bindgen_bitfield_unit
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x32/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/x32/if_arp.rs
new file mode 100644
index 0000000..a94b932
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/if_arp.rs
@@ -0,0 +1,2757 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 id: __u16,
+pub type_flags: __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 __BITS_PER_LONG_LONG: u32 = 64;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/x32/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/x32/if_ether.rs
new file mode 100644
index 0000000..c984e0e
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/if_ether.rs
@@ -0,0 +1,170 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/x32/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/x32/if_packet.rs
new file mode 100644
index 0000000..a345d2f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/if_packet.rs
@@ -0,0 +1,311 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 id: __u16,
+pub type_flags: __u16,
+pub max_num_members: __u32,
+}
+pub const __LITTLE_ENDIAN: u32 = 1234;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/x32/image.rs b/vendor/linux-raw-sys-0.9.4/src/x32/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/x32/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/x32/io_uring.rs
new file mode 100644
index 0000000..933f4c0
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/io_uring.rs
@@ -0,0 +1,1336 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x32/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/x32/ioctl.rs
new file mode 100644
index 0000000..63131c9
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/ioctl.rs
@@ -0,0 +1,1502 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub const FIONREAD: u32 = 21531;
+pub const FIONBIO: u32 = 21537;
+pub const FIOCLEX: u32 = 21585;
+pub const FIONCLEX: u32 = 21584;
+pub const FIOASYNC: u32 = 21586;
+pub const FIOQSIZE: u32 = 21600;
+pub const TCXONC: u32 = 21514;
+pub const TCFLSH: u32 = 21515;
+pub const TIOCSCTTY: u32 = 21518;
+pub const TIOCSPGRP: u32 = 21520;
+pub const TIOCOUTQ: u32 = 21521;
+pub const TIOCSTI: u32 = 21522;
+pub const TIOCSWINSZ: u32 = 21524;
+pub const TIOCMGET: u32 = 21525;
+pub const TIOCMBIS: u32 = 21526;
+pub const TIOCMBIC: u32 = 21527;
+pub const TIOCMSET: u32 = 21528;
+pub const TIOCSSOFTCAR: u32 = 21530;
+pub const TIOCLINUX: u32 = 21532;
+pub const TIOCCONS: u32 = 21533;
+pub const TIOCSSERIAL: u32 = 21535;
+pub const TIOCPKT: u32 = 21536;
+pub const TIOCNOTTY: u32 = 21538;
+pub const TIOCSETD: u32 = 21539;
+pub const TIOCSBRK: u32 = 21543;
+pub const TIOCCBRK: u32 = 21544;
+pub const TIOCSRS485: u32 = 21551;
+pub const TIOCSPTLCK: u32 = 1074025521;
+pub const TIOCSIG: u32 = 1074025526;
+pub const TIOCVHANGUP: u32 = 21559;
+pub const TIOCSERCONFIG: u32 = 21587;
+pub const TIOCSERGWILD: u32 = 21588;
+pub const TIOCSERSWILD: u32 = 21589;
+pub const TIOCSLCKTRMIOS: u32 = 21591;
+pub const TIOCSERGSTRUCT: u32 = 21592;
+pub const TIOCSERGETLSR: u32 = 21593;
+pub const TIOCSERGETMULTI: u32 = 21594;
+pub const TIOCSERSETMULTI: u32 = 21595;
+pub const TIOCMIWAIT: u32 = 21596;
+pub const TCGETS: u32 = 21505;
+pub const TCGETA: u32 = 21509;
+pub const TCSBRK: u32 = 21513;
+pub const TCSBRKP: u32 = 21541;
+pub const TCSETA: u32 = 21510;
+pub const TCSETAF: u32 = 21512;
+pub const TCSETAW: u32 = 21511;
+pub const TIOCEXCL: u32 = 21516;
+pub const TIOCNXCL: u32 = 21517;
+pub const TIOCGDEV: u32 = 2147767346;
+pub const TIOCGEXCL: u32 = 2147767360;
+pub const TIOCGICOUNT: u32 = 21597;
+pub const TIOCGLCKTRMIOS: u32 = 21590;
+pub const TIOCGPGRP: u32 = 21519;
+pub const TIOCGPKT: u32 = 2147767352;
+pub const TIOCGPTLCK: u32 = 2147767353;
+pub const TIOCGPTN: u32 = 2147767344;
+pub const TIOCGPTPEER: u32 = 21569;
+pub const TIOCGRS485: u32 = 21550;
+pub const TIOCGSERIAL: u32 = 21534;
+pub const TIOCGSID: u32 = 21545;
+pub const TIOCGSOFTCAR: u32 = 21529;
+pub const TIOCGWINSZ: u32 = 21523;
+pub const TCGETS2: u32 = 2150388778;
+pub const TCGETX: u32 = 21554;
+pub const TCSETS: u32 = 21506;
+pub const TCSETS2: u32 = 1076646955;
+pub const TCSETSF: u32 = 21508;
+pub const TCSETSF2: u32 = 1076646957;
+pub const TCSETSW: u32 = 21507;
+pub const TCSETSW2: u32 = 1076646956;
+pub const TCSETX: u32 = 21555;
+pub const TCSETXF: u32 = 21556;
+pub const TCSETXW: u32 = 21557;
+pub const TIOCGETD: u32 = 21540;
+pub const MTIOCGET: u32 = 2150657282;
+pub const BLKSSZGET: u32 = 4712;
+pub const BLKPBSZGET: u32 = 4731;
+pub const BLKROSET: u32 = 4701;
+pub const BLKROGET: u32 = 4702;
+pub const BLKRRPART: u32 = 4703;
+pub const BLKGETSIZE: u32 = 4704;
+pub const BLKFLSBUF: u32 = 4705;
+pub const BLKRASET: u32 = 4706;
+pub const BLKRAGET: u32 = 4707;
+pub const BLKFRASET: u32 = 4708;
+pub const BLKFRAGET: u32 = 4709;
+pub const BLKSECTSET: u32 = 4710;
+pub const BLKSECTGET: u32 = 4711;
+pub const BLKPG: u32 = 4713;
+pub const BLKBSZGET: u32 = 2148012656;
+pub const BLKBSZSET: u32 = 1074270833;
+pub const BLKGETSIZE64: u32 = 2148012658;
+pub const BLKTRACESETUP: u32 = 3225948787;
+pub const BLKTRACESTART: u32 = 4724;
+pub const BLKTRACESTOP: u32 = 4725;
+pub const BLKTRACETEARDOWN: u32 = 4726;
+pub const BLKDISCARD: u32 = 4727;
+pub const BLKIOMIN: u32 = 4728;
+pub const BLKIOOPT: u32 = 4729;
+pub const BLKALIGNOFF: u32 = 4730;
+pub const BLKDISCARDZEROES: u32 = 4732;
+pub const BLKSECDISCARD: u32 = 4733;
+pub const BLKROTATIONAL: u32 = 4734;
+pub const BLKZEROOUT: u32 = 4735;
+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 = 2148575745;
+pub const UFFDIO_WAKE: u32 = 2148575746;
+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 = 46849;
+pub const NS_GET_PARENT: u32 = 46850;
+pub const NS_GET_NSTYPE: u32 = 46851;
+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 = 35073;
+pub const SIOCSPGRP: u32 = 35074;
+pub const FIOGETOWN: u32 = 35075;
+pub const SIOCGPGRP: u32 = 35076;
+pub const SIOCATMARK: u32 = 35077;
+pub const SIOCGSTAMP: u32 = 35078;
+pub const TIOCINQ: u32 = 21531;
+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 = 1;
+pub const FIGETBSZ: u32 = 2;
+pub const FIFREEZE: u32 = 3221510263;
+pub const FITHAW: u32 = 3221510264;
+pub const FITRIM: u32 = 3222820985;
+pub const FICLONE: u32 = 1074041865;
+pub const FICLONERANGE: u32 = 1075876877;
+pub const FIDEDUPERANGE: u32 = 3222836278;
+pub const FS_IOC_GETFLAGS: u32 = 2148034049;
+pub const FS_IOC_SETFLAGS: u32 = 1074292226;
+pub const FS_IOC_GETVERSION: u32 = 2148038145;
+pub const FS_IOC_SETVERSION: u32 = 1074296322;
+pub const FS_IOC_FIEMAP: u32 = 3223348747;
+pub const FS_IOC32_GETFLAGS: u32 = 2147771905;
+pub const FS_IOC32_SETFLAGS: u32 = 1074030082;
+pub const FS_IOC32_GETVERSION: u32 = 2147776001;
+pub const FS_IOC32_SETVERSION: u32 = 1074034178;
+pub const FS_IOC_FSGETXATTR: u32 = 2149341215;
+pub const FS_IOC_FSSETXATTR: u32 = 1075599392;
+pub const FS_IOC_GETFSLABEL: u32 = 2164298801;
+pub const FS_IOC_SETFSLABEL: u32 = 1090556978;
+pub const EXT4_IOC_GETVERSION: u32 = 2148034051;
+pub const EXT4_IOC_SETVERSION: u32 = 1074292228;
+pub const EXT4_IOC_GETVERSION_OLD: u32 = 2148038145;
+pub const EXT4_IOC_SETVERSION_OLD: u32 = 1074296322;
+pub const EXT4_IOC_GETRSVSZ: u32 = 2148034053;
+pub const EXT4_IOC_SETRSVSZ: u32 = 1074292230;
+pub const EXT4_IOC_GROUP_EXTEND: u32 = 1074292231;
+pub const EXT4_IOC_MIGRATE: u32 = 26121;
+pub const EXT4_IOC_ALLOC_DA_BLKS: u32 = 26124;
+pub const EXT4_IOC_RESIZE_FS: u32 = 1074292240;
+pub const EXT4_IOC_SWAP_BOOT: u32 = 26129;
+pub const EXT4_IOC_PRECACHE_EXTENTS: u32 = 26130;
+pub const EXT4_IOC_CLEAR_ES_CACHE: u32 = 26152;
+pub const EXT4_IOC_GETSTATE: u32 = 1074030121;
+pub const EXT4_IOC_GET_ES_CACHE: u32 = 3223348778;
+pub const EXT4_IOC_CHECKPOINT: u32 = 1074030123;
+pub const EXT4_IOC_SHUTDOWN: u32 = 2147768445;
+pub const EXT4_IOC32_GETVERSION: u32 = 2147771907;
+pub const EXT4_IOC32_SETVERSION: u32 = 1074030084;
+pub const EXT4_IOC32_GETRSVSZ: u32 = 2147771909;
+pub const EXT4_IOC32_SETRSVSZ: u32 = 1074030086;
+pub const EXT4_IOC32_GROUP_EXTEND: u32 = 1074030087;
+pub const EXT4_IOC32_GETVERSION_OLD: u32 = 2147776001;
+pub const EXT4_IOC32_SETVERSION_OLD: u32 = 1074034178;
+pub const VIDIOC_SUBDEV_QUERYSTD: u32 = 2148030015;
+pub const AUTOFS_DEV_IOCTL_CLOSEMOUNT: u32 = 3222836085;
+pub const LIRC_SET_SEND_CARRIER: u32 = 1074030867;
+pub const AUTOFS_IOC_PROTOSUBVER: u32 = 2147783527;
+pub const PTP_SYS_OFFSET_PRECISE: u32 = 3225435400;
+pub const FSI_SCOM_WRITE: u32 = 3223352066;
+pub const ATM_GETCIRANGE: u32 = 1074815370;
+pub const DMA_BUF_SET_NAME_B: u32 = 1074291201;
+pub const RIO_CM_EP_GET_LIST_SIZE: u32 = 3221512961;
+pub const TUNSETPERSIST: u32 = 1074025675;
+pub const FS_IOC_GET_ENCRYPTION_POLICY: u32 = 1074554389;
+pub const CEC_RECEIVE: u32 = 3224920326;
+pub const MGSL_IOCGPARAMS: u32 = 2150657281;
+pub const ENI_SETMULT: u32 = 1074815335;
+pub const RIO_GET_EVENT_MASK: u32 = 2147773710;
+pub const LIRC_GET_MAX_TIMEOUT: u32 = 2147772681;
+pub const USBDEVFS_CLAIMINTERFACE: u32 = 2147767567;
+pub const CHIOMOVE: u32 = 1075077889;
+pub const SONYPI_IOCGBATFLAGS: u32 = 2147579399;
+pub const BTRFS_IOC_SYNC: u32 = 37896;
+pub const VIDIOC_TRY_FMT: u32 = 3234879040;
+pub const LIRC_SET_REC_MODE: u32 = 1074030866;
+pub const VIDIOC_DQEVENT: u32 = 2156418649;
+pub const RPMSG_DESTROY_EPT_IOCTL: u32 = 46338;
+pub const UVCIOC_CTRL_MAP: u32 = 3227546912;
+pub const VHOST_SET_BACKEND_FEATURES: u32 = 1074310949;
+pub const VHOST_VSOCK_SET_GUEST_CID: u32 = 1074311008;
+pub const UI_SET_KEYBIT: u32 = 1074025829;
+pub const LIRC_SET_REC_TIMEOUT: u32 = 1074030872;
+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 = 1074310930;
+pub const RIO_ENABLE_DOORBELL_RANGE: u32 = 1074294025;
+pub const VIDIOC_TRY_EXT_CTRLS: u32 = 3223344713;
+pub const LIRC_GET_REC_MODE: u32 = 2147772674;
+pub const PPGETTIME: u32 = 2148561045;
+pub const BTRFS_IOC_RM_DEV: u32 = 1342215179;
+pub const ATM_SETBACKEND: u32 = 1073897970;
+pub const FSL_HV_IOCTL_PARTITION_START: u32 = 3222318851;
+pub const FBIO_WAITEVENT: u32 = 18056;
+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 = 601;
+pub const NVME_IOCTL_SUBMIT_IO: u32 = 1076907586;
+pub const NILFS_IOCTL_SYNC: u32 = 2148036234;
+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 = 2147787781;
+pub const NS_GETPSTAT: u32 = 3222298977;
+pub const UI_SET_PROPBIT: u32 = 1074025838;
+pub const TUNSETFILTEREBPF: u32 = 2147767521;
+pub const RIO_MPORT_MAINT_COMPTAG_SET: u32 = 1074031874;
+pub const AUTOFS_DEV_IOCTL_VERSION: u32 = 3222836081;
+pub const WDIOC_SETOPTIONS: u32 = 2147768068;
+pub const VHOST_SCSI_SET_ENDPOINT: u32 = 1088991040;
+pub const MGSL_IOCGTXIDLE: u32 = 27907;
+pub const ATM_ADDLECSADDR: u32 = 1074815374;
+pub const FSL_HV_IOCTL_GETPROP: u32 = 3223891719;
+pub const FDGETPRM: u32 = 2149581316;
+pub const HIDIOCAPPLICATION: u32 = 18434;
+pub const ENI_MEMDUMP: u32 = 1074815328;
+pub const PTP_SYS_OFFSET2: u32 = 1128283406;
+pub const VIDIOC_SUBDEV_G_DV_TIMINGS: u32 = 3229898328;
+pub const DMA_BUF_SET_NAME_A: u32 = 1074029057;
+pub const PTP_PIN_GETFUNC: u32 = 3227532550;
+pub const PTP_SYS_OFFSET_EXTENDED: u32 = 3300932873;
+pub const DFL_FPGA_PORT_UINT_SET_IRQ: u32 = 1074312776;
+pub const RTC_EPOCH_READ: u32 = 2148036621;
+pub const VIDIOC_SUBDEV_S_SELECTION: u32 = 3225441854;
+pub const VIDIOC_QUERY_EXT_CTRL: u32 = 3236451943;
+pub const ATM_GETLECSADDR: u32 = 1074815376;
+pub const FSL_HV_IOCTL_PARTITION_STOP: u32 = 3221794564;
+pub const SONET_GETDIAG: u32 = 2147770644;
+pub const ATMMPC_DATA: u32 = 25049;
+pub const IPMICTL_UNREGISTER_FOR_CMD_CHANS: u32 = 2148296989;
+pub const HIDIOCGCOLLECTIONINDEX: u32 = 1075333136;
+pub const RPMSG_CREATE_EPT_IOCTL: u32 = 1076409601;
+pub const GPIOHANDLE_GET_LINE_VALUES_IOCTL: u32 = 3225465864;
+pub const UI_DEV_SETUP: u32 = 1079792899;
+pub const ISST_IF_IO_CMD: u32 = 1074331138;
+pub const RIO_MPORT_MAINT_READ_REMOTE: u32 = 2149084423;
+pub const VIDIOC_OMAP3ISP_HIST_CFG: u32 = 3224393412;
+pub const BLKGETNRZONES: u32 = 2147750533;
+pub const VIDIOC_G_MODULATOR: u32 = 3225703990;
+pub const VBG_IOCTL_WRITE_CORE_DUMP: u32 = 3223082515;
+pub const USBDEVFS_SETINTERFACE: u32 = 2148029700;
+pub const PPPIOCGCHAN: u32 = 2147775543;
+pub const EVIOCGVERSION: u32 = 2147763457;
+pub const VHOST_NET_SET_BACKEND: u32 = 1074310960;
+pub const USBDEVFS_REAPURBNDELAY: u32 = 1074287885;
+pub const RNDZAPENTCNT: u32 = 20996;
+pub const VIDIOC_G_PARM: u32 = 3234616853;
+pub const TUNGETDEVNETNS: u32 = 21731;
+pub const LIRC_SET_MEASURE_CARRIER_MODE: u32 = 1074030877;
+pub const VHOST_SET_VRING_ERR: u32 = 1074310946;
+pub const VDUSE_VQ_SETUP: u32 = 1075872020;
+pub const AUTOFS_IOC_SETTIMEOUT: u32 = 3221787492;
+pub const VIDIOC_S_FREQUENCY: u32 = 1076647481;
+pub const F2FS_IOC_SEC_TRIM_FILE: u32 = 1075377428;
+pub const FS_IOC_REMOVE_ENCRYPTION_KEY: u32 = 3225445912;
+pub const WDIOC_GETPRETIMEOUT: u32 = 2147768073;
+pub const USBDEVFS_DROP_PRIVILEGES: u32 = 1074025758;
+pub const BTRFS_IOC_SNAP_CREATE_V2: u32 = 1342215191;
+pub const VHOST_VSOCK_SET_RUNNING: u32 = 1074048865;
+pub const STP_SET_OPTIONS: u32 = 1074275586;
+pub const FBIO_RADEON_GET_MIRROR: u32 = 2148024323;
+pub const IVTVFB_IOC_DMA_FRAME: u32 = 1075336896;
+pub const IPMICTL_SEND_COMMAND: u32 = 2150131981;
+pub const VIDIOC_G_ENC_INDEX: u32 = 2283296332;
+pub const DFL_FPGA_FME_PORT_PR: u32 = 46720;
+pub const CHIOSVOLTAG: u32 = 1076912914;
+pub const ATM_SETESIF: u32 = 1074815373;
+pub const FW_CDEV_IOC_SEND_RESPONSE: u32 = 1075323652;
+pub const PMU_IOC_GET_MODEL: u32 = 2148024835;
+pub const JSIOCGBTNMAP: u32 = 2214619700;
+pub const USBDEVFS_HUB_PORTINFO: u32 = 2155894035;
+pub const VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS: u32 = 3222820363;
+pub const FDCLRPRM: u32 = 577;
+pub const BTRFS_IOC_SCRUB: u32 = 3288372251;
+pub const USBDEVFS_DISCONNECT: u32 = 21782;
+pub const TUNSETVNETBE: u32 = 1074025694;
+pub const ATMTCP_REMOVE: u32 = 24975;
+pub const VHOST_VDPA_GET_CONFIG: u32 = 2148052851;
+pub const PPPIOCGNPMODE: u32 = 3221779532;
+pub const FDGETDRVPRM: u32 = 2155872785;
+pub const TUNSETVNETLE: u32 = 1074025692;
+pub const PHN_SETREG: u32 = 1074294790;
+pub const PPPIOCDETACH: u32 = 1074033724;
+pub const MMTIMER_GETRES: u32 = 2148035841;
+pub const VIDIOC_SUBDEV_ENUMSTD: u32 = 3225966105;
+pub const PPGETFLAGS: u32 = 2147774618;
+pub const VDUSE_DEV_GET_FEATURES: u32 = 2148040977;
+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 = 2148052512;
+pub const MEDIA_IOC_ENUM_LINKS: u32 = 3223878658;
+pub const F2FS_IOC_PRECACHE_EXTENTS: u32 = 62735;
+pub const DFL_FPGA_PORT_DMA_MAP: u32 = 46659;
+pub const MGSL_IOCGXCTRL: u32 = 27926;
+pub const FW_CDEV_IOC_SEND_REQUEST: u32 = 1076372225;
+pub const SONYPI_IOCGBLUE: u32 = 2147579400;
+pub const F2FS_IOC_DECOMPRESS_FILE: u32 = 62743;
+pub const I2OHTML: u32 = 3224398089;
+pub const VFIO_GET_API_VERSION: u32 = 15204;
+pub const IDT77105_GETSTATZ: u32 = 1074815283;
+pub const I2OPARMSET: u32 = 3223873795;
+pub const TEE_IOC_CANCEL: u32 = 2148049924;
+pub const PTP_SYS_OFFSET_PRECISE2: u32 = 3225435409;
+pub const DFL_FPGA_PORT_RESET: u32 = 46656;
+pub const PPPIOCGASYNCMAP: u32 = 2147775576;
+pub const EVIOCGKEYCODE_V2: u32 = 2150122756;
+pub const DM_DEV_SET_GEOMETRY: u32 = 3241737487;
+pub const HIDIOCSUSAGE: u32 = 1075333132;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323664;
+pub const PTP_EXTTS_REQUEST: u32 = 1074806018;
+pub const SWITCHTEC_IOCTL_EVENT_CTL: u32 = 3223869251;
+pub const WDIOC_SETPRETIMEOUT: u32 = 3221509896;
+pub const VHOST_SCSI_CLEAR_ENDPOINT: u32 = 1088991041;
+pub const JSIOCGAXES: u32 = 2147576337;
+pub const HIDIOCSFLAG: u32 = 1074022415;
+pub const PTP_PEROUT_REQUEST2: u32 = 1077427468;
+pub const PPWDATA: u32 = 1073836166;
+pub const PTP_CLOCK_GETCAPS: u32 = 2152742145;
+pub const FDGETMAXERRS: u32 = 2148794894;
+pub const TUNSETQUEUE: u32 = 1074025689;
+pub const PTP_ENABLE_PPS: u32 = 1074019588;
+pub const SIOCSIFATMTCP: u32 = 24960;
+pub const CEC_ADAP_G_LOG_ADDRS: u32 = 2153537795;
+pub const ND_IOCTL_ARS_CAP: u32 = 3223342593;
+pub const NBD_SET_BLKSIZE: u32 = 43777;
+pub const NBD_SET_TIMEOUT: u32 = 43785;
+pub const VHOST_SCSI_GET_ABI_VERSION: u32 = 1074048834;
+pub const RIO_UNMAP_INBOUND: u32 = 1074294034;
+pub const ATM_QUERYLOOP: u32 = 1074815316;
+pub const DFL_FPGA_GET_API_VERSION: u32 = 46592;
+pub const USBDEVFS_WAIT_FOR_RESUME: u32 = 21795;
+pub const FBIO_CURSOR: u32 = 3228059144;
+pub const RNDCLEARPOOL: u32 = 20998;
+pub const VIDIOC_QUERYSTD: u32 = 2148030015;
+pub const DMA_BUF_IOCTL_SYNC: u32 = 1074291200;
+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 = 2150651402;
+pub const PTP_ENABLE_PPS2: u32 = 1074019597;
+pub const PCITEST_CLEAR_IRQ: u32 = 20496;
+pub const IPMICTL_SET_GETS_EVENTS_CMD: u32 = 2147772688;
+pub const BTRFS_IOC_DEVICES_READY: u32 = 2415957031;
+pub const JSIOCGAXMAP: u32 = 2151705138;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER: u32 = 2148541196;
+pub const FW_CDEV_IOC_SET_ISO_CHANNELS: u32 = 1074799383;
+pub const RTC_WIE_OFF: u32 = 28688;
+pub const PPGETMODE: u32 = 2147774616;
+pub const VIDIOC_DBG_G_REGISTER: u32 = 3224917584;
+pub const PTP_SYS_OFFSET: u32 = 1128283397;
+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 = 37894;
+pub const INOTIFY_IOC_SETNEXTWD: u32 = 1074022656;
+pub const SNAPSHOT_GET_IMAGE_SIZE: u32 = 2148021006;
+pub const TUNDETACHFILTER: u32 = 1074812118;
+pub const ND_IOCTL_CLEAR_ERROR: u32 = 3223342596;
+pub const IOC_PR_CLEAR: u32 = 1074819277;
+pub const SCIF_READFROM: u32 = 3223876362;
+pub const PPPIOCGDEBUG: u32 = 2147775553;
+pub const BLKGETZONESZ: u32 = 2147750532;
+pub const HIDIOCGUSAGES: u32 = 3491514387;
+pub const SONYPI_IOCGTEMP: u32 = 2147579404;
+pub const UI_SET_MSCBIT: u32 = 1074025832;
+pub const APM_IOC_SUSPEND: u32 = 16642;
+pub const BTRFS_IOC_TREE_SEARCH: u32 = 3489698833;
+pub const RTC_PLL_GET: u32 = 2149609489;
+pub const RIO_CM_EP_GET_LIST: u32 = 3221512962;
+pub const USBDEVFS_DISCSIGNAL: u32 = 2148553998;
+pub const LIRC_GET_MIN_TIMEOUT: u32 = 2147772680;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY: u32 = 2174244674;
+pub const DM_TARGET_MSG: u32 = 3241737486;
+pub const SONYPI_IOCGBAT1REM: u32 = 2147644931;
+pub const EVIOCSFF: u32 = 1076905344;
+pub const TUNSETGROUP: u32 = 1074025678;
+pub const EVIOCGKEYCODE: u32 = 2148025604;
+pub const KCOV_REMOTE_ENABLE: u32 = 1075340134;
+pub const ND_IOCTL_GET_CONFIG_SIZE: u32 = 3222031876;
+pub const FDEJECT: u32 = 602;
+pub const TUNSETOFFLOAD: u32 = 1074025680;
+pub const PPPIOCCONNECT: u32 = 1074033722;
+pub const ATM_ADDADDR: u32 = 1074815368;
+pub const VDUSE_DEV_INJECT_CONFIG_IRQ: u32 = 33043;
+pub const AUTOFS_DEV_IOCTL_ASKUMOUNT: u32 = 3222836093;
+pub const VHOST_VDPA_GET_STATUS: u32 = 2147594097;
+pub const CCISS_PASSTHRU: u32 = 3227009547;
+pub const MGSL_IOCCLRMODCOUNT: u32 = 27919;
+pub const TEE_IOC_SUPPL_SEND: u32 = 2148574215;
+pub const ATMARPD_CTRL: u32 = 25057;
+pub const UI_ABS_SETUP: u32 = 1075598596;
+pub const UI_DEV_DESTROY: u32 = 21762;
+pub const BTRFS_IOC_QUOTA_CTL: u32 = 3222311976;
+pub const RTC_AIE_ON: u32 = 28673;
+pub const AUTOFS_IOC_EXPIRE: u32 = 2165085029;
+pub const PPPIOCSDEBUG: u32 = 1074033728;
+pub const GPIO_V2_LINE_SET_VALUES_IOCTL: u32 = 3222320143;
+pub const PPPIOCSMRU: u32 = 1074033746;
+pub const CCISS_DEREGDISK: u32 = 16908;
+pub const UI_DEV_CREATE: u32 = 21761;
+pub const FUSE_DEV_IOC_CLONE: u32 = 2147804416;
+pub const BTRFS_IOC_START_SYNC: u32 = 2148045848;
+pub const NILFS_IOCTL_DELETE_CHECKPOINT: u32 = 1074294401;
+pub const SNAPSHOT_AVAIL_SWAP_SIZE: u32 = 2148021011;
+pub const DM_TABLE_CLEAR: u32 = 3241737482;
+pub const CCISS_GETINTINFO: u32 = 2148024834;
+pub const PPPIOCSASYNCMAP: u32 = 1074033751;
+pub const I2OEVTGET: u32 = 2154326283;
+pub const NVME_IOCTL_RESET: u32 = 20036;
+pub const PPYIELD: u32 = 28813;
+pub const NVME_IOCTL_IO64_CMD: u32 = 3226488392;
+pub const TUNSETCARRIER: u32 = 1074025698;
+pub const DM_DEV_WAIT: u32 = 3241737480;
+pub const RTC_WIE_ON: u32 = 28687;
+pub const MEDIA_IOC_DEVICE_INFO: u32 = 3238034432;
+pub const RIO_CM_CHAN_CREATE: u32 = 3221381891;
+pub const MGSL_IOCSPARAMS: u32 = 1076915456;
+pub const RTC_SET_TIME: u32 = 1076129802;
+pub const VHOST_RESET_OWNER: u32 = 44802;
+pub const IOC_OPAL_PSID_REVERT_TPR: u32 = 1091072232;
+pub const AUTOFS_DEV_IOCTL_OPENMOUNT: u32 = 3222836084;
+pub const UDF_GETEABLOCK: u32 = 2148035649;
+pub const VFIO_IOMMU_MAP_DMA: u32 = 15217;
+pub const VIDIOC_SUBSCRIBE_EVENT: u32 = 1075861082;
+pub const HIDIOCGFLAG: u32 = 2147764238;
+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 = 1074835969;
+pub const CCISS_GETFIRMVER: u32 = 2147762696;
+pub const ND_IOCTL_ARS_START: u32 = 3223342594;
+pub const PPPIOCSMRRU: u32 = 1074033723;
+pub const CEC_ADAP_S_LOG_ADDRS: u32 = 3227279620;
+pub const RPROC_GET_SHUTDOWN_ON_RELEASE: u32 = 2147792642;
+pub const DMA_HEAP_IOCTL_ALLOC: u32 = 3222816768;
+pub const PPSETTIME: u32 = 1074819222;
+pub const RTC_ALM_READ: u32 = 2149871624;
+pub const VDUSE_SET_API_VERSION: u32 = 1074299137;
+pub const RIO_MPORT_MAINT_WRITE_REMOTE: u32 = 1075342600;
+pub const VIDIOC_SUBDEV_S_CROP: u32 = 3224917564;
+pub const USBDEVFS_CONNECT: u32 = 21783;
+pub const SYNC_IOC_FILE_INFO: u32 = 3224911364;
+pub const ATMARP_MKIP: u32 = 25058;
+pub const VFIO_IOMMU_SPAPR_TCE_GET_INFO: u32 = 15216;
+pub const CCISS_GETHEARTBEAT: u32 = 2147762694;
+pub const ATM_RSTADDR: u32 = 1074815367;
+pub const NBD_SET_SIZE: u32 = 43778;
+pub const UDF_GETVOLIDENT: u32 = 2148035650;
+pub const GPIO_V2_LINE_GET_VALUES_IOCTL: u32 = 3222320142;
+pub const MGSL_IOCSTXIDLE: u32 = 27906;
+pub const FSL_HV_IOCTL_SETPROP: u32 = 3223891720;
+pub const BTRFS_IOC_GET_DEV_STATS: u32 = 3288896564;
+pub const PPRSTATUS: u32 = 2147577985;
+pub const MGSL_IOCTXENABLE: u32 = 27908;
+pub const UDF_GETEASIZE: u32 = 2147773504;
+pub const NVME_IOCTL_ADMIN64_CMD: u32 = 3226488391;
+pub const VHOST_SET_OWNER: u32 = 44801;
+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 = 1074815371;
+pub const HPET_IE_ON: u32 = 26625;
+pub const PERF_EVENT_IOC_ID: u32 = 2148017159;
+pub const TUNSETSNDBUF: u32 = 1074025684;
+pub const PTP_PIN_SETFUNC: u32 = 1080048903;
+pub const PPPIOCDISCONN: u32 = 29753;
+pub const VIDIOC_QUERYCTRL: u32 = 3225703972;
+pub const PPEXCL: u32 = 28815;
+pub const PCITEST_MSI: u32 = 1074024451;
+pub const FDWERRORCLR: u32 = 598;
+pub const AUTOFS_IOC_FAIL: u32 = 37729;
+pub const USBDEVFS_IOCTL: u32 = 3222295826;
+pub const VIDIOC_S_STD: u32 = 1074288152;
+pub const F2FS_IOC_RESIZE_FS: u32 = 1074328848;
+pub const SONET_SETDIAG: u32 = 3221512466;
+pub const BTRFS_IOC_DEFRAG: u32 = 1342215170;
+pub const CCISS_GETDRIVVER: u32 = 2147762697;
+pub const IPMICTL_GET_TIMING_PARMS_CMD: u32 = 2148034839;
+pub const HPET_IRQFREQ: u32 = 1074292742;
+pub const ATM_GETESI: u32 = 1074815365;
+pub const CCISS_GETLUNINFO: u32 = 2148286993;
+pub const AUTOFS_DEV_IOCTL_ISMOUNTPOINT: u32 = 3222836094;
+pub const TEE_IOC_SHM_ALLOC: u32 = 3222316033;
+pub const PERF_EVENT_IOC_SET_BPF: u32 = 1074013192;
+pub const UDMABUF_CREATE_LIST: u32 = 1074296131;
+pub const VHOST_SET_LOG_BASE: u32 = 1074310916;
+pub const ZATM_GETPOOL: u32 = 1074815329;
+pub const BR2684_SETFILT: u32 = 1075601808;
+pub const RNDGETPOOL: u32 = 2148028930;
+pub const PPS_GETPARAMS: u32 = 2148036769;
+pub const IOC_PR_RESERVE: u32 = 1074819273;
+pub const VIDIOC_TRY_DECODER_CMD: u32 = 3225966177;
+pub const RIO_CM_CHAN_CLOSE: u32 = 1073898244;
+pub const VIDIOC_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const IOCTL_MEI_CONNECT_CLIENT_VTAG: u32 = 3222554628;
+pub const PMU_IOC_GET_BACKLIGHT: u32 = 2148024833;
+pub const USBDEVFS_GET_CAPABILITIES: u32 = 2147767578;
+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 = 16910;
+pub const FAT_IOCTL_SET_ATTRIBUTES: u32 = 1074033169;
+pub const VIDIOC_CREATE_BUFS: u32 = 3238024796;
+pub const CAPI_GET_VERSION: u32 = 3222291207;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY: u32 = 2228770626;
+pub const VFIO_EEH_PE_OP: u32 = 15225;
+pub const FW_CDEV_IOC_CREATE_ISO_CONTEXT: u32 = 3223331592;
+pub const F2FS_IOC_RELEASE_COMPRESS_BLOCKS: u32 = 2148070674;
+pub const NBD_SET_SIZE_BLOCKS: u32 = 43783;
+pub const IPMI_BMC_IOCTL_SET_SMS_ATN: u32 = 45312;
+pub const ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG: u32 = 3222319873;
+pub const VIDIOC_S_AUDOUT: u32 = 1077171762;
+pub const VIDIOC_S_FMT: u32 = 3234878981;
+pub const PPPIOCATTACH: u32 = 1074033725;
+pub const VHOST_GET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310948;
+pub const FS_IOC_MEASURE_VERITY: u32 = 3221513862;
+pub const CCISS_BIG_PASSTHRU: u32 = 3227533842;
+pub const IPMICTL_SET_MY_LUN_CMD: u32 = 2147772691;
+pub const PCITEST_LEGACY_IRQ: u32 = 20482;
+pub const USBDEVFS_SUBMITURB: u32 = 2151175434;
+pub const AUTOFS_IOC_READY: u32 = 37728;
+pub const BTRFS_IOC_SEND: u32 = 1078498342;
+pub const VIDIOC_G_EXT_CTRLS: u32 = 3223344711;
+pub const JSIOCSBTNMAP: u32 = 1140877875;
+pub const PPPIOCSFLAGS: u32 = 1074033753;
+pub const NVRAM_INIT: u32 = 28736;
+pub const RFKILL_IOCTL_NOINPUT: u32 = 20993;
+pub const BTRFS_IOC_BALANCE: u32 = 1342215180;
+pub const FS_IOC_GETFSMAP: u32 = 3233830971;
+pub const IPMICTL_GET_MY_CHANNEL_LUN_CMD: u32 = 2147772699;
+pub const STP_POLICY_ID_GET: u32 = 2148541697;
+pub const PPSETFLAGS: u32 = 1074032795;
+pub const CEC_ADAP_S_PHYS_ADDR: u32 = 1073897730;
+pub const ATMTCP_CREATE: u32 = 24974;
+pub const IPMI_BMC_IOCTL_FORCE_ABORT: u32 = 45314;
+pub const PPPIOCGXASYNCMAP: u32 = 2149610576;
+pub const VHOST_SET_VRING_CALL: u32 = 1074310945;
+pub const LIRC_GET_FEATURES: u32 = 2147772672;
+pub const GSMIOC_DISABLE_NET: u32 = 18179;
+pub const AUTOFS_IOC_CATATONIC: u32 = 37730;
+pub const NBD_DO_IT: u32 = 43779;
+pub const LIRC_SET_REC_CARRIER_RANGE: u32 = 1074030879;
+pub const IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772697;
+pub const EVIOCSCLOCKID: u32 = 1074021792;
+pub const USBDEVFS_FREE_STREAMS: u32 = 2148029725;
+pub const FSI_SCOM_RESET: u32 = 1074033411;
+pub const PMU_IOC_GRAB_BACKLIGHT: u32 = 2148024838;
+pub const VIDIOC_SUBDEV_S_FMT: u32 = 3227014661;
+pub const FDDEFPRM: u32 = 1075839555;
+pub const TEE_IOC_INVOKE: u32 = 2148574211;
+pub const USBDEVFS_BULK: u32 = 3222820098;
+pub const SCIF_VWRITETO: u32 = 3223876365;
+pub const SONYPI_IOCSBRT: u32 = 1073837568;
+pub const BTRFS_IOC_FILE_EXTENT_SAME: u32 = 3222836278;
+pub const RTC_PIE_ON: u32 = 28677;
+pub const BTRFS_IOC_SCAN_DEV: u32 = 1342215172;
+pub const PPPIOCXFERUNIT: u32 = 29774;
+pub const WDIOC_GETTIMEOUT: u32 = 2147768071;
+pub const BTRFS_IOC_SET_RECEIVED_SUBVOL: u32 = 3234370597;
+pub const DFL_FPGA_PORT_ERR_SET_IRQ: u32 = 1074312774;
+pub const FBIO_WAITFORVSYNC: u32 = 1074021920;
+pub const RTC_PIE_OFF: u32 = 28678;
+pub const EVIOCGRAB: u32 = 1074021776;
+pub const PMU_IOC_SET_BACKLIGHT: u32 = 1074283010;
+pub const EVIOCGREP: u32 = 2148025603;
+pub const PERF_EVENT_IOC_MODIFY_ATTRIBUTES: u32 = 1074275339;
+pub const UFFDIO_CONTINUE: u32 = 3223366151;
+pub const VDUSE_GET_API_VERSION: u32 = 2148040960;
+pub const RTC_RD_TIME: u32 = 2149871625;
+pub const FDMSGOFF: u32 = 582;
+pub const IPMICTL_REGISTER_FOR_CMD_CHANS: u32 = 2148296988;
+pub const CAPI_GET_ERRCODE: u32 = 2147631905;
+pub const PCITEST_SET_IRQTYPE: u32 = 1074024456;
+pub const VIDIOC_SUBDEV_S_EDID: u32 = 3223868969;
+pub const MATROXFB_SET_OUTPUT_MODE: u32 = 1074294522;
+pub const RIO_DEV_ADD: u32 = 1075866903;
+pub const VIDIOC_ENUM_FREQ_BANDS: u32 = 3225441893;
+pub const FBIO_RADEON_SET_MIRROR: u32 = 1074282500;
+pub const PCITEST_GET_IRQTYPE: u32 = 20489;
+pub const JSIOCGVERSION: u32 = 2147772929;
+pub const SONYPI_IOCSBLUE: u32 = 1073837577;
+pub const SNAPSHOT_PREF_IMAGE_SIZE: u32 = 13074;
+pub const F2FS_IOC_GET_FEATURES: u32 = 2147808524;
+pub const SCIF_REG: u32 = 3223876360;
+pub const NILFS_IOCTL_CLEAN_SEGMENTS: u32 = 1081634440;
+pub const FW_CDEV_IOC_INITIATE_BUS_RESET: u32 = 1074012933;
+pub const RIO_WAIT_FOR_ASYNC: u32 = 1074294038;
+pub const VHOST_SET_VRING_NUM: u32 = 1074310928;
+pub const AUTOFS_DEV_IOCTL_PROTOVER: u32 = 3222836082;
+pub const RIO_FREE_DMA: u32 = 1074294036;
+pub const MGSL_IOCRXENABLE: u32 = 27909;
+pub const IOCTL_VM_SOCKETS_GET_LOCAL_CID: u32 = 1977;
+pub const IPMICTL_SET_TIMING_PARMS_CMD: u32 = 2148034838;
+pub const PPPIOCGL2TPSTATS: u32 = 2152231990;
+pub const PERF_EVENT_IOC_PERIOD: u32 = 1074275332;
+pub const PTP_PIN_SETFUNC2: u32 = 1080048912;
+pub const CHIOEXCHANGE: u32 = 1075602178;
+pub const NILFS_IOCTL_GET_SUINFO: u32 = 2149084804;
+pub const CEC_DQEVENT: u32 = 3226493191;
+pub const UI_SET_SWBIT: u32 = 1074025837;
+pub const VHOST_VDPA_SET_CONFIG: u32 = 1074311028;
+pub const TUNSETIFF: u32 = 1074025674;
+pub const CHIOPOSITION: u32 = 1074553603;
+pub const IPMICTL_SET_MAINTENANCE_MODE_CMD: u32 = 1074030879;
+pub const BTRFS_IOC_DEFAULT_SUBVOL: u32 = 1074304019;
+pub const RIO_UNMAP_OUTBOUND: u32 = 1076391184;
+pub const CAPI_CLR_FLAGS: u32 = 2147762981;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323663;
+pub const MATROXFB_GET_OUTPUT_CONNECTION: u32 = 2148036344;
+pub const EVIOCSMASK: u32 = 1074808211;
+pub const BTRFS_IOC_FORGET_DEV: u32 = 1342215173;
+pub const CXL_MEM_QUERY_COMMANDS: u32 = 2148060673;
+pub const CEC_S_MODE: u32 = 1074028809;
+pub const MGSL_IOCSIF: u32 = 27914;
+pub const SWITCHTEC_IOCTL_PFF_TO_PORT: u32 = 3222034244;
+pub const PPSETMODE: u32 = 1074032768;
+pub const VFIO_DEVICE_SET_IRQS: u32 = 15214;
+pub const VIDIOC_PREPARE_BUF: u32 = 3227014749;
+pub const CEC_ADAP_G_CONNECTOR_INFO: u32 = 2151964938;
+pub const IOC_OPAL_WRITE_SHADOW_MBR: u32 = 1092645098;
+pub const VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: u32 = 3225441867;
+pub const UDMABUF_CREATE: u32 = 1075344706;
+pub const SONET_CLRDIAG: u32 = 3221512467;
+pub const PHN_SET_REG: u32 = 1074294785;
+pub const RNDADDTOENTCNT: u32 = 1074024961;
+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 = 28674;
+pub const VFIO_GROUP_SET_CONTAINER: u32 = 15208;
+pub const FW_CDEV_IOC_RECEIVE_PHY_PACKETS: u32 = 1074275094;
+pub const VFIO_IOMMU_SPAPR_TCE_REMOVE: u32 = 15224;
+pub const VFIO_IOMMU_GET_INFO: u32 = 15216;
+pub const DM_DEV_SUSPEND: u32 = 3241737478;
+pub const F2FS_IOC_GET_COMPRESS_OPTION: u32 = 2147677461;
+pub const FW_CDEV_IOC_STOP_ISO: u32 = 1074012939;
+pub const GPIO_V2_GET_LINEINFO_IOCTL: u32 = 3238048773;
+pub const ATMMPC_CTRL: u32 = 25048;
+pub const PPPIOCSXASYNCMAP: u32 = 1075868751;
+pub const CHIOGSTATUS: u32 = 1074815752;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE: u32 = 3222807309;
+pub const RIO_MPORT_MAINT_PORT_IDX_GET: u32 = 2147773699;
+pub const CAPI_SET_FLAGS: u32 = 2147762980;
+pub const VFIO_GROUP_GET_DEVICE_FD: u32 = 15210;
+pub const VHOST_SET_MEM_TABLE: u32 = 1074310915;
+pub const MATROXFB_SET_OUTPUT_CONNECTION: u32 = 1074294520;
+pub const DFL_FPGA_PORT_GET_REGION_INFO: u32 = 46658;
+pub const VHOST_GET_FEATURES: u32 = 2148052736;
+pub const LIRC_GET_REC_RESOLUTION: u32 = 2147772679;
+pub const PACKET_CTRL_CMD: u32 = 3222820865;
+pub const LIRC_SET_TRANSMITTER_MASK: u32 = 1074030871;
+pub const BTRFS_IOC_ADD_DEV: u32 = 1342215178;
+pub const JSIOCGCORR: u32 = 2149870114;
+pub const VIDIOC_G_FMT: u32 = 3234878980;
+pub const RTC_EPOCH_SET: u32 = 1074294798;
+pub const CAPI_GET_PROFILE: u32 = 3225436937;
+pub const ATM_GETLOOP: u32 = 1074815314;
+pub const SCIF_LISTEN: u32 = 1074033410;
+pub const NBD_CLEAR_QUE: u32 = 43781;
+pub const F2FS_IOC_MOVE_RANGE: u32 = 3223385353;
+pub const LIRC_GET_LENGTH: u32 = 2147772687;
+pub const I8K_SET_FAN: u32 = 3221776775;
+pub const FDSETMAXERRS: u32 = 1075053132;
+pub const VIDIOC_SUBDEV_QUERYCAP: u32 = 2151699968;
+pub const SNAPSHOT_SET_SWAP_AREA: u32 = 1074541325;
+pub const LIRC_GET_REC_TIMEOUT: u32 = 2147772708;
+pub const EVIOCRMFF: u32 = 1074021761;
+pub const GPIO_GET_LINEEVENT_IOCTL: u32 = 3224417284;
+pub const PPRDATA: u32 = 2147577989;
+pub const RIO_MPORT_GET_PROPERTIES: u32 = 2150657284;
+pub const TUNSETVNETHDRSZ: u32 = 1074025688;
+pub const GPIO_GET_LINEINFO_IOCTL: u32 = 3225990146;
+pub const GSMIOC_GETCONF: u32 = 2152482560;
+pub const LIRC_GET_SEND_MODE: u32 = 2147772673;
+pub const PPPIOCSACTIVE: u32 = 1074820166;
+pub const SIOCGSTAMPNS_NEW: u32 = 2148567303;
+pub const IPMICTL_RECEIVE_MSG: u32 = 3224398092;
+pub const LIRC_SET_SEND_DUTY_CYCLE: u32 = 1074030869;
+pub const UI_END_FF_ERASE: u32 = 1074550219;
+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 = 43786;
+pub const VFIO_DEVICE_GET_REGION_INFO: u32 = 15212;
+pub const REISERFS_IOC_UNPACK: u32 = 1074318593;
+pub const FW_CDEV_IOC_REMOVE_DESCRIPTOR: u32 = 1074012935;
+pub const RIO_SET_EVENT_MASK: u32 = 1074031885;
+pub const SNAPSHOT_ALLOC_SWAP_PAGE: u32 = 2148021012;
+pub const VDUSE_VQ_INJECT_IRQ: u32 = 1074037015;
+pub const I2OPASSTHRU: u32 = 2148559116;
+pub const IOC_OPAL_SET_PW: u32 = 1109422304;
+pub const FSI_SCOM_READ: u32 = 3223352065;
+pub const VHOST_VDPA_GET_DEVICE_ID: u32 = 2147790704;
+pub const VIDIOC_QBUF: u32 = 3227014671;
+pub const VIDIOC_S_TUNER: u32 = 1079268894;
+pub const TUNGETVNETHDRSZ: u32 = 2147767511;
+pub const CAPI_NCCI_GETUNIT: u32 = 2147762983;
+pub const DFL_FPGA_PORT_UINT_GET_IRQ_NUM: u32 = 2147792455;
+pub const VIDIOC_OMAP3ISP_STAT_EN: u32 = 3221771975;
+pub const GPIO_V2_LINE_SET_CONFIG_IOCTL: u32 = 3239097357;
+pub const TEE_IOC_VERSION: u32 = 2148312064;
+pub const VIDIOC_LOG_STATUS: u32 = 22086;
+pub const IPMICTL_SEND_COMMAND_SETTIME: u32 = 2150656277;
+pub const VHOST_SET_LOG_FD: u32 = 1074048775;
+pub const SCIF_SEND: u32 = 3222827782;
+pub const VIDIOC_SUBDEV_G_FMT: u32 = 3227014660;
+pub const NS_ADJBUFLEV: u32 = 24931;
+pub const VIDIOC_DBG_S_REGISTER: u32 = 1077433935;
+pub const NILFS_IOCTL_RESIZE: u32 = 1074294411;
+pub const PHN_GETREG: u32 = 3221778437;
+pub const I2OSWDL: u32 = 3224398085;
+pub const VBG_IOCTL_VMMDEV_REQUEST_BIG: u32 = 22019;
+pub const JSIOCGBUTTONS: u32 = 2147576338;
+pub const VFIO_IOMMU_ENABLE: u32 = 15219;
+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 = 1074048887;
+pub const VIDIOC_SUBDEV_G_CROP: u32 = 3224917563;
+pub const VIDIOC_S_CROP: u32 = 1075074620;
+pub const WDIOC_GETTEMP: u32 = 2147768067;
+pub const IOC_OPAL_ADD_USR_TO_LR: u32 = 1092120804;
+pub const UI_SET_LEDBIT: u32 = 1074025833;
+pub const NBD_SET_SOCK: u32 = 43776;
+pub const BTRFS_IOC_SNAP_DESTROY_V2: u32 = 1342215231;
+pub const HIDIOCGCOLLECTIONINFO: u32 = 3222292497;
+pub const I2OSWUL: u32 = 3224398086;
+pub const IOCTL_MEI_NOTIFY_GET: u32 = 2147764227;
+pub const FDFMTTRK: u32 = 1074528840;
+pub const MMTIMER_GETBITS: u32 = 27908;
+pub const VIDIOC_ENUMSTD: u32 = 3225966105;
+pub const VHOST_GET_VRING_BASE: u32 = 3221794578;
+pub const VFIO_DEVICE_IOEVENTFD: u32 = 15220;
+pub const ATMARP_SETENTRY: u32 = 25059;
+pub const CCISS_REVALIDVOLS: u32 = 16906;
+pub const MGSL_IOCLOOPTXDONE: u32 = 27913;
+pub const RTC_VL_READ: u32 = 2147774483;
+pub const ND_IOCTL_ARS_STATUS: u32 = 3224391171;
+pub const RIO_DEV_DEL: u32 = 1075866904;
+pub const VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: u32 = 3223606797;
+pub const VIDIOC_SUBDEV_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const SONYPI_IOCSFAN: u32 = 1073837579;
+pub const SPIOCSTYPE: u32 = 1074295041;
+pub const IPMICTL_REGISTER_FOR_CMD: u32 = 2147641614;
+pub const I8K_GET_FAN: u32 = 3221776774;
+pub const TUNGETVNETBE: u32 = 2147767519;
+pub const AUTOFS_DEV_IOCTL_FAIL: u32 = 3222836087;
+pub const UI_END_FF_UPLOAD: u32 = 1080579529;
+pub const TOSH_SMM: u32 = 3222828176;
+pub const SONYPI_IOCGBAT2REM: u32 = 2147644933;
+pub const F2FS_IOC_GET_COMPRESS_BLOCKS: u32 = 2148070673;
+pub const PPPIOCSNPMODE: u32 = 1074295883;
+pub const USBDEVFS_CONTROL: u32 = 3222820096;
+pub const HIDIOCGUSAGE: u32 = 3222816779;
+pub const TUNSETTXFILTER: u32 = 1074025681;
+pub const TUNGETVNETLE: u32 = 2147767517;
+pub const VIDIOC_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const BTRFS_IOC_INO_PATHS: u32 = 3224933411;
+pub const MGSL_IOCGXSYNC: u32 = 27924;
+pub const HIDIOCGFIELDINFO: u32 = 3224913930;
+pub const VIDIOC_SUBDEV_G_STD: u32 = 2148029975;
+pub const I2OVALIDATE: u32 = 2147772680;
+pub const VIDIOC_TRY_ENCODER_CMD: u32 = 3223869006;
+pub const NILFS_IOCTL_GET_CPINFO: u32 = 2149084802;
+pub const VIDIOC_G_FREQUENCY: u32 = 3224131128;
+pub const VFAT_IOCTL_READDIR_SHORT: u32 = 2184212994;
+pub const ND_IOCTL_GET_CONFIG_DATA: u32 = 3222031877;
+pub const F2FS_IOC_RESERVE_COMPRESS_BLOCKS: u32 = 2148070675;
+pub const FDGETDRVSTAT: u32 = 2152727058;
+pub const SYNC_IOC_MERGE: u32 = 3224387075;
+pub const VIDIOC_S_DV_TIMINGS: u32 = 3229898327;
+pub const PPPIOCBRIDGECHAN: u32 = 1074033717;
+pub const LIRC_SET_SEND_MODE: u32 = 1074030865;
+pub const RIO_ENABLE_PORTWRITE_RANGE: u32 = 1074818315;
+pub const ATM_GETTYPE: u32 = 1074815364;
+pub const PHN_GETREGS: u32 = 3223875591;
+pub const FDSETEMSGTRESH: u32 = 586;
+pub const NILFS_IOCTL_GET_VINFO: u32 = 3222826630;
+pub const MGSL_IOCWAITEVENT: u32 = 3221515528;
+pub const CAPI_INSTALLED: u32 = 2147631906;
+pub const EVIOCGMASK: u32 = 2148550034;
+pub const BTRFS_IOC_SUBVOL_GETFLAGS: u32 = 2148045849;
+pub const FSL_HV_IOCTL_PARTITION_GET_STATUS: u32 = 3222056706;
+pub const MEDIA_IOC_ENUM_ENTITIES: u32 = 3238034433;
+pub const GSMIOC_GETFIRST: u32 = 2147763972;
+pub const FW_CDEV_IOC_FLUSH_ISO: u32 = 1074012952;
+pub const VIDIOC_DBG_G_CHIP_INFO: u32 = 3234354790;
+pub const F2FS_IOC_RELEASE_VOLATILE_WRITE: u32 = 62724;
+pub const CAPI_GET_SERIAL: u32 = 3221504776;
+pub const FDSETDRVPRM: u32 = 1082131088;
+pub const IOC_OPAL_SAVE: u32 = 1092120796;
+pub const VIDIOC_G_DV_TIMINGS: u32 = 3229898328;
+pub const TUNSETIFINDEX: u32 = 1074025690;
+pub const CCISS_SETINTINFO: u32 = 1074283011;
+pub const RTC_VL_CLR: u32 = 28692;
+pub const VIDIOC_REQBUFS: u32 = 3222558216;
+pub const USBDEVFS_REAPURBNDELAY32: u32 = 1074025741;
+pub const TEE_IOC_SHM_REGISTER: u32 = 3222840329;
+pub const USBDEVFS_SETCONFIGURATION: u32 = 2147767557;
+pub const CCISS_GETNODENAME: u32 = 2148549124;
+pub const VIDIOC_SUBDEV_S_FRAME_INTERVAL: u32 = 3224393238;
+pub const VIDIOC_ENUM_FRAMESIZES: u32 = 3224131146;
+pub const VFIO_DEVICE_PCI_HOT_RESET: u32 = 15217;
+pub const FW_CDEV_IOC_SEND_BROADCAST_REQUEST: u32 = 1076372242;
+pub const LPSETTIMEOUT_NEW: u32 = 1074791951;
+pub const RIO_CM_MPORT_GET_LIST: u32 = 3221512971;
+pub const FW_CDEV_IOC_QUEUE_ISO: u32 = 3222807305;
+pub const FDRAWCMD: u32 = 600;
+pub const SCIF_UNREG: u32 = 3222303497;
+pub const PPPIOCGIDLE64: u32 = 2148561983;
+pub const USBDEVFS_RELEASEINTERFACE: u32 = 2147767568;
+pub const VIDIOC_CROPCAP: u32 = 3224131130;
+pub const DFL_FPGA_PORT_GET_INFO: u32 = 46657;
+pub const PHN_SET_REGS: u32 = 1074294787;
+pub const ATMLEC_DATA: u32 = 25041;
+pub const PPPOEIOCDFWD: u32 = 45313;
+pub const VIDIOC_S_SELECTION: u32 = 3225441887;
+pub const SNAPSHOT_FREE_SWAP_PAGES: u32 = 13065;
+pub const BTRFS_IOC_LOGICAL_INO: u32 = 3224933412;
+pub const VIDIOC_S_CTRL: u32 = 3221771804;
+pub const ZATM_SETPOOL: u32 = 1074815331;
+pub const MTIOCPOS: u32 = 2148035843;
+pub const PMU_IOC_SLEEP: u32 = 16896;
+pub const AUTOFS_DEV_IOCTL_PROTOSUBVER: u32 = 3222836083;
+pub const VBG_IOCTL_CHANGE_FILTER_MASK: u32 = 3223344652;
+pub const NILFS_IOCTL_GET_SUSTAT: u32 = 2150657669;
+pub const VIDIOC_QUERYCAP: u32 = 2154321408;
+pub const HPET_INFO: u32 = 2149083139;
+pub const VIDIOC_AM437X_CCDC_CFG: u32 = 1074288321;
+pub const DM_LIST_DEVICES: u32 = 3241737474;
+pub const TUNSETOWNER: u32 = 1074025676;
+pub const VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: u32 = 3223344654;
+pub const RNDADDENTROPY: u32 = 1074287107;
+pub const USBDEVFS_RESET: u32 = 21780;
+pub const BTRFS_IOC_SUBVOL_CREATE: u32 = 1342215182;
+pub const USBDEVFS_FORBID_SUSPEND: u32 = 21793;
+pub const FDGETDRVTYP: u32 = 2148532751;
+pub const PPWCONTROL: u32 = 1073836164;
+pub const VIDIOC_ENUM_FRAMEINTERVALS: u32 = 3224655435;
+pub const KCOV_DISABLE: u32 = 25445;
+pub const IOC_OPAL_ACTIVATE_LSP: u32 = 1092120799;
+pub const VHOST_VDPA_GET_IOVA_RANGE: u32 = 2148577144;
+pub const PPPIOCSPASS: u32 = 1074820167;
+pub const RIO_CM_CHAN_CONNECT: u32 = 1074291464;
+pub const I2OSWDEL: u32 = 3224398087;
+pub const FS_IOC_SET_ENCRYPTION_POLICY: u32 = 2148296211;
+pub const IOC_OPAL_MBR_DONE: u32 = 1091596521;
+pub const PPPIOCSMAXCID: u32 = 1074033745;
+pub const PPSETPHASE: u32 = 1074032788;
+pub const VHOST_VDPA_SET_VRING_ENABLE: u32 = 1074311029;
+pub const USBDEVFS_GET_SPEED: u32 = 21791;
+pub const SONET_GETFRAMING: u32 = 2147770646;
+pub const VIDIOC_QUERYBUF: u32 = 3227014665;
+pub const VIDIOC_S_EDID: u32 = 3223868969;
+pub const BTRFS_IOC_QGROUP_ASSIGN: u32 = 1075352617;
+pub const PPS_GETCAP: u32 = 2148036771;
+pub const SNAPSHOT_PLATFORM_SUPPORT: u32 = 13071;
+pub const LIRC_SET_REC_TIMEOUT_REPORTS: u32 = 1074030873;
+pub const SCIF_GET_NODEIDS: u32 = 3222827790;
+pub const NBD_DISCONNECT: u32 = 43784;
+pub const VIDIOC_SUBDEV_G_FRAME_INTERVAL: u32 = 3224393237;
+pub const VFIO_IOMMU_DISABLE: u32 = 15220;
+pub const SNAPSHOT_CREATE_IMAGE: u32 = 1074017041;
+pub const SNAPSHOT_POWER_OFF: u32 = 13072;
+pub const APM_IOC_STANDBY: u32 = 16641;
+pub const PPPIOCGUNIT: u32 = 2147775574;
+pub const AUTOFS_IOC_EXPIRE_MULTI: u32 = 1074041702;
+pub const SCIF_BIND: u32 = 3221779201;
+pub const IOC_WATCH_QUEUE_SET_SIZE: u32 = 22368;
+pub const NILFS_IOCTL_CHANGE_CPMODE: u32 = 1074818688;
+pub const IOC_OPAL_LOCK_UNLOCK: u32 = 1092120797;
+pub const F2FS_IOC_SET_PIN_FILE: u32 = 1074066701;
+pub const PPPIOCGRASYNCMAP: u32 = 2147775573;
+pub const MMTIMER_MMAPAVAIL: u32 = 27910;
+pub const I2OPASSTHRU32: u32 = 2148034828;
+pub const DFL_FPGA_FME_PORT_RELEASE: u32 = 1074050689;
+pub const VIDIOC_SUBDEV_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const UI_SET_SNDBIT: u32 = 1074025834;
+pub const VIDIOC_G_AUDOUT: u32 = 2150913585;
+pub const RTC_PLL_SET: u32 = 1075867666;
+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 = 1074048836;
+pub const VHOST_SET_VRING_ADDR: u32 = 1076408081;
+pub const VDUSE_CREATE_DEV: u32 = 1095794946;
+pub const FDFLUSH: u32 = 587;
+pub const VBG_IOCTL_WAIT_FOR_EVENTS: u32 = 3223344650;
+pub const DFL_FPGA_FME_ERR_SET_IRQ: u32 = 1074312836;
+pub const F2FS_IOC_GET_PIN_FILE: u32 = 2147808526;
+pub const SCIF_CONNECT: u32 = 3221779203;
+pub const BLKREPORTZONE: u32 = 3222278786;
+pub const AUTOFS_IOC_ASKUMOUNT: u32 = 2147783536;
+pub const ATM_ADDPARTY: u32 = 1074815476;
+pub const FDSETPRM: u32 = 1075839554;
+pub const ATM_GETSTATZ: u32 = 1074815313;
+pub const ISST_IF_MSR_COMMAND: u32 = 3221814788;
+pub const BTRFS_IOC_GET_SUBVOL_INFO: u32 = 2180551740;
+pub const VIDIOC_UNSUBSCRIBE_EVENT: u32 = 1075861083;
+pub const SEV_ISSUE_CMD: u32 = 3222295296;
+pub const GPIOHANDLE_SET_LINE_VALUES_IOCTL: u32 = 3225465865;
+pub const PCITEST_COPY: u32 = 1074286598;
+pub const IPMICTL_GET_MY_ADDRESS_CMD: u32 = 2147772690;
+pub const CHIOGPICKER: u32 = 2147771140;
+pub const CAPI_NCCI_OPENCOUNT: u32 = 2147762982;
+pub const CXL_MEM_SEND_COMMAND: u32 = 3224423938;
+pub const PERF_EVENT_IOC_SET_FILTER: u32 = 1074275334;
+pub const IOC_OPAL_REVERT_TPR: u32 = 1091072226;
+pub const CHIOGVPARAMS: u32 = 2154849043;
+pub const PTP_PEROUT_REQUEST: u32 = 1077427459;
+pub const FSI_SCOM_CHECK: u32 = 2147775232;
+pub const RTC_IRQP_READ: u32 = 2148036619;
+pub const RIO_MPORT_MAINT_READ_LOCAL: u32 = 2149084421;
+pub const HIDIOCGRDESCSIZE: u32 = 2147764225;
+pub const UI_GET_VERSION: u32 = 2147767597;
+pub const NILFS_IOCTL_GET_CPSTAT: u32 = 2149084803;
+pub const CCISS_GETBUSTYPES: u32 = 2147762695;
+pub const VFIO_IOMMU_SPAPR_TCE_CREATE: u32 = 15223;
+pub const VIDIOC_EXPBUF: u32 = 3225441808;
+pub const UI_SET_RELBIT: u32 = 1074025830;
+pub const VFIO_SET_IOMMU: u32 = 15206;
+pub const VIDIOC_S_MODULATOR: u32 = 1078220343;
+pub const TUNGETFILTER: u32 = 2148553947;
+pub const CCISS_SETNODENAME: u32 = 1074807301;
+pub const FBIO_GETCONTROL2: u32 = 2148025993;
+pub const TUNSETDEBUG: u32 = 1074025673;
+pub const DM_DEV_REMOVE: u32 = 3241737476;
+pub const HIDIOCSUSAGES: u32 = 1344030740;
+pub const FS_IOC_ADD_ENCRYPTION_KEY: u32 = 3226494487;
+pub const FBIOGET_VBLANK: u32 = 2149598738;
+pub const ATM_GETSTAT: u32 = 1074815312;
+pub const VIDIOC_G_JPEGCOMP: u32 = 2156680765;
+pub const TUNATTACHFILTER: u32 = 1074812117;
+pub const UI_SET_ABSBIT: u32 = 1074025831;
+pub const DFL_FPGA_PORT_ERR_GET_IRQ_NUM: u32 = 2147792453;
+pub const USBDEVFS_REAPURB32: u32 = 1074025740;
+pub const BTRFS_IOC_TRANS_END: u32 = 37895;
+pub const CAPI_REGISTER: u32 = 1074545409;
+pub const F2FS_IOC_COMPRESS_FILE: u32 = 62744;
+pub const USBDEVFS_DISCARDURB: u32 = 21771;
+pub const HE_GET_REG: u32 = 1074815328;
+pub const ATM_SETLOOP: u32 = 1074815315;
+pub const ATMSIGD_CTRL: u32 = 25072;
+pub const CIOC_KERNEL_VERSION: u32 = 3221775114;
+pub const BTRFS_IOC_CLONE_RANGE: u32 = 1075876877;
+pub const SNAPSHOT_UNFREEZE: u32 = 13058;
+pub const F2FS_IOC_START_VOLATILE_WRITE: u32 = 62723;
+pub const PMU_IOC_HAS_ADB: u32 = 2148024836;
+pub const I2OGETIOPS: u32 = 2149607680;
+pub const VIDIOC_S_FBUF: u32 = 1076909579;
+pub const PPRCONTROL: u32 = 2147577987;
+pub const CHIOSPICKER: u32 = 1074029317;
+pub const VFIO_IOMMU_SPAPR_REGISTER_MEMORY: u32 = 15221;
+pub const TUNGETSNDBUF: u32 = 2147767507;
+pub const GSMIOC_SETCONF: u32 = 1078740737;
+pub const IOC_PR_PREEMPT: u32 = 1075343563;
+pub const KCOV_INIT_TRACE: u32 = 2148033281;
+pub const SONYPI_IOCGBAT1CAP: u32 = 2147644930;
+pub const SWITCHTEC_IOCTL_FLASH_INFO: u32 = 2148554560;
+pub const MTIOCTOP: u32 = 1074294017;
+pub const VHOST_VDPA_SET_STATUS: u32 = 1073852274;
+pub const VHOST_SCSI_SET_EVENTS_MISSED: u32 = 1074048835;
+pub const VFIO_IOMMU_DIRTY_PAGES: u32 = 15221;
+pub const BTRFS_IOC_SCRUB_PROGRESS: u32 = 3288372253;
+pub const PPPIOCGMRU: u32 = 2147775571;
+pub const BTRFS_IOC_DEV_REPLACE: u32 = 3391657013;
+pub const PPPIOCGFLAGS: u32 = 2147775578;
+pub const NILFS_IOCTL_SET_SUINFO: u32 = 1075342989;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER2: u32 = 3222807316;
+pub const ATM_DELLECSADDR: u32 = 1074815375;
+pub const FW_CDEV_IOC_GET_SPEED: u32 = 8977;
+pub const PPPIOCGIDLE32: u32 = 2148037695;
+pub const VFIO_DEVICE_RESET: u32 = 15215;
+pub const GPIO_GET_LINEINFO_UNWATCH_IOCTL: u32 = 3221533708;
+pub const WDIOC_GETSTATUS: u32 = 2147768065;
+pub const BTRFS_IOC_SET_FEATURES: u32 = 1076925497;
+pub const IOCTL_MEI_CONNECT_CLIENT: u32 = 3222292481;
+pub const VIDIOC_OMAP3ISP_AEWB_CFG: u32 = 3223344835;
+pub const PCITEST_READ: u32 = 1074286597;
+pub const VFIO_GROUP_GET_STATUS: u32 = 15207;
+pub const MATROXFB_GET_ALL_OUTPUTS: u32 = 2148036347;
+pub const USBDEVFS_CLEAR_HALT: u32 = 2147767573;
+pub const VIDIOC_DECODER_CMD: u32 = 3225966176;
+pub const VIDIOC_G_AUDIO: u32 = 2150913569;
+pub const CCISS_RESCANDISK: u32 = 16912;
+pub const RIO_DISABLE_PORTWRITE_RANGE: u32 = 1074818316;
+pub const IOC_OPAL_SECURE_ERASE_LR: u32 = 1091596519;
+pub const USBDEVFS_REAPURB: u32 = 1074287884;
+pub const DFL_FPGA_CHECK_EXTENSION: u32 = 46593;
+pub const AUTOFS_IOC_PROTOVER: u32 = 2147783523;
+pub const FSL_HV_IOCTL_MEMCPY: u32 = 3223891717;
+pub const BTRFS_IOC_GET_FEATURES: u32 = 2149094457;
+pub const PCITEST_MSIX: u32 = 1074024455;
+pub const BTRFS_IOC_DEFRAG_RANGE: u32 = 1076925456;
+pub const UI_BEGIN_FF_ERASE: u32 = 3222033866;
+pub const DM_GET_TARGET_VERSION: u32 = 3241737489;
+pub const PPPIOCGIDLE: u32 = 2148561983;
+pub const NVRAM_SETCKS: u32 = 28737;
+pub const WDIOC_GETSUPPORT: u32 = 2150127360;
+pub const GSMIOC_ENABLE_NET: u32 = 1077167874;
+pub const GPIO_GET_CHIPINFO_IOCTL: u32 = 2151986177;
+pub const NE_ADD_VCPU: u32 = 3221532193;
+pub const EVIOCSKEYCODE_V2: u32 = 1076380932;
+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 = 1075342598;
+pub const I2OEVTREG: u32 = 1074555146;
+pub const I2OPARMGET: u32 = 3223873796;
+pub const EVIOCGID: u32 = 2148025602;
+pub const BTRFS_IOC_QGROUP_CREATE: u32 = 1074828330;
+pub const AUTOFS_DEV_IOCTL_SETPIPEFD: u32 = 3222836088;
+pub const VIDIOC_S_PARM: u32 = 3234616854;
+pub const TUNSETSTEERINGEBPF: u32 = 2147767520;
+pub const ATM_GETNAMES: u32 = 1074815363;
+pub const VIDIOC_QUERYMENU: u32 = 3224131109;
+pub const DFL_FPGA_PORT_DMA_UNMAP: u32 = 46660;
+pub const I2OLCTGET: u32 = 3222825218;
+pub const FS_IOC_GET_ENCRYPTION_PWSALT: u32 = 1074816532;
+pub const NS_SETBUFLEV: u32 = 1074815330;
+pub const BLKCLOSEZONE: u32 = 1074795143;
+pub const SONET_GETFRSENSE: u32 = 2147901719;
+pub const UI_SET_EVBIT: u32 = 1074025828;
+pub const DM_LIST_VERSIONS: u32 = 3241737485;
+pub const HIDIOCGSTRING: u32 = 2164541444;
+pub const PPPIOCATTCHAN: u32 = 1074033720;
+pub const VDUSE_DEV_SET_CONFIG: u32 = 1074299154;
+pub const TUNGETFEATURES: u32 = 2147767503;
+pub const VFIO_GROUP_UNSET_CONTAINER: u32 = 15209;
+pub const IPMICTL_SET_MY_ADDRESS_CMD: u32 = 2147772689;
+pub const CCISS_REGNEWDISK: u32 = 1074020877;
+pub const VIDIOC_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const PHN_SETREGS: u32 = 1076391944;
+pub const FAT_IOCTL_GET_ATTRIBUTES: u32 = 2147774992;
+pub const FSL_MC_SEND_MC_COMMAND: u32 = 3225440992;
+pub const TUNGETIFF: u32 = 2147767506;
+pub const PTP_CLOCK_GETCAPS2: u32 = 2152742154;
+pub const BTRFS_IOC_RESIZE: u32 = 1342215171;
+pub const VHOST_SET_VRING_ENDIAN: u32 = 1074310931;
+pub const PPS_KC_BIND: u32 = 1074294949;
+pub const F2FS_IOC_WRITE_CHECKPOINT: u32 = 62727;
+pub const UI_SET_FFBIT: u32 = 1074025835;
+pub const IPMICTL_GET_MY_LUN_CMD: u32 = 2147772692;
+pub const CEC_ADAP_G_PHYS_ADDR: u32 = 2147639553;
+pub const CEC_G_MODE: u32 = 2147770632;
+pub const USBDEVFS_RESETEP: u32 = 2147767555;
+pub const MEDIA_REQUEST_IOC_QUEUE: u32 = 31872;
+pub const USBDEVFS_ALLOC_STREAMS: u32 = 2148029724;
+pub const MGSL_IOCSXCTRL: u32 = 27925;
+pub const MEDIA_IOC_G_TOPOLOGY: u32 = 3225975812;
+pub const PPPIOCUNBRIDGECHAN: u32 = 29748;
+pub const F2FS_IOC_COMMIT_ATOMIC_WRITE: u32 = 62722;
+pub const ISST_IF_GET_PLATFORM_INFO: u32 = 2148072960;
+pub const SCIF_FENCE_MARK: u32 = 3222303503;
+pub const USBDEVFS_RELEASE_PORT: u32 = 2147767577;
+pub const VFIO_CHECK_EXTENSION: u32 = 15205;
+pub const BTRFS_IOC_QGROUP_LIMIT: u32 = 2150667307;
+pub const FAT_IOCTL_GET_VOLUME_ID: u32 = 2147774995;
+pub const UI_SET_PHYS: u32 = 1074287980;
+pub const FDWERRORGET: u32 = 2150105623;
+pub const VIDIOC_SUBDEV_G_EDID: u32 = 3223868968;
+pub const MGSL_IOCGSTATS: u32 = 27911;
+pub const RPROC_SET_SHUTDOWN_ON_RELEASE: u32 = 1074050817;
+pub const SIOCGSTAMP_NEW: u32 = 2148567302;
+pub const RTC_WKALM_RD: u32 = 2150133776;
+pub const PHN_GET_REG: u32 = 3221778432;
+pub const DELL_WMI_SMBIOS_CMD: u32 = 3224655616;
+pub const PHN_NOT_OH: u32 = 28676;
+pub const PPGETMODES: u32 = 2147774615;
+pub const CHIOGPARAMS: u32 = 2148819718;
+pub const VFIO_DEVICE_GET_GFX_DMABUF: u32 = 15219;
+pub const VHOST_SET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310947;
+pub const VIDIOC_SUBDEV_G_SELECTION: u32 = 3225441853;
+pub const BTRFS_IOC_RM_DEV_V2: u32 = 1342215226;
+pub const MGSL_IOCWAITGPIO: u32 = 3222301970;
+pub const PMU_IOC_CAN_SLEEP: u32 = 2148024837;
+pub const KCOV_ENABLE: u32 = 25444;
+pub const BTRFS_IOC_CLONE: u32 = 1074041865;
+pub const F2FS_IOC_DEFRAGMENT: u32 = 3222336776;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE: u32 = 1074012942;
+pub const AGPIOC_ALLOCATE: u32 = 3221766406;
+pub const NE_SET_USER_MEMORY_REGION: u32 = 1075359267;
+pub const MGSL_IOCTXABORT: u32 = 27910;
+pub const MGSL_IOCSGPIO: u32 = 1074818320;
+pub const LIRC_SET_REC_CARRIER: u32 = 1074030868;
+pub const F2FS_IOC_FLUSH_DEVICE: u32 = 1074328842;
+pub const SNAPSHOT_ATOMIC_RESTORE: u32 = 13060;
+pub const RTC_UIE_OFF: u32 = 28676;
+pub const BT_BMC_IOCTL_SMS_ATN: u32 = 45312;
+pub const NVME_IOCTL_ID: u32 = 20032;
+pub const NE_START_ENCLAVE: u32 = 3222318628;
+pub const VIDIOC_STREAMON: u32 = 1074026002;
+pub const FDPOLLDRVSTAT: u32 = 2152727059;
+pub const AUTOFS_DEV_IOCTL_READY: u32 = 3222836086;
+pub const VIDIOC_ENUMAUDOUT: u32 = 3224655426;
+pub const VIDIOC_SUBDEV_S_STD: u32 = 1074288152;
+pub const WDIOC_GETTIMELEFT: u32 = 2147768074;
+pub const ATM_GETLINKRATE: u32 = 1074815361;
+pub const RTC_WKALM_SET: u32 = 1076391951;
+pub const VHOST_GET_BACKEND_FEATURES: u32 = 2148052774;
+pub const ATMARP_ENCAP: u32 = 25061;
+pub const CAPI_GET_FLAGS: u32 = 2147762979;
+pub const IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772696;
+pub const DFL_FPGA_FME_PORT_ASSIGN: u32 = 1074050690;
+pub const NS_GET_OWNER_UID: u32 = 46852;
+pub const VIDIOC_OVERLAY: u32 = 1074025998;
+pub const BTRFS_IOC_WAIT_SYNC: u32 = 1074304022;
+pub const GPIOHANDLE_SET_CONFIG_IOCTL: u32 = 3226776586;
+pub const VHOST_GET_VRING_ENDIAN: u32 = 1074310932;
+pub const ATM_GETADDR: u32 = 1074815366;
+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 = 13067;
+pub const JSIOCSAXMAP: u32 = 1077963313;
+pub const F2FS_IOC_SET_COMPRESS_OPTION: u32 = 1073935638;
+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 = 15216;
+pub const VIDIOC_SUBDEV_ENUM_MBUS_CODE: u32 = 3224393218;
+pub const MMTIMER_GETOFFSET: u32 = 27904;
+pub const RIO_CM_CHAN_LISTEN: u32 = 1073898246;
+pub const ATM_SETSC: u32 = 1074029041;
+pub const F2FS_IOC_SHUTDOWN: u32 = 2147768445;
+pub const NVME_IOCTL_RESCAN: u32 = 20038;
+pub const BLKOPENZONE: u32 = 1074795142;
+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 = 25056;
+pub const IPMI_BMC_IOCTL_CLEAR_SMS_ATN: u32 = 45313;
+pub const HIDIOCGVERSION: u32 = 2147764225;
+pub const VIDIOC_S_INPUT: u32 = 3221509671;
+pub const VIDIOC_G_CROP: u32 = 3222558267;
+pub const LIRC_SET_WIDEBAND_RECEIVER: u32 = 1074030883;
+pub const EVIOCGEFFECTS: u32 = 2147763588;
+pub const UVCIOC_CTRL_QUERY: u32 = 3222304033;
+pub const IOC_OPAL_GENERIC_TABLE_RW: u32 = 1094217963;
+pub const FS_IOC_READ_VERITY_METADATA: u32 = 3223873159;
+pub const ND_IOCTL_SET_CONFIG_DATA: u32 = 3221769734;
+pub const USBDEVFS_GETDRIVER: u32 = 1090802952;
+pub const IDT77105_GETSTAT: u32 = 1074815282;
+pub const HIDIOCINITREPORT: u32 = 18437;
+pub const VFIO_DEVICE_GET_INFO: u32 = 15211;
+pub const RIO_CM_CHAN_RECEIVE: u32 = 3222299402;
+pub const RNDGETENTCNT: u32 = 2147766784;
+pub const PPPIOCNEWUNIT: u32 = 3221517374;
+pub const BTRFS_IOC_INO_LOOKUP: u32 = 3489698834;
+pub const FDRESET: u32 = 596;
+pub const IOC_PR_REGISTER: u32 = 1075343560;
+pub const HIDIOCSREPORT: u32 = 1074546696;
+pub const TEE_IOC_OPEN_SESSION: u32 = 2148574210;
+pub const TEE_IOC_SUPPL_RECV: u32 = 2148574214;
+pub const BTRFS_IOC_BALANCE_CTL: u32 = 1074041889;
+pub const GPIO_GET_LINEINFO_WATCH_IOCTL: u32 = 3225990155;
+pub const HIDIOCGRAWINFO: u32 = 2148026371;
+pub const PPPIOCSCOMPRESS: u32 = 1074820173;
+pub const USBDEVFS_CONNECTINFO: u32 = 1074287889;
+pub const BLKRESETZONE: u32 = 1074795139;
+pub const CHIOINITELEM: u32 = 25361;
+pub const NILFS_IOCTL_SET_ALLOC_RANGE: u32 = 1074818700;
+pub const AUTOFS_DEV_IOCTL_CATATONIC: u32 = 3222836089;
+pub const RIO_MPORT_MAINT_HDID_SET: u32 = 1073900801;
+pub const PPGETPHASE: u32 = 2147774617;
+pub const USBDEVFS_DISCONNECT_CLAIM: u32 = 2164806939;
+pub const FDMSGON: u32 = 581;
+pub const VIDIOC_G_SLICED_VBI_CAP: u32 = 3228849733;
+pub const BTRFS_IOC_BALANCE_V2: u32 = 3288372256;
+pub const MEDIA_REQUEST_IOC_REINIT: u32 = 31873;
+pub const IOC_OPAL_ERASE_LR: u32 = 1091596518;
+pub const FDFMTBEG: u32 = 583;
+pub const RNDRESEEDCRNG: u32 = 20999;
+pub const ISST_IF_GET_PHY_ID: u32 = 3221814785;
+pub const TUNSETNOCSUM: u32 = 1074025672;
+pub const SONET_GETSTAT: u32 = 2149867792;
+pub const TFD_IOC_SET_TICKS: u32 = 1074287616;
+pub const PPDATADIR: u32 = 1074032784;
+pub const IOC_OPAL_ENABLE_DISABLE_MBR: u32 = 1091596517;
+pub const GPIO_V2_GET_LINE_IOCTL: u32 = 3260068871;
+pub const RIO_CM_CHAN_SEND: u32 = 1074815753;
+pub const PPWCTLONIRQ: u32 = 1073836178;
+pub const SONYPI_IOCGBRT: u32 = 2147579392;
+pub const IOC_PR_RELEASE: u32 = 1074819274;
+pub const PPCLRIRQ: u32 = 2147774611;
+pub const IPMICTL_SET_MY_CHANNEL_LUN_CMD: u32 = 2147772698;
+pub const MGSL_IOCSXSYNC: u32 = 27923;
+pub const HPET_IE_OFF: u32 = 26626;
+pub const IOC_OPAL_ACTIVATE_USR: u32 = 1091596513;
+pub const SONET_SETFRAMING: u32 = 1074028821;
+pub const PERF_EVENT_IOC_PAUSE_OUTPUT: u32 = 1074013193;
+pub const BTRFS_IOC_LOGICAL_INO_V2: u32 = 3224933435;
+pub const VBG_IOCTL_HGCM_CONNECT: u32 = 3231471108;
+pub const BLKFINISHZONE: u32 = 1074795144;
+pub const EVIOCREVOKE: u32 = 1074021777;
+pub const VFIO_DEVICE_FEATURE: u32 = 15221;
+pub const CCISS_GETPCIINFO: u32 = 2148024833;
+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 = 1074026003;
+pub const VDUSE_DESTROY_DEV: u32 = 1090552067;
+pub const FDGETFDCSTAT: u32 = 2150105621;
+pub const VIDIOC_S_PRIORITY: u32 = 1074026052;
+pub const SNAPSHOT_FREEZE: u32 = 13057;
+pub const VIDIOC_ENUMINPUT: u32 = 3226490394;
+pub const ZATM_GETPOOLZ: u32 = 1074815330;
+pub const RIO_DISABLE_DOORBELL_RANGE: u32 = 1074294026;
+pub const GPIO_V2_GET_LINEINFO_WATCH_IOCTL: u32 = 3238048774;
+pub const VIDIOC_G_STD: u32 = 2148029975;
+pub const USBDEVFS_ALLOW_SUSPEND: u32 = 21794;
+pub const SONET_GETSTATZ: u32 = 2149867793;
+pub const SCIF_ACCEPTREG: u32 = 3221779205;
+pub const VIDIOC_ENCODER_CMD: u32 = 3223869005;
+pub const PPPIOCSRASYNCMAP: u32 = 1074033748;
+pub const IOCTL_MEI_NOTIFY_SET: u32 = 1074022402;
+pub const BTRFS_IOC_QUOTA_RESCAN_STATUS: u32 = 2151715885;
+pub const F2FS_IOC_GARBAGE_COLLECT: u32 = 1074066694;
+pub const ATMLEC_CTRL: u32 = 25040;
+pub const MATROXFB_GET_AVAILABLE_OUTPUTS: u32 = 2148036345;
+pub const DM_DEV_CREATE: u32 = 3241737475;
+pub const VHOST_VDPA_GET_VRING_NUM: u32 = 2147659638;
+pub const VIDIOC_G_CTRL: u32 = 3221771803;
+pub const NBD_CLEAR_SOCK: u32 = 43780;
+pub const VFIO_DEVICE_QUERY_GFX_PLANE: u32 = 15218;
+pub const WDIOC_KEEPALIVE: u32 = 2147768069;
+pub const NVME_IOCTL_SUBSYS_RESET: u32 = 20037;
+pub const PTP_EXTTS_REQUEST2: u32 = 1074806027;
+pub const PCITEST_BAR: u32 = 20481;
+pub const MGSL_IOCGGPIO: u32 = 2148560145;
+pub const EVIOCSREP: u32 = 1074283779;
+pub const VFIO_DEVICE_GET_IRQ_INFO: u32 = 15213;
+pub const HPET_DPI: u32 = 26629;
+pub const VDUSE_VQ_SETUP_KICKFD: u32 = 1074299158;
+pub const ND_IOCTL_CALL: u32 = 3225439754;
+pub const HIDIOCGDEVINFO: u32 = 2149337091;
+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 = 2147767875;
+pub const ATM_NEWBACKENDIF: u32 = 1073897971;
+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 = 1076909650;
+pub const DM_TABLE_LOAD: u32 = 3241737481;
+pub const F2FS_IOC_START_ATOMIC_WRITE: u32 = 62721;
+pub const VIDIOC_G_OUTPUT: u32 = 2147767854;
+pub const ATM_DROPPARTY: u32 = 1074029045;
+pub const CHIOGELEM: u32 = 1080845072;
+pub const BTRFS_IOC_GET_SUPPORTED_FEATURES: u32 = 2152240185;
+pub const EVIOCSKEYCODE: u32 = 1074283780;
+pub const NE_GET_IMAGE_LOAD_INFO: u32 = 3222318626;
+pub const TUNSETLINK: u32 = 1074025677;
+pub const FW_CDEV_IOC_ADD_DESCRIPTOR: u32 = 3222807302;
+pub const BTRFS_IOC_SCRUB_CANCEL: u32 = 37916;
+pub const PPS_SETPARAMS: u32 = 1074294946;
+pub const IOC_OPAL_LR_SETUP: u32 = 1093169379;
+pub const FW_CDEV_IOC_DEALLOCATE: u32 = 1074012931;
+pub const WDIOC_SETTIMEOUT: u32 = 3221509894;
+pub const IOC_WATCH_QUEUE_SET_FILTER: u32 = 22369;
+pub const CAPI_GET_MANUFACTURER: u32 = 3221504774;
+pub const VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY: u32 = 15222;
+pub const ASPEED_P2A_CTRL_IOCTL_SET_WINDOW: u32 = 1074836224;
+pub const VIDIOC_G_EDID: u32 = 3223868968;
+pub const F2FS_IOC_GARBAGE_COLLECT_RANGE: u32 = 1075377419;
+pub const RIO_MAP_INBOUND: u32 = 3223874833;
+pub const IOC_OPAL_TAKE_OWNERSHIP: u32 = 1091072222;
+pub const USBDEVFS_CLAIM_PORT: u32 = 2147767576;
+pub const VIDIOC_S_AUDIO: u32 = 1077171746;
+pub const FS_IOC_GET_ENCRYPTION_NONCE: u32 = 2148558363;
+pub const FW_CDEV_IOC_SEND_STREAM_PACKET: u32 = 1076372243;
+pub const BTRFS_IOC_SNAP_DESTROY: u32 = 1342215183;
+pub const SNAPSHOT_FREE: u32 = 13061;
+pub const I8K_GET_SPEED: u32 = 3221776773;
+pub const HIDIOCGREPORT: u32 = 1074546695;
+pub const HPET_EPI: u32 = 26628;
+pub const JSIOCSCORR: u32 = 1076128289;
+pub const IOC_PR_PREEMPT_ABORT: u32 = 1075343564;
+pub const RIO_MAP_OUTBOUND: u32 = 3223874831;
+pub const ATM_SETESI: u32 = 1074815372;
+pub const FW_CDEV_IOC_START_ISO: u32 = 1074799370;
+pub const ATM_DELADDR: u32 = 1074815369;
+pub const PPFCONTROL: u32 = 1073901710;
+pub const SONYPI_IOCGFAN: u32 = 2147579402;
+pub const RTC_IRQP_SET: u32 = 1074294796;
+pub const PCITEST_WRITE: u32 = 1074286596;
+pub const PPCLAIM: u32 = 28811;
+pub const VIDIOC_S_JPEGCOMP: u32 = 1082938942;
+pub const IPMICTL_UNREGISTER_FOR_CMD: u32 = 2147641615;
+pub const VHOST_SET_FEATURES: u32 = 1074310912;
+pub const TOSHIBA_ACPI_SCI: u32 = 3222828177;
+pub const VIDIOC_DQBUF: u32 = 3227014673;
+pub const BTRFS_IOC_BALANCE_PROGRESS: u32 = 2214630434;
+pub const BTRFS_IOC_SUBVOL_SETFLAGS: u32 = 1074304026;
+pub const ATMLEC_MCAST: u32 = 25042;
+pub const MMTIMER_GETFREQ: u32 = 2148035842;
+pub const VIDIOC_G_SELECTION: u32 = 3225441886;
+pub const RTC_ALM_SET: u32 = 1076129799;
+pub const PPPOEIOCSFWD: u32 = 1074311424;
+pub const IPMICTL_GET_MAINTENANCE_MODE_CMD: u32 = 2147772702;
+pub const FS_IOC_ENABLE_VERITY: u32 = 1082156677;
+pub const NILFS_IOCTL_GET_BDESCS: u32 = 3222826631;
+pub const FDFMTEND: u32 = 585;
+pub const DMA_BUF_SET_NAME: u32 = 1074291201;
+pub const UI_BEGIN_FF_UPLOAD: u32 = 3228063176;
+pub const RTC_UIE_ON: u32 = 28675;
+pub const PPRELEASE: u32 = 28812;
+pub const VFIO_IOMMU_UNMAP_DMA: u32 = 15218;
+pub const VIDIOC_OMAP3ISP_PRV_CFG: u32 = 3228587714;
+pub const GPIO_GET_LINEHANDLE_IOCTL: u32 = 3245126659;
+pub const VFAT_IOCTL_READDIR_BOTH: u32 = 2184212993;
+pub const NVME_IOCTL_ADMIN_CMD: u32 = 3225964097;
+pub const VHOST_SET_VRING_KICK: u32 = 1074310944;
+pub const BTRFS_IOC_SUBVOL_CREATE_V2: u32 = 1342215192;
+pub const BTRFS_IOC_SNAP_CREATE: u32 = 1342215169;
+pub const SONYPI_IOCGBAT2CAP: u32 = 2147644932;
+pub const PPNEGOT: u32 = 1074032785;
+pub const NBD_PRINT_DEBUG: u32 = 43782;
+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 = 2214630431;
+pub const VIDIOC_ENUM_FMT: u32 = 3225441794;
+pub const VIDIOC_G_INPUT: u32 = 2147767846;
+pub const VTPM_PROXY_IOC_NEW_DEV: u32 = 3222577408;
+pub const DFL_FPGA_FME_ERR_GET_IRQ_NUM: u32 = 2147792515;
+pub const ND_IOCTL_DIMM_FLAGS: u32 = 3221769731;
+pub const BTRFS_IOC_QUOTA_RESCAN: u32 = 1077974060;
+pub const MMTIMER_GETCOUNTER: u32 = 2148035849;
+pub const MATROXFB_GET_OUTPUT_MODE: u32 = 3221778170;
+pub const BTRFS_IOC_QUOTA_RESCAN_WAIT: u32 = 37934;
+pub const RIO_CM_CHAN_BIND: u32 = 1074291461;
+pub const HIDIOCGRDESC: u32 = 2416199682;
+pub const MGSL_IOCGIF: u32 = 27915;
+pub const VIDIOC_S_OUTPUT: u32 = 3221509679;
+pub const HIDIOCGREPORTINFO: u32 = 3222030345;
+pub const WDIOC_GETBOOTSTATUS: u32 = 2147768066;
+pub const VDUSE_VQ_GET_INFO: u32 = 3224404245;
+pub const ACRN_IOCTL_ASSIGN_PCIDEV: u32 = 1076142677;
+pub const BLKGETDISKSEQ: u32 = 2148012672;
+pub const ACRN_IOCTL_PM_GET_CPU_STATE: u32 = 3221791328;
+pub const ACRN_IOCTL_DESTROY_VM: u32 = 41489;
+pub const ACRN_IOCTL_SET_PTDEV_INTR: u32 = 1075094099;
+pub const ACRN_IOCTL_CREATE_IOREQ_CLIENT: u32 = 41522;
+pub const ACRN_IOCTL_IRQFD: u32 = 1075356273;
+pub const ACRN_IOCTL_CREATE_VM: u32 = 3224412688;
+pub const ACRN_IOCTL_INJECT_MSI: u32 = 1074831907;
+pub const ACRN_IOCTL_ATTACH_IOREQ_CLIENT: u32 = 41523;
+pub const ACRN_IOCTL_RESET_PTDEV_INTR: u32 = 1075094100;
+pub const ACRN_IOCTL_NOTIFY_REQUEST_FINISH: u32 = 1074307633;
+pub const ACRN_IOCTL_SET_IRQLINE: u32 = 1074307621;
+pub const ACRN_IOCTL_START_VM: u32 = 41490;
+pub const ACRN_IOCTL_SET_VCPU_REGS: u32 = 1093181974;
+pub const ACRN_IOCTL_SET_MEMSEG: u32 = 1075880513;
+pub const ACRN_IOCTL_PAUSE_VM: u32 = 41491;
+pub const ACRN_IOCTL_CLEAR_VM_IOREQ: u32 = 41525;
+pub const ACRN_IOCTL_UNSET_MEMSEG: u32 = 1075880514;
+pub const ACRN_IOCTL_IOEVENTFD: u32 = 1075880560;
+pub const ACRN_IOCTL_DEASSIGN_PCIDEV: u32 = 1076142678;
+pub const ACRN_IOCTL_RESET_VM: u32 = 41493;
+pub const ACRN_IOCTL_DESTROY_IOREQ_CLIENT: u32 = 41524;
+pub const ACRN_IOCTL_VM_INTR_MONITOR: u32 = 1074307620;
diff --git a/vendor/linux-raw-sys-0.9.4/src/x32/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/x32/landlock.rs
new file mode 100644
index 0000000..ddc8754
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/landlock.rs
@@ -0,0 +1,100 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x32/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/x32/loop_device.rs
new file mode 100644
index 0000000..5d72b9e
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/loop_device.rs
@@ -0,0 +1,134 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/x32/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/x32/mempolicy.rs
new file mode 100644
index 0000000..ad4957c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/mempolicy.rs
@@ -0,0 +1,175 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
+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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x32/net.rs b/vendor/linux-raw-sys-0.9.4/src/x32/net.rs
new file mode 100644
index 0000000..481e766
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/net.rs
@@ -0,0 +1,3429 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u32; 67usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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 SIOCGSTAMP_OLD: u32 = 35078;
+pub const SIOCGSTAMPNS_OLD: u32 = 35079;
+pub const SOL_SOCKET: u32 = 1;
+pub const SO_DEBUG: u32 = 1;
+pub const SO_REUSEADDR: u32 = 2;
+pub const SO_TYPE: u32 = 3;
+pub const SO_ERROR: u32 = 4;
+pub const SO_DONTROUTE: u32 = 5;
+pub const SO_BROADCAST: u32 = 6;
+pub const SO_SNDBUF: u32 = 7;
+pub const SO_RCVBUF: u32 = 8;
+pub const SO_SNDBUFFORCE: u32 = 32;
+pub const SO_RCVBUFFORCE: u32 = 33;
+pub const SO_KEEPALIVE: u32 = 9;
+pub const SO_OOBINLINE: u32 = 10;
+pub const SO_NO_CHECK: u32 = 11;
+pub const SO_PRIORITY: u32 = 12;
+pub const SO_LINGER: u32 = 13;
+pub const SO_BSDCOMPAT: u32 = 14;
+pub const SO_REUSEPORT: u32 = 15;
+pub const SO_PASSCRED: u32 = 16;
+pub const SO_PEERCRED: u32 = 17;
+pub const SO_RCVLOWAT: u32 = 18;
+pub const SO_SNDLOWAT: u32 = 19;
+pub const SO_RCVTIMEO_OLD: u32 = 20;
+pub const SO_SNDTIMEO_OLD: u32 = 21;
+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_ACCEPTCONN: u32 = 30;
+pub const SO_PEERSEC: u32 = 31;
+pub const SO_PASSSEC: u32 = 34;
+pub const SO_MARK: u32 = 36;
+pub const SO_PROTOCOL: u32 = 38;
+pub const SO_DOMAIN: u32 = 39;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+pub const SO_TIMESTAMP: u32 = 29;
+pub const SO_TIMESTAMPNS: u32 = 35;
+pub const SO_TIMESTAMPING: u32 = 37;
+pub const SO_RCVTIMEO: u32 = 20;
+pub const SO_SNDTIMEO: u32 = 21;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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 = 1;
+pub const SOCK_DGRAM: u32 = 2;
+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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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 = 32768,
+TCP_FLAG_ECE = 16384,
+TCP_FLAG_URG = 8192,
+TCP_FLAG_ACK = 4096,
+TCP_FLAG_PSH = 2048,
+TCP_FLAG_RST = 1024,
+TCP_FLAG_SYN = 512,
+TCP_FLAG_FIN = 256,
+TCP_RESERVED_BITS = 15,
+TCP_DATA_OFFSET = 240,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn ihl(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_ihl(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(ihl: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let ihl: u8 = unsafe { ::core::mem::transmute(ihl) };
+ihl as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl ipv6hdr {
+#[inline]
+pub fn priority(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_priority(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(priority: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let priority: u8 = unsafe { ::core::mem::transmute(priority) };
+priority as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcphdr {
+#[inline]
+pub fn res1(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_res1(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn doff(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_doff(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn fin(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_fin(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn syn(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_syn(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn rst(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_rst(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn psh(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_psh(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ack(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ack(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn urg(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_urg(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ece(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ece(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn cwr(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_cwr(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(res1: __u16, doff: __u16, fin: __u16, syn: __u16, rst: __u16, psh: __u16, ack: __u16, urg: __u16, ece: __u16, cwr: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let res1: u16 = unsafe { ::core::mem::transmute(res1) };
+res1 as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let doff: u16 = unsafe { ::core::mem::transmute(doff) };
+doff as u64
+});
+__bindgen_bitfield_unit.set(8usize, 1u8, {
+let fin: u16 = unsafe { ::core::mem::transmute(fin) };
+fin as u64
+});
+__bindgen_bitfield_unit.set(9usize, 1u8, {
+let syn: u16 = unsafe { ::core::mem::transmute(syn) };
+syn as u64
+});
+__bindgen_bitfield_unit.set(10usize, 1u8, {
+let rst: u16 = unsafe { ::core::mem::transmute(rst) };
+rst as u64
+});
+__bindgen_bitfield_unit.set(11usize, 1u8, {
+let psh: u16 = unsafe { ::core::mem::transmute(psh) };
+psh as u64
+});
+__bindgen_bitfield_unit.set(12usize, 1u8, {
+let ack: u16 = unsafe { ::core::mem::transmute(ack) };
+ack as u64
+});
+__bindgen_bitfield_unit.set(13usize, 1u8, {
+let urg: u16 = unsafe { ::core::mem::transmute(urg) };
+urg as u64
+});
+__bindgen_bitfield_unit.set(14usize, 1u8, {
+let ece: u16 = unsafe { ::core::mem::transmute(ece) };
+ece as u64
+});
+__bindgen_bitfield_unit.set(15usize, 1u8, {
+let cwr: u16 = unsafe { ::core::mem::transmute(cwr) };
+cwr 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x32/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/x32/netlink.rs
new file mode 100644
index 0000000..2964383
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/netlink.rs
@@ -0,0 +1,2946 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_nl {
+pub nl_family: __kernel_sa_family_t,
+pub nl_pad: crate::ctypes::c_ushort,
+pub nl_pid: __u32,
+pub nl_groups: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsghdr {
+pub nlmsg_len: __u32,
+pub nlmsg_type: __u16,
+pub nlmsg_flags: __u16,
+pub nlmsg_seq: __u32,
+pub nlmsg_pid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsgerr {
+pub error: crate::ctypes::c_int,
+pub msg: nlmsghdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_pktinfo {
+pub group: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_req {
+pub nm_block_size: crate::ctypes::c_uint,
+pub nm_block_nr: crate::ctypes::c_uint,
+pub nm_frame_size: crate::ctypes::c_uint,
+pub nm_frame_nr: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_hdr {
+pub nm_status: crate::ctypes::c_uint,
+pub nm_len: crate::ctypes::c_uint,
+pub nm_group: __u32,
+pub nm_pid: __u32,
+pub nm_uid: __u32,
+pub nm_gid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlattr {
+pub nla_len: __u16,
+pub nla_type: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nla_bitfield32 {
+pub value: __u32,
+pub selector: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats {
+pub rx_packets: __u32,
+pub tx_packets: __u32,
+pub rx_bytes: __u32,
+pub tx_bytes: __u32,
+pub rx_errors: __u32,
+pub tx_errors: __u32,
+pub rx_dropped: __u32,
+pub tx_dropped: __u32,
+pub multicast: __u32,
+pub collisions: __u32,
+pub rx_length_errors: __u32,
+pub rx_over_errors: __u32,
+pub rx_crc_errors: __u32,
+pub rx_frame_errors: __u32,
+pub rx_fifo_errors: __u32,
+pub rx_missed_errors: __u32,
+pub tx_aborted_errors: __u32,
+pub tx_carrier_errors: __u32,
+pub tx_fifo_errors: __u32,
+pub tx_heartbeat_errors: __u32,
+pub tx_window_errors: __u32,
+pub rx_compressed: __u32,
+pub tx_compressed: __u32,
+pub rx_nohandler: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+pub collisions: __u64,
+pub rx_length_errors: __u64,
+pub rx_over_errors: __u64,
+pub rx_crc_errors: __u64,
+pub rx_frame_errors: __u64,
+pub rx_fifo_errors: __u64,
+pub rx_missed_errors: __u64,
+pub tx_aborted_errors: __u64,
+pub tx_carrier_errors: __u64,
+pub tx_fifo_errors: __u64,
+pub tx_heartbeat_errors: __u64,
+pub tx_window_errors: __u64,
+pub rx_compressed: __u64,
+pub tx_compressed: __u64,
+pub rx_nohandler: __u64,
+pub rx_otherhost_dropped: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_hw_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_ifmap {
+pub mem_start: __u64,
+pub mem_end: __u64,
+pub base_addr: __u64,
+pub irq: __u16,
+pub dma: __u8,
+pub port: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_bridge_id {
+pub prio: [__u8; 2usize],
+pub addr: [__u8; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_cacheinfo {
+pub max_reasm_len: __u32,
+pub tstamp: __u32,
+pub reachable_time: __u32,
+pub retrans_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_qos_mapping {
+pub from: __u32,
+pub to: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tunnel_msg {
+pub family: __u8,
+pub flags: __u8,
+pub reserved2: __u16,
+pub ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vxlan_port_range {
+pub low: __be16,
+pub high: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_mac {
+pub vf: __u32,
+pub mac: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_broadcast {
+pub broadcast: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan_info {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+pub vlan_proto: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_tx_rate {
+pub vf: __u32,
+pub rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rate {
+pub vf: __u32,
+pub min_tx_rate: __u32,
+pub max_tx_rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_spoofchk {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_guid {
+pub vf: __u32,
+pub guid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_link_state {
+pub vf: __u32,
+pub link_state: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rss_query_en {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_trust {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_port_vsi {
+pub vsi_mgr_id: __u8,
+pub vsi_type_id: [__u8; 3usize],
+pub vsi_type_version: __u8,
+pub pad: [__u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_stats_msg {
+pub family: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub ifindex: __u32,
+pub filter_mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_rmnet_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifaddrmsg {
+pub ifa_family: __u8,
+pub ifa_prefixlen: __u8,
+pub ifa_flags: __u8,
+pub ifa_scope: __u8,
+pub ifa_index: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifa_cacheinfo {
+pub ifa_prefered: __u32,
+pub ifa_valid: __u32,
+pub cstamp: __u32,
+pub tstamp: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndmsg {
+pub ndm_family: __u8,
+pub ndm_pad1: __u8,
+pub ndm_pad2: __u16,
+pub ndm_ifindex: __s32,
+pub ndm_state: __u16,
+pub ndm_flags: __u8,
+pub ndm_type: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nda_cacheinfo {
+pub ndm_confirmed: __u32,
+pub ndm_used: __u32,
+pub ndm_updated: __u32,
+pub ndm_refcnt: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_stats {
+pub ndts_allocs: __u64,
+pub ndts_destroys: __u64,
+pub ndts_hash_grows: __u64,
+pub ndts_res_failed: __u64,
+pub ndts_lookups: __u64,
+pub ndts_hits: __u64,
+pub ndts_rcv_probes_mcast: __u64,
+pub ndts_rcv_probes_ucast: __u64,
+pub ndts_periodic_gc_runs: __u64,
+pub ndts_forced_gc_runs: __u64,
+pub ndts_table_fulls: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndtmsg {
+pub ndtm_family: __u8,
+pub ndtm_pad1: __u8,
+pub ndtm_pad2: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_config {
+pub ndtc_key_len: __u16,
+pub ndtc_entry_size: __u16,
+pub ndtc_entries: __u32,
+pub ndtc_last_flush: __u32,
+pub ndtc_last_rand: __u32,
+pub ndtc_hash_rnd: __u32,
+pub ndtc_hash_mask: __u32,
+pub ndtc_hash_chain_gc: __u32,
+pub ndtc_proxy_qlen: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtattr {
+pub rta_len: crate::ctypes::c_ushort,
+pub rta_type: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtmsg {
+pub rtm_family: crate::ctypes::c_uchar,
+pub rtm_dst_len: crate::ctypes::c_uchar,
+pub rtm_src_len: crate::ctypes::c_uchar,
+pub rtm_tos: crate::ctypes::c_uchar,
+pub rtm_table: crate::ctypes::c_uchar,
+pub rtm_protocol: crate::ctypes::c_uchar,
+pub rtm_scope: crate::ctypes::c_uchar,
+pub rtm_type: crate::ctypes::c_uchar,
+pub rtm_flags: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnexthop {
+pub rtnh_len: crate::ctypes::c_ushort,
+pub rtnh_flags: crate::ctypes::c_uchar,
+pub rtnh_hops: crate::ctypes::c_uchar,
+pub rtnh_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct rtvia {
+pub rtvia_family: __kernel_sa_family_t,
+pub rtvia_addr: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_cacheinfo {
+pub rta_clntref: __u32,
+pub rta_lastuse: __u32,
+pub rta_expires: __s32,
+pub rta_error: __u32,
+pub rta_used: __u32,
+pub rta_id: __u32,
+pub rta_ts: __u32,
+pub rta_tsage: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rta_session {
+pub proto: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub u: rta_session__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_1 {
+pub sport: __u16,
+pub dport: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_2 {
+pub type_: __u8,
+pub code: __u8,
+pub ident: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_mfc_stats {
+pub mfcs_packets: __u64,
+pub mfcs_bytes: __u64,
+pub mfcs_wrong_if: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtgenmsg {
+pub rtgen_family: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifinfomsg {
+pub ifi_family: crate::ctypes::c_uchar,
+pub __ifi_pad: crate::ctypes::c_uchar,
+pub ifi_type: crate::ctypes::c_ushort,
+pub ifi_index: crate::ctypes::c_int,
+pub ifi_flags: crate::ctypes::c_uint,
+pub ifi_change: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefixmsg {
+pub prefix_family: crate::ctypes::c_uchar,
+pub prefix_pad1: crate::ctypes::c_uchar,
+pub prefix_pad2: crate::ctypes::c_ushort,
+pub prefix_ifindex: crate::ctypes::c_int,
+pub prefix_type: crate::ctypes::c_uchar,
+pub prefix_len: crate::ctypes::c_uchar,
+pub prefix_flags: crate::ctypes::c_uchar,
+pub prefix_pad3: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefix_cacheinfo {
+pub preferred_time: __u32,
+pub valid_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcmsg {
+pub tcm_family: crate::ctypes::c_uchar,
+pub tcm__pad1: crate::ctypes::c_uchar,
+pub tcm__pad2: crate::ctypes::c_ushort,
+pub tcm_ifindex: crate::ctypes::c_int,
+pub tcm_handle: __u32,
+pub tcm_parent: __u32,
+pub tcm_info: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nduseroptmsg {
+pub nduseropt_family: crate::ctypes::c_uchar,
+pub nduseropt_pad1: crate::ctypes::c_uchar,
+pub nduseropt_opts_len: crate::ctypes::c_ushort,
+pub nduseropt_ifindex: crate::ctypes::c_int,
+pub nduseropt_icmp_type: __u8,
+pub nduseropt_icmp_code: __u8,
+pub nduseropt_pad2: crate::ctypes::c_ushort,
+pub nduseropt_pad3: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcamsg {
+pub tca_family: crate::ctypes::c_uchar,
+pub tca__pad1: crate::ctypes::c_uchar,
+pub tca__pad2: crate::ctypes::c_ushort,
+}
+pub const _K_SS_MAXSIZE: u32 = 128;
+pub const SOCK_SNDBUF_LOCK: u32 = 1;
+pub const SOCK_RCVBUF_LOCK: u32 = 2;
+pub const SOCK_BUF_LOCK_MASK: u32 = 3;
+pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
+pub const SOCK_TXREHASH_DISABLED: u32 = 0;
+pub const SOCK_TXREHASH_ENABLED: u32 = 1;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/x32/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/x32/prctl.rs
new file mode 100644
index 0000000..8335e21
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/prctl.rs
@@ -0,0 +1,262 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/x32/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/x32/ptrace.rs
new file mode 100644
index 0000000..bee9b4c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/ptrace.rs
@@ -0,0 +1,899 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pt_regs {
+pub r15: crate::ctypes::c_ulong,
+pub r14: crate::ctypes::c_ulong,
+pub r13: crate::ctypes::c_ulong,
+pub r12: crate::ctypes::c_ulong,
+pub rbp: crate::ctypes::c_ulong,
+pub rbx: crate::ctypes::c_ulong,
+pub r11: crate::ctypes::c_ulong,
+pub r10: crate::ctypes::c_ulong,
+pub r9: crate::ctypes::c_ulong,
+pub r8: crate::ctypes::c_ulong,
+pub rax: crate::ctypes::c_ulong,
+pub rcx: crate::ctypes::c_ulong,
+pub rdx: crate::ctypes::c_ulong,
+pub rsi: crate::ctypes::c_ulong,
+pub rdi: crate::ctypes::c_ulong,
+pub orig_rax: crate::ctypes::c_ulong,
+pub rip: crate::ctypes::c_ulong,
+pub cs: crate::ctypes::c_ulong,
+pub eflags: crate::ctypes::c_ulong,
+pub rsp: crate::ctypes::c_ulong,
+pub ss: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const FRAME_SIZE: u32 = 168;
+pub const PTRACE_GETREGS: u32 = 12;
+pub const PTRACE_SETREGS: u32 = 13;
+pub const PTRACE_GETFPREGS: u32 = 14;
+pub const PTRACE_SETFPREGS: u32 = 15;
+pub const PTRACE_GETFPXREGS: u32 = 18;
+pub const PTRACE_SETFPXREGS: u32 = 19;
+pub const PTRACE_OLDSETOPTIONS: u32 = 21;
+pub const PTRACE_GET_THREAD_AREA: u32 = 25;
+pub const PTRACE_SET_THREAD_AREA: u32 = 26;
+pub const PTRACE_ARCH_PRCTL: u32 = 30;
+pub const PTRACE_SYSEMU: u32 = 31;
+pub const PTRACE_SYSEMU_SINGLESTEP: u32 = 32;
+pub const PTRACE_SINGLEBLOCK: u32 = 33;
+pub const X86_EFLAGS_CF_BIT: u32 = 0;
+pub const X86_EFLAGS_FIXED_BIT: u32 = 1;
+pub const X86_EFLAGS_PF_BIT: u32 = 2;
+pub const X86_EFLAGS_AF_BIT: u32 = 4;
+pub const X86_EFLAGS_ZF_BIT: u32 = 6;
+pub const X86_EFLAGS_SF_BIT: u32 = 7;
+pub const X86_EFLAGS_TF_BIT: u32 = 8;
+pub const X86_EFLAGS_IF_BIT: u32 = 9;
+pub const X86_EFLAGS_DF_BIT: u32 = 10;
+pub const X86_EFLAGS_OF_BIT: u32 = 11;
+pub const X86_EFLAGS_IOPL_BIT: u32 = 12;
+pub const X86_EFLAGS_NT_BIT: u32 = 14;
+pub const X86_EFLAGS_RF_BIT: u32 = 16;
+pub const X86_EFLAGS_VM_BIT: u32 = 17;
+pub const X86_EFLAGS_AC_BIT: u32 = 18;
+pub const X86_EFLAGS_VIF_BIT: u32 = 19;
+pub const X86_EFLAGS_VIP_BIT: u32 = 20;
+pub const X86_EFLAGS_ID_BIT: u32 = 21;
+pub const X86_CR0_PE_BIT: u32 = 0;
+pub const X86_CR0_MP_BIT: u32 = 1;
+pub const X86_CR0_EM_BIT: u32 = 2;
+pub const X86_CR0_TS_BIT: u32 = 3;
+pub const X86_CR0_ET_BIT: u32 = 4;
+pub const X86_CR0_NE_BIT: u32 = 5;
+pub const X86_CR0_WP_BIT: u32 = 16;
+pub const X86_CR0_AM_BIT: u32 = 18;
+pub const X86_CR0_NW_BIT: u32 = 29;
+pub const X86_CR0_CD_BIT: u32 = 30;
+pub const X86_CR0_PG_BIT: u32 = 31;
+pub const X86_CR3_PWT_BIT: u32 = 3;
+pub const X86_CR3_PCD_BIT: u32 = 4;
+pub const X86_CR3_PCID_BITS: u32 = 12;
+pub const X86_CR3_LAM_U57_BIT: u32 = 61;
+pub const X86_CR3_LAM_U48_BIT: u32 = 62;
+pub const X86_CR3_PCID_NOFLUSH_BIT: u32 = 63;
+pub const X86_CR4_VME_BIT: u32 = 0;
+pub const X86_CR4_PVI_BIT: u32 = 1;
+pub const X86_CR4_TSD_BIT: u32 = 2;
+pub const X86_CR4_DE_BIT: u32 = 3;
+pub const X86_CR4_PSE_BIT: u32 = 4;
+pub const X86_CR4_PAE_BIT: u32 = 5;
+pub const X86_CR4_MCE_BIT: u32 = 6;
+pub const X86_CR4_PGE_BIT: u32 = 7;
+pub const X86_CR4_PCE_BIT: u32 = 8;
+pub const X86_CR4_OSFXSR_BIT: u32 = 9;
+pub const X86_CR4_OSXMMEXCPT_BIT: u32 = 10;
+pub const X86_CR4_UMIP_BIT: u32 = 11;
+pub const X86_CR4_LA57_BIT: u32 = 12;
+pub const X86_CR4_VMXE_BIT: u32 = 13;
+pub const X86_CR4_SMXE_BIT: u32 = 14;
+pub const X86_CR4_FSGSBASE_BIT: u32 = 16;
+pub const X86_CR4_PCIDE_BIT: u32 = 17;
+pub const X86_CR4_OSXSAVE_BIT: u32 = 18;
+pub const X86_CR4_SMEP_BIT: u32 = 20;
+pub const X86_CR4_SMAP_BIT: u32 = 21;
+pub const X86_CR4_PKE_BIT: u32 = 22;
+pub const X86_CR4_CET_BIT: u32 = 23;
+pub const X86_CR4_LAM_SUP_BIT: u32 = 28;
+pub const X86_CR4_FRED_BIT: u32 = 32;
+pub const CX86_PCR0: u32 = 32;
+pub const CX86_GCR: u32 = 184;
+pub const CX86_CCR0: u32 = 192;
+pub const CX86_CCR1: u32 = 193;
+pub const CX86_CCR2: u32 = 194;
+pub const CX86_CCR3: u32 = 195;
+pub const CX86_CCR4: u32 = 232;
+pub const CX86_CCR5: u32 = 233;
+pub const CX86_CCR6: u32 = 234;
+pub const CX86_CCR7: u32 = 235;
+pub const CX86_PCR1: u32 = 240;
+pub const CX86_DIR0: u32 = 254;
+pub const CX86_DIR1: u32 = 255;
+pub const CX86_ARR_BASE: u32 = 196;
+pub const CX86_RCR_BASE: u32 = 220;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x32/system.rs b/vendor/linux-raw-sys-0.9.4/src/x32/system.rs
new file mode 100644
index 0000000..9d41eb7
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/system.rs
@@ -0,0 +1,132 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug)]
+pub struct sysinfo {
+pub uptime: __kernel_long_t,
+pub loads: [__kernel_ulong_t; 3usize],
+pub totalram: __kernel_ulong_t,
+pub freeram: __kernel_ulong_t,
+pub sharedram: __kernel_ulong_t,
+pub bufferram: __kernel_ulong_t,
+pub totalswap: __kernel_ulong_t,
+pub freeswap: __kernel_ulong_t,
+pub procs: __u16,
+pub pad: __u16,
+pub totalhigh: __kernel_ulong_t,
+pub freehigh: __kernel_ulong_t,
+pub mem_unit: __u32,
+pub _f: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct oldold_utsname {
+pub sysname: [crate::ctypes::c_char; 9usize],
+pub nodename: [crate::ctypes::c_char; 9usize],
+pub release: [crate::ctypes::c_char; 9usize],
+pub version: [crate::ctypes::c_char; 9usize],
+pub machine: [crate::ctypes::c_char; 9usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct old_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct new_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+pub domainname: [crate::ctypes::c_char; 65usize],
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x32/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/x32/xdp.rs
new file mode 100644
index 0000000..60d1259
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x32/xdp.rs
@@ -0,0 +1,191 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_long_t = crate::ctypes::c_longlong;
+pub type __kernel_ulong_t = crate::ctypes::c_ulonglong;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_t = crate::ctypes::c_uint;
+pub type __kernel_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __s128 = i128;
+pub type __u128 = u128;
+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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/x86/bootparam.rs
new file mode 100644
index 0000000..29cc138
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/bootparam.rs
@@ -0,0 +1,660 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 apm_event_t = crate::ctypes::c_ushort;
+pub type apm_eventinfo_t = crate::ctypes::c_ushort;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug)]
+pub struct setup_data {
+pub next: __u64,
+pub type_: __u32,
+pub len: __u32,
+pub data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct setup_indirect {
+pub type_: __u32,
+pub reserved: __u32,
+pub len: __u64,
+pub addr: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct boot_e820_entry {
+pub addr: __u64,
+pub size: __u64,
+pub type_: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct jailhouse_setup_data {
+pub hdr: jailhouse_setup_data__bindgen_ty_1,
+pub v1: jailhouse_setup_data__bindgen_ty_2,
+pub v2: jailhouse_setup_data__bindgen_ty_3,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct jailhouse_setup_data__bindgen_ty_1 {
+pub version: __u16,
+pub compatible_version: __u16,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct jailhouse_setup_data__bindgen_ty_2 {
+pub pm_timer_address: __u16,
+pub num_cpus: __u16,
+pub pci_mmconfig_base: __u64,
+pub tsc_khz: __u32,
+pub apic_khz: __u32,
+pub standard_ioapic: __u8,
+pub cpu_ids: [__u8; 255usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct jailhouse_setup_data__bindgen_ty_3 {
+pub flags: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ima_setup_data {
+pub addr: __u64,
+pub size: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct screen_info {
+pub orig_x: __u8,
+pub orig_y: __u8,
+pub ext_mem_k: __u16,
+pub orig_video_page: __u16,
+pub orig_video_mode: __u8,
+pub orig_video_cols: __u8,
+pub flags: __u8,
+pub unused2: __u8,
+pub orig_video_ega_bx: __u16,
+pub unused3: __u16,
+pub orig_video_lines: __u8,
+pub orig_video_isVGA: __u8,
+pub orig_video_points: __u16,
+pub lfb_width: __u16,
+pub lfb_height: __u16,
+pub lfb_depth: __u16,
+pub lfb_base: __u32,
+pub lfb_size: __u32,
+pub cl_magic: __u16,
+pub cl_offset: __u16,
+pub lfb_linelength: __u16,
+pub red_size: __u8,
+pub red_pos: __u8,
+pub green_size: __u8,
+pub green_pos: __u8,
+pub blue_size: __u8,
+pub blue_pos: __u8,
+pub rsvd_size: __u8,
+pub rsvd_pos: __u8,
+pub vesapm_seg: __u16,
+pub vesapm_off: __u16,
+pub pages: __u16,
+pub vesa_attributes: __u16,
+pub capabilities: __u32,
+pub ext_lfb_base: __u32,
+pub _reserved: [__u8; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct apm_bios_info {
+pub version: __u16,
+pub cseg: __u16,
+pub offset: __u32,
+pub cseg_16: __u16,
+pub dseg: __u16,
+pub flags: __u16,
+pub cseg_len: __u16,
+pub cseg_16_len: __u16,
+pub dseg_len: __u16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct edd_device_params {
+pub length: __u16,
+pub info_flags: __u16,
+pub num_default_cylinders: __u32,
+pub num_default_heads: __u32,
+pub sectors_per_track: __u32,
+pub number_of_sectors: __u64,
+pub bytes_per_sector: __u16,
+pub dpte_ptr: __u32,
+pub key: __u16,
+pub device_path_info_length: __u8,
+pub reserved2: __u8,
+pub reserved3: __u16,
+pub host_bus_type: [__u8; 4usize],
+pub interface_type: [__u8; 8usize],
+pub interface_path: edd_device_params__bindgen_ty_1,
+pub device_path: edd_device_params__bindgen_ty_2,
+pub reserved4: __u8,
+pub checksum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_1 {
+pub base_address: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_2 {
+pub bus: __u8,
+pub slot: __u8,
+pub function: __u8,
+pub channel: __u8,
+pub reserved: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_3 {
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_4 {
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_5 {
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_6 {
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_1 {
+pub device: __u8,
+pub reserved1: __u8,
+pub reserved2: __u16,
+pub reserved3: __u32,
+pub reserved4: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_2 {
+pub device: __u8,
+pub lun: __u8,
+pub reserved1: __u8,
+pub reserved2: __u8,
+pub reserved3: __u32,
+pub reserved4: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_3 {
+pub id: __u16,
+pub lun: __u64,
+pub reserved1: __u16,
+pub reserved2: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_4 {
+pub serial_number: __u64,
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_5 {
+pub eui: __u64,
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_6 {
+pub wwid: __u64,
+pub lun: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_7 {
+pub identity_tag: __u64,
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_8 {
+pub array_number: __u32,
+pub reserved1: __u32,
+pub reserved2: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_9 {
+pub device: __u8,
+pub reserved1: __u8,
+pub reserved2: __u16,
+pub reserved3: __u32,
+pub reserved4: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_10 {
+pub reserved1: __u64,
+pub reserved2: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct edd_info {
+pub device: __u8,
+pub version: __u8,
+pub interface_support: __u16,
+pub legacy_max_cylinder: __u16,
+pub legacy_max_head: __u8,
+pub legacy_sectors_per_track: __u8,
+pub params: edd_device_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct edd {
+pub mbr_signature: [crate::ctypes::c_uint; 16usize],
+pub edd_info: [edd_info; 6usize],
+pub mbr_signature_nr: crate::ctypes::c_uchar,
+pub edd_info_nr: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ist_info {
+pub signature: __u32,
+pub command: __u32,
+pub event: __u32,
+pub perf_level: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct edid_info {
+pub dummy: [crate::ctypes::c_uchar; 128usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct setup_header {
+pub setup_sects: __u8,
+pub root_flags: __u16,
+pub syssize: __u32,
+pub ram_size: __u16,
+pub vid_mode: __u16,
+pub root_dev: __u16,
+pub boot_flag: __u16,
+pub jump: __u16,
+pub header: __u32,
+pub version: __u16,
+pub realmode_swtch: __u32,
+pub start_sys_seg: __u16,
+pub kernel_version: __u16,
+pub type_of_loader: __u8,
+pub loadflags: __u8,
+pub setup_move_size: __u16,
+pub code32_start: __u32,
+pub ramdisk_image: __u32,
+pub ramdisk_size: __u32,
+pub bootsect_kludge: __u32,
+pub heap_end_ptr: __u16,
+pub ext_loader_ver: __u8,
+pub ext_loader_type: __u8,
+pub cmd_line_ptr: __u32,
+pub initrd_addr_max: __u32,
+pub kernel_alignment: __u32,
+pub relocatable_kernel: __u8,
+pub min_alignment: __u8,
+pub xloadflags: __u16,
+pub cmdline_size: __u32,
+pub hardware_subarch: __u32,
+pub hardware_subarch_data: __u64,
+pub payload_offset: __u32,
+pub payload_length: __u32,
+pub setup_data: __u64,
+pub pref_address: __u64,
+pub init_size: __u32,
+pub handover_offset: __u32,
+pub kernel_info_offset: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sys_desc_table {
+pub length: __u16,
+pub table: [__u8; 14usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct olpc_ofw_header {
+pub ofw_magic: __u32,
+pub ofw_version: __u32,
+pub cif_handler: __u32,
+pub irq_desc_table: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct efi_info {
+pub efi_loader_signature: __u32,
+pub efi_systab: __u32,
+pub efi_memdesc_size: __u32,
+pub efi_memdesc_version: __u32,
+pub efi_memmap: __u32,
+pub efi_memmap_size: __u32,
+pub efi_systab_hi: __u32,
+pub efi_memmap_hi: __u32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct boot_params {
+pub screen_info: screen_info,
+pub apm_bios_info: apm_bios_info,
+pub _pad2: [__u8; 4usize],
+pub tboot_addr: __u64,
+pub ist_info: ist_info,
+pub acpi_rsdp_addr: __u64,
+pub _pad3: [__u8; 8usize],
+pub hd0_info: [__u8; 16usize],
+pub hd1_info: [__u8; 16usize],
+pub sys_desc_table: sys_desc_table,
+pub olpc_ofw_header: olpc_ofw_header,
+pub ext_ramdisk_image: __u32,
+pub ext_ramdisk_size: __u32,
+pub ext_cmd_line_ptr: __u32,
+pub _pad4: [__u8; 112usize],
+pub cc_blob_address: __u32,
+pub edid_info: edid_info,
+pub efi_info: efi_info,
+pub alt_mem_k: __u32,
+pub scratch: __u32,
+pub e820_entries: __u8,
+pub eddbuf_entries: __u8,
+pub edd_mbr_sig_buf_entries: __u8,
+pub kbd_status: __u8,
+pub secure_boot: __u8,
+pub _pad5: [__u8; 2usize],
+pub sentinel: __u8,
+pub _pad6: [__u8; 1usize],
+pub hdr: setup_header,
+pub _pad7: [__u8; 36usize],
+pub edd_mbr_sig_buffer: [__u32; 16usize],
+pub e820_table: [boot_e820_entry; 128usize],
+pub _pad8: [__u8; 48usize],
+pub eddbuf: [edd_info; 6usize],
+pub _pad9: [__u8; 276usize],
+}
+pub const SETUP_NONE: u32 = 0;
+pub const SETUP_E820_EXT: u32 = 1;
+pub const SETUP_DTB: u32 = 2;
+pub const SETUP_PCI: u32 = 3;
+pub const SETUP_EFI: u32 = 4;
+pub const SETUP_APPLE_PROPERTIES: u32 = 5;
+pub const SETUP_JAILHOUSE: u32 = 6;
+pub const SETUP_CC_BLOB: u32 = 7;
+pub const SETUP_IMA: u32 = 8;
+pub const SETUP_RNG_SEED: u32 = 9;
+pub const SETUP_ENUM_MAX: u32 = 9;
+pub const SETUP_INDIRECT: u32 = 2147483648;
+pub const SETUP_TYPE_MAX: u32 = 2147483657;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const RAMDISK_IMAGE_START_MASK: u32 = 2047;
+pub const RAMDISK_PROMPT_FLAG: u32 = 32768;
+pub const RAMDISK_LOAD_FLAG: u32 = 16384;
+pub const LOADED_HIGH: u32 = 1;
+pub const KASLR_FLAG: u32 = 2;
+pub const QUIET_FLAG: u32 = 32;
+pub const KEEP_SEGMENTS: u32 = 64;
+pub const CAN_USE_HEAP: u32 = 128;
+pub const XLF_KERNEL_64: u32 = 1;
+pub const XLF_CAN_BE_LOADED_ABOVE_4G: u32 = 2;
+pub const XLF_EFI_HANDOVER_32: u32 = 4;
+pub const XLF_EFI_HANDOVER_64: u32 = 8;
+pub const XLF_EFI_KEXEC: u32 = 16;
+pub const XLF_5LEVEL: u32 = 32;
+pub const XLF_5LEVEL_ENABLED: u32 = 64;
+pub const XLF_MEM_ENCRYPTION: u32 = 128;
+pub const VIDEO_TYPE_MDA: u32 = 16;
+pub const VIDEO_TYPE_CGA: u32 = 17;
+pub const VIDEO_TYPE_EGAM: u32 = 32;
+pub const VIDEO_TYPE_EGAC: u32 = 33;
+pub const VIDEO_TYPE_VGAC: u32 = 34;
+pub const VIDEO_TYPE_VLFB: u32 = 35;
+pub const VIDEO_TYPE_PICA_S3: u32 = 48;
+pub const VIDEO_TYPE_MIPS_G364: u32 = 49;
+pub const VIDEO_TYPE_SGI: u32 = 51;
+pub const VIDEO_TYPE_TGAC: u32 = 64;
+pub const VIDEO_TYPE_SUN: u32 = 80;
+pub const VIDEO_TYPE_SUNPCI: u32 = 81;
+pub const VIDEO_TYPE_PMAC: u32 = 96;
+pub const VIDEO_TYPE_EFI: u32 = 112;
+pub const VIDEO_FLAGS_NOCURSOR: u32 = 1;
+pub const VIDEO_CAPABILITY_SKIP_QUIRKS: u32 = 1;
+pub const VIDEO_CAPABILITY_64BIT_BASE: u32 = 2;
+pub const APM_STATE_READY: u32 = 0;
+pub const APM_STATE_STANDBY: u32 = 1;
+pub const APM_STATE_SUSPEND: u32 = 2;
+pub const APM_STATE_OFF: u32 = 3;
+pub const APM_STATE_BUSY: u32 = 4;
+pub const APM_STATE_REJECT: u32 = 5;
+pub const APM_STATE_OEM_SYS: u32 = 32;
+pub const APM_STATE_OEM_DEV: u32 = 64;
+pub const APM_STATE_DISABLE: u32 = 0;
+pub const APM_STATE_ENABLE: u32 = 1;
+pub const APM_STATE_DISENGAGE: u32 = 0;
+pub const APM_STATE_ENGAGE: u32 = 1;
+pub const APM_SYS_STANDBY: u32 = 1;
+pub const APM_SYS_SUSPEND: u32 = 2;
+pub const APM_NORMAL_RESUME: u32 = 3;
+pub const APM_CRITICAL_RESUME: u32 = 4;
+pub const APM_LOW_BATTERY: u32 = 5;
+pub const APM_POWER_STATUS_CHANGE: u32 = 6;
+pub const APM_UPDATE_TIME: u32 = 7;
+pub const APM_CRITICAL_SUSPEND: u32 = 8;
+pub const APM_USER_STANDBY: u32 = 9;
+pub const APM_USER_SUSPEND: u32 = 10;
+pub const APM_STANDBY_RESUME: u32 = 11;
+pub const APM_CAPABILITY_CHANGE: u32 = 12;
+pub const APM_USER_HIBERNATION: u32 = 13;
+pub const APM_HIBERNATION_RESUME: u32 = 14;
+pub const APM_SUCCESS: u32 = 0;
+pub const APM_DISABLED: u32 = 1;
+pub const APM_CONNECTED: u32 = 2;
+pub const APM_NOT_CONNECTED: u32 = 3;
+pub const APM_16_CONNECTED: u32 = 5;
+pub const APM_16_UNSUPPORTED: u32 = 6;
+pub const APM_32_CONNECTED: u32 = 7;
+pub const APM_32_UNSUPPORTED: u32 = 8;
+pub const APM_BAD_DEVICE: u32 = 9;
+pub const APM_BAD_PARAM: u32 = 10;
+pub const APM_NOT_ENGAGED: u32 = 11;
+pub const APM_BAD_FUNCTION: u32 = 12;
+pub const APM_RESUME_DISABLED: u32 = 13;
+pub const APM_NO_ERROR: u32 = 83;
+pub const APM_BAD_STATE: u32 = 96;
+pub const APM_NO_EVENTS: u32 = 128;
+pub const APM_NOT_PRESENT: u32 = 134;
+pub const APM_DEVICE_BIOS: u32 = 0;
+pub const APM_DEVICE_ALL: u32 = 1;
+pub const APM_DEVICE_DISPLAY: u32 = 256;
+pub const APM_DEVICE_STORAGE: u32 = 512;
+pub const APM_DEVICE_PARALLEL: u32 = 768;
+pub const APM_DEVICE_SERIAL: u32 = 1024;
+pub const APM_DEVICE_NETWORK: u32 = 1280;
+pub const APM_DEVICE_PCMCIA: u32 = 1536;
+pub const APM_DEVICE_BATTERY: u32 = 32768;
+pub const APM_DEVICE_OEM: u32 = 57344;
+pub const APM_DEVICE_OLD_ALL: u32 = 65535;
+pub const APM_DEVICE_CLASS: u32 = 255;
+pub const APM_DEVICE_MASK: u32 = 65280;
+pub const APM_MAX_BATTERIES: u32 = 2;
+pub const APM_CAP_GLOBAL_STANDBY: u32 = 1;
+pub const APM_CAP_GLOBAL_SUSPEND: u32 = 2;
+pub const APM_CAP_RESUME_STANDBY_TIMER: u32 = 4;
+pub const APM_CAP_RESUME_SUSPEND_TIMER: u32 = 8;
+pub const APM_CAP_RESUME_STANDBY_RING: u32 = 16;
+pub const APM_CAP_RESUME_SUSPEND_RING: u32 = 32;
+pub const APM_CAP_RESUME_STANDBY_PCMCIA: u32 = 64;
+pub const APM_CAP_RESUME_SUSPEND_PCMCIA: u32 = 128;
+pub const _IOC_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+pub const EDDNR: u32 = 489;
+pub const EDDBUF: u32 = 3328;
+pub const EDDMAXNR: u32 = 6;
+pub const EDDEXTSIZE: u32 = 8;
+pub const EDDPARMSIZE: u32 = 74;
+pub const CHECKEXTENSIONSPRESENT: u32 = 65;
+pub const GETDEVICEPARAMETERS: u32 = 72;
+pub const LEGACYGETDEVICEPARAMETERS: u32 = 8;
+pub const EDDMAGIC1: u32 = 21930;
+pub const EDDMAGIC2: u32 = 43605;
+pub const READ_SECTORS: u32 = 2;
+pub const EDD_MBR_SIG_OFFSET: u32 = 440;
+pub const EDD_MBR_SIG_BUF: u32 = 656;
+pub const EDD_MBR_SIG_MAX: u32 = 16;
+pub const EDD_MBR_SIG_NR_BUF: u32 = 490;
+pub const EDD_EXT_FIXED_DISK_ACCESS: u32 = 1;
+pub const EDD_EXT_DEVICE_LOCKING_AND_EJECTING: u32 = 2;
+pub const EDD_EXT_ENHANCED_DISK_DRIVE_SUPPORT: u32 = 4;
+pub const EDD_EXT_64BIT_EXTENSIONS: u32 = 8;
+pub const EDD_INFO_DMA_BOUNDARY_ERROR_TRANSPARENT: u32 = 1;
+pub const EDD_INFO_GEOMETRY_VALID: u32 = 2;
+pub const EDD_INFO_REMOVABLE: u32 = 4;
+pub const EDD_INFO_WRITE_VERIFY: u32 = 8;
+pub const EDD_INFO_MEDIA_CHANGE_NOTIFICATION: u32 = 16;
+pub const EDD_INFO_LOCKABLE: u32 = 32;
+pub const EDD_INFO_NO_MEDIA_PRESENT: u32 = 64;
+pub const EDD_INFO_USE_INT13_FN50: u32 = 128;
+pub const E820_MAX_ENTRIES_ZEROPAGE: u32 = 128;
+pub const JAILHOUSE_SETUP_REQUIRED_VERSION: u32 = 1;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum x86_hardware_subarch {
+X86_SUBARCH_PC = 0,
+X86_SUBARCH_LGUEST = 1,
+X86_SUBARCH_XEN = 2,
+X86_SUBARCH_INTEL_MID = 3,
+X86_SUBARCH_CE4100 = 4,
+X86_NR_SUBARCHS = 5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union edd_device_params__bindgen_ty_1 {
+pub isa: edd_device_params__bindgen_ty_1__bindgen_ty_1,
+pub pci: edd_device_params__bindgen_ty_1__bindgen_ty_2,
+pub ibnd: edd_device_params__bindgen_ty_1__bindgen_ty_3,
+pub xprs: edd_device_params__bindgen_ty_1__bindgen_ty_4,
+pub htpt: edd_device_params__bindgen_ty_1__bindgen_ty_5,
+pub unknown: edd_device_params__bindgen_ty_1__bindgen_ty_6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union edd_device_params__bindgen_ty_2 {
+pub ata: edd_device_params__bindgen_ty_2__bindgen_ty_1,
+pub atapi: edd_device_params__bindgen_ty_2__bindgen_ty_2,
+pub scsi: edd_device_params__bindgen_ty_2__bindgen_ty_3,
+pub usb: edd_device_params__bindgen_ty_2__bindgen_ty_4,
+pub i1394: edd_device_params__bindgen_ty_2__bindgen_ty_5,
+pub fibre: edd_device_params__bindgen_ty_2__bindgen_ty_6,
+pub i2o: edd_device_params__bindgen_ty_2__bindgen_ty_7,
+pub raid: edd_device_params__bindgen_ty_2__bindgen_ty_8,
+pub sata: edd_device_params__bindgen_ty_2__bindgen_ty_9,
+pub unknown: edd_device_params__bindgen_ty_2__bindgen_ty_10,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/x86/btrfs.rs
new file mode 100644
index 0000000..60a5d05
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/btrfs.rs
@@ -0,0 +1,1866 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const _IOC_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/x86/elf_uapi.rs
new file mode 100644
index 0000000..187f123
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/elf_uapi.rs
@@ -0,0 +1,522 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86/errno.rs b/vendor/linux-raw-sys-0.9.4/src/x86/errno.rs
new file mode 100644
index 0000000..5b018a2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/errno.rs
@@ -0,0 +1,135 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86/general.rs b/vendor/linux-raw-sys-0.9.4/src/x86/general.rs
new file mode 100644
index 0000000..3c6c4e2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/general.rs
@@ -0,0 +1,3361 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type __fsword_t = __u32;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 32usize],
+}
+#[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 epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 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)]
+#[repr(align(8))]
+#[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(Copy, Clone)]
+pub struct sigaction {
+pub _u: sigaction__bindgen_ty_1,
+pub sa_mask: sigset_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_restorer: ::core::option::Option<unsafe extern "C" fn()>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigaltstack {
+pub ss_sp: *mut crate::ctypes::c_void,
+pub ss_flags: crate::ctypes::c_int,
+pub ss_size: __kernel_size_t,
+}
+#[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; 4usize],
+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; 4usize],
+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_errno: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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; 19usize],
+}
+#[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; 19usize],
+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; 19usize],
+pub c_ispeed: speed_t,
+pub c_ospeed: speed_t,
+}
+#[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_uchar,
+pub c_cc: [crate::ctypes::c_uchar; 8usize],
+}
+#[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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulonglong,
+pub d_off: crate::ctypes::c_longlong,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: crate::ctypes::c_ulong,
+pub st_ino: crate::ctypes::c_ulong,
+pub st_mode: crate::ctypes::c_ushort,
+pub st_nlink: crate::ctypes::c_ushort,
+pub st_uid: crate::ctypes::c_ushort,
+pub st_gid: crate::ctypes::c_ushort,
+pub st_rdev: crate::ctypes::c_ulong,
+pub st_size: crate::ctypes::c_ulong,
+pub st_blksize: crate::ctypes::c_ulong,
+pub st_blocks: crate::ctypes::c_ulong,
+pub st_atime: crate::ctypes::c_ulong,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_ulong,
+pub st_mtime_nsec: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_ulong,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub __unused4: crate::ctypes::c_ulong,
+pub __unused5: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat64 {
+pub st_dev: crate::ctypes::c_ulonglong,
+pub __pad0: [crate::ctypes::c_uchar; 4usize],
+pub __st_ino: crate::ctypes::c_ulong,
+pub st_mode: crate::ctypes::c_uint,
+pub st_nlink: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_ulong,
+pub st_gid: crate::ctypes::c_ulong,
+pub st_rdev: crate::ctypes::c_ulonglong,
+pub __pad3: [crate::ctypes::c_uchar; 4usize],
+pub st_size: crate::ctypes::c_longlong,
+pub st_blksize: crate::ctypes::c_ulong,
+pub st_blocks: crate::ctypes::c_ulonglong,
+pub st_atime: crate::ctypes::c_ulong,
+pub st_atime_nsec: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_ulong,
+pub st_mtime_nsec: crate::ctypes::c_uint,
+pub st_ctime: crate::ctypes::c_ulong,
+pub st_ctime_nsec: crate::ctypes::c_ulong,
+pub st_ino: crate::ctypes::c_ulonglong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __old_kernel_stat {
+pub st_dev: crate::ctypes::c_ushort,
+pub st_ino: crate::ctypes::c_ushort,
+pub st_mode: crate::ctypes::c_ushort,
+pub st_nlink: crate::ctypes::c_ushort,
+pub st_uid: crate::ctypes::c_ushort,
+pub st_gid: crate::ctypes::c_ushort,
+pub st_rdev: crate::ctypes::c_ushort,
+pub st_size: crate::ctypes::c_ulong,
+pub st_atime: crate::ctypes::c_ulong,
+pub st_mtime: crate::ctypes::c_ulong,
+pub st_ctime: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u32,
+pub f_bfree: __u32,
+pub f_bavail: __u32,
+pub f_files: __u32,
+pub f_ffree: __u32,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[repr(C, packed(4))]
+#[derive(Debug, Copy, Clone)]
+pub struct compat_statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[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_restorer: __sigrestore_t,
+pub sa_mask: kernel_sigset_t,
+}
+pub const LINUX_VERSION_CODE: u32 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+pub const LINUX_VERSION_SUBLEVEL: u32 = 0;
+pub const AT_SYSINFO: u32 = 32;
+pub const AT_SYSINFO_EHDR: u32 = 33;
+pub const AT_VECTOR_SIZE_ARCH: u32 = 3;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+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_ACCMODE: u32 = 3;
+pub const O_RDONLY: u32 = 0;
+pub const O_WRONLY: u32 = 1;
+pub const O_RDWR: u32 = 2;
+pub const O_CREAT: u32 = 64;
+pub const O_EXCL: u32 = 128;
+pub const O_NOCTTY: u32 = 256;
+pub const O_TRUNC: u32 = 512;
+pub const O_APPEND: u32 = 1024;
+pub const O_NONBLOCK: u32 = 2048;
+pub const O_DSYNC: u32 = 4096;
+pub const FASYNC: u32 = 8192;
+pub const O_DIRECT: u32 = 16384;
+pub const O_LARGEFILE: u32 = 32768;
+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_SYNC: u32 = 1048576;
+pub const O_SYNC: u32 = 1052672;
+pub const O_PATH: u32 = 2097152;
+pub const __O_TMPFILE: u32 = 4194304;
+pub const O_TMPFILE: u32 = 4259840;
+pub const O_NDELAY: u32 = 2048;
+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_GETLK: u32 = 5;
+pub const F_SETLK: u32 = 6;
+pub const F_SETLKW: u32 = 7;
+pub const F_SETOWN: u32 = 8;
+pub const F_GETOWN: u32 = 9;
+pub const F_SETSIG: u32 = 10;
+pub const F_GETSIG: u32 = 11;
+pub const F_GETLK64: u32 = 12;
+pub const F_SETLK64: u32 = 13;
+pub const F_SETLKW64: u32 = 14;
+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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 = 2048;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+pub const MAP_32BIT: u32 = 64;
+pub const MAP_ABOVE4G: u32 = 128;
+pub const PROT_READ: u32 = 1;
+pub const PROT_WRITE: u32 = 2;
+pub const PROT_EXEC: u32 = 4;
+pub const PROT_SEM: u32 = 8;
+pub const PROT_NONE: u32 = 0;
+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_ANONYMOUS: u32 = 32;
+pub const MAP_POPULATE: u32 = 32768;
+pub const MAP_NONBLOCK: u32 = 65536;
+pub const MAP_STACK: u32 = 131072;
+pub const MAP_HUGETLB: u32 = 262144;
+pub const MAP_SYNC: u32 = 524288;
+pub const MAP_FIXED_NOREPLACE: u32 = 1048576;
+pub const MAP_UNINITIALIZED: u32 = 67108864;
+pub const MLOCK_ONFAULT: u32 = 1;
+pub const MS_ASYNC: u32 = 1;
+pub const MS_INVALIDATE: u32 = 2;
+pub const MS_SYNC: u32 = 4;
+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_HWPOISON: u32 = 100;
+pub const MADV_SOFT_OFFLINE: u32 = 101;
+pub const MADV_MERGEABLE: u32 = 12;
+pub const MADV_UNMERGEABLE: u32 = 13;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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 MAP_GROWSDOWN: u32 = 256;
+pub const MAP_DENYWRITE: u32 = 2048;
+pub const MAP_EXECUTABLE: u32 = 4096;
+pub const MAP_LOCKED: u32 = 8192;
+pub const MAP_NORESERVE: u32 = 16384;
+pub const MCL_CURRENT: u32 = 1;
+pub const MCL_FUTURE: u32 = 2;
+pub const MCL_ONFAULT: u32 = 4;
+pub const SHADOW_STACK_SET_TOKEN: u32 = 1;
+pub const SHADOW_STACK_SET_MARKER: u32 = 2;
+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_DROPPABLE: u32 = 8;
+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 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 POLLWRNORM: u32 = 256;
+pub const POLLWRBAND: u32 = 512;
+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 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_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_RSS: u32 = 5;
+pub const RLIMIT_NPROC: u32 = 6;
+pub const RLIMIT_NOFILE: u32 = 7;
+pub const RLIMIT_MEMLOCK: u32 = 8;
+pub const RLIMIT_AS: u32 = 9;
+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_EXT: u32 = 7;
+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 = 32;
+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 SIGABRT: u32 = 6;
+pub const SIGIOT: u32 = 6;
+pub const SIGBUS: u32 = 7;
+pub const SIGFPE: u32 = 8;
+pub const SIGKILL: u32 = 9;
+pub const SIGUSR1: u32 = 10;
+pub const SIGSEGV: u32 = 11;
+pub const SIGUSR2: u32 = 12;
+pub const SIGPIPE: u32 = 13;
+pub const SIGALRM: u32 = 14;
+pub const SIGTERM: u32 = 15;
+pub const SIGSTKFLT: u32 = 16;
+pub const SIGCHLD: u32 = 17;
+pub const SIGCONT: u32 = 18;
+pub const SIGSTOP: u32 = 19;
+pub const SIGTSTP: u32 = 20;
+pub const SIGTTIN: u32 = 21;
+pub const SIGTTOU: u32 = 22;
+pub const SIGURG: u32 = 23;
+pub const SIGXCPU: u32 = 24;
+pub const SIGXFSZ: u32 = 25;
+pub const SIGVTALRM: u32 = 26;
+pub const SIGPROF: u32 = 27;
+pub const SIGWINCH: u32 = 28;
+pub const SIGIO: u32 = 29;
+pub const SIGPOLL: u32 = 29;
+pub const SIGPWR: u32 = 30;
+pub const SIGSYS: u32 = 31;
+pub const SIGUNUSED: u32 = 31;
+pub const SIGRTMIN: u32 = 32;
+pub const SA_RESTORER: u32 = 67108864;
+pub const MINSIGSTKSZ: u32 = 2048;
+pub const SIGSTKSZ: u32 = 8192;
+pub const SA_NOCLDSTOP: u32 = 1;
+pub const SA_NOCLDWAIT: u32 = 2;
+pub const SA_SIGINFO: u32 = 4;
+pub const SA_UNSUPPORTED: u32 = 1024;
+pub const SA_EXPOSE_TAGBITS: u32 = 2048;
+pub const SA_ONSTACK: u32 = 134217728;
+pub const SA_RESTART: u32 = 268435456;
+pub const SA_NODEFER: u32 = 1073741824;
+pub const SA_RESETHAND: u32 = 2147483648;
+pub const SA_NOMASK: u32 = 1073741824;
+pub const SA_ONESHOT: u32 = 2147483648;
+pub const SIG_BLOCK: u32 = 0;
+pub const SIG_UNBLOCK: u32 = 1;
+pub const SIG_SETMASK: u32 = 2;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 = 19;
+pub const VINTR: u32 = 0;
+pub const VQUIT: u32 = 1;
+pub const VERASE: u32 = 2;
+pub const VKILL: u32 = 3;
+pub const VEOF: u32 = 4;
+pub const VTIME: u32 = 5;
+pub const VMIN: u32 = 6;
+pub const VSWTC: u32 = 7;
+pub const VSTART: u32 = 8;
+pub const VSTOP: u32 = 9;
+pub const VSUSP: u32 = 10;
+pub const VEOL: u32 = 11;
+pub const VREPRINT: u32 = 12;
+pub const VDISCARD: u32 = 13;
+pub const VWERASE: u32 = 14;
+pub const VLNEXT: u32 = 15;
+pub const VEOL2: u32 = 16;
+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 TOSTOP: u32 = 256;
+pub const ECHOCTL: u32 = 512;
+pub const ECHOPRT: u32 = 1024;
+pub const ECHOKE: u32 = 2048;
+pub const FLUSHO: u32 = 4096;
+pub const PENDIN: u32 = 16384;
+pub const IEXTEN: u32 = 32768;
+pub const EXTPROC: u32 = 65536;
+pub const TCSANOW: u32 = 0;
+pub const TCSADRAIN: u32 = 1;
+pub const TCSAFLUSH: u32 = 2;
+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 TIOCSER_TEMT: u32 = 1;
+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 = 8;
+pub const TIOCM_SR: u32 = 16;
+pub const TIOCM_CTS: u32 = 32;
+pub const TIOCM_CAR: u32 = 64;
+pub const TIOCM_RNG: u32 = 128;
+pub const TIOCM_DSR: u32 = 256;
+pub const TIOCM_CD: u32 = 64;
+pub const TIOCM_RI: u32 = 128;
+pub const TIOCM_OUT1: u32 = 8192;
+pub const TIOCM_OUT2: u32 = 16384;
+pub const TIOCM_LOOP: u32 = 32768;
+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 UIO_FASTIOV: u32 = 8;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const __X32_SYSCALL_BIT: u32 = 1073741824;
+pub const __NR_restart_syscall: u32 = 0;
+pub const __NR_exit: u32 = 1;
+pub const __NR_fork: u32 = 2;
+pub const __NR_read: u32 = 3;
+pub const __NR_write: u32 = 4;
+pub const __NR_open: u32 = 5;
+pub const __NR_close: u32 = 6;
+pub const __NR_waitpid: u32 = 7;
+pub const __NR_creat: u32 = 8;
+pub const __NR_link: u32 = 9;
+pub const __NR_unlink: u32 = 10;
+pub const __NR_execve: u32 = 11;
+pub const __NR_chdir: u32 = 12;
+pub const __NR_time: u32 = 13;
+pub const __NR_mknod: u32 = 14;
+pub const __NR_chmod: u32 = 15;
+pub const __NR_lchown: u32 = 16;
+pub const __NR_break: u32 = 17;
+pub const __NR_oldstat: u32 = 18;
+pub const __NR_lseek: u32 = 19;
+pub const __NR_getpid: u32 = 20;
+pub const __NR_mount: u32 = 21;
+pub const __NR_umount: u32 = 22;
+pub const __NR_setuid: u32 = 23;
+pub const __NR_getuid: u32 = 24;
+pub const __NR_stime: u32 = 25;
+pub const __NR_ptrace: u32 = 26;
+pub const __NR_alarm: u32 = 27;
+pub const __NR_oldfstat: u32 = 28;
+pub const __NR_pause: u32 = 29;
+pub const __NR_utime: u32 = 30;
+pub const __NR_stty: u32 = 31;
+pub const __NR_gtty: u32 = 32;
+pub const __NR_access: u32 = 33;
+pub const __NR_nice: u32 = 34;
+pub const __NR_ftime: u32 = 35;
+pub const __NR_sync: u32 = 36;
+pub const __NR_kill: u32 = 37;
+pub const __NR_rename: u32 = 38;
+pub const __NR_mkdir: u32 = 39;
+pub const __NR_rmdir: u32 = 40;
+pub const __NR_dup: u32 = 41;
+pub const __NR_pipe: u32 = 42;
+pub const __NR_times: u32 = 43;
+pub const __NR_prof: u32 = 44;
+pub const __NR_brk: u32 = 45;
+pub const __NR_setgid: u32 = 46;
+pub const __NR_getgid: u32 = 47;
+pub const __NR_signal: u32 = 48;
+pub const __NR_geteuid: u32 = 49;
+pub const __NR_getegid: u32 = 50;
+pub const __NR_acct: u32 = 51;
+pub const __NR_umount2: u32 = 52;
+pub const __NR_lock: u32 = 53;
+pub const __NR_ioctl: u32 = 54;
+pub const __NR_fcntl: u32 = 55;
+pub const __NR_mpx: u32 = 56;
+pub const __NR_setpgid: u32 = 57;
+pub const __NR_ulimit: u32 = 58;
+pub const __NR_oldolduname: u32 = 59;
+pub const __NR_umask: u32 = 60;
+pub const __NR_chroot: u32 = 61;
+pub const __NR_ustat: u32 = 62;
+pub const __NR_dup2: u32 = 63;
+pub const __NR_getppid: u32 = 64;
+pub const __NR_getpgrp: u32 = 65;
+pub const __NR_setsid: u32 = 66;
+pub const __NR_sigaction: u32 = 67;
+pub const __NR_sgetmask: u32 = 68;
+pub const __NR_ssetmask: u32 = 69;
+pub const __NR_setreuid: u32 = 70;
+pub const __NR_setregid: u32 = 71;
+pub const __NR_sigsuspend: u32 = 72;
+pub const __NR_sigpending: u32 = 73;
+pub const __NR_sethostname: u32 = 74;
+pub const __NR_setrlimit: u32 = 75;
+pub const __NR_getrlimit: u32 = 76;
+pub const __NR_getrusage: u32 = 77;
+pub const __NR_gettimeofday: u32 = 78;
+pub const __NR_settimeofday: u32 = 79;
+pub const __NR_getgroups: u32 = 80;
+pub const __NR_setgroups: u32 = 81;
+pub const __NR_select: u32 = 82;
+pub const __NR_symlink: u32 = 83;
+pub const __NR_oldlstat: u32 = 84;
+pub const __NR_readlink: u32 = 85;
+pub const __NR_uselib: u32 = 86;
+pub const __NR_swapon: u32 = 87;
+pub const __NR_reboot: u32 = 88;
+pub const __NR_readdir: u32 = 89;
+pub const __NR_mmap: u32 = 90;
+pub const __NR_munmap: u32 = 91;
+pub const __NR_truncate: u32 = 92;
+pub const __NR_ftruncate: u32 = 93;
+pub const __NR_fchmod: u32 = 94;
+pub const __NR_fchown: u32 = 95;
+pub const __NR_getpriority: u32 = 96;
+pub const __NR_setpriority: u32 = 97;
+pub const __NR_profil: u32 = 98;
+pub const __NR_statfs: u32 = 99;
+pub const __NR_fstatfs: u32 = 100;
+pub const __NR_ioperm: u32 = 101;
+pub const __NR_socketcall: u32 = 102;
+pub const __NR_syslog: u32 = 103;
+pub const __NR_setitimer: u32 = 104;
+pub const __NR_getitimer: u32 = 105;
+pub const __NR_stat: u32 = 106;
+pub const __NR_lstat: u32 = 107;
+pub const __NR_fstat: u32 = 108;
+pub const __NR_olduname: u32 = 109;
+pub const __NR_iopl: u32 = 110;
+pub const __NR_vhangup: u32 = 111;
+pub const __NR_idle: u32 = 112;
+pub const __NR_vm86old: u32 = 113;
+pub const __NR_wait4: u32 = 114;
+pub const __NR_swapoff: u32 = 115;
+pub const __NR_sysinfo: u32 = 116;
+pub const __NR_ipc: u32 = 117;
+pub const __NR_fsync: u32 = 118;
+pub const __NR_sigreturn: u32 = 119;
+pub const __NR_clone: u32 = 120;
+pub const __NR_setdomainname: u32 = 121;
+pub const __NR_uname: u32 = 122;
+pub const __NR_modify_ldt: u32 = 123;
+pub const __NR_adjtimex: u32 = 124;
+pub const __NR_mprotect: u32 = 125;
+pub const __NR_sigprocmask: u32 = 126;
+pub const __NR_create_module: u32 = 127;
+pub const __NR_init_module: u32 = 128;
+pub const __NR_delete_module: u32 = 129;
+pub const __NR_get_kernel_syms: u32 = 130;
+pub const __NR_quotactl: u32 = 131;
+pub const __NR_getpgid: u32 = 132;
+pub const __NR_fchdir: u32 = 133;
+pub const __NR_bdflush: u32 = 134;
+pub const __NR_sysfs: u32 = 135;
+pub const __NR_personality: u32 = 136;
+pub const __NR_afs_syscall: u32 = 137;
+pub const __NR_setfsuid: u32 = 138;
+pub const __NR_setfsgid: u32 = 139;
+pub const __NR__llseek: u32 = 140;
+pub const __NR_getdents: u32 = 141;
+pub const __NR__newselect: u32 = 142;
+pub const __NR_flock: u32 = 143;
+pub const __NR_msync: u32 = 144;
+pub const __NR_readv: u32 = 145;
+pub const __NR_writev: u32 = 146;
+pub const __NR_getsid: u32 = 147;
+pub const __NR_fdatasync: u32 = 148;
+pub const __NR__sysctl: u32 = 149;
+pub const __NR_mlock: u32 = 150;
+pub const __NR_munlock: u32 = 151;
+pub const __NR_mlockall: u32 = 152;
+pub const __NR_munlockall: u32 = 153;
+pub const __NR_sched_setparam: u32 = 154;
+pub const __NR_sched_getparam: u32 = 155;
+pub const __NR_sched_setscheduler: u32 = 156;
+pub const __NR_sched_getscheduler: u32 = 157;
+pub const __NR_sched_yield: u32 = 158;
+pub const __NR_sched_get_priority_max: u32 = 159;
+pub const __NR_sched_get_priority_min: u32 = 160;
+pub const __NR_sched_rr_get_interval: u32 = 161;
+pub const __NR_nanosleep: u32 = 162;
+pub const __NR_mremap: u32 = 163;
+pub const __NR_setresuid: u32 = 164;
+pub const __NR_getresuid: u32 = 165;
+pub const __NR_vm86: u32 = 166;
+pub const __NR_query_module: u32 = 167;
+pub const __NR_poll: u32 = 168;
+pub const __NR_nfsservctl: u32 = 169;
+pub const __NR_setresgid: u32 = 170;
+pub const __NR_getresgid: u32 = 171;
+pub const __NR_prctl: u32 = 172;
+pub const __NR_rt_sigreturn: u32 = 173;
+pub const __NR_rt_sigaction: u32 = 174;
+pub const __NR_rt_sigprocmask: u32 = 175;
+pub const __NR_rt_sigpending: u32 = 176;
+pub const __NR_rt_sigtimedwait: u32 = 177;
+pub const __NR_rt_sigqueueinfo: u32 = 178;
+pub const __NR_rt_sigsuspend: u32 = 179;
+pub const __NR_pread64: u32 = 180;
+pub const __NR_pwrite64: u32 = 181;
+pub const __NR_chown: u32 = 182;
+pub const __NR_getcwd: u32 = 183;
+pub const __NR_capget: u32 = 184;
+pub const __NR_capset: u32 = 185;
+pub const __NR_sigaltstack: u32 = 186;
+pub const __NR_sendfile: u32 = 187;
+pub const __NR_getpmsg: u32 = 188;
+pub const __NR_putpmsg: u32 = 189;
+pub const __NR_vfork: u32 = 190;
+pub const __NR_ugetrlimit: u32 = 191;
+pub const __NR_mmap2: u32 = 192;
+pub const __NR_truncate64: u32 = 193;
+pub const __NR_ftruncate64: u32 = 194;
+pub const __NR_stat64: u32 = 195;
+pub const __NR_lstat64: u32 = 196;
+pub const __NR_fstat64: u32 = 197;
+pub const __NR_lchown32: u32 = 198;
+pub const __NR_getuid32: u32 = 199;
+pub const __NR_getgid32: u32 = 200;
+pub const __NR_geteuid32: u32 = 201;
+pub const __NR_getegid32: u32 = 202;
+pub const __NR_setreuid32: u32 = 203;
+pub const __NR_setregid32: u32 = 204;
+pub const __NR_getgroups32: u32 = 205;
+pub const __NR_setgroups32: u32 = 206;
+pub const __NR_fchown32: u32 = 207;
+pub const __NR_setresuid32: u32 = 208;
+pub const __NR_getresuid32: u32 = 209;
+pub const __NR_setresgid32: u32 = 210;
+pub const __NR_getresgid32: u32 = 211;
+pub const __NR_chown32: u32 = 212;
+pub const __NR_setuid32: u32 = 213;
+pub const __NR_setgid32: u32 = 214;
+pub const __NR_setfsuid32: u32 = 215;
+pub const __NR_setfsgid32: u32 = 216;
+pub const __NR_pivot_root: u32 = 217;
+pub const __NR_mincore: u32 = 218;
+pub const __NR_madvise: u32 = 219;
+pub const __NR_getdents64: u32 = 220;
+pub const __NR_fcntl64: u32 = 221;
+pub const __NR_gettid: u32 = 224;
+pub const __NR_readahead: u32 = 225;
+pub const __NR_setxattr: u32 = 226;
+pub const __NR_lsetxattr: u32 = 227;
+pub const __NR_fsetxattr: u32 = 228;
+pub const __NR_getxattr: u32 = 229;
+pub const __NR_lgetxattr: u32 = 230;
+pub const __NR_fgetxattr: u32 = 231;
+pub const __NR_listxattr: u32 = 232;
+pub const __NR_llistxattr: u32 = 233;
+pub const __NR_flistxattr: u32 = 234;
+pub const __NR_removexattr: u32 = 235;
+pub const __NR_lremovexattr: u32 = 236;
+pub const __NR_fremovexattr: u32 = 237;
+pub const __NR_tkill: u32 = 238;
+pub const __NR_sendfile64: u32 = 239;
+pub const __NR_futex: u32 = 240;
+pub const __NR_sched_setaffinity: u32 = 241;
+pub const __NR_sched_getaffinity: u32 = 242;
+pub const __NR_set_thread_area: u32 = 243;
+pub const __NR_get_thread_area: u32 = 244;
+pub const __NR_io_setup: u32 = 245;
+pub const __NR_io_destroy: u32 = 246;
+pub const __NR_io_getevents: u32 = 247;
+pub const __NR_io_submit: u32 = 248;
+pub const __NR_io_cancel: u32 = 249;
+pub const __NR_fadvise64: u32 = 250;
+pub const __NR_exit_group: u32 = 252;
+pub const __NR_lookup_dcookie: u32 = 253;
+pub const __NR_epoll_create: u32 = 254;
+pub const __NR_epoll_ctl: u32 = 255;
+pub const __NR_epoll_wait: u32 = 256;
+pub const __NR_remap_file_pages: u32 = 257;
+pub const __NR_set_tid_address: u32 = 258;
+pub const __NR_timer_create: u32 = 259;
+pub const __NR_timer_settime: u32 = 260;
+pub const __NR_timer_gettime: u32 = 261;
+pub const __NR_timer_getoverrun: u32 = 262;
+pub const __NR_timer_delete: u32 = 263;
+pub const __NR_clock_settime: u32 = 264;
+pub const __NR_clock_gettime: u32 = 265;
+pub const __NR_clock_getres: u32 = 266;
+pub const __NR_clock_nanosleep: u32 = 267;
+pub const __NR_statfs64: u32 = 268;
+pub const __NR_fstatfs64: u32 = 269;
+pub const __NR_tgkill: u32 = 270;
+pub const __NR_utimes: u32 = 271;
+pub const __NR_fadvise64_64: u32 = 272;
+pub const __NR_vserver: u32 = 273;
+pub const __NR_mbind: u32 = 274;
+pub const __NR_get_mempolicy: u32 = 275;
+pub const __NR_set_mempolicy: u32 = 276;
+pub const __NR_mq_open: u32 = 277;
+pub const __NR_mq_unlink: u32 = 278;
+pub const __NR_mq_timedsend: u32 = 279;
+pub const __NR_mq_timedreceive: u32 = 280;
+pub const __NR_mq_notify: u32 = 281;
+pub const __NR_mq_getsetattr: u32 = 282;
+pub const __NR_kexec_load: u32 = 283;
+pub const __NR_waitid: u32 = 284;
+pub const __NR_add_key: u32 = 286;
+pub const __NR_request_key: u32 = 287;
+pub const __NR_keyctl: u32 = 288;
+pub const __NR_ioprio_set: u32 = 289;
+pub const __NR_ioprio_get: u32 = 290;
+pub const __NR_inotify_init: u32 = 291;
+pub const __NR_inotify_add_watch: u32 = 292;
+pub const __NR_inotify_rm_watch: u32 = 293;
+pub const __NR_migrate_pages: u32 = 294;
+pub const __NR_openat: u32 = 295;
+pub const __NR_mkdirat: u32 = 296;
+pub const __NR_mknodat: u32 = 297;
+pub const __NR_fchownat: u32 = 298;
+pub const __NR_futimesat: u32 = 299;
+pub const __NR_fstatat64: u32 = 300;
+pub const __NR_unlinkat: u32 = 301;
+pub const __NR_renameat: u32 = 302;
+pub const __NR_linkat: u32 = 303;
+pub const __NR_symlinkat: u32 = 304;
+pub const __NR_readlinkat: u32 = 305;
+pub const __NR_fchmodat: u32 = 306;
+pub const __NR_faccessat: u32 = 307;
+pub const __NR_pselect6: u32 = 308;
+pub const __NR_ppoll: u32 = 309;
+pub const __NR_unshare: u32 = 310;
+pub const __NR_set_robust_list: u32 = 311;
+pub const __NR_get_robust_list: u32 = 312;
+pub const __NR_splice: u32 = 313;
+pub const __NR_sync_file_range: u32 = 314;
+pub const __NR_tee: u32 = 315;
+pub const __NR_vmsplice: u32 = 316;
+pub const __NR_move_pages: u32 = 317;
+pub const __NR_getcpu: u32 = 318;
+pub const __NR_epoll_pwait: u32 = 319;
+pub const __NR_utimensat: u32 = 320;
+pub const __NR_signalfd: u32 = 321;
+pub const __NR_timerfd_create: u32 = 322;
+pub const __NR_eventfd: u32 = 323;
+pub const __NR_fallocate: u32 = 324;
+pub const __NR_timerfd_settime: u32 = 325;
+pub const __NR_timerfd_gettime: u32 = 326;
+pub const __NR_signalfd4: u32 = 327;
+pub const __NR_eventfd2: u32 = 328;
+pub const __NR_epoll_create1: u32 = 329;
+pub const __NR_dup3: u32 = 330;
+pub const __NR_pipe2: u32 = 331;
+pub const __NR_inotify_init1: u32 = 332;
+pub const __NR_preadv: u32 = 333;
+pub const __NR_pwritev: u32 = 334;
+pub const __NR_rt_tgsigqueueinfo: u32 = 335;
+pub const __NR_perf_event_open: u32 = 336;
+pub const __NR_recvmmsg: u32 = 337;
+pub const __NR_fanotify_init: u32 = 338;
+pub const __NR_fanotify_mark: u32 = 339;
+pub const __NR_prlimit64: u32 = 340;
+pub const __NR_name_to_handle_at: u32 = 341;
+pub const __NR_open_by_handle_at: u32 = 342;
+pub const __NR_clock_adjtime: u32 = 343;
+pub const __NR_syncfs: u32 = 344;
+pub const __NR_sendmmsg: u32 = 345;
+pub const __NR_setns: u32 = 346;
+pub const __NR_process_vm_readv: u32 = 347;
+pub const __NR_process_vm_writev: u32 = 348;
+pub const __NR_kcmp: u32 = 349;
+pub const __NR_finit_module: u32 = 350;
+pub const __NR_sched_setattr: u32 = 351;
+pub const __NR_sched_getattr: u32 = 352;
+pub const __NR_renameat2: u32 = 353;
+pub const __NR_seccomp: u32 = 354;
+pub const __NR_getrandom: u32 = 355;
+pub const __NR_memfd_create: u32 = 356;
+pub const __NR_bpf: u32 = 357;
+pub const __NR_execveat: u32 = 358;
+pub const __NR_socket: u32 = 359;
+pub const __NR_socketpair: u32 = 360;
+pub const __NR_bind: u32 = 361;
+pub const __NR_connect: u32 = 362;
+pub const __NR_listen: u32 = 363;
+pub const __NR_accept4: u32 = 364;
+pub const __NR_getsockopt: u32 = 365;
+pub const __NR_setsockopt: u32 = 366;
+pub const __NR_getsockname: u32 = 367;
+pub const __NR_getpeername: u32 = 368;
+pub const __NR_sendto: u32 = 369;
+pub const __NR_sendmsg: u32 = 370;
+pub const __NR_recvfrom: u32 = 371;
+pub const __NR_recvmsg: u32 = 372;
+pub const __NR_shutdown: u32 = 373;
+pub const __NR_userfaultfd: u32 = 374;
+pub const __NR_membarrier: u32 = 375;
+pub const __NR_mlock2: u32 = 376;
+pub const __NR_copy_file_range: u32 = 377;
+pub const __NR_preadv2: u32 = 378;
+pub const __NR_pwritev2: u32 = 379;
+pub const __NR_pkey_mprotect: u32 = 380;
+pub const __NR_pkey_alloc: u32 = 381;
+pub const __NR_pkey_free: u32 = 382;
+pub const __NR_statx: u32 = 383;
+pub const __NR_arch_prctl: u32 = 384;
+pub const __NR_io_pgetevents: u32 = 385;
+pub const __NR_rseq: u32 = 386;
+pub const __NR_semget: u32 = 393;
+pub const __NR_semctl: u32 = 394;
+pub const __NR_shmget: u32 = 395;
+pub const __NR_shmctl: u32 = 396;
+pub const __NR_shmat: u32 = 397;
+pub const __NR_shmdt: u32 = 398;
+pub const __NR_msgget: u32 = 399;
+pub const __NR_msgsnd: u32 = 400;
+pub const __NR_msgrcv: u32 = 401;
+pub const __NR_msgctl: u32 = 402;
+pub const __NR_clock_gettime64: u32 = 403;
+pub const __NR_clock_settime64: u32 = 404;
+pub const __NR_clock_adjtime64: u32 = 405;
+pub const __NR_clock_getres_time64: u32 = 406;
+pub const __NR_clock_nanosleep_time64: u32 = 407;
+pub const __NR_timer_gettime64: u32 = 408;
+pub const __NR_timer_settime64: u32 = 409;
+pub const __NR_timerfd_gettime64: u32 = 410;
+pub const __NR_timerfd_settime64: u32 = 411;
+pub const __NR_utimensat_time64: u32 = 412;
+pub const __NR_pselect6_time64: u32 = 413;
+pub const __NR_ppoll_time64: u32 = 414;
+pub const __NR_io_pgetevents_time64: u32 = 416;
+pub const __NR_recvmmsg_time64: u32 = 417;
+pub const __NR_mq_timedsend_time64: u32 = 418;
+pub const __NR_mq_timedreceive_time64: u32 = 419;
+pub const __NR_semtimedop_time64: u32 = 420;
+pub const __NR_rt_sigtimedwait_time64: u32 = 421;
+pub const __NR_futex_time64: u32 = 422;
+pub const __NR_sched_rr_get_interval_time64: u32 = 423;
+pub const __NR_pidfd_send_signal: u32 = 424;
+pub const __NR_io_uring_setup: u32 = 425;
+pub const __NR_io_uring_enter: u32 = 426;
+pub const __NR_io_uring_register: u32 = 427;
+pub const __NR_open_tree: u32 = 428;
+pub const __NR_move_mount: u32 = 429;
+pub const __NR_fsopen: u32 = 430;
+pub const __NR_fsconfig: u32 = 431;
+pub const __NR_fsmount: u32 = 432;
+pub const __NR_fspick: u32 = 433;
+pub const __NR_pidfd_open: u32 = 434;
+pub const __NR_clone3: u32 = 435;
+pub const __NR_close_range: u32 = 436;
+pub const __NR_openat2: u32 = 437;
+pub const __NR_pidfd_getfd: u32 = 438;
+pub const __NR_faccessat2: u32 = 439;
+pub const __NR_process_madvise: u32 = 440;
+pub const __NR_epoll_pwait2: u32 = 441;
+pub const __NR_mount_setattr: u32 = 442;
+pub const __NR_quotactl_fd: u32 = 443;
+pub const __NR_landlock_create_ruleset: u32 = 444;
+pub const __NR_landlock_add_rule: u32 = 445;
+pub const __NR_landlock_restrict_self: u32 = 446;
+pub const __NR_memfd_secret: u32 = 447;
+pub const __NR_process_mrelease: u32 = 448;
+pub const __NR_futex_waitv: u32 = 449;
+pub const __NR_set_mempolicy_home_node: u32 = 450;
+pub const __NR_cachestat: u32 = 451;
+pub const __NR_fchmodat2: u32 = 452;
+pub const __NR_map_shadow_stack: u32 = 453;
+pub const __NR_futex_wake: u32 = 454;
+pub const __NR_futex_wait: u32 = 455;
+pub const __NR_futex_requeue: u32 = 456;
+pub const __NR_statmount: u32 = 457;
+pub const __NR_listmount: u32 = 458;
+pub const __NR_lsm_get_self_attr: u32 = 459;
+pub const __NR_lsm_set_self_attr: u32 = 460;
+pub const __NR_lsm_list_modules: u32 = 461;
+pub const __NR_mseal: u32 = 462;
+pub const __NR_setxattrat: u32 = 463;
+pub const __NR_getxattrat: u32 = 464;
+pub const __NR_listxattrat: u32 = 465;
+pub const __NR_removexattrat: u32 = 466;
+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 = 2048;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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 STAT64_HAS_BROKEN_ST_INO: 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 = 2048;
+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 = 526336;
+pub const TFD_CREATE_FLAGS: u32 = 526336;
+pub const TFD_SETTIME_FLAGS: u32 = 1;
+pub const ARCH_SET_FS: u32 = 4098;
+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 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;
+pub const _NSIG: u32 = 64;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[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 sigaction__bindgen_ty_1 {
+pub _sa_handler: __sighandler_t,
+pub _sa_sigaction: ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int, arg2: *mut siginfo, arg3: *mut crate::ctypes::c_void)>,
+}
+#[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; 13usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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.9.4/src/x86/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/x86/if_arp.rs
new file mode 100644
index 0000000..dfe4195
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/if_arp.rs
@@ -0,0 +1,2757 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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)]
+#[repr(align(8))]
+#[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)]
+#[repr(align(8))]
+#[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 id: __u16,
+pub type_flags: __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 __BITS_PER_LONG_LONG: u32 = 64;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/x86/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/x86/if_ether.rs
new file mode 100644
index 0000000..d337ab8
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/if_ether.rs
@@ -0,0 +1,168 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/x86/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/x86/if_packet.rs
new file mode 100644
index 0000000..d6a85d8
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/if_packet.rs
@@ -0,0 +1,311 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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)]
+#[repr(align(8))]
+#[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)]
+#[repr(align(8))]
+#[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 id: __u16,
+pub type_flags: __u16,
+pub max_num_members: __u32,
+}
+pub const __LITTLE_ENDIAN: u32 = 1234;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/x86/image.rs b/vendor/linux-raw-sys-0.9.4/src/x86/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/x86/io_uring.rs
new file mode 100644
index 0000000..94d26aa
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/io_uring.rs
@@ -0,0 +1,1338 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+pub cmd: __BindgenUnionField<[__u8; 0usize]>,
+pub bindgen_union_field: [u32; 4usize],
+}
+#[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 user_addr: __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 user_addr: __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)]
+#[repr(align(8))]
+#[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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[repr(C)]
+#[repr(align(8))]
+#[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)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_rsrc_update {
+pub offset: __u32,
+pub resv: __u32,
+pub data: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/x86/ioctl.rs
new file mode 100644
index 0000000..5887ebf
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/ioctl.rs
@@ -0,0 +1,1502 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub const FIONREAD: u32 = 21531;
+pub const FIONBIO: u32 = 21537;
+pub const FIOCLEX: u32 = 21585;
+pub const FIONCLEX: u32 = 21584;
+pub const FIOASYNC: u32 = 21586;
+pub const FIOQSIZE: u32 = 21600;
+pub const TCXONC: u32 = 21514;
+pub const TCFLSH: u32 = 21515;
+pub const TIOCSCTTY: u32 = 21518;
+pub const TIOCSPGRP: u32 = 21520;
+pub const TIOCOUTQ: u32 = 21521;
+pub const TIOCSTI: u32 = 21522;
+pub const TIOCSWINSZ: u32 = 21524;
+pub const TIOCMGET: u32 = 21525;
+pub const TIOCMBIS: u32 = 21526;
+pub const TIOCMBIC: u32 = 21527;
+pub const TIOCMSET: u32 = 21528;
+pub const TIOCSSOFTCAR: u32 = 21530;
+pub const TIOCLINUX: u32 = 21532;
+pub const TIOCCONS: u32 = 21533;
+pub const TIOCSSERIAL: u32 = 21535;
+pub const TIOCPKT: u32 = 21536;
+pub const TIOCNOTTY: u32 = 21538;
+pub const TIOCSETD: u32 = 21539;
+pub const TIOCSBRK: u32 = 21543;
+pub const TIOCCBRK: u32 = 21544;
+pub const TIOCSRS485: u32 = 21551;
+pub const TIOCSPTLCK: u32 = 1074025521;
+pub const TIOCSIG: u32 = 1074025526;
+pub const TIOCVHANGUP: u32 = 21559;
+pub const TIOCSERCONFIG: u32 = 21587;
+pub const TIOCSERGWILD: u32 = 21588;
+pub const TIOCSERSWILD: u32 = 21589;
+pub const TIOCSLCKTRMIOS: u32 = 21591;
+pub const TIOCSERGSTRUCT: u32 = 21592;
+pub const TIOCSERGETLSR: u32 = 21593;
+pub const TIOCSERGETMULTI: u32 = 21594;
+pub const TIOCSERSETMULTI: u32 = 21595;
+pub const TIOCMIWAIT: u32 = 21596;
+pub const TCGETS: u32 = 21505;
+pub const TCGETA: u32 = 21509;
+pub const TCSBRK: u32 = 21513;
+pub const TCSBRKP: u32 = 21541;
+pub const TCSETA: u32 = 21510;
+pub const TCSETAF: u32 = 21512;
+pub const TCSETAW: u32 = 21511;
+pub const TIOCEXCL: u32 = 21516;
+pub const TIOCNXCL: u32 = 21517;
+pub const TIOCGDEV: u32 = 2147767346;
+pub const TIOCGEXCL: u32 = 2147767360;
+pub const TIOCGICOUNT: u32 = 21597;
+pub const TIOCGLCKTRMIOS: u32 = 21590;
+pub const TIOCGPGRP: u32 = 21519;
+pub const TIOCGPKT: u32 = 2147767352;
+pub const TIOCGPTLCK: u32 = 2147767353;
+pub const TIOCGPTN: u32 = 2147767344;
+pub const TIOCGPTPEER: u32 = 21569;
+pub const TIOCGRS485: u32 = 21550;
+pub const TIOCGSERIAL: u32 = 21534;
+pub const TIOCGSID: u32 = 21545;
+pub const TIOCGSOFTCAR: u32 = 21529;
+pub const TIOCGWINSZ: u32 = 21523;
+pub const TCGETS2: u32 = 2150388778;
+pub const TCGETX: u32 = 21554;
+pub const TCSETS: u32 = 21506;
+pub const TCSETS2: u32 = 1076646955;
+pub const TCSETSF: u32 = 21508;
+pub const TCSETSF2: u32 = 1076646957;
+pub const TCSETSW: u32 = 21507;
+pub const TCSETSW2: u32 = 1076646956;
+pub const TCSETX: u32 = 21555;
+pub const TCSETXF: u32 = 21556;
+pub const TCSETXW: u32 = 21557;
+pub const TIOCGETD: u32 = 21540;
+pub const MTIOCGET: u32 = 2149346562;
+pub const BLKSSZGET: u32 = 4712;
+pub const BLKPBSZGET: u32 = 4731;
+pub const BLKROSET: u32 = 4701;
+pub const BLKROGET: u32 = 4702;
+pub const BLKRRPART: u32 = 4703;
+pub const BLKGETSIZE: u32 = 4704;
+pub const BLKFLSBUF: u32 = 4705;
+pub const BLKRASET: u32 = 4706;
+pub const BLKRAGET: u32 = 4707;
+pub const BLKFRASET: u32 = 4708;
+pub const BLKFRAGET: u32 = 4709;
+pub const BLKSECTSET: u32 = 4710;
+pub const BLKSECTGET: u32 = 4711;
+pub const BLKPG: u32 = 4713;
+pub const BLKBSZGET: u32 = 2147750512;
+pub const BLKBSZSET: u32 = 1074008689;
+pub const BLKGETSIZE64: u32 = 2147750514;
+pub const BLKTRACESETUP: u32 = 3225424499;
+pub const BLKTRACESTART: u32 = 4724;
+pub const BLKTRACESTOP: u32 = 4725;
+pub const BLKTRACETEARDOWN: u32 = 4726;
+pub const BLKDISCARD: u32 = 4727;
+pub const BLKIOMIN: u32 = 4728;
+pub const BLKIOOPT: u32 = 4729;
+pub const BLKALIGNOFF: u32 = 4730;
+pub const BLKDISCARDZEROES: u32 = 4732;
+pub const BLKSECDISCARD: u32 = 4733;
+pub const BLKROTATIONAL: u32 = 4734;
+pub const BLKZEROOUT: u32 = 4735;
+pub const FIEMAP_MAX_OFFSET: u32 = 4294967295;
+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 = 2148575745;
+pub const UFFDIO_WAKE: u32 = 2148575746;
+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 = 46849;
+pub const NS_GET_PARENT: u32 = 46850;
+pub const NS_GET_NSTYPE: u32 = 46851;
+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 = 35073;
+pub const SIOCSPGRP: u32 = 35074;
+pub const FIOGETOWN: u32 = 35075;
+pub const SIOCGPGRP: u32 = 35076;
+pub const SIOCATMARK: u32 = 35077;
+pub const SIOCGSTAMP: u32 = 35078;
+pub const TIOCINQ: u32 = 21531;
+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 = 1;
+pub const FIGETBSZ: u32 = 2;
+pub const FIFREEZE: u32 = 3221510263;
+pub const FITHAW: u32 = 3221510264;
+pub const FITRIM: u32 = 3222820985;
+pub const FICLONE: u32 = 1074041865;
+pub const FICLONERANGE: u32 = 1075876877;
+pub const FIDEDUPERANGE: u32 = 3222836278;
+pub const FS_IOC_GETFLAGS: u32 = 2147771905;
+pub const FS_IOC_SETFLAGS: u32 = 1074030082;
+pub const FS_IOC_GETVERSION: u32 = 2147776001;
+pub const FS_IOC_SETVERSION: u32 = 1074034178;
+pub const FS_IOC_FIEMAP: u32 = 3223348747;
+pub const FS_IOC32_GETFLAGS: u32 = 2147771905;
+pub const FS_IOC32_SETFLAGS: u32 = 1074030082;
+pub const FS_IOC32_GETVERSION: u32 = 2147776001;
+pub const FS_IOC32_SETVERSION: u32 = 1074034178;
+pub const FS_IOC_FSGETXATTR: u32 = 2149341215;
+pub const FS_IOC_FSSETXATTR: u32 = 1075599392;
+pub const FS_IOC_GETFSLABEL: u32 = 2164298801;
+pub const FS_IOC_SETFSLABEL: u32 = 1090556978;
+pub const EXT4_IOC_GETVERSION: u32 = 2147771907;
+pub const EXT4_IOC_SETVERSION: u32 = 1074030084;
+pub const EXT4_IOC_GETVERSION_OLD: u32 = 2147776001;
+pub const EXT4_IOC_SETVERSION_OLD: u32 = 1074034178;
+pub const EXT4_IOC_GETRSVSZ: u32 = 2147771909;
+pub const EXT4_IOC_SETRSVSZ: u32 = 1074030086;
+pub const EXT4_IOC_GROUP_EXTEND: u32 = 1074030087;
+pub const EXT4_IOC_MIGRATE: u32 = 26121;
+pub const EXT4_IOC_ALLOC_DA_BLKS: u32 = 26124;
+pub const EXT4_IOC_RESIZE_FS: u32 = 1074292240;
+pub const EXT4_IOC_SWAP_BOOT: u32 = 26129;
+pub const EXT4_IOC_PRECACHE_EXTENTS: u32 = 26130;
+pub const EXT4_IOC_CLEAR_ES_CACHE: u32 = 26152;
+pub const EXT4_IOC_GETSTATE: u32 = 1074030121;
+pub const EXT4_IOC_GET_ES_CACHE: u32 = 3223348778;
+pub const EXT4_IOC_CHECKPOINT: u32 = 1074030123;
+pub const EXT4_IOC_SHUTDOWN: u32 = 2147768445;
+pub const EXT4_IOC32_GETVERSION: u32 = 2147771907;
+pub const EXT4_IOC32_SETVERSION: u32 = 1074030084;
+pub const EXT4_IOC32_GETRSVSZ: u32 = 2147771909;
+pub const EXT4_IOC32_SETRSVSZ: u32 = 1074030086;
+pub const EXT4_IOC32_GROUP_EXTEND: u32 = 1074030087;
+pub const EXT4_IOC32_GETVERSION_OLD: u32 = 2147776001;
+pub const EXT4_IOC32_SETVERSION_OLD: u32 = 1074034178;
+pub const VIDIOC_SUBDEV_QUERYSTD: u32 = 2148030015;
+pub const AUTOFS_DEV_IOCTL_CLOSEMOUNT: u32 = 3222836085;
+pub const LIRC_SET_SEND_CARRIER: u32 = 1074030867;
+pub const AUTOFS_IOC_PROTOSUBVER: u32 = 2147783527;
+pub const PTP_SYS_OFFSET_PRECISE: u32 = 3225435400;
+pub const FSI_SCOM_WRITE: u32 = 3223352066;
+pub const ATM_GETCIRANGE: u32 = 1074553226;
+pub const DMA_BUF_SET_NAME_B: u32 = 1074291201;
+pub const RIO_CM_EP_GET_LIST_SIZE: u32 = 3221512961;
+pub const TUNSETPERSIST: u32 = 1074025675;
+pub const FS_IOC_GET_ENCRYPTION_POLICY: u32 = 1074554389;
+pub const CEC_RECEIVE: u32 = 3224920326;
+pub const MGSL_IOCGPARAMS: u32 = 2149608705;
+pub const ENI_SETMULT: u32 = 1074553191;
+pub const RIO_GET_EVENT_MASK: u32 = 2147773710;
+pub const LIRC_GET_MAX_TIMEOUT: u32 = 2147772681;
+pub const USBDEVFS_CLAIMINTERFACE: u32 = 2147767567;
+pub const CHIOMOVE: u32 = 1075077889;
+pub const SONYPI_IOCGBATFLAGS: u32 = 2147579399;
+pub const BTRFS_IOC_SYNC: u32 = 37896;
+pub const VIDIOC_TRY_FMT: u32 = 3234616896;
+pub const LIRC_SET_REC_MODE: u32 = 1074030866;
+pub const VIDIOC_DQEVENT: u32 = 2155370073;
+pub const RPMSG_DESTROY_EPT_IOCTL: u32 = 46338;
+pub const UVCIOC_CTRL_MAP: u32 = 3227022624;
+pub const VHOST_SET_BACKEND_FEATURES: u32 = 1074310949;
+pub const VHOST_VSOCK_SET_GUEST_CID: u32 = 1074311008;
+pub const UI_SET_KEYBIT: u32 = 1074025829;
+pub const LIRC_SET_REC_TIMEOUT: u32 = 1074030872;
+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 = 1074310930;
+pub const RIO_ENABLE_DOORBELL_RANGE: u32 = 1074294025;
+pub const VIDIOC_TRY_EXT_CTRLS: u32 = 3222820425;
+pub const LIRC_GET_REC_MODE: u32 = 2147772674;
+pub const PPGETTIME: u32 = 2148036757;
+pub const BTRFS_IOC_RM_DEV: u32 = 1342215179;
+pub const ATM_SETBACKEND: u32 = 1073897970;
+pub const FSL_HV_IOCTL_PARTITION_START: u32 = 3222318851;
+pub const FBIO_WAITEVENT: u32 = 18056;
+pub const SWITCHTEC_IOCTL_PORT_TO_PFF: u32 = 3222034245;
+pub const NVME_IOCTL_IO_CMD: u32 = 3225964099;
+pub const IPMICTL_RECEIVE_MSG_TRUNC: u32 = 3222825227;
+pub const FDTWADDLE: u32 = 601;
+pub const NVME_IOCTL_SUBMIT_IO: u32 = 1076645442;
+pub const NILFS_IOCTL_SYNC: u32 = 2148036234;
+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 = 2147787781;
+pub const NS_GETPSTAT: u32 = 3222036833;
+pub const UI_SET_PROPBIT: u32 = 1074025838;
+pub const TUNSETFILTEREBPF: u32 = 2147767521;
+pub const RIO_MPORT_MAINT_COMPTAG_SET: u32 = 1074031874;
+pub const AUTOFS_DEV_IOCTL_VERSION: u32 = 3222836081;
+pub const WDIOC_SETOPTIONS: u32 = 2147768068;
+pub const VHOST_SCSI_SET_ENDPOINT: u32 = 1088991040;
+pub const MGSL_IOCGTXIDLE: u32 = 27907;
+pub const ATM_ADDLECSADDR: u32 = 1074553230;
+pub const FSL_HV_IOCTL_GETPROP: u32 = 3223891719;
+pub const FDGETPRM: u32 = 2149319172;
+pub const HIDIOCAPPLICATION: u32 = 18434;
+pub const ENI_MEMDUMP: u32 = 1074553184;
+pub const PTP_SYS_OFFSET2: u32 = 1128283406;
+pub const VIDIOC_SUBDEV_G_DV_TIMINGS: u32 = 3229898328;
+pub const DMA_BUF_SET_NAME_A: u32 = 1074029057;
+pub const PTP_PIN_GETFUNC: u32 = 3227532550;
+pub const PTP_SYS_OFFSET_EXTENDED: u32 = 3300932873;
+pub const DFL_FPGA_PORT_UINT_SET_IRQ: u32 = 1074312776;
+pub const RTC_EPOCH_READ: u32 = 2147774477;
+pub const VIDIOC_SUBDEV_S_SELECTION: u32 = 3225441854;
+pub const VIDIOC_QUERY_EXT_CTRL: u32 = 3236451943;
+pub const ATM_GETLECSADDR: u32 = 1074553232;
+pub const FSL_HV_IOCTL_PARTITION_STOP: u32 = 3221794564;
+pub const SONET_GETDIAG: u32 = 2147770644;
+pub const ATMMPC_DATA: u32 = 25049;
+pub const IPMICTL_UNREGISTER_FOR_CMD_CHANS: u32 = 2148296989;
+pub const HIDIOCGCOLLECTIONINDEX: u32 = 1075333136;
+pub const RPMSG_CREATE_EPT_IOCTL: u32 = 1076409601;
+pub const GPIOHANDLE_GET_LINE_VALUES_IOCTL: u32 = 3225465864;
+pub const UI_DEV_SETUP: u32 = 1079792899;
+pub const ISST_IF_IO_CMD: u32 = 1074068994;
+pub const RIO_MPORT_MAINT_READ_REMOTE: u32 = 2149084423;
+pub const VIDIOC_OMAP3ISP_HIST_CFG: u32 = 3224393412;
+pub const BLKGETNRZONES: u32 = 2147750533;
+pub const VIDIOC_G_MODULATOR: u32 = 3225703990;
+pub const VBG_IOCTL_WRITE_CORE_DUMP: u32 = 3223082515;
+pub const USBDEVFS_SETINTERFACE: u32 = 2148029700;
+pub const PPPIOCGCHAN: u32 = 2147775543;
+pub const EVIOCGVERSION: u32 = 2147763457;
+pub const VHOST_NET_SET_BACKEND: u32 = 1074310960;
+pub const USBDEVFS_REAPURBNDELAY: u32 = 1074025741;
+pub const RNDZAPENTCNT: u32 = 20996;
+pub const VIDIOC_G_PARM: u32 = 3234616853;
+pub const TUNGETDEVNETNS: u32 = 21731;
+pub const LIRC_SET_MEASURE_CARRIER_MODE: u32 = 1074030877;
+pub const VHOST_SET_VRING_ERR: u32 = 1074310946;
+pub const VDUSE_VQ_SETUP: u32 = 1075872020;
+pub const AUTOFS_IOC_SETTIMEOUT: u32 = 3221525348;
+pub const VIDIOC_S_FREQUENCY: u32 = 1076647481;
+pub const F2FS_IOC_SEC_TRIM_FILE: u32 = 1075377428;
+pub const FS_IOC_REMOVE_ENCRYPTION_KEY: u32 = 3225445912;
+pub const WDIOC_GETPRETIMEOUT: u32 = 2147768073;
+pub const USBDEVFS_DROP_PRIVILEGES: u32 = 1074025758;
+pub const BTRFS_IOC_SNAP_CREATE_V2: u32 = 1342215191;
+pub const VHOST_VSOCK_SET_RUNNING: u32 = 1074048865;
+pub const STP_SET_OPTIONS: u32 = 1074275586;
+pub const FBIO_RADEON_GET_MIRROR: u32 = 2147762179;
+pub const IVTVFB_IOC_DMA_FRAME: u32 = 1074550464;
+pub const IPMICTL_SEND_COMMAND: u32 = 2148821261;
+pub const VIDIOC_G_ENC_INDEX: u32 = 2283296332;
+pub const DFL_FPGA_FME_PORT_PR: u32 = 46720;
+pub const CHIOSVOLTAG: u32 = 1076912914;
+pub const ATM_SETESIF: u32 = 1074553229;
+pub const FW_CDEV_IOC_SEND_RESPONSE: u32 = 1075061508;
+pub const PMU_IOC_GET_MODEL: u32 = 2147762691;
+pub const JSIOCGBTNMAP: u32 = 2214619700;
+pub const USBDEVFS_HUB_PORTINFO: u32 = 2155894035;
+pub const VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS: u32 = 3222820363;
+pub const FDCLRPRM: u32 = 577;
+pub const BTRFS_IOC_SCRUB: u32 = 3288372251;
+pub const USBDEVFS_DISCONNECT: u32 = 21782;
+pub const TUNSETVNETBE: u32 = 1074025694;
+pub const ATMTCP_REMOVE: u32 = 24975;
+pub const VHOST_VDPA_GET_CONFIG: u32 = 2148052851;
+pub const PPPIOCGNPMODE: u32 = 3221779532;
+pub const FDGETDRVPRM: u32 = 2153251345;
+pub const TUNSETVNETLE: u32 = 1074025692;
+pub const PHN_SETREG: u32 = 1074294790;
+pub const PPPIOCDETACH: u32 = 1074033724;
+pub const MMTIMER_GETRES: u32 = 2147773697;
+pub const VIDIOC_SUBDEV_ENUMSTD: u32 = 3225441817;
+pub const PPGETFLAGS: u32 = 2147774618;
+pub const VDUSE_DEV_GET_FEATURES: u32 = 2148040977;
+pub const CAPI_MANUFACTURER_CMD: u32 = 3221766944;
+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 = 2148052512;
+pub const MEDIA_IOC_ENUM_LINKS: u32 = 3223092226;
+pub const F2FS_IOC_PRECACHE_EXTENTS: u32 = 62735;
+pub const DFL_FPGA_PORT_DMA_MAP: u32 = 46659;
+pub const MGSL_IOCGXCTRL: u32 = 27926;
+pub const FW_CDEV_IOC_SEND_REQUEST: u32 = 1076110081;
+pub const SONYPI_IOCGBLUE: u32 = 2147579400;
+pub const F2FS_IOC_DECOMPRESS_FILE: u32 = 62743;
+pub const I2OHTML: u32 = 3223087369;
+pub const VFIO_GET_API_VERSION: u32 = 15204;
+pub const IDT77105_GETSTATZ: u32 = 1074553139;
+pub const I2OPARMSET: u32 = 3222825219;
+pub const TEE_IOC_CANCEL: u32 = 2148049924;
+pub const PTP_SYS_OFFSET_PRECISE2: u32 = 3225435409;
+pub const DFL_FPGA_PORT_RESET: u32 = 46656;
+pub const PPPIOCGASYNCMAP: u32 = 2147775576;
+pub const EVIOCGKEYCODE_V2: u32 = 2150122756;
+pub const DM_DEV_SET_GEOMETRY: u32 = 3241737487;
+pub const HIDIOCSUSAGE: u32 = 1075333132;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323664;
+pub const PTP_EXTTS_REQUEST: u32 = 1074806018;
+pub const SWITCHTEC_IOCTL_EVENT_CTL: u32 = 3223869251;
+pub const WDIOC_SETPRETIMEOUT: u32 = 3221509896;
+pub const VHOST_SCSI_CLEAR_ENDPOINT: u32 = 1088991041;
+pub const JSIOCGAXES: u32 = 2147576337;
+pub const HIDIOCSFLAG: u32 = 1074022415;
+pub const PTP_PEROUT_REQUEST2: u32 = 1077427468;
+pub const PPWDATA: u32 = 1073836166;
+pub const PTP_CLOCK_GETCAPS: u32 = 2152742145;
+pub const FDGETMAXERRS: u32 = 2148794894;
+pub const TUNSETQUEUE: u32 = 1074025689;
+pub const PTP_ENABLE_PPS: u32 = 1074019588;
+pub const SIOCSIFATMTCP: u32 = 24960;
+pub const CEC_ADAP_G_LOG_ADDRS: u32 = 2153537795;
+pub const ND_IOCTL_ARS_CAP: u32 = 3223342593;
+pub const NBD_SET_BLKSIZE: u32 = 43777;
+pub const NBD_SET_TIMEOUT: u32 = 43785;
+pub const VHOST_SCSI_GET_ABI_VERSION: u32 = 1074048834;
+pub const RIO_UNMAP_INBOUND: u32 = 1074294034;
+pub const ATM_QUERYLOOP: u32 = 1074553172;
+pub const DFL_FPGA_GET_API_VERSION: u32 = 46592;
+pub const USBDEVFS_WAIT_FOR_RESUME: u32 = 21795;
+pub const FBIO_CURSOR: u32 = 3225961992;
+pub const RNDCLEARPOOL: u32 = 20998;
+pub const VIDIOC_QUERYSTD: u32 = 2148030015;
+pub const DMA_BUF_IOCTL_SYNC: u32 = 1074291200;
+pub const SCIF_RECV: u32 = 3222565639;
+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 = 2150389258;
+pub const PTP_ENABLE_PPS2: u32 = 1074019597;
+pub const PCITEST_CLEAR_IRQ: u32 = 20496;
+pub const IPMICTL_SET_GETS_EVENTS_CMD: u32 = 2147772688;
+pub const BTRFS_IOC_DEVICES_READY: u32 = 2415957031;
+pub const JSIOCGAXMAP: u32 = 2151705138;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER: u32 = 2148279052;
+pub const FW_CDEV_IOC_SET_ISO_CHANNELS: u32 = 1074537239;
+pub const RTC_WIE_OFF: u32 = 28688;
+pub const PPGETMODE: u32 = 2147774616;
+pub const VIDIOC_DBG_G_REGISTER: u32 = 3224917584;
+pub const PTP_SYS_OFFSET: u32 = 1128283397;
+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 = 3223614220;
+pub const BTRFS_IOC_TRANS_START: u32 = 37894;
+pub const INOTIFY_IOC_SETNEXTWD: u32 = 1074022656;
+pub const SNAPSHOT_GET_IMAGE_SIZE: u32 = 2148021006;
+pub const TUNDETACHFILTER: u32 = 1074287830;
+pub const ND_IOCTL_CLEAR_ERROR: u32 = 3223342596;
+pub const IOC_PR_CLEAR: u32 = 1074819277;
+pub const SCIF_READFROM: u32 = 3223614218;
+pub const PPPIOCGDEBUG: u32 = 2147775553;
+pub const BLKGETZONESZ: u32 = 2147750532;
+pub const HIDIOCGUSAGES: u32 = 3491514387;
+pub const SONYPI_IOCGTEMP: u32 = 2147579404;
+pub const UI_SET_MSCBIT: u32 = 1074025832;
+pub const APM_IOC_SUSPEND: u32 = 16642;
+pub const BTRFS_IOC_TREE_SEARCH: u32 = 3489698833;
+pub const RTC_PLL_GET: u32 = 2149347345;
+pub const RIO_CM_EP_GET_LIST: u32 = 3221512962;
+pub const USBDEVFS_DISCSIGNAL: u32 = 2148029710;
+pub const LIRC_GET_MIN_TIMEOUT: u32 = 2147772680;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY: u32 = 2174244674;
+pub const DM_TARGET_MSG: u32 = 3241737486;
+pub const SONYPI_IOCGBAT1REM: u32 = 2147644931;
+pub const EVIOCSFF: u32 = 1076643200;
+pub const TUNSETGROUP: u32 = 1074025678;
+pub const EVIOCGKEYCODE: u32 = 2148025604;
+pub const KCOV_REMOTE_ENABLE: u32 = 1075340134;
+pub const ND_IOCTL_GET_CONFIG_SIZE: u32 = 3222031876;
+pub const FDEJECT: u32 = 602;
+pub const TUNSETOFFLOAD: u32 = 1074025680;
+pub const PPPIOCCONNECT: u32 = 1074033722;
+pub const ATM_ADDADDR: u32 = 1074553224;
+pub const VDUSE_DEV_INJECT_CONFIG_IRQ: u32 = 33043;
+pub const AUTOFS_DEV_IOCTL_ASKUMOUNT: u32 = 3222836093;
+pub const VHOST_VDPA_GET_STATUS: u32 = 2147594097;
+pub const CCISS_PASSTHRU: u32 = 3226747403;
+pub const MGSL_IOCCLRMODCOUNT: u32 = 27919;
+pub const TEE_IOC_SUPPL_SEND: u32 = 2148574215;
+pub const ATMARPD_CTRL: u32 = 25057;
+pub const UI_ABS_SETUP: u32 = 1075598596;
+pub const UI_DEV_DESTROY: u32 = 21762;
+pub const BTRFS_IOC_QUOTA_CTL: u32 = 3222311976;
+pub const RTC_AIE_ON: u32 = 28673;
+pub const AUTOFS_IOC_EXPIRE: u32 = 2165085029;
+pub const PPPIOCSDEBUG: u32 = 1074033728;
+pub const GPIO_V2_LINE_SET_VALUES_IOCTL: u32 = 3222320143;
+pub const PPPIOCSMRU: u32 = 1074033746;
+pub const CCISS_DEREGDISK: u32 = 16908;
+pub const UI_DEV_CREATE: u32 = 21761;
+pub const FUSE_DEV_IOC_CLONE: u32 = 2147804416;
+pub const BTRFS_IOC_START_SYNC: u32 = 2148045848;
+pub const NILFS_IOCTL_DELETE_CHECKPOINT: u32 = 1074294401;
+pub const SNAPSHOT_AVAIL_SWAP_SIZE: u32 = 2148021011;
+pub const DM_TABLE_CLEAR: u32 = 3241737482;
+pub const CCISS_GETINTINFO: u32 = 2148024834;
+pub const PPPIOCSASYNCMAP: u32 = 1074033751;
+pub const I2OEVTGET: u32 = 2154326283;
+pub const NVME_IOCTL_RESET: u32 = 20036;
+pub const PPYIELD: u32 = 28813;
+pub const NVME_IOCTL_IO64_CMD: u32 = 3226488392;
+pub const TUNSETCARRIER: u32 = 1074025698;
+pub const DM_DEV_WAIT: u32 = 3241737480;
+pub const RTC_WIE_ON: u32 = 28687;
+pub const MEDIA_IOC_DEVICE_INFO: u32 = 3238034432;
+pub const RIO_CM_CHAN_CREATE: u32 = 3221381891;
+pub const MGSL_IOCSPARAMS: u32 = 1075866880;
+pub const RTC_SET_TIME: u32 = 1076129802;
+pub const VHOST_RESET_OWNER: u32 = 44802;
+pub const IOC_OPAL_PSID_REVERT_TPR: u32 = 1091072232;
+pub const AUTOFS_DEV_IOCTL_OPENMOUNT: u32 = 3222836084;
+pub const UDF_GETEABLOCK: u32 = 2147773505;
+pub const VFIO_IOMMU_MAP_DMA: u32 = 15217;
+pub const VIDIOC_SUBSCRIBE_EVENT: u32 = 1075861082;
+pub const HIDIOCGFLAG: u32 = 2147764238;
+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 = 1074835969;
+pub const CCISS_GETFIRMVER: u32 = 2147762696;
+pub const ND_IOCTL_ARS_START: u32 = 3223342594;
+pub const PPPIOCSMRRU: u32 = 1074033723;
+pub const CEC_ADAP_S_LOG_ADDRS: u32 = 3227279620;
+pub const RPROC_GET_SHUTDOWN_ON_RELEASE: u32 = 2147792642;
+pub const DMA_HEAP_IOCTL_ALLOC: u32 = 3222816768;
+pub const PPSETTIME: u32 = 1074294934;
+pub const RTC_ALM_READ: u32 = 2149871624;
+pub const VDUSE_SET_API_VERSION: u32 = 1074299137;
+pub const RIO_MPORT_MAINT_WRITE_REMOTE: u32 = 1075342600;
+pub const VIDIOC_SUBDEV_S_CROP: u32 = 3224917564;
+pub const USBDEVFS_CONNECT: u32 = 21783;
+pub const SYNC_IOC_FILE_INFO: u32 = 3224911364;
+pub const ATMARP_MKIP: u32 = 25058;
+pub const VFIO_IOMMU_SPAPR_TCE_GET_INFO: u32 = 15216;
+pub const CCISS_GETHEARTBEAT: u32 = 2147762694;
+pub const ATM_RSTADDR: u32 = 1074553223;
+pub const NBD_SET_SIZE: u32 = 43778;
+pub const UDF_GETVOLIDENT: u32 = 2147773506;
+pub const GPIO_V2_LINE_GET_VALUES_IOCTL: u32 = 3222320142;
+pub const MGSL_IOCSTXIDLE: u32 = 27906;
+pub const FSL_HV_IOCTL_SETPROP: u32 = 3223891720;
+pub const BTRFS_IOC_GET_DEV_STATS: u32 = 3288896564;
+pub const PPRSTATUS: u32 = 2147577985;
+pub const MGSL_IOCTXENABLE: u32 = 27908;
+pub const UDF_GETEASIZE: u32 = 2147773504;
+pub const NVME_IOCTL_ADMIN64_CMD: u32 = 3226488391;
+pub const VHOST_SET_OWNER: u32 = 44801;
+pub const RIO_ALLOC_DMA: u32 = 3222826259;
+pub const RIO_CM_CHAN_ACCEPT: u32 = 3221775111;
+pub const I2OHRTGET: u32 = 3222038785;
+pub const ATM_SETCIRANGE: u32 = 1074553227;
+pub const HPET_IE_ON: u32 = 26625;
+pub const PERF_EVENT_IOC_ID: u32 = 2147755015;
+pub const TUNSETSNDBUF: u32 = 1074025684;
+pub const PTP_PIN_SETFUNC: u32 = 1080048903;
+pub const PPPIOCDISCONN: u32 = 29753;
+pub const VIDIOC_QUERYCTRL: u32 = 3225703972;
+pub const PPEXCL: u32 = 28815;
+pub const PCITEST_MSI: u32 = 1074024451;
+pub const FDWERRORCLR: u32 = 598;
+pub const AUTOFS_IOC_FAIL: u32 = 37729;
+pub const USBDEVFS_IOCTL: u32 = 3222033682;
+pub const VIDIOC_S_STD: u32 = 1074288152;
+pub const F2FS_IOC_RESIZE_FS: u32 = 1074328848;
+pub const SONET_SETDIAG: u32 = 3221512466;
+pub const BTRFS_IOC_DEFRAG: u32 = 1342215170;
+pub const CCISS_GETDRIVVER: u32 = 2147762697;
+pub const IPMICTL_GET_TIMING_PARMS_CMD: u32 = 2148034839;
+pub const HPET_IRQFREQ: u32 = 1074030598;
+pub const ATM_GETESI: u32 = 1074553221;
+pub const CCISS_GETLUNINFO: u32 = 2148286993;
+pub const AUTOFS_DEV_IOCTL_ISMOUNTPOINT: u32 = 3222836094;
+pub const TEE_IOC_SHM_ALLOC: u32 = 3222316033;
+pub const PERF_EVENT_IOC_SET_BPF: u32 = 1074013192;
+pub const UDMABUF_CREATE_LIST: u32 = 1074296131;
+pub const VHOST_SET_LOG_BASE: u32 = 1074310916;
+pub const ZATM_GETPOOL: u32 = 1074553185;
+pub const BR2684_SETFILT: u32 = 1075601808;
+pub const RNDGETPOOL: u32 = 2148028930;
+pub const PPS_GETPARAMS: u32 = 2147774625;
+pub const IOC_PR_RESERVE: u32 = 1074819273;
+pub const VIDIOC_TRY_DECODER_CMD: u32 = 3225966177;
+pub const RIO_CM_CHAN_CLOSE: u32 = 1073898244;
+pub const VIDIOC_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const IOCTL_MEI_CONNECT_CLIENT_VTAG: u32 = 3222554628;
+pub const PMU_IOC_GET_BACKLIGHT: u32 = 2147762689;
+pub const USBDEVFS_GET_CAPABILITIES: u32 = 2147767578;
+pub const SCIF_WRITETO: u32 = 3223614219;
+pub const UDF_RELOCATE_BLOCKS: u32 = 3221515331;
+pub const FSL_HV_IOCTL_PARTITION_RESTART: u32 = 3221794561;
+pub const CCISS_REGNEWD: u32 = 16910;
+pub const FAT_IOCTL_SET_ATTRIBUTES: u32 = 1074033169;
+pub const VIDIOC_CREATE_BUFS: u32 = 3237500508;
+pub const CAPI_GET_VERSION: u32 = 3222291207;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY: u32 = 2228508482;
+pub const VFIO_EEH_PE_OP: u32 = 15225;
+pub const FW_CDEV_IOC_CREATE_ISO_CONTEXT: u32 = 3223069448;
+pub const F2FS_IOC_RELEASE_COMPRESS_BLOCKS: u32 = 2148070674;
+pub const NBD_SET_SIZE_BLOCKS: u32 = 43783;
+pub const IPMI_BMC_IOCTL_SET_SMS_ATN: u32 = 45312;
+pub const ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG: u32 = 3222319873;
+pub const VIDIOC_S_AUDOUT: u32 = 1077171762;
+pub const VIDIOC_S_FMT: u32 = 3234616837;
+pub const PPPIOCATTACH: u32 = 1074033725;
+pub const VHOST_GET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310948;
+pub const FS_IOC_MEASURE_VERITY: u32 = 3221513862;
+pub const CCISS_BIG_PASSTHRU: u32 = 3227009554;
+pub const IPMICTL_SET_MY_LUN_CMD: u32 = 2147772691;
+pub const PCITEST_LEGACY_IRQ: u32 = 20482;
+pub const USBDEVFS_SUBMITURB: u32 = 2150389002;
+pub const AUTOFS_IOC_READY: u32 = 37728;
+pub const BTRFS_IOC_SEND: u32 = 1078236198;
+pub const VIDIOC_G_EXT_CTRLS: u32 = 3222820423;
+pub const JSIOCSBTNMAP: u32 = 1140877875;
+pub const PPPIOCSFLAGS: u32 = 1074033753;
+pub const NVRAM_INIT: u32 = 28736;
+pub const RFKILL_IOCTL_NOINPUT: u32 = 20993;
+pub const BTRFS_IOC_BALANCE: u32 = 1342215180;
+pub const FS_IOC_GETFSMAP: u32 = 3233830971;
+pub const IPMICTL_GET_MY_CHANNEL_LUN_CMD: u32 = 2147772699;
+pub const STP_POLICY_ID_GET: u32 = 2148541697;
+pub const PPSETFLAGS: u32 = 1074032795;
+pub const CEC_ADAP_S_PHYS_ADDR: u32 = 1073897730;
+pub const ATMTCP_CREATE: u32 = 24974;
+pub const IPMI_BMC_IOCTL_FORCE_ABORT: u32 = 45314;
+pub const PPPIOCGXASYNCMAP: u32 = 2149610576;
+pub const VHOST_SET_VRING_CALL: u32 = 1074310945;
+pub const LIRC_GET_FEATURES: u32 = 2147772672;
+pub const GSMIOC_DISABLE_NET: u32 = 18179;
+pub const AUTOFS_IOC_CATATONIC: u32 = 37730;
+pub const NBD_DO_IT: u32 = 43779;
+pub const LIRC_SET_REC_CARRIER_RANGE: u32 = 1074030879;
+pub const IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772697;
+pub const EVIOCSCLOCKID: u32 = 1074021792;
+pub const USBDEVFS_FREE_STREAMS: u32 = 2148029725;
+pub const FSI_SCOM_RESET: u32 = 1074033411;
+pub const PMU_IOC_GRAB_BACKLIGHT: u32 = 2147762694;
+pub const VIDIOC_SUBDEV_S_FMT: u32 = 3227014661;
+pub const FDDEFPRM: u32 = 1075577411;
+pub const TEE_IOC_INVOKE: u32 = 2148574211;
+pub const USBDEVFS_BULK: u32 = 3222295810;
+pub const SCIF_VWRITETO: u32 = 3223614221;
+pub const SONYPI_IOCSBRT: u32 = 1073837568;
+pub const BTRFS_IOC_FILE_EXTENT_SAME: u32 = 3222836278;
+pub const RTC_PIE_ON: u32 = 28677;
+pub const BTRFS_IOC_SCAN_DEV: u32 = 1342215172;
+pub const PPPIOCXFERUNIT: u32 = 29774;
+pub const WDIOC_GETTIMEOUT: u32 = 2147768071;
+pub const BTRFS_IOC_SET_RECEIVED_SUBVOL: u32 = 3233846309;
+pub const DFL_FPGA_PORT_ERR_SET_IRQ: u32 = 1074312774;
+pub const FBIO_WAITFORVSYNC: u32 = 1074021920;
+pub const RTC_PIE_OFF: u32 = 28678;
+pub const EVIOCGRAB: u32 = 1074021776;
+pub const PMU_IOC_SET_BACKLIGHT: u32 = 1074020866;
+pub const EVIOCGREP: u32 = 2148025603;
+pub const PERF_EVENT_IOC_MODIFY_ATTRIBUTES: u32 = 1074013195;
+pub const UFFDIO_CONTINUE: u32 = 3223366151;
+pub const VDUSE_GET_API_VERSION: u32 = 2148040960;
+pub const RTC_RD_TIME: u32 = 2149871625;
+pub const FDMSGOFF: u32 = 582;
+pub const IPMICTL_REGISTER_FOR_CMD_CHANS: u32 = 2148296988;
+pub const CAPI_GET_ERRCODE: u32 = 2147631905;
+pub const PCITEST_SET_IRQTYPE: u32 = 1074024456;
+pub const VIDIOC_SUBDEV_S_EDID: u32 = 3223606825;
+pub const MATROXFB_SET_OUTPUT_MODE: u32 = 1074032378;
+pub const RIO_DEV_ADD: u32 = 1075866903;
+pub const VIDIOC_ENUM_FREQ_BANDS: u32 = 3225441893;
+pub const FBIO_RADEON_SET_MIRROR: u32 = 1074020356;
+pub const PCITEST_GET_IRQTYPE: u32 = 20489;
+pub const JSIOCGVERSION: u32 = 2147772929;
+pub const SONYPI_IOCSBLUE: u32 = 1073837577;
+pub const SNAPSHOT_PREF_IMAGE_SIZE: u32 = 13074;
+pub const F2FS_IOC_GET_FEATURES: u32 = 2147808524;
+pub const SCIF_REG: u32 = 3223876360;
+pub const NILFS_IOCTL_CLEAN_SEGMENTS: u32 = 1081634440;
+pub const FW_CDEV_IOC_INITIATE_BUS_RESET: u32 = 1074012933;
+pub const RIO_WAIT_FOR_ASYNC: u32 = 1074294038;
+pub const VHOST_SET_VRING_NUM: u32 = 1074310928;
+pub const AUTOFS_DEV_IOCTL_PROTOVER: u32 = 3222836082;
+pub const RIO_FREE_DMA: u32 = 1074294036;
+pub const MGSL_IOCRXENABLE: u32 = 27909;
+pub const IOCTL_VM_SOCKETS_GET_LOCAL_CID: u32 = 1977;
+pub const IPMICTL_SET_TIMING_PARMS_CMD: u32 = 2148034838;
+pub const PPPIOCGL2TPSTATS: u32 = 2152231990;
+pub const PERF_EVENT_IOC_PERIOD: u32 = 1074275332;
+pub const PTP_PIN_SETFUNC2: u32 = 1080048912;
+pub const CHIOEXCHANGE: u32 = 1075602178;
+pub const NILFS_IOCTL_GET_SUINFO: u32 = 2149084804;
+pub const CEC_DQEVENT: u32 = 3226493191;
+pub const UI_SET_SWBIT: u32 = 1074025837;
+pub const VHOST_VDPA_SET_CONFIG: u32 = 1074311028;
+pub const TUNSETIFF: u32 = 1074025674;
+pub const CHIOPOSITION: u32 = 1074553603;
+pub const IPMICTL_SET_MAINTENANCE_MODE_CMD: u32 = 1074030879;
+pub const BTRFS_IOC_DEFAULT_SUBVOL: u32 = 1074304019;
+pub const RIO_UNMAP_OUTBOUND: u32 = 1076391184;
+pub const CAPI_CLR_FLAGS: u32 = 2147762981;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323663;
+pub const MATROXFB_GET_OUTPUT_CONNECTION: u32 = 2147774200;
+pub const EVIOCSMASK: u32 = 1074808211;
+pub const BTRFS_IOC_FORGET_DEV: u32 = 1342215173;
+pub const CXL_MEM_QUERY_COMMANDS: u32 = 2148060673;
+pub const CEC_S_MODE: u32 = 1074028809;
+pub const MGSL_IOCSIF: u32 = 27914;
+pub const SWITCHTEC_IOCTL_PFF_TO_PORT: u32 = 3222034244;
+pub const PPSETMODE: u32 = 1074032768;
+pub const VFIO_DEVICE_SET_IRQS: u32 = 15214;
+pub const VIDIOC_PREPARE_BUF: u32 = 3225704029;
+pub const CEC_ADAP_G_CONNECTOR_INFO: u32 = 2151964938;
+pub const IOC_OPAL_WRITE_SHADOW_MBR: u32 = 1092645098;
+pub const VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: u32 = 3225441867;
+pub const UDMABUF_CREATE: u32 = 1075344706;
+pub const SONET_CLRDIAG: u32 = 3221512467;
+pub const PHN_SET_REG: u32 = 1074032641;
+pub const RNDADDTOENTCNT: u32 = 1074024961;
+pub const VBG_IOCTL_CHECK_BALLOON: u32 = 3223344657;
+pub const VIDIOC_OMAP3ISP_STAT_REQ: u32 = 3222820550;
+pub const PPS_FETCH: u32 = 3221516452;
+pub const RTC_AIE_OFF: u32 = 28674;
+pub const VFIO_GROUP_SET_CONTAINER: u32 = 15208;
+pub const FW_CDEV_IOC_RECEIVE_PHY_PACKETS: u32 = 1074275094;
+pub const VFIO_IOMMU_SPAPR_TCE_REMOVE: u32 = 15224;
+pub const VFIO_IOMMU_GET_INFO: u32 = 15216;
+pub const DM_DEV_SUSPEND: u32 = 3241737478;
+pub const F2FS_IOC_GET_COMPRESS_OPTION: u32 = 2147677461;
+pub const FW_CDEV_IOC_STOP_ISO: u32 = 1074012939;
+pub const GPIO_V2_GET_LINEINFO_IOCTL: u32 = 3238048773;
+pub const ATMMPC_CTRL: u32 = 25048;
+pub const PPPIOCSXASYNCMAP: u32 = 1075868751;
+pub const CHIOGSTATUS: u32 = 1074291464;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE: u32 = 3222807309;
+pub const RIO_MPORT_MAINT_PORT_IDX_GET: u32 = 2147773699;
+pub const CAPI_SET_FLAGS: u32 = 2147762980;
+pub const VFIO_GROUP_GET_DEVICE_FD: u32 = 15210;
+pub const VHOST_SET_MEM_TABLE: u32 = 1074310915;
+pub const MATROXFB_SET_OUTPUT_CONNECTION: u32 = 1074032376;
+pub const DFL_FPGA_PORT_GET_REGION_INFO: u32 = 46658;
+pub const VHOST_GET_FEATURES: u32 = 2148052736;
+pub const LIRC_GET_REC_RESOLUTION: u32 = 2147772679;
+pub const PACKET_CTRL_CMD: u32 = 3222820865;
+pub const LIRC_SET_TRANSMITTER_MASK: u32 = 1074030871;
+pub const BTRFS_IOC_ADD_DEV: u32 = 1342215178;
+pub const JSIOCGCORR: u32 = 2149870114;
+pub const VIDIOC_G_FMT: u32 = 3234616836;
+pub const RTC_EPOCH_SET: u32 = 1074032654;
+pub const CAPI_GET_PROFILE: u32 = 3225436937;
+pub const ATM_GETLOOP: u32 = 1074553170;
+pub const SCIF_LISTEN: u32 = 1074033410;
+pub const NBD_CLEAR_QUE: u32 = 43781;
+pub const F2FS_IOC_MOVE_RANGE: u32 = 3223123209;
+pub const LIRC_GET_LENGTH: u32 = 2147772687;
+pub const I8K_SET_FAN: u32 = 3221514631;
+pub const FDSETMAXERRS: u32 = 1075053132;
+pub const VIDIOC_SUBDEV_QUERYCAP: u32 = 2151699968;
+pub const SNAPSHOT_SET_SWAP_AREA: u32 = 1074541325;
+pub const LIRC_GET_REC_TIMEOUT: u32 = 2147772708;
+pub const EVIOCRMFF: u32 = 1074021761;
+pub const GPIO_GET_LINEEVENT_IOCTL: u32 = 3224417284;
+pub const PPRDATA: u32 = 2147577989;
+pub const RIO_MPORT_GET_PROPERTIES: u32 = 2150657284;
+pub const TUNSETVNETHDRSZ: u32 = 1074025688;
+pub const GPIO_GET_LINEINFO_IOCTL: u32 = 3225990146;
+pub const GSMIOC_GETCONF: u32 = 2152482560;
+pub const LIRC_GET_SEND_MODE: u32 = 2147772673;
+pub const PPPIOCSACTIVE: u32 = 1074295878;
+pub const SIOCGSTAMPNS_NEW: u32 = 2148567303;
+pub const IPMICTL_RECEIVE_MSG: u32 = 3222825228;
+pub const LIRC_SET_SEND_DUTY_CYCLE: u32 = 1074030869;
+pub const UI_END_FF_ERASE: u32 = 1074550219;
+pub const SWITCHTEC_IOCTL_FLASH_PART_INFO: u32 = 3222296385;
+pub const FW_CDEV_IOC_SEND_PHY_PACKET: u32 = 3222545173;
+pub const NBD_SET_FLAGS: u32 = 43786;
+pub const VFIO_DEVICE_GET_REGION_INFO: u32 = 15212;
+pub const REISERFS_IOC_UNPACK: u32 = 1074056449;
+pub const FW_CDEV_IOC_REMOVE_DESCRIPTOR: u32 = 1074012935;
+pub const RIO_SET_EVENT_MASK: u32 = 1074031885;
+pub const SNAPSHOT_ALLOC_SWAP_PAGE: u32 = 2148021012;
+pub const VDUSE_VQ_INJECT_IRQ: u32 = 1074037015;
+pub const I2OPASSTHRU: u32 = 2148034828;
+pub const IOC_OPAL_SET_PW: u32 = 1109422304;
+pub const FSI_SCOM_READ: u32 = 3223352065;
+pub const VHOST_VDPA_GET_DEVICE_ID: u32 = 2147790704;
+pub const VIDIOC_QBUF: u32 = 3225703951;
+pub const VIDIOC_S_TUNER: u32 = 1079268894;
+pub const TUNGETVNETHDRSZ: u32 = 2147767511;
+pub const CAPI_NCCI_GETUNIT: u32 = 2147762983;
+pub const DFL_FPGA_PORT_UINT_GET_IRQ_NUM: u32 = 2147792455;
+pub const VIDIOC_OMAP3ISP_STAT_EN: u32 = 3221509831;
+pub const GPIO_V2_LINE_SET_CONFIG_IOCTL: u32 = 3239097357;
+pub const TEE_IOC_VERSION: u32 = 2148312064;
+pub const VIDIOC_LOG_STATUS: u32 = 22086;
+pub const IPMICTL_SEND_COMMAND_SETTIME: u32 = 2149345557;
+pub const VHOST_SET_LOG_FD: u32 = 1074048775;
+pub const SCIF_SEND: u32 = 3222565638;
+pub const VIDIOC_SUBDEV_G_FMT: u32 = 3227014660;
+pub const NS_ADJBUFLEV: u32 = 24931;
+pub const VIDIOC_DBG_S_REGISTER: u32 = 1077433935;
+pub const NILFS_IOCTL_RESIZE: u32 = 1074294411;
+pub const PHN_GETREG: u32 = 3221778437;
+pub const I2OSWDL: u32 = 3223087365;
+pub const VBG_IOCTL_VMMDEV_REQUEST_BIG: u32 = 22019;
+pub const JSIOCGBUTTONS: u32 = 2147576338;
+pub const VFIO_IOMMU_ENABLE: u32 = 15219;
+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 = 1074048887;
+pub const VIDIOC_SUBDEV_G_CROP: u32 = 3224917563;
+pub const VIDIOC_S_CROP: u32 = 1075074620;
+pub const WDIOC_GETTEMP: u32 = 2147768067;
+pub const IOC_OPAL_ADD_USR_TO_LR: u32 = 1092120804;
+pub const UI_SET_LEDBIT: u32 = 1074025833;
+pub const NBD_SET_SOCK: u32 = 43776;
+pub const BTRFS_IOC_SNAP_DESTROY_V2: u32 = 1342215231;
+pub const HIDIOCGCOLLECTIONINFO: u32 = 3222292497;
+pub const I2OSWUL: u32 = 3223087366;
+pub const IOCTL_MEI_NOTIFY_GET: u32 = 2147764227;
+pub const FDFMTTRK: u32 = 1074528840;
+pub const MMTIMER_GETBITS: u32 = 27908;
+pub const VIDIOC_ENUMSTD: u32 = 3225441817;
+pub const VHOST_GET_VRING_BASE: u32 = 3221794578;
+pub const VFIO_DEVICE_IOEVENTFD: u32 = 15220;
+pub const ATMARP_SETENTRY: u32 = 25059;
+pub const CCISS_REVALIDVOLS: u32 = 16906;
+pub const MGSL_IOCLOOPTXDONE: u32 = 27913;
+pub const RTC_VL_READ: u32 = 2147774483;
+pub const ND_IOCTL_ARS_STATUS: u32 = 3224391171;
+pub const RIO_DEV_DEL: u32 = 1075866904;
+pub const VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: u32 = 3223606797;
+pub const VIDIOC_SUBDEV_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const SONYPI_IOCSFAN: u32 = 1073837579;
+pub const SPIOCSTYPE: u32 = 1074032897;
+pub const IPMICTL_REGISTER_FOR_CMD: u32 = 2147641614;
+pub const I8K_GET_FAN: u32 = 3221514630;
+pub const TUNGETVNETBE: u32 = 2147767519;
+pub const AUTOFS_DEV_IOCTL_FAIL: u32 = 3222836087;
+pub const UI_END_FF_UPLOAD: u32 = 1080055241;
+pub const TOSH_SMM: u32 = 3222828176;
+pub const SONYPI_IOCGBAT2REM: u32 = 2147644933;
+pub const F2FS_IOC_GET_COMPRESS_BLOCKS: u32 = 2148070673;
+pub const PPPIOCSNPMODE: u32 = 1074295883;
+pub const USBDEVFS_CONTROL: u32 = 3222295808;
+pub const HIDIOCGUSAGE: u32 = 3222816779;
+pub const TUNSETTXFILTER: u32 = 1074025681;
+pub const TUNGETVNETLE: u32 = 2147767517;
+pub const VIDIOC_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const BTRFS_IOC_INO_PATHS: u32 = 3224933411;
+pub const MGSL_IOCGXSYNC: u32 = 27924;
+pub const HIDIOCGFIELDINFO: u32 = 3224913930;
+pub const VIDIOC_SUBDEV_G_STD: u32 = 2148029975;
+pub const I2OVALIDATE: u32 = 2147772680;
+pub const VIDIOC_TRY_ENCODER_CMD: u32 = 3223869006;
+pub const NILFS_IOCTL_GET_CPINFO: u32 = 2149084802;
+pub const VIDIOC_G_FREQUENCY: u32 = 3224131128;
+pub const VFAT_IOCTL_READDIR_SHORT: u32 = 2182640130;
+pub const ND_IOCTL_GET_CONFIG_DATA: u32 = 3222031877;
+pub const F2FS_IOC_RESERVE_COMPRESS_BLOCKS: u32 = 2148070675;
+pub const FDGETDRVSTAT: u32 = 2150892050;
+pub const SYNC_IOC_MERGE: u32 = 3224387075;
+pub const VIDIOC_S_DV_TIMINGS: u32 = 3229898327;
+pub const PPPIOCBRIDGECHAN: u32 = 1074033717;
+pub const LIRC_SET_SEND_MODE: u32 = 1074030865;
+pub const RIO_ENABLE_PORTWRITE_RANGE: u32 = 1074818315;
+pub const ATM_GETTYPE: u32 = 1074553220;
+pub const PHN_GETREGS: u32 = 3223875591;
+pub const FDSETEMSGTRESH: u32 = 586;
+pub const NILFS_IOCTL_GET_VINFO: u32 = 3222826630;
+pub const MGSL_IOCWAITEVENT: u32 = 3221515528;
+pub const CAPI_INSTALLED: u32 = 2147631906;
+pub const EVIOCGMASK: u32 = 2148550034;
+pub const BTRFS_IOC_SUBVOL_GETFLAGS: u32 = 2148045849;
+pub const FSL_HV_IOCTL_PARTITION_GET_STATUS: u32 = 3222056706;
+pub const MEDIA_IOC_ENUM_ENTITIES: u32 = 3238034433;
+pub const GSMIOC_GETFIRST: u32 = 2147763972;
+pub const FW_CDEV_IOC_FLUSH_ISO: u32 = 1074012952;
+pub const VIDIOC_DBG_G_CHIP_INFO: u32 = 3234354790;
+pub const F2FS_IOC_RELEASE_VOLATILE_WRITE: u32 = 62724;
+pub const CAPI_GET_SERIAL: u32 = 3221504776;
+pub const FDSETDRVPRM: u32 = 1079509648;
+pub const IOC_OPAL_SAVE: u32 = 1092120796;
+pub const VIDIOC_G_DV_TIMINGS: u32 = 3229898328;
+pub const TUNSETIFINDEX: u32 = 1074025690;
+pub const CCISS_SETINTINFO: u32 = 1074283011;
+pub const RTC_VL_CLR: u32 = 28692;
+pub const VIDIOC_REQBUFS: u32 = 3222558216;
+pub const USBDEVFS_REAPURBNDELAY32: u32 = 1074025741;
+pub const TEE_IOC_SHM_REGISTER: u32 = 3222840329;
+pub const USBDEVFS_SETCONFIGURATION: u32 = 2147767557;
+pub const CCISS_GETNODENAME: u32 = 2148549124;
+pub const VIDIOC_SUBDEV_S_FRAME_INTERVAL: u32 = 3224393238;
+pub const VIDIOC_ENUM_FRAMESIZES: u32 = 3224131146;
+pub const VFIO_DEVICE_PCI_HOT_RESET: u32 = 15217;
+pub const FW_CDEV_IOC_SEND_BROADCAST_REQUEST: u32 = 1076110098;
+pub const LPSETTIMEOUT_NEW: u32 = 1074791951;
+pub const RIO_CM_MPORT_GET_LIST: u32 = 3221512971;
+pub const FW_CDEV_IOC_QUEUE_ISO: u32 = 3222807305;
+pub const FDRAWCMD: u32 = 600;
+pub const SCIF_UNREG: u32 = 3222303497;
+pub const PPPIOCGIDLE64: u32 = 2148561983;
+pub const USBDEVFS_RELEASEINTERFACE: u32 = 2147767568;
+pub const VIDIOC_CROPCAP: u32 = 3224131130;
+pub const DFL_FPGA_PORT_GET_INFO: u32 = 46657;
+pub const PHN_SET_REGS: u32 = 1074032643;
+pub const ATMLEC_DATA: u32 = 25041;
+pub const PPPOEIOCDFWD: u32 = 45313;
+pub const VIDIOC_S_SELECTION: u32 = 3225441887;
+pub const SNAPSHOT_FREE_SWAP_PAGES: u32 = 13065;
+pub const BTRFS_IOC_LOGICAL_INO: u32 = 3224933412;
+pub const VIDIOC_S_CTRL: u32 = 3221771804;
+pub const ZATM_SETPOOL: u32 = 1074553187;
+pub const MTIOCPOS: u32 = 2147773699;
+pub const PMU_IOC_SLEEP: u32 = 16896;
+pub const AUTOFS_DEV_IOCTL_PROTOSUBVER: u32 = 3222836083;
+pub const VBG_IOCTL_CHANGE_FILTER_MASK: u32 = 3223344652;
+pub const NILFS_IOCTL_GET_SUSTAT: u32 = 2150657669;
+pub const VIDIOC_QUERYCAP: u32 = 2154321408;
+pub const HPET_INFO: u32 = 2148296707;
+pub const VIDIOC_AM437X_CCDC_CFG: u32 = 1074026177;
+pub const DM_LIST_DEVICES: u32 = 3241737474;
+pub const TUNSETOWNER: u32 = 1074025676;
+pub const VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: u32 = 3223344654;
+pub const RNDADDENTROPY: u32 = 1074287107;
+pub const USBDEVFS_RESET: u32 = 21780;
+pub const BTRFS_IOC_SUBVOL_CREATE: u32 = 1342215182;
+pub const USBDEVFS_FORBID_SUSPEND: u32 = 21793;
+pub const FDGETDRVTYP: u32 = 2148532751;
+pub const PPWCONTROL: u32 = 1073836164;
+pub const VIDIOC_ENUM_FRAMEINTERVALS: u32 = 3224655435;
+pub const KCOV_DISABLE: u32 = 25445;
+pub const IOC_OPAL_ACTIVATE_LSP: u32 = 1092120799;
+pub const VHOST_VDPA_GET_IOVA_RANGE: u32 = 2148577144;
+pub const PPPIOCSPASS: u32 = 1074295879;
+pub const RIO_CM_CHAN_CONNECT: u32 = 1074291464;
+pub const I2OSWDEL: u32 = 3223087367;
+pub const FS_IOC_SET_ENCRYPTION_POLICY: u32 = 2148296211;
+pub const IOC_OPAL_MBR_DONE: u32 = 1091596521;
+pub const PPPIOCSMAXCID: u32 = 1074033745;
+pub const PPSETPHASE: u32 = 1074032788;
+pub const VHOST_VDPA_SET_VRING_ENABLE: u32 = 1074311029;
+pub const USBDEVFS_GET_SPEED: u32 = 21791;
+pub const SONET_GETFRAMING: u32 = 2147770646;
+pub const VIDIOC_QUERYBUF: u32 = 3225703945;
+pub const VIDIOC_S_EDID: u32 = 3223606825;
+pub const BTRFS_IOC_QGROUP_ASSIGN: u32 = 1075352617;
+pub const PPS_GETCAP: u32 = 2147774627;
+pub const SNAPSHOT_PLATFORM_SUPPORT: u32 = 13071;
+pub const LIRC_SET_REC_TIMEOUT_REPORTS: u32 = 1074030873;
+pub const SCIF_GET_NODEIDS: u32 = 3222565646;
+pub const NBD_DISCONNECT: u32 = 43784;
+pub const VIDIOC_SUBDEV_G_FRAME_INTERVAL: u32 = 3224393237;
+pub const VFIO_IOMMU_DISABLE: u32 = 15220;
+pub const SNAPSHOT_CREATE_IMAGE: u32 = 1074017041;
+pub const SNAPSHOT_POWER_OFF: u32 = 13072;
+pub const APM_IOC_STANDBY: u32 = 16641;
+pub const PPPIOCGUNIT: u32 = 2147775574;
+pub const AUTOFS_IOC_EXPIRE_MULTI: u32 = 1074041702;
+pub const SCIF_BIND: u32 = 3221779201;
+pub const IOC_WATCH_QUEUE_SET_SIZE: u32 = 22368;
+pub const NILFS_IOCTL_CHANGE_CPMODE: u32 = 1074818688;
+pub const IOC_OPAL_LOCK_UNLOCK: u32 = 1092120797;
+pub const F2FS_IOC_SET_PIN_FILE: u32 = 1074066701;
+pub const PPPIOCGRASYNCMAP: u32 = 2147775573;
+pub const MMTIMER_MMAPAVAIL: u32 = 27910;
+pub const I2OPASSTHRU32: u32 = 2148034828;
+pub const DFL_FPGA_FME_PORT_RELEASE: u32 = 1074050689;
+pub const VIDIOC_SUBDEV_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const UI_SET_SNDBIT: u32 = 1074025834;
+pub const VIDIOC_G_AUDOUT: u32 = 2150913585;
+pub const RTC_PLL_SET: u32 = 1075605522;
+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 = 1074048836;
+pub const VHOST_SET_VRING_ADDR: u32 = 1076408081;
+pub const VDUSE_CREATE_DEV: u32 = 1095794946;
+pub const FDFLUSH: u32 = 587;
+pub const VBG_IOCTL_WAIT_FOR_EVENTS: u32 = 3223344650;
+pub const DFL_FPGA_FME_ERR_SET_IRQ: u32 = 1074312836;
+pub const F2FS_IOC_GET_PIN_FILE: u32 = 2147808526;
+pub const SCIF_CONNECT: u32 = 3221779203;
+pub const BLKREPORTZONE: u32 = 3222278786;
+pub const AUTOFS_IOC_ASKUMOUNT: u32 = 2147783536;
+pub const ATM_ADDPARTY: u32 = 1074291188;
+pub const FDSETPRM: u32 = 1075577410;
+pub const ATM_GETSTATZ: u32 = 1074553169;
+pub const ISST_IF_MSR_COMMAND: u32 = 3221552644;
+pub const BTRFS_IOC_GET_SUBVOL_INFO: u32 = 2179503164;
+pub const VIDIOC_UNSUBSCRIBE_EVENT: u32 = 1075861083;
+pub const SEV_ISSUE_CMD: u32 = 3222295296;
+pub const GPIOHANDLE_SET_LINE_VALUES_IOCTL: u32 = 3225465865;
+pub const PCITEST_COPY: u32 = 1074024454;
+pub const IPMICTL_GET_MY_ADDRESS_CMD: u32 = 2147772690;
+pub const CHIOGPICKER: u32 = 2147771140;
+pub const CAPI_NCCI_OPENCOUNT: u32 = 2147762982;
+pub const CXL_MEM_SEND_COMMAND: u32 = 3224423938;
+pub const PERF_EVENT_IOC_SET_FILTER: u32 = 1074013190;
+pub const IOC_OPAL_REVERT_TPR: u32 = 1091072226;
+pub const CHIOGVPARAMS: u32 = 2154849043;
+pub const PTP_PEROUT_REQUEST: u32 = 1077427459;
+pub const FSI_SCOM_CHECK: u32 = 2147775232;
+pub const RTC_IRQP_READ: u32 = 2147774475;
+pub const RIO_MPORT_MAINT_READ_LOCAL: u32 = 2149084421;
+pub const HIDIOCGRDESCSIZE: u32 = 2147764225;
+pub const UI_GET_VERSION: u32 = 2147767597;
+pub const NILFS_IOCTL_GET_CPSTAT: u32 = 2149084803;
+pub const CCISS_GETBUSTYPES: u32 = 2147762695;
+pub const VFIO_IOMMU_SPAPR_TCE_CREATE: u32 = 15223;
+pub const VIDIOC_EXPBUF: u32 = 3225441808;
+pub const UI_SET_RELBIT: u32 = 1074025830;
+pub const VFIO_SET_IOMMU: u32 = 15206;
+pub const VIDIOC_S_MODULATOR: u32 = 1078220343;
+pub const TUNGETFILTER: u32 = 2148029659;
+pub const CCISS_SETNODENAME: u32 = 1074807301;
+pub const FBIO_GETCONTROL2: u32 = 2147763849;
+pub const TUNSETDEBUG: u32 = 1074025673;
+pub const DM_DEV_REMOVE: u32 = 3241737476;
+pub const HIDIOCSUSAGES: u32 = 1344030740;
+pub const FS_IOC_ADD_ENCRYPTION_KEY: u32 = 3226494487;
+pub const FBIOGET_VBLANK: u32 = 2149598738;
+pub const ATM_GETSTAT: u32 = 1074553168;
+pub const VIDIOC_G_JPEGCOMP: u32 = 2156680765;
+pub const TUNATTACHFILTER: u32 = 1074287829;
+pub const UI_SET_ABSBIT: u32 = 1074025831;
+pub const DFL_FPGA_PORT_ERR_GET_IRQ_NUM: u32 = 2147792453;
+pub const USBDEVFS_REAPURB32: u32 = 1074025740;
+pub const BTRFS_IOC_TRANS_END: u32 = 37895;
+pub const CAPI_REGISTER: u32 = 1074545409;
+pub const F2FS_IOC_COMPRESS_FILE: u32 = 62744;
+pub const USBDEVFS_DISCARDURB: u32 = 21771;
+pub const HE_GET_REG: u32 = 1074553184;
+pub const ATM_SETLOOP: u32 = 1074553171;
+pub const ATMSIGD_CTRL: u32 = 25072;
+pub const CIOC_KERNEL_VERSION: u32 = 3221512970;
+pub const BTRFS_IOC_CLONE_RANGE: u32 = 1075876877;
+pub const SNAPSHOT_UNFREEZE: u32 = 13058;
+pub const F2FS_IOC_START_VOLATILE_WRITE: u32 = 62723;
+pub const PMU_IOC_HAS_ADB: u32 = 2147762692;
+pub const I2OGETIOPS: u32 = 2149607680;
+pub const VIDIOC_S_FBUF: u32 = 1076647435;
+pub const PPRCONTROL: u32 = 2147577987;
+pub const CHIOSPICKER: u32 = 1074029317;
+pub const VFIO_IOMMU_SPAPR_REGISTER_MEMORY: u32 = 15221;
+pub const TUNGETSNDBUF: u32 = 2147767507;
+pub const GSMIOC_SETCONF: u32 = 1078740737;
+pub const IOC_PR_PREEMPT: u32 = 1075343563;
+pub const KCOV_INIT_TRACE: u32 = 2147771137;
+pub const SONYPI_IOCGBAT1CAP: u32 = 2147644930;
+pub const SWITCHTEC_IOCTL_FLASH_INFO: u32 = 2148554560;
+pub const MTIOCTOP: u32 = 1074294017;
+pub const VHOST_VDPA_SET_STATUS: u32 = 1073852274;
+pub const VHOST_SCSI_SET_EVENTS_MISSED: u32 = 1074048835;
+pub const VFIO_IOMMU_DIRTY_PAGES: u32 = 15221;
+pub const BTRFS_IOC_SCRUB_PROGRESS: u32 = 3288372253;
+pub const PPPIOCGMRU: u32 = 2147775571;
+pub const BTRFS_IOC_DEV_REPLACE: u32 = 3391394869;
+pub const PPPIOCGFLAGS: u32 = 2147775578;
+pub const NILFS_IOCTL_SET_SUINFO: u32 = 1075342989;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER2: u32 = 3222545172;
+pub const ATM_DELLECSADDR: u32 = 1074553231;
+pub const FW_CDEV_IOC_GET_SPEED: u32 = 8977;
+pub const PPPIOCGIDLE32: u32 = 2148037695;
+pub const VFIO_DEVICE_RESET: u32 = 15215;
+pub const GPIO_GET_LINEINFO_UNWATCH_IOCTL: u32 = 3221533708;
+pub const WDIOC_GETSTATUS: u32 = 2147768065;
+pub const BTRFS_IOC_SET_FEATURES: u32 = 1076925497;
+pub const IOCTL_MEI_CONNECT_CLIENT: u32 = 3222292481;
+pub const VIDIOC_OMAP3ISP_AEWB_CFG: u32 = 3223344835;
+pub const PCITEST_READ: u32 = 1074024453;
+pub const VFIO_GROUP_GET_STATUS: u32 = 15207;
+pub const MATROXFB_GET_ALL_OUTPUTS: u32 = 2147774203;
+pub const USBDEVFS_CLEAR_HALT: u32 = 2147767573;
+pub const VIDIOC_DECODER_CMD: u32 = 3225966176;
+pub const VIDIOC_G_AUDIO: u32 = 2150913569;
+pub const CCISS_RESCANDISK: u32 = 16912;
+pub const RIO_DISABLE_PORTWRITE_RANGE: u32 = 1074818316;
+pub const IOC_OPAL_SECURE_ERASE_LR: u32 = 1091596519;
+pub const USBDEVFS_REAPURB: u32 = 1074025740;
+pub const DFL_FPGA_CHECK_EXTENSION: u32 = 46593;
+pub const AUTOFS_IOC_PROTOVER: u32 = 2147783523;
+pub const FSL_HV_IOCTL_MEMCPY: u32 = 3223891717;
+pub const BTRFS_IOC_GET_FEATURES: u32 = 2149094457;
+pub const PCITEST_MSIX: u32 = 1074024455;
+pub const BTRFS_IOC_DEFRAG_RANGE: u32 = 1076925456;
+pub const UI_BEGIN_FF_ERASE: u32 = 3222033866;
+pub const DM_GET_TARGET_VERSION: u32 = 3241737489;
+pub const PPPIOCGIDLE: u32 = 2148037695;
+pub const NVRAM_SETCKS: u32 = 28737;
+pub const WDIOC_GETSUPPORT: u32 = 2150127360;
+pub const GSMIOC_ENABLE_NET: u32 = 1077167874;
+pub const GPIO_GET_CHIPINFO_IOCTL: u32 = 2151986177;
+pub const NE_ADD_VCPU: u32 = 3221532193;
+pub const EVIOCSKEYCODE_V2: u32 = 1076380932;
+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 = 1075342598;
+pub const I2OEVTREG: u32 = 1074555146;
+pub const I2OPARMGET: u32 = 3222825220;
+pub const EVIOCGID: u32 = 2148025602;
+pub const BTRFS_IOC_QGROUP_CREATE: u32 = 1074828330;
+pub const AUTOFS_DEV_IOCTL_SETPIPEFD: u32 = 3222836088;
+pub const VIDIOC_S_PARM: u32 = 3234616854;
+pub const TUNSETSTEERINGEBPF: u32 = 2147767520;
+pub const ATM_GETNAMES: u32 = 1074291075;
+pub const VIDIOC_QUERYMENU: u32 = 3224131109;
+pub const DFL_FPGA_PORT_DMA_UNMAP: u32 = 46660;
+pub const I2OLCTGET: u32 = 3222038786;
+pub const FS_IOC_GET_ENCRYPTION_PWSALT: u32 = 1074816532;
+pub const NS_SETBUFLEV: u32 = 1074553186;
+pub const BLKCLOSEZONE: u32 = 1074795143;
+pub const SONET_GETFRSENSE: u32 = 2147901719;
+pub const UI_SET_EVBIT: u32 = 1074025828;
+pub const DM_LIST_VERSIONS: u32 = 3241737485;
+pub const HIDIOCGSTRING: u32 = 2164541444;
+pub const PPPIOCATTCHAN: u32 = 1074033720;
+pub const VDUSE_DEV_SET_CONFIG: u32 = 1074299154;
+pub const TUNGETFEATURES: u32 = 2147767503;
+pub const VFIO_GROUP_UNSET_CONTAINER: u32 = 15209;
+pub const IPMICTL_SET_MY_ADDRESS_CMD: u32 = 2147772689;
+pub const CCISS_REGNEWDISK: u32 = 1074020877;
+pub const VIDIOC_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const PHN_SETREGS: u32 = 1076391944;
+pub const FAT_IOCTL_GET_ATTRIBUTES: u32 = 2147774992;
+pub const FSL_MC_SEND_MC_COMMAND: u32 = 3225440992;
+pub const TUNGETIFF: u32 = 2147767506;
+pub const PTP_CLOCK_GETCAPS2: u32 = 2152742154;
+pub const BTRFS_IOC_RESIZE: u32 = 1342215171;
+pub const VHOST_SET_VRING_ENDIAN: u32 = 1074310931;
+pub const PPS_KC_BIND: u32 = 1074032805;
+pub const F2FS_IOC_WRITE_CHECKPOINT: u32 = 62727;
+pub const UI_SET_FFBIT: u32 = 1074025835;
+pub const IPMICTL_GET_MY_LUN_CMD: u32 = 2147772692;
+pub const CEC_ADAP_G_PHYS_ADDR: u32 = 2147639553;
+pub const CEC_G_MODE: u32 = 2147770632;
+pub const USBDEVFS_RESETEP: u32 = 2147767555;
+pub const MEDIA_REQUEST_IOC_QUEUE: u32 = 31872;
+pub const USBDEVFS_ALLOC_STREAMS: u32 = 2148029724;
+pub const MGSL_IOCSXCTRL: u32 = 27925;
+pub const MEDIA_IOC_G_TOPOLOGY: u32 = 3225975812;
+pub const PPPIOCUNBRIDGECHAN: u32 = 29748;
+pub const F2FS_IOC_COMMIT_ATOMIC_WRITE: u32 = 62722;
+pub const ISST_IF_GET_PLATFORM_INFO: u32 = 2147810816;
+pub const SCIF_FENCE_MARK: u32 = 3222041359;
+pub const USBDEVFS_RELEASE_PORT: u32 = 2147767577;
+pub const VFIO_CHECK_EXTENSION: u32 = 15205;
+pub const BTRFS_IOC_QGROUP_LIMIT: u32 = 2150667307;
+pub const FAT_IOCTL_GET_VOLUME_ID: u32 = 2147774995;
+pub const UI_SET_PHYS: u32 = 1074025836;
+pub const FDWERRORGET: u32 = 2149057047;
+pub const VIDIOC_SUBDEV_G_EDID: u32 = 3223606824;
+pub const MGSL_IOCGSTATS: u32 = 27911;
+pub const RPROC_SET_SHUTDOWN_ON_RELEASE: u32 = 1074050817;
+pub const SIOCGSTAMP_NEW: u32 = 2148567302;
+pub const RTC_WKALM_RD: u32 = 2150133776;
+pub const PHN_GET_REG: u32 = 3221516288;
+pub const DELL_WMI_SMBIOS_CMD: u32 = 3224655616;
+pub const PHN_NOT_OH: u32 = 28676;
+pub const PPGETMODES: u32 = 2147774615;
+pub const CHIOGPARAMS: u32 = 2148819718;
+pub const VFIO_DEVICE_GET_GFX_DMABUF: u32 = 15219;
+pub const VHOST_SET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310947;
+pub const VIDIOC_SUBDEV_G_SELECTION: u32 = 3225441853;
+pub const BTRFS_IOC_RM_DEV_V2: u32 = 1342215226;
+pub const MGSL_IOCWAITGPIO: u32 = 3222301970;
+pub const PMU_IOC_CAN_SLEEP: u32 = 2147762693;
+pub const KCOV_ENABLE: u32 = 25444;
+pub const BTRFS_IOC_CLONE: u32 = 1074041865;
+pub const F2FS_IOC_DEFRAGMENT: u32 = 3222336776;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE: u32 = 1074012942;
+pub const AGPIOC_ALLOCATE: u32 = 3221504262;
+pub const NE_SET_USER_MEMORY_REGION: u32 = 1075359267;
+pub const MGSL_IOCTXABORT: u32 = 27910;
+pub const MGSL_IOCSGPIO: u32 = 1074818320;
+pub const LIRC_SET_REC_CARRIER: u32 = 1074030868;
+pub const F2FS_IOC_FLUSH_DEVICE: u32 = 1074328842;
+pub const SNAPSHOT_ATOMIC_RESTORE: u32 = 13060;
+pub const RTC_UIE_OFF: u32 = 28676;
+pub const BT_BMC_IOCTL_SMS_ATN: u32 = 45312;
+pub const NVME_IOCTL_ID: u32 = 20032;
+pub const NE_START_ENCLAVE: u32 = 3222318628;
+pub const VIDIOC_STREAMON: u32 = 1074026002;
+pub const FDPOLLDRVSTAT: u32 = 2150892051;
+pub const AUTOFS_DEV_IOCTL_READY: u32 = 3222836086;
+pub const VIDIOC_ENUMAUDOUT: u32 = 3224655426;
+pub const VIDIOC_SUBDEV_S_STD: u32 = 1074288152;
+pub const WDIOC_GETTIMELEFT: u32 = 2147768074;
+pub const ATM_GETLINKRATE: u32 = 1074553217;
+pub const RTC_WKALM_SET: u32 = 1076391951;
+pub const VHOST_GET_BACKEND_FEATURES: u32 = 2148052774;
+pub const ATMARP_ENCAP: u32 = 25061;
+pub const CAPI_GET_FLAGS: u32 = 2147762979;
+pub const IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772696;
+pub const DFL_FPGA_FME_PORT_ASSIGN: u32 = 1074050690;
+pub const NS_GET_OWNER_UID: u32 = 46852;
+pub const VIDIOC_OVERLAY: u32 = 1074025998;
+pub const BTRFS_IOC_WAIT_SYNC: u32 = 1074304022;
+pub const GPIOHANDLE_SET_CONFIG_IOCTL: u32 = 3226776586;
+pub const VHOST_GET_VRING_ENDIAN: u32 = 1074310932;
+pub const ATM_GETADDR: u32 = 1074553222;
+pub const PHN_GET_REGS: u32 = 3221516290;
+pub const AUTOFS_DEV_IOCTL_REQUESTER: u32 = 3222836091;
+pub const AUTOFS_DEV_IOCTL_EXPIRE: u32 = 3222836092;
+pub const SNAPSHOT_S2RAM: u32 = 13067;
+pub const JSIOCSAXMAP: u32 = 1077963313;
+pub const F2FS_IOC_SET_COMPRESS_OPTION: u32 = 1073935638;
+pub const VBG_IOCTL_HGCM_DISCONNECT: u32 = 3223082501;
+pub const SCIF_FENCE_SIGNAL: u32 = 3223614225;
+pub const VFIO_DEVICE_GET_PCI_HOT_RESET_INFO: u32 = 15216;
+pub const VIDIOC_SUBDEV_ENUM_MBUS_CODE: u32 = 3224393218;
+pub const MMTIMER_GETOFFSET: u32 = 27904;
+pub const RIO_CM_CHAN_LISTEN: u32 = 1073898246;
+pub const ATM_SETSC: u32 = 1074029041;
+pub const F2FS_IOC_SHUTDOWN: u32 = 2147768445;
+pub const NVME_IOCTL_RESCAN: u32 = 20038;
+pub const BLKOPENZONE: u32 = 1074795142;
+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 = 25056;
+pub const IPMI_BMC_IOCTL_CLEAR_SMS_ATN: u32 = 45313;
+pub const HIDIOCGVERSION: u32 = 2147764225;
+pub const VIDIOC_S_INPUT: u32 = 3221509671;
+pub const VIDIOC_G_CROP: u32 = 3222558267;
+pub const LIRC_SET_WIDEBAND_RECEIVER: u32 = 1074030883;
+pub const EVIOCGEFFECTS: u32 = 2147763588;
+pub const UVCIOC_CTRL_QUERY: u32 = 3222041889;
+pub const IOC_OPAL_GENERIC_TABLE_RW: u32 = 1094217963;
+pub const FS_IOC_READ_VERITY_METADATA: u32 = 3223873159;
+pub const ND_IOCTL_SET_CONFIG_DATA: u32 = 3221769734;
+pub const USBDEVFS_GETDRIVER: u32 = 1090802952;
+pub const IDT77105_GETSTAT: u32 = 1074553138;
+pub const HIDIOCINITREPORT: u32 = 18437;
+pub const VFIO_DEVICE_GET_INFO: u32 = 15211;
+pub const RIO_CM_CHAN_RECEIVE: u32 = 3222299402;
+pub const RNDGETENTCNT: u32 = 2147766784;
+pub const PPPIOCNEWUNIT: u32 = 3221517374;
+pub const BTRFS_IOC_INO_LOOKUP: u32 = 3489698834;
+pub const FDRESET: u32 = 596;
+pub const IOC_PR_REGISTER: u32 = 1075343560;
+pub const HIDIOCSREPORT: u32 = 1074546696;
+pub const TEE_IOC_OPEN_SESSION: u32 = 2148574210;
+pub const TEE_IOC_SUPPL_RECV: u32 = 2148574214;
+pub const BTRFS_IOC_BALANCE_CTL: u32 = 1074041889;
+pub const GPIO_GET_LINEINFO_WATCH_IOCTL: u32 = 3225990155;
+pub const HIDIOCGRAWINFO: u32 = 2148026371;
+pub const PPPIOCSCOMPRESS: u32 = 1074558029;
+pub const USBDEVFS_CONNECTINFO: u32 = 1074287889;
+pub const BLKRESETZONE: u32 = 1074795139;
+pub const CHIOINITELEM: u32 = 25361;
+pub const NILFS_IOCTL_SET_ALLOC_RANGE: u32 = 1074818700;
+pub const AUTOFS_DEV_IOCTL_CATATONIC: u32 = 3222836089;
+pub const RIO_MPORT_MAINT_HDID_SET: u32 = 1073900801;
+pub const PPGETPHASE: u32 = 2147774617;
+pub const USBDEVFS_DISCONNECT_CLAIM: u32 = 2164806939;
+pub const FDMSGON: u32 = 581;
+pub const VIDIOC_G_SLICED_VBI_CAP: u32 = 3228849733;
+pub const BTRFS_IOC_BALANCE_V2: u32 = 3288372256;
+pub const MEDIA_REQUEST_IOC_REINIT: u32 = 31873;
+pub const IOC_OPAL_ERASE_LR: u32 = 1091596518;
+pub const FDFMTBEG: u32 = 583;
+pub const RNDRESEEDCRNG: u32 = 20999;
+pub const ISST_IF_GET_PHY_ID: u32 = 3221552641;
+pub const TUNSETNOCSUM: u32 = 1074025672;
+pub const SONET_GETSTAT: u32 = 2149867792;
+pub const TFD_IOC_SET_TICKS: u32 = 1074287616;
+pub const PPDATADIR: u32 = 1074032784;
+pub const IOC_OPAL_ENABLE_DISABLE_MBR: u32 = 1091596517;
+pub const GPIO_V2_GET_LINE_IOCTL: u32 = 3260068871;
+pub const RIO_CM_CHAN_SEND: u32 = 1074815753;
+pub const PPWCTLONIRQ: u32 = 1073836178;
+pub const SONYPI_IOCGBRT: u32 = 2147579392;
+pub const IOC_PR_RELEASE: u32 = 1074819274;
+pub const PPCLRIRQ: u32 = 2147774611;
+pub const IPMICTL_SET_MY_CHANNEL_LUN_CMD: u32 = 2147772698;
+pub const MGSL_IOCSXSYNC: u32 = 27923;
+pub const HPET_IE_OFF: u32 = 26626;
+pub const IOC_OPAL_ACTIVATE_USR: u32 = 1091596513;
+pub const SONET_SETFRAMING: u32 = 1074028821;
+pub const PERF_EVENT_IOC_PAUSE_OUTPUT: u32 = 1074013193;
+pub const BTRFS_IOC_LOGICAL_INO_V2: u32 = 3224933435;
+pub const VBG_IOCTL_HGCM_CONNECT: u32 = 3231471108;
+pub const BLKFINISHZONE: u32 = 1074795144;
+pub const EVIOCREVOKE: u32 = 1074021777;
+pub const VFIO_DEVICE_FEATURE: u32 = 15221;
+pub const CCISS_GETPCIINFO: u32 = 2148024833;
+pub const ISST_IF_MBOX_COMMAND: u32 = 3221552643;
+pub const SCIF_ACCEPTREQ: u32 = 3222303492;
+pub const PERF_EVENT_IOC_QUERY_BPF: u32 = 3221496842;
+pub const VIDIOC_STREAMOFF: u32 = 1074026003;
+pub const VDUSE_DESTROY_DEV: u32 = 1090552067;
+pub const FDGETFDCSTAT: u32 = 2149581333;
+pub const VIDIOC_S_PRIORITY: u32 = 1074026052;
+pub const SNAPSHOT_FREEZE: u32 = 13057;
+pub const VIDIOC_ENUMINPUT: u32 = 3226228250;
+pub const ZATM_GETPOOLZ: u32 = 1074553186;
+pub const RIO_DISABLE_DOORBELL_RANGE: u32 = 1074294026;
+pub const GPIO_V2_GET_LINEINFO_WATCH_IOCTL: u32 = 3238048774;
+pub const VIDIOC_G_STD: u32 = 2148029975;
+pub const USBDEVFS_ALLOW_SUSPEND: u32 = 21794;
+pub const SONET_GETSTATZ: u32 = 2149867793;
+pub const SCIF_ACCEPTREG: u32 = 3221779205;
+pub const VIDIOC_ENCODER_CMD: u32 = 3223869005;
+pub const PPPIOCSRASYNCMAP: u32 = 1074033748;
+pub const IOCTL_MEI_NOTIFY_SET: u32 = 1074022402;
+pub const BTRFS_IOC_QUOTA_RESCAN_STATUS: u32 = 2151715885;
+pub const F2FS_IOC_GARBAGE_COLLECT: u32 = 1074066694;
+pub const ATMLEC_CTRL: u32 = 25040;
+pub const MATROXFB_GET_AVAILABLE_OUTPUTS: u32 = 2147774201;
+pub const DM_DEV_CREATE: u32 = 3241737475;
+pub const VHOST_VDPA_GET_VRING_NUM: u32 = 2147659638;
+pub const VIDIOC_G_CTRL: u32 = 3221771803;
+pub const NBD_CLEAR_SOCK: u32 = 43780;
+pub const VFIO_DEVICE_QUERY_GFX_PLANE: u32 = 15218;
+pub const WDIOC_KEEPALIVE: u32 = 2147768069;
+pub const NVME_IOCTL_SUBSYS_RESET: u32 = 20037;
+pub const PTP_EXTTS_REQUEST2: u32 = 1074806027;
+pub const PCITEST_BAR: u32 = 20481;
+pub const MGSL_IOCGGPIO: u32 = 2148560145;
+pub const EVIOCSREP: u32 = 1074283779;
+pub const VFIO_DEVICE_GET_IRQ_INFO: u32 = 15213;
+pub const HPET_DPI: u32 = 26629;
+pub const VDUSE_VQ_SETUP_KICKFD: u32 = 1074299158;
+pub const ND_IOCTL_CALL: u32 = 3225439754;
+pub const HIDIOCGDEVINFO: u32 = 2149337091;
+pub const DM_TABLE_DEPS: u32 = 3241737483;
+pub const BTRFS_IOC_DEV_INFO: u32 = 3489698846;
+pub const VDUSE_IOTLB_GET_FD: u32 = 3223093520;
+pub const FW_CDEV_IOC_GET_INFO: u32 = 3223593728;
+pub const VIDIOC_G_PRIORITY: u32 = 2147767875;
+pub const ATM_NEWBACKENDIF: u32 = 1073897971;
+pub const VIDIOC_S_EXT_CTRLS: u32 = 3222820424;
+pub const VIDIOC_SUBDEV_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const VIDIOC_OMAP3ISP_CCDC_CFG: u32 = 3223344833;
+pub const VIDIOC_S_HW_FREQ_SEEK: u32 = 1076909650;
+pub const DM_TABLE_LOAD: u32 = 3241737481;
+pub const F2FS_IOC_START_ATOMIC_WRITE: u32 = 62721;
+pub const VIDIOC_G_OUTPUT: u32 = 2147767854;
+pub const ATM_DROPPARTY: u32 = 1074029045;
+pub const CHIOGELEM: u32 = 1080845072;
+pub const BTRFS_IOC_GET_SUPPORTED_FEATURES: u32 = 2152240185;
+pub const EVIOCSKEYCODE: u32 = 1074283780;
+pub const NE_GET_IMAGE_LOAD_INFO: u32 = 3222318626;
+pub const TUNSETLINK: u32 = 1074025677;
+pub const FW_CDEV_IOC_ADD_DESCRIPTOR: u32 = 3222807302;
+pub const BTRFS_IOC_SCRUB_CANCEL: u32 = 37916;
+pub const PPS_SETPARAMS: u32 = 1074032802;
+pub const IOC_OPAL_LR_SETUP: u32 = 1093169379;
+pub const FW_CDEV_IOC_DEALLOCATE: u32 = 1074012931;
+pub const WDIOC_SETTIMEOUT: u32 = 3221509894;
+pub const IOC_WATCH_QUEUE_SET_FILTER: u32 = 22369;
+pub const CAPI_GET_MANUFACTURER: u32 = 3221504774;
+pub const VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY: u32 = 15222;
+pub const ASPEED_P2A_CTRL_IOCTL_SET_WINDOW: u32 = 1074836224;
+pub const VIDIOC_G_EDID: u32 = 3223606824;
+pub const F2FS_IOC_GARBAGE_COLLECT_RANGE: u32 = 1075115275;
+pub const RIO_MAP_INBOUND: u32 = 3223874833;
+pub const IOC_OPAL_TAKE_OWNERSHIP: u32 = 1091072222;
+pub const USBDEVFS_CLAIM_PORT: u32 = 2147767576;
+pub const VIDIOC_S_AUDIO: u32 = 1077171746;
+pub const FS_IOC_GET_ENCRYPTION_NONCE: u32 = 2148558363;
+pub const FW_CDEV_IOC_SEND_STREAM_PACKET: u32 = 1076372243;
+pub const BTRFS_IOC_SNAP_DESTROY: u32 = 1342215183;
+pub const SNAPSHOT_FREE: u32 = 13061;
+pub const I8K_GET_SPEED: u32 = 3221514629;
+pub const HIDIOCGREPORT: u32 = 1074546695;
+pub const HPET_EPI: u32 = 26628;
+pub const JSIOCSCORR: u32 = 1076128289;
+pub const IOC_PR_PREEMPT_ABORT: u32 = 1075343564;
+pub const RIO_MAP_OUTBOUND: u32 = 3223874831;
+pub const ATM_SETESI: u32 = 1074553228;
+pub const FW_CDEV_IOC_START_ISO: u32 = 1074799370;
+pub const ATM_DELADDR: u32 = 1074553225;
+pub const PPFCONTROL: u32 = 1073901710;
+pub const SONYPI_IOCGFAN: u32 = 2147579402;
+pub const RTC_IRQP_SET: u32 = 1074032652;
+pub const PCITEST_WRITE: u32 = 1074024452;
+pub const PPCLAIM: u32 = 28811;
+pub const VIDIOC_S_JPEGCOMP: u32 = 1082938942;
+pub const IPMICTL_UNREGISTER_FOR_CMD: u32 = 2147641615;
+pub const VHOST_SET_FEATURES: u32 = 1074310912;
+pub const TOSHIBA_ACPI_SCI: u32 = 3222828177;
+pub const VIDIOC_DQBUF: u32 = 3225703953;
+pub const BTRFS_IOC_BALANCE_PROGRESS: u32 = 2214630434;
+pub const BTRFS_IOC_SUBVOL_SETFLAGS: u32 = 1074304026;
+pub const ATMLEC_MCAST: u32 = 25042;
+pub const MMTIMER_GETFREQ: u32 = 2147773698;
+pub const VIDIOC_G_SELECTION: u32 = 3225441886;
+pub const RTC_ALM_SET: u32 = 1076129799;
+pub const PPPOEIOCSFWD: u32 = 1074049280;
+pub const IPMICTL_GET_MAINTENANCE_MODE_CMD: u32 = 2147772702;
+pub const FS_IOC_ENABLE_VERITY: u32 = 1082156677;
+pub const NILFS_IOCTL_GET_BDESCS: u32 = 3222826631;
+pub const FDFMTEND: u32 = 585;
+pub const DMA_BUF_SET_NAME: u32 = 1074029057;
+pub const UI_BEGIN_FF_UPLOAD: u32 = 3227538888;
+pub const RTC_UIE_ON: u32 = 28675;
+pub const PPRELEASE: u32 = 28812;
+pub const VFIO_IOMMU_UNMAP_DMA: u32 = 15218;
+pub const VIDIOC_OMAP3ISP_PRV_CFG: u32 = 3225179842;
+pub const GPIO_GET_LINEHANDLE_IOCTL: u32 = 3245126659;
+pub const VFAT_IOCTL_READDIR_BOTH: u32 = 2182640129;
+pub const NVME_IOCTL_ADMIN_CMD: u32 = 3225964097;
+pub const VHOST_SET_VRING_KICK: u32 = 1074310944;
+pub const BTRFS_IOC_SUBVOL_CREATE_V2: u32 = 1342215192;
+pub const BTRFS_IOC_SNAP_CREATE: u32 = 1342215169;
+pub const SONYPI_IOCGBAT2CAP: u32 = 2147644932;
+pub const PPNEGOT: u32 = 1074032785;
+pub const NBD_PRINT_DEBUG: u32 = 43782;
+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 = 2214630431;
+pub const VIDIOC_ENUM_FMT: u32 = 3225441794;
+pub const VIDIOC_G_INPUT: u32 = 2147767846;
+pub const VTPM_PROXY_IOC_NEW_DEV: u32 = 3222577408;
+pub const DFL_FPGA_FME_ERR_GET_IRQ_NUM: u32 = 2147792515;
+pub const ND_IOCTL_DIMM_FLAGS: u32 = 3221769731;
+pub const BTRFS_IOC_QUOTA_RESCAN: u32 = 1077974060;
+pub const MMTIMER_GETCOUNTER: u32 = 2147773705;
+pub const MATROXFB_GET_OUTPUT_MODE: u32 = 3221516026;
+pub const BTRFS_IOC_QUOTA_RESCAN_WAIT: u32 = 37934;
+pub const RIO_CM_CHAN_BIND: u32 = 1074291461;
+pub const HIDIOCGRDESC: u32 = 2416199682;
+pub const MGSL_IOCGIF: u32 = 27915;
+pub const VIDIOC_S_OUTPUT: u32 = 3221509679;
+pub const HIDIOCGREPORTINFO: u32 = 3222030345;
+pub const WDIOC_GETBOOTSTATUS: u32 = 2147768066;
+pub const VDUSE_VQ_GET_INFO: u32 = 3224142101;
+pub const ACRN_IOCTL_ASSIGN_PCIDEV: u32 = 1076142677;
+pub const BLKGETDISKSEQ: u32 = 2148012672;
+pub const ACRN_IOCTL_PM_GET_CPU_STATE: u32 = 3221791328;
+pub const ACRN_IOCTL_DESTROY_VM: u32 = 41489;
+pub const ACRN_IOCTL_SET_PTDEV_INTR: u32 = 1075094099;
+pub const ACRN_IOCTL_CREATE_IOREQ_CLIENT: u32 = 41522;
+pub const ACRN_IOCTL_IRQFD: u32 = 1075356273;
+pub const ACRN_IOCTL_CREATE_VM: u32 = 3224412688;
+pub const ACRN_IOCTL_INJECT_MSI: u32 = 1074831907;
+pub const ACRN_IOCTL_ATTACH_IOREQ_CLIENT: u32 = 41523;
+pub const ACRN_IOCTL_RESET_PTDEV_INTR: u32 = 1075094100;
+pub const ACRN_IOCTL_NOTIFY_REQUEST_FINISH: u32 = 1074307633;
+pub const ACRN_IOCTL_SET_IRQLINE: u32 = 1074307621;
+pub const ACRN_IOCTL_START_VM: u32 = 41490;
+pub const ACRN_IOCTL_SET_VCPU_REGS: u32 = 1092919830;
+pub const ACRN_IOCTL_SET_MEMSEG: u32 = 1075880513;
+pub const ACRN_IOCTL_PAUSE_VM: u32 = 41491;
+pub const ACRN_IOCTL_CLEAR_VM_IOREQ: u32 = 41525;
+pub const ACRN_IOCTL_UNSET_MEMSEG: u32 = 1075880514;
+pub const ACRN_IOCTL_IOEVENTFD: u32 = 1075880560;
+pub const ACRN_IOCTL_DEASSIGN_PCIDEV: u32 = 1076142678;
+pub const ACRN_IOCTL_RESET_VM: u32 = 41493;
+pub const ACRN_IOCTL_DESTROY_IOREQ_CLIENT: u32 = 41524;
+pub const ACRN_IOCTL_VM_INTR_MONITOR: u32 = 1074045476;
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/x86/landlock.rs
new file mode 100644
index 0000000..422350c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/landlock.rs
@@ -0,0 +1,98 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/x86/loop_device.rs
new file mode 100644
index 0000000..4178e49
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/loop_device.rs
@@ -0,0 +1,132 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/x86/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/x86/mempolicy.rs
new file mode 100644
index 0000000..ad4957c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/mempolicy.rs
@@ -0,0 +1,175 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
+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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86/net.rs b/vendor/linux-raw-sys-0.9.4/src/x86/net.rs
new file mode 100644
index 0000000..bd922e6
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/net.rs
@@ -0,0 +1,3421 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u32; 67usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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 SIOCGSTAMP_OLD: u32 = 35078;
+pub const SIOCGSTAMPNS_OLD: u32 = 35079;
+pub const SOL_SOCKET: u32 = 1;
+pub const SO_DEBUG: u32 = 1;
+pub const SO_REUSEADDR: u32 = 2;
+pub const SO_TYPE: u32 = 3;
+pub const SO_ERROR: u32 = 4;
+pub const SO_DONTROUTE: u32 = 5;
+pub const SO_BROADCAST: u32 = 6;
+pub const SO_SNDBUF: u32 = 7;
+pub const SO_RCVBUF: u32 = 8;
+pub const SO_SNDBUFFORCE: u32 = 32;
+pub const SO_RCVBUFFORCE: u32 = 33;
+pub const SO_KEEPALIVE: u32 = 9;
+pub const SO_OOBINLINE: u32 = 10;
+pub const SO_NO_CHECK: u32 = 11;
+pub const SO_PRIORITY: u32 = 12;
+pub const SO_LINGER: u32 = 13;
+pub const SO_BSDCOMPAT: u32 = 14;
+pub const SO_REUSEPORT: u32 = 15;
+pub const SO_PASSCRED: u32 = 16;
+pub const SO_PEERCRED: u32 = 17;
+pub const SO_RCVLOWAT: u32 = 18;
+pub const SO_SNDLOWAT: u32 = 19;
+pub const SO_RCVTIMEO_OLD: u32 = 20;
+pub const SO_SNDTIMEO_OLD: u32 = 21;
+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_ACCEPTCONN: u32 = 30;
+pub const SO_PEERSEC: u32 = 31;
+pub const SO_PASSSEC: u32 = 34;
+pub const SO_MARK: u32 = 36;
+pub const SO_PROTOCOL: u32 = 38;
+pub const SO_DOMAIN: u32 = 39;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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 = 1;
+pub const SOCK_DGRAM: u32 = 2;
+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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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 = 32768,
+TCP_FLAG_ECE = 16384,
+TCP_FLAG_URG = 8192,
+TCP_FLAG_ACK = 4096,
+TCP_FLAG_PSH = 2048,
+TCP_FLAG_RST = 1024,
+TCP_FLAG_SYN = 512,
+TCP_FLAG_FIN = 256,
+TCP_RESERVED_BITS = 15,
+TCP_DATA_OFFSET = 240,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn ihl(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_ihl(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(ihl: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let ihl: u8 = unsafe { ::core::mem::transmute(ihl) };
+ihl as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl ipv6hdr {
+#[inline]
+pub fn priority(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_priority(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(priority: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let priority: u8 = unsafe { ::core::mem::transmute(priority) };
+priority as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcphdr {
+#[inline]
+pub fn res1(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_res1(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn doff(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_doff(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn fin(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_fin(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn syn(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_syn(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn rst(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_rst(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn psh(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_psh(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ack(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ack(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn urg(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_urg(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ece(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ece(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn cwr(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_cwr(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(res1: __u16, doff: __u16, fin: __u16, syn: __u16, rst: __u16, psh: __u16, ack: __u16, urg: __u16, ece: __u16, cwr: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let res1: u16 = unsafe { ::core::mem::transmute(res1) };
+res1 as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let doff: u16 = unsafe { ::core::mem::transmute(doff) };
+doff as u64
+});
+__bindgen_bitfield_unit.set(8usize, 1u8, {
+let fin: u16 = unsafe { ::core::mem::transmute(fin) };
+fin as u64
+});
+__bindgen_bitfield_unit.set(9usize, 1u8, {
+let syn: u16 = unsafe { ::core::mem::transmute(syn) };
+syn as u64
+});
+__bindgen_bitfield_unit.set(10usize, 1u8, {
+let rst: u16 = unsafe { ::core::mem::transmute(rst) };
+rst as u64
+});
+__bindgen_bitfield_unit.set(11usize, 1u8, {
+let psh: u16 = unsafe { ::core::mem::transmute(psh) };
+psh as u64
+});
+__bindgen_bitfield_unit.set(12usize, 1u8, {
+let ack: u16 = unsafe { ::core::mem::transmute(ack) };
+ack as u64
+});
+__bindgen_bitfield_unit.set(13usize, 1u8, {
+let urg: u16 = unsafe { ::core::mem::transmute(urg) };
+urg as u64
+});
+__bindgen_bitfield_unit.set(14usize, 1u8, {
+let ece: u16 = unsafe { ::core::mem::transmute(ece) };
+ece as u64
+});
+__bindgen_bitfield_unit.set(15usize, 1u8, {
+let cwr: u16 = unsafe { ::core::mem::transmute(cwr) };
+cwr 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/x86/netlink.rs
new file mode 100644
index 0000000..08aeeaa
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/netlink.rs
@@ -0,0 +1,2944 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_nl {
+pub nl_family: __kernel_sa_family_t,
+pub nl_pad: crate::ctypes::c_ushort,
+pub nl_pid: __u32,
+pub nl_groups: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsghdr {
+pub nlmsg_len: __u32,
+pub nlmsg_type: __u16,
+pub nlmsg_flags: __u16,
+pub nlmsg_seq: __u32,
+pub nlmsg_pid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsgerr {
+pub error: crate::ctypes::c_int,
+pub msg: nlmsghdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_pktinfo {
+pub group: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_req {
+pub nm_block_size: crate::ctypes::c_uint,
+pub nm_block_nr: crate::ctypes::c_uint,
+pub nm_frame_size: crate::ctypes::c_uint,
+pub nm_frame_nr: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_hdr {
+pub nm_status: crate::ctypes::c_uint,
+pub nm_len: crate::ctypes::c_uint,
+pub nm_group: __u32,
+pub nm_pid: __u32,
+pub nm_uid: __u32,
+pub nm_gid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlattr {
+pub nla_len: __u16,
+pub nla_type: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nla_bitfield32 {
+pub value: __u32,
+pub selector: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats {
+pub rx_packets: __u32,
+pub tx_packets: __u32,
+pub rx_bytes: __u32,
+pub tx_bytes: __u32,
+pub rx_errors: __u32,
+pub tx_errors: __u32,
+pub rx_dropped: __u32,
+pub tx_dropped: __u32,
+pub multicast: __u32,
+pub collisions: __u32,
+pub rx_length_errors: __u32,
+pub rx_over_errors: __u32,
+pub rx_crc_errors: __u32,
+pub rx_frame_errors: __u32,
+pub rx_fifo_errors: __u32,
+pub rx_missed_errors: __u32,
+pub tx_aborted_errors: __u32,
+pub tx_carrier_errors: __u32,
+pub tx_fifo_errors: __u32,
+pub tx_heartbeat_errors: __u32,
+pub tx_window_errors: __u32,
+pub rx_compressed: __u32,
+pub tx_compressed: __u32,
+pub rx_nohandler: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+pub collisions: __u64,
+pub rx_length_errors: __u64,
+pub rx_over_errors: __u64,
+pub rx_crc_errors: __u64,
+pub rx_frame_errors: __u64,
+pub rx_fifo_errors: __u64,
+pub rx_missed_errors: __u64,
+pub tx_aborted_errors: __u64,
+pub tx_carrier_errors: __u64,
+pub tx_fifo_errors: __u64,
+pub tx_heartbeat_errors: __u64,
+pub tx_window_errors: __u64,
+pub rx_compressed: __u64,
+pub tx_compressed: __u64,
+pub rx_nohandler: __u64,
+pub rx_otherhost_dropped: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_hw_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_ifmap {
+pub mem_start: __u64,
+pub mem_end: __u64,
+pub base_addr: __u64,
+pub irq: __u16,
+pub dma: __u8,
+pub port: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_bridge_id {
+pub prio: [__u8; 2usize],
+pub addr: [__u8; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_cacheinfo {
+pub max_reasm_len: __u32,
+pub tstamp: __u32,
+pub reachable_time: __u32,
+pub retrans_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_qos_mapping {
+pub from: __u32,
+pub to: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tunnel_msg {
+pub family: __u8,
+pub flags: __u8,
+pub reserved2: __u16,
+pub ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vxlan_port_range {
+pub low: __be16,
+pub high: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_mac {
+pub vf: __u32,
+pub mac: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_broadcast {
+pub broadcast: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan_info {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+pub vlan_proto: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_tx_rate {
+pub vf: __u32,
+pub rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rate {
+pub vf: __u32,
+pub min_tx_rate: __u32,
+pub max_tx_rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_spoofchk {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_guid {
+pub vf: __u32,
+pub guid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_link_state {
+pub vf: __u32,
+pub link_state: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rss_query_en {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_trust {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_port_vsi {
+pub vsi_mgr_id: __u8,
+pub vsi_type_id: [__u8; 3usize],
+pub vsi_type_version: __u8,
+pub pad: [__u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_stats_msg {
+pub family: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub ifindex: __u32,
+pub filter_mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_rmnet_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifaddrmsg {
+pub ifa_family: __u8,
+pub ifa_prefixlen: __u8,
+pub ifa_flags: __u8,
+pub ifa_scope: __u8,
+pub ifa_index: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifa_cacheinfo {
+pub ifa_prefered: __u32,
+pub ifa_valid: __u32,
+pub cstamp: __u32,
+pub tstamp: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndmsg {
+pub ndm_family: __u8,
+pub ndm_pad1: __u8,
+pub ndm_pad2: __u16,
+pub ndm_ifindex: __s32,
+pub ndm_state: __u16,
+pub ndm_flags: __u8,
+pub ndm_type: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nda_cacheinfo {
+pub ndm_confirmed: __u32,
+pub ndm_used: __u32,
+pub ndm_updated: __u32,
+pub ndm_refcnt: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_stats {
+pub ndts_allocs: __u64,
+pub ndts_destroys: __u64,
+pub ndts_hash_grows: __u64,
+pub ndts_res_failed: __u64,
+pub ndts_lookups: __u64,
+pub ndts_hits: __u64,
+pub ndts_rcv_probes_mcast: __u64,
+pub ndts_rcv_probes_ucast: __u64,
+pub ndts_periodic_gc_runs: __u64,
+pub ndts_forced_gc_runs: __u64,
+pub ndts_table_fulls: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndtmsg {
+pub ndtm_family: __u8,
+pub ndtm_pad1: __u8,
+pub ndtm_pad2: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_config {
+pub ndtc_key_len: __u16,
+pub ndtc_entry_size: __u16,
+pub ndtc_entries: __u32,
+pub ndtc_last_flush: __u32,
+pub ndtc_last_rand: __u32,
+pub ndtc_hash_rnd: __u32,
+pub ndtc_hash_mask: __u32,
+pub ndtc_hash_chain_gc: __u32,
+pub ndtc_proxy_qlen: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtattr {
+pub rta_len: crate::ctypes::c_ushort,
+pub rta_type: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtmsg {
+pub rtm_family: crate::ctypes::c_uchar,
+pub rtm_dst_len: crate::ctypes::c_uchar,
+pub rtm_src_len: crate::ctypes::c_uchar,
+pub rtm_tos: crate::ctypes::c_uchar,
+pub rtm_table: crate::ctypes::c_uchar,
+pub rtm_protocol: crate::ctypes::c_uchar,
+pub rtm_scope: crate::ctypes::c_uchar,
+pub rtm_type: crate::ctypes::c_uchar,
+pub rtm_flags: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnexthop {
+pub rtnh_len: crate::ctypes::c_ushort,
+pub rtnh_flags: crate::ctypes::c_uchar,
+pub rtnh_hops: crate::ctypes::c_uchar,
+pub rtnh_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct rtvia {
+pub rtvia_family: __kernel_sa_family_t,
+pub rtvia_addr: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_cacheinfo {
+pub rta_clntref: __u32,
+pub rta_lastuse: __u32,
+pub rta_expires: __s32,
+pub rta_error: __u32,
+pub rta_used: __u32,
+pub rta_id: __u32,
+pub rta_ts: __u32,
+pub rta_tsage: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rta_session {
+pub proto: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub u: rta_session__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_1 {
+pub sport: __u16,
+pub dport: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_2 {
+pub type_: __u8,
+pub code: __u8,
+pub ident: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_mfc_stats {
+pub mfcs_packets: __u64,
+pub mfcs_bytes: __u64,
+pub mfcs_wrong_if: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtgenmsg {
+pub rtgen_family: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifinfomsg {
+pub ifi_family: crate::ctypes::c_uchar,
+pub __ifi_pad: crate::ctypes::c_uchar,
+pub ifi_type: crate::ctypes::c_ushort,
+pub ifi_index: crate::ctypes::c_int,
+pub ifi_flags: crate::ctypes::c_uint,
+pub ifi_change: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefixmsg {
+pub prefix_family: crate::ctypes::c_uchar,
+pub prefix_pad1: crate::ctypes::c_uchar,
+pub prefix_pad2: crate::ctypes::c_ushort,
+pub prefix_ifindex: crate::ctypes::c_int,
+pub prefix_type: crate::ctypes::c_uchar,
+pub prefix_len: crate::ctypes::c_uchar,
+pub prefix_flags: crate::ctypes::c_uchar,
+pub prefix_pad3: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefix_cacheinfo {
+pub preferred_time: __u32,
+pub valid_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcmsg {
+pub tcm_family: crate::ctypes::c_uchar,
+pub tcm__pad1: crate::ctypes::c_uchar,
+pub tcm__pad2: crate::ctypes::c_ushort,
+pub tcm_ifindex: crate::ctypes::c_int,
+pub tcm_handle: __u32,
+pub tcm_parent: __u32,
+pub tcm_info: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nduseroptmsg {
+pub nduseropt_family: crate::ctypes::c_uchar,
+pub nduseropt_pad1: crate::ctypes::c_uchar,
+pub nduseropt_opts_len: crate::ctypes::c_ushort,
+pub nduseropt_ifindex: crate::ctypes::c_int,
+pub nduseropt_icmp_type: __u8,
+pub nduseropt_icmp_code: __u8,
+pub nduseropt_pad2: crate::ctypes::c_ushort,
+pub nduseropt_pad3: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcamsg {
+pub tca_family: crate::ctypes::c_uchar,
+pub tca__pad1: crate::ctypes::c_uchar,
+pub tca__pad2: crate::ctypes::c_ushort,
+}
+pub const _K_SS_MAXSIZE: u32 = 128;
+pub const SOCK_SNDBUF_LOCK: u32 = 1;
+pub const SOCK_RCVBUF_LOCK: u32 = 2;
+pub const SOCK_BUF_LOCK_MASK: u32 = 3;
+pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
+pub const SOCK_TXREHASH_DISABLED: u32 = 0;
+pub const SOCK_TXREHASH_ENABLED: u32 = 1;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/x86/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/x86/prctl.rs
new file mode 100644
index 0000000..fc0bf89
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/prctl.rs
@@ -0,0 +1,260 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/x86/ptrace.rs
new file mode 100644
index 0000000..69c3554
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/ptrace.rs
@@ -0,0 +1,909 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+pub type __kernel_off_t = __kernel_long_t;
+pub type __kernel_loff_t = crate::ctypes::c_longlong;
+pub type __kernel_old_time_t = __kernel_long_t;
+pub type __kernel_time_t = __kernel_long_t;
+pub type __kernel_time64_t = crate::ctypes::c_longlong;
+pub type __kernel_clock_t = __kernel_long_t;
+pub type __kernel_timer_t = crate::ctypes::c_int;
+pub type __kernel_clockid_t = crate::ctypes::c_int;
+pub type __kernel_caddr_t = *mut crate::ctypes::c_char;
+pub type __kernel_uid16_t = crate::ctypes::c_ushort;
+pub type __kernel_gid16_t = crate::ctypes::c_ushort;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pt_regs {
+pub ebx: crate::ctypes::c_long,
+pub ecx: crate::ctypes::c_long,
+pub edx: crate::ctypes::c_long,
+pub esi: crate::ctypes::c_long,
+pub edi: crate::ctypes::c_long,
+pub ebp: crate::ctypes::c_long,
+pub eax: crate::ctypes::c_long,
+pub xds: crate::ctypes::c_int,
+pub xes: crate::ctypes::c_int,
+pub xfs: crate::ctypes::c_int,
+pub xgs: crate::ctypes::c_int,
+pub orig_eax: crate::ctypes::c_long,
+pub eip: crate::ctypes::c_long,
+pub xcs: crate::ctypes::c_int,
+pub eflags: crate::ctypes::c_long,
+pub esp: crate::ctypes::c_long,
+pub xss: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const EBX: u32 = 0;
+pub const ECX: u32 = 1;
+pub const EDX: u32 = 2;
+pub const ESI: u32 = 3;
+pub const EDI: u32 = 4;
+pub const EBP: u32 = 5;
+pub const EAX: u32 = 6;
+pub const DS: u32 = 7;
+pub const ES: u32 = 8;
+pub const FS: u32 = 9;
+pub const GS: u32 = 10;
+pub const ORIG_EAX: u32 = 11;
+pub const EIP: u32 = 12;
+pub const CS: u32 = 13;
+pub const EFL: u32 = 14;
+pub const UESP: u32 = 15;
+pub const SS: u32 = 16;
+pub const FRAME_SIZE: u32 = 17;
+pub const PTRACE_GETREGS: u32 = 12;
+pub const PTRACE_SETREGS: u32 = 13;
+pub const PTRACE_GETFPREGS: u32 = 14;
+pub const PTRACE_SETFPREGS: u32 = 15;
+pub const PTRACE_GETFPXREGS: u32 = 18;
+pub const PTRACE_SETFPXREGS: u32 = 19;
+pub const PTRACE_OLDSETOPTIONS: u32 = 21;
+pub const PTRACE_GET_THREAD_AREA: u32 = 25;
+pub const PTRACE_SET_THREAD_AREA: u32 = 26;
+pub const PTRACE_SYSEMU: u32 = 31;
+pub const PTRACE_SYSEMU_SINGLESTEP: u32 = 32;
+pub const PTRACE_SINGLEBLOCK: u32 = 33;
+pub const X86_EFLAGS_CF_BIT: u32 = 0;
+pub const X86_EFLAGS_FIXED_BIT: u32 = 1;
+pub const X86_EFLAGS_PF_BIT: u32 = 2;
+pub const X86_EFLAGS_AF_BIT: u32 = 4;
+pub const X86_EFLAGS_ZF_BIT: u32 = 6;
+pub const X86_EFLAGS_SF_BIT: u32 = 7;
+pub const X86_EFLAGS_TF_BIT: u32 = 8;
+pub const X86_EFLAGS_IF_BIT: u32 = 9;
+pub const X86_EFLAGS_DF_BIT: u32 = 10;
+pub const X86_EFLAGS_OF_BIT: u32 = 11;
+pub const X86_EFLAGS_IOPL_BIT: u32 = 12;
+pub const X86_EFLAGS_NT_BIT: u32 = 14;
+pub const X86_EFLAGS_RF_BIT: u32 = 16;
+pub const X86_EFLAGS_VM_BIT: u32 = 17;
+pub const X86_EFLAGS_AC_BIT: u32 = 18;
+pub const X86_EFLAGS_VIF_BIT: u32 = 19;
+pub const X86_EFLAGS_VIP_BIT: u32 = 20;
+pub const X86_EFLAGS_ID_BIT: u32 = 21;
+pub const X86_CR0_PE_BIT: u32 = 0;
+pub const X86_CR0_MP_BIT: u32 = 1;
+pub const X86_CR0_EM_BIT: u32 = 2;
+pub const X86_CR0_TS_BIT: u32 = 3;
+pub const X86_CR0_ET_BIT: u32 = 4;
+pub const X86_CR0_NE_BIT: u32 = 5;
+pub const X86_CR0_WP_BIT: u32 = 16;
+pub const X86_CR0_AM_BIT: u32 = 18;
+pub const X86_CR0_NW_BIT: u32 = 29;
+pub const X86_CR0_CD_BIT: u32 = 30;
+pub const X86_CR0_PG_BIT: u32 = 31;
+pub const X86_CR3_PWT_BIT: u32 = 3;
+pub const X86_CR3_PCD_BIT: u32 = 4;
+pub const X86_CR3_PCID_BITS: u32 = 12;
+pub const X86_CR3_LAM_U57_BIT: u32 = 61;
+pub const X86_CR3_LAM_U48_BIT: u32 = 62;
+pub const X86_CR3_PCID_NOFLUSH_BIT: u32 = 63;
+pub const X86_CR4_VME_BIT: u32 = 0;
+pub const X86_CR4_PVI_BIT: u32 = 1;
+pub const X86_CR4_TSD_BIT: u32 = 2;
+pub const X86_CR4_DE_BIT: u32 = 3;
+pub const X86_CR4_PSE_BIT: u32 = 4;
+pub const X86_CR4_PAE_BIT: u32 = 5;
+pub const X86_CR4_MCE_BIT: u32 = 6;
+pub const X86_CR4_PGE_BIT: u32 = 7;
+pub const X86_CR4_PCE_BIT: u32 = 8;
+pub const X86_CR4_OSFXSR_BIT: u32 = 9;
+pub const X86_CR4_OSXMMEXCPT_BIT: u32 = 10;
+pub const X86_CR4_UMIP_BIT: u32 = 11;
+pub const X86_CR4_LA57_BIT: u32 = 12;
+pub const X86_CR4_VMXE_BIT: u32 = 13;
+pub const X86_CR4_SMXE_BIT: u32 = 14;
+pub const X86_CR4_FSGSBASE_BIT: u32 = 16;
+pub const X86_CR4_PCIDE_BIT: u32 = 17;
+pub const X86_CR4_OSXSAVE_BIT: u32 = 18;
+pub const X86_CR4_SMEP_BIT: u32 = 20;
+pub const X86_CR4_SMAP_BIT: u32 = 21;
+pub const X86_CR4_PKE_BIT: u32 = 22;
+pub const X86_CR4_CET_BIT: u32 = 23;
+pub const X86_CR4_LAM_SUP_BIT: u32 = 28;
+pub const X86_CR4_FRED: u32 = 0;
+pub const CX86_PCR0: u32 = 32;
+pub const CX86_GCR: u32 = 184;
+pub const CX86_CCR0: u32 = 192;
+pub const CX86_CCR1: u32 = 193;
+pub const CX86_CCR2: u32 = 194;
+pub const CX86_CCR3: u32 = 195;
+pub const CX86_CCR4: u32 = 232;
+pub const CX86_CCR5: u32 = 233;
+pub const CX86_CCR6: u32 = 234;
+pub const CX86_CCR7: u32 = 235;
+pub const CX86_PCR1: u32 = 240;
+pub const CX86_DIR0: u32 = 254;
+pub const CX86_DIR1: u32 = 255;
+pub const CX86_ARR_BASE: u32 = 196;
+pub const CX86_RCR_BASE: u32 = 220;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86/system.rs b/vendor/linux-raw-sys-0.9.4/src/x86/system.rs
new file mode 100644
index 0000000..e1f9f19
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/system.rs
@@ -0,0 +1,100 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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 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: [crate::ctypes::c_char; 8usize],
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/x86/xdp.rs
new file mode 100644
index 0000000..875b5f9
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86/xdp.rs
@@ -0,0 +1,189 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_mode_t = crate::ctypes::c_ushort;
+pub type __kernel_ipc_pid_t = crate::ctypes::c_ushort;
+pub type __kernel_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ushort;
+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_pid_t = crate::ctypes::c_int;
+pub type __kernel_suseconds_t = __kernel_long_t;
+pub type __kernel_daddr_t = crate::ctypes::c_int;
+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_size_t = crate::ctypes::c_uint;
+pub type __kernel_ssize_t = crate::ctypes::c_int;
+pub type __kernel_ptrdiff_t = crate::ctypes::c_int;
+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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86_64/bootparam.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/bootparam.rs
new file mode 100644
index 0000000..c8560af
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/bootparam.rs
@@ -0,0 +1,662 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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 __s128 = i128;
+pub type __u128 = u128;
+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 apm_event_t = crate::ctypes::c_ushort;
+pub type apm_eventinfo_t = crate::ctypes::c_ushort;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug)]
+pub struct setup_data {
+pub next: __u64,
+pub type_: __u32,
+pub len: __u32,
+pub data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct setup_indirect {
+pub type_: __u32,
+pub reserved: __u32,
+pub len: __u64,
+pub addr: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct boot_e820_entry {
+pub addr: __u64,
+pub size: __u64,
+pub type_: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct jailhouse_setup_data {
+pub hdr: jailhouse_setup_data__bindgen_ty_1,
+pub v1: jailhouse_setup_data__bindgen_ty_2,
+pub v2: jailhouse_setup_data__bindgen_ty_3,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct jailhouse_setup_data__bindgen_ty_1 {
+pub version: __u16,
+pub compatible_version: __u16,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct jailhouse_setup_data__bindgen_ty_2 {
+pub pm_timer_address: __u16,
+pub num_cpus: __u16,
+pub pci_mmconfig_base: __u64,
+pub tsc_khz: __u32,
+pub apic_khz: __u32,
+pub standard_ioapic: __u8,
+pub cpu_ids: [__u8; 255usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct jailhouse_setup_data__bindgen_ty_3 {
+pub flags: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ima_setup_data {
+pub addr: __u64,
+pub size: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct screen_info {
+pub orig_x: __u8,
+pub orig_y: __u8,
+pub ext_mem_k: __u16,
+pub orig_video_page: __u16,
+pub orig_video_mode: __u8,
+pub orig_video_cols: __u8,
+pub flags: __u8,
+pub unused2: __u8,
+pub orig_video_ega_bx: __u16,
+pub unused3: __u16,
+pub orig_video_lines: __u8,
+pub orig_video_isVGA: __u8,
+pub orig_video_points: __u16,
+pub lfb_width: __u16,
+pub lfb_height: __u16,
+pub lfb_depth: __u16,
+pub lfb_base: __u32,
+pub lfb_size: __u32,
+pub cl_magic: __u16,
+pub cl_offset: __u16,
+pub lfb_linelength: __u16,
+pub red_size: __u8,
+pub red_pos: __u8,
+pub green_size: __u8,
+pub green_pos: __u8,
+pub blue_size: __u8,
+pub blue_pos: __u8,
+pub rsvd_size: __u8,
+pub rsvd_pos: __u8,
+pub vesapm_seg: __u16,
+pub vesapm_off: __u16,
+pub pages: __u16,
+pub vesa_attributes: __u16,
+pub capabilities: __u32,
+pub ext_lfb_base: __u32,
+pub _reserved: [__u8; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct apm_bios_info {
+pub version: __u16,
+pub cseg: __u16,
+pub offset: __u32,
+pub cseg_16: __u16,
+pub dseg: __u16,
+pub flags: __u16,
+pub cseg_len: __u16,
+pub cseg_16_len: __u16,
+pub dseg_len: __u16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct edd_device_params {
+pub length: __u16,
+pub info_flags: __u16,
+pub num_default_cylinders: __u32,
+pub num_default_heads: __u32,
+pub sectors_per_track: __u32,
+pub number_of_sectors: __u64,
+pub bytes_per_sector: __u16,
+pub dpte_ptr: __u32,
+pub key: __u16,
+pub device_path_info_length: __u8,
+pub reserved2: __u8,
+pub reserved3: __u16,
+pub host_bus_type: [__u8; 4usize],
+pub interface_type: [__u8; 8usize],
+pub interface_path: edd_device_params__bindgen_ty_1,
+pub device_path: edd_device_params__bindgen_ty_2,
+pub reserved4: __u8,
+pub checksum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_1 {
+pub base_address: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_2 {
+pub bus: __u8,
+pub slot: __u8,
+pub function: __u8,
+pub channel: __u8,
+pub reserved: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_3 {
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_4 {
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_5 {
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_1__bindgen_ty_6 {
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_1 {
+pub device: __u8,
+pub reserved1: __u8,
+pub reserved2: __u16,
+pub reserved3: __u32,
+pub reserved4: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_2 {
+pub device: __u8,
+pub lun: __u8,
+pub reserved1: __u8,
+pub reserved2: __u8,
+pub reserved3: __u32,
+pub reserved4: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_3 {
+pub id: __u16,
+pub lun: __u64,
+pub reserved1: __u16,
+pub reserved2: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_4 {
+pub serial_number: __u64,
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_5 {
+pub eui: __u64,
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_6 {
+pub wwid: __u64,
+pub lun: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_7 {
+pub identity_tag: __u64,
+pub reserved: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_8 {
+pub array_number: __u32,
+pub reserved1: __u32,
+pub reserved2: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_9 {
+pub device: __u8,
+pub reserved1: __u8,
+pub reserved2: __u16,
+pub reserved3: __u32,
+pub reserved4: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct edd_device_params__bindgen_ty_2__bindgen_ty_10 {
+pub reserved1: __u64,
+pub reserved2: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct edd_info {
+pub device: __u8,
+pub version: __u8,
+pub interface_support: __u16,
+pub legacy_max_cylinder: __u16,
+pub legacy_max_head: __u8,
+pub legacy_sectors_per_track: __u8,
+pub params: edd_device_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct edd {
+pub mbr_signature: [crate::ctypes::c_uint; 16usize],
+pub edd_info: [edd_info; 6usize],
+pub mbr_signature_nr: crate::ctypes::c_uchar,
+pub edd_info_nr: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ist_info {
+pub signature: __u32,
+pub command: __u32,
+pub event: __u32,
+pub perf_level: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct edid_info {
+pub dummy: [crate::ctypes::c_uchar; 128usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct setup_header {
+pub setup_sects: __u8,
+pub root_flags: __u16,
+pub syssize: __u32,
+pub ram_size: __u16,
+pub vid_mode: __u16,
+pub root_dev: __u16,
+pub boot_flag: __u16,
+pub jump: __u16,
+pub header: __u32,
+pub version: __u16,
+pub realmode_swtch: __u32,
+pub start_sys_seg: __u16,
+pub kernel_version: __u16,
+pub type_of_loader: __u8,
+pub loadflags: __u8,
+pub setup_move_size: __u16,
+pub code32_start: __u32,
+pub ramdisk_image: __u32,
+pub ramdisk_size: __u32,
+pub bootsect_kludge: __u32,
+pub heap_end_ptr: __u16,
+pub ext_loader_ver: __u8,
+pub ext_loader_type: __u8,
+pub cmd_line_ptr: __u32,
+pub initrd_addr_max: __u32,
+pub kernel_alignment: __u32,
+pub relocatable_kernel: __u8,
+pub min_alignment: __u8,
+pub xloadflags: __u16,
+pub cmdline_size: __u32,
+pub hardware_subarch: __u32,
+pub hardware_subarch_data: __u64,
+pub payload_offset: __u32,
+pub payload_length: __u32,
+pub setup_data: __u64,
+pub pref_address: __u64,
+pub init_size: __u32,
+pub handover_offset: __u32,
+pub kernel_info_offset: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sys_desc_table {
+pub length: __u16,
+pub table: [__u8; 14usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct olpc_ofw_header {
+pub ofw_magic: __u32,
+pub ofw_version: __u32,
+pub cif_handler: __u32,
+pub irq_desc_table: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct efi_info {
+pub efi_loader_signature: __u32,
+pub efi_systab: __u32,
+pub efi_memdesc_size: __u32,
+pub efi_memdesc_version: __u32,
+pub efi_memmap: __u32,
+pub efi_memmap_size: __u32,
+pub efi_systab_hi: __u32,
+pub efi_memmap_hi: __u32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct boot_params {
+pub screen_info: screen_info,
+pub apm_bios_info: apm_bios_info,
+pub _pad2: [__u8; 4usize],
+pub tboot_addr: __u64,
+pub ist_info: ist_info,
+pub acpi_rsdp_addr: __u64,
+pub _pad3: [__u8; 8usize],
+pub hd0_info: [__u8; 16usize],
+pub hd1_info: [__u8; 16usize],
+pub sys_desc_table: sys_desc_table,
+pub olpc_ofw_header: olpc_ofw_header,
+pub ext_ramdisk_image: __u32,
+pub ext_ramdisk_size: __u32,
+pub ext_cmd_line_ptr: __u32,
+pub _pad4: [__u8; 112usize],
+pub cc_blob_address: __u32,
+pub edid_info: edid_info,
+pub efi_info: efi_info,
+pub alt_mem_k: __u32,
+pub scratch: __u32,
+pub e820_entries: __u8,
+pub eddbuf_entries: __u8,
+pub edd_mbr_sig_buf_entries: __u8,
+pub kbd_status: __u8,
+pub secure_boot: __u8,
+pub _pad5: [__u8; 2usize],
+pub sentinel: __u8,
+pub _pad6: [__u8; 1usize],
+pub hdr: setup_header,
+pub _pad7: [__u8; 36usize],
+pub edd_mbr_sig_buffer: [__u32; 16usize],
+pub e820_table: [boot_e820_entry; 128usize],
+pub _pad8: [__u8; 48usize],
+pub eddbuf: [edd_info; 6usize],
+pub _pad9: [__u8; 276usize],
+}
+pub const SETUP_NONE: u32 = 0;
+pub const SETUP_E820_EXT: u32 = 1;
+pub const SETUP_DTB: u32 = 2;
+pub const SETUP_PCI: u32 = 3;
+pub const SETUP_EFI: u32 = 4;
+pub const SETUP_APPLE_PROPERTIES: u32 = 5;
+pub const SETUP_JAILHOUSE: u32 = 6;
+pub const SETUP_CC_BLOB: u32 = 7;
+pub const SETUP_IMA: u32 = 8;
+pub const SETUP_RNG_SEED: u32 = 9;
+pub const SETUP_ENUM_MAX: u32 = 9;
+pub const SETUP_INDIRECT: u32 = 2147483648;
+pub const SETUP_TYPE_MAX: u32 = 2147483657;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const RAMDISK_IMAGE_START_MASK: u32 = 2047;
+pub const RAMDISK_PROMPT_FLAG: u32 = 32768;
+pub const RAMDISK_LOAD_FLAG: u32 = 16384;
+pub const LOADED_HIGH: u32 = 1;
+pub const KASLR_FLAG: u32 = 2;
+pub const QUIET_FLAG: u32 = 32;
+pub const KEEP_SEGMENTS: u32 = 64;
+pub const CAN_USE_HEAP: u32 = 128;
+pub const XLF_KERNEL_64: u32 = 1;
+pub const XLF_CAN_BE_LOADED_ABOVE_4G: u32 = 2;
+pub const XLF_EFI_HANDOVER_32: u32 = 4;
+pub const XLF_EFI_HANDOVER_64: u32 = 8;
+pub const XLF_EFI_KEXEC: u32 = 16;
+pub const XLF_5LEVEL: u32 = 32;
+pub const XLF_5LEVEL_ENABLED: u32 = 64;
+pub const XLF_MEM_ENCRYPTION: u32 = 128;
+pub const VIDEO_TYPE_MDA: u32 = 16;
+pub const VIDEO_TYPE_CGA: u32 = 17;
+pub const VIDEO_TYPE_EGAM: u32 = 32;
+pub const VIDEO_TYPE_EGAC: u32 = 33;
+pub const VIDEO_TYPE_VGAC: u32 = 34;
+pub const VIDEO_TYPE_VLFB: u32 = 35;
+pub const VIDEO_TYPE_PICA_S3: u32 = 48;
+pub const VIDEO_TYPE_MIPS_G364: u32 = 49;
+pub const VIDEO_TYPE_SGI: u32 = 51;
+pub const VIDEO_TYPE_TGAC: u32 = 64;
+pub const VIDEO_TYPE_SUN: u32 = 80;
+pub const VIDEO_TYPE_SUNPCI: u32 = 81;
+pub const VIDEO_TYPE_PMAC: u32 = 96;
+pub const VIDEO_TYPE_EFI: u32 = 112;
+pub const VIDEO_FLAGS_NOCURSOR: u32 = 1;
+pub const VIDEO_CAPABILITY_SKIP_QUIRKS: u32 = 1;
+pub const VIDEO_CAPABILITY_64BIT_BASE: u32 = 2;
+pub const APM_STATE_READY: u32 = 0;
+pub const APM_STATE_STANDBY: u32 = 1;
+pub const APM_STATE_SUSPEND: u32 = 2;
+pub const APM_STATE_OFF: u32 = 3;
+pub const APM_STATE_BUSY: u32 = 4;
+pub const APM_STATE_REJECT: u32 = 5;
+pub const APM_STATE_OEM_SYS: u32 = 32;
+pub const APM_STATE_OEM_DEV: u32 = 64;
+pub const APM_STATE_DISABLE: u32 = 0;
+pub const APM_STATE_ENABLE: u32 = 1;
+pub const APM_STATE_DISENGAGE: u32 = 0;
+pub const APM_STATE_ENGAGE: u32 = 1;
+pub const APM_SYS_STANDBY: u32 = 1;
+pub const APM_SYS_SUSPEND: u32 = 2;
+pub const APM_NORMAL_RESUME: u32 = 3;
+pub const APM_CRITICAL_RESUME: u32 = 4;
+pub const APM_LOW_BATTERY: u32 = 5;
+pub const APM_POWER_STATUS_CHANGE: u32 = 6;
+pub const APM_UPDATE_TIME: u32 = 7;
+pub const APM_CRITICAL_SUSPEND: u32 = 8;
+pub const APM_USER_STANDBY: u32 = 9;
+pub const APM_USER_SUSPEND: u32 = 10;
+pub const APM_STANDBY_RESUME: u32 = 11;
+pub const APM_CAPABILITY_CHANGE: u32 = 12;
+pub const APM_USER_HIBERNATION: u32 = 13;
+pub const APM_HIBERNATION_RESUME: u32 = 14;
+pub const APM_SUCCESS: u32 = 0;
+pub const APM_DISABLED: u32 = 1;
+pub const APM_CONNECTED: u32 = 2;
+pub const APM_NOT_CONNECTED: u32 = 3;
+pub const APM_16_CONNECTED: u32 = 5;
+pub const APM_16_UNSUPPORTED: u32 = 6;
+pub const APM_32_CONNECTED: u32 = 7;
+pub const APM_32_UNSUPPORTED: u32 = 8;
+pub const APM_BAD_DEVICE: u32 = 9;
+pub const APM_BAD_PARAM: u32 = 10;
+pub const APM_NOT_ENGAGED: u32 = 11;
+pub const APM_BAD_FUNCTION: u32 = 12;
+pub const APM_RESUME_DISABLED: u32 = 13;
+pub const APM_NO_ERROR: u32 = 83;
+pub const APM_BAD_STATE: u32 = 96;
+pub const APM_NO_EVENTS: u32 = 128;
+pub const APM_NOT_PRESENT: u32 = 134;
+pub const APM_DEVICE_BIOS: u32 = 0;
+pub const APM_DEVICE_ALL: u32 = 1;
+pub const APM_DEVICE_DISPLAY: u32 = 256;
+pub const APM_DEVICE_STORAGE: u32 = 512;
+pub const APM_DEVICE_PARALLEL: u32 = 768;
+pub const APM_DEVICE_SERIAL: u32 = 1024;
+pub const APM_DEVICE_NETWORK: u32 = 1280;
+pub const APM_DEVICE_PCMCIA: u32 = 1536;
+pub const APM_DEVICE_BATTERY: u32 = 32768;
+pub const APM_DEVICE_OEM: u32 = 57344;
+pub const APM_DEVICE_OLD_ALL: u32 = 65535;
+pub const APM_DEVICE_CLASS: u32 = 255;
+pub const APM_DEVICE_MASK: u32 = 65280;
+pub const APM_MAX_BATTERIES: u32 = 2;
+pub const APM_CAP_GLOBAL_STANDBY: u32 = 1;
+pub const APM_CAP_GLOBAL_SUSPEND: u32 = 2;
+pub const APM_CAP_RESUME_STANDBY_TIMER: u32 = 4;
+pub const APM_CAP_RESUME_SUSPEND_TIMER: u32 = 8;
+pub const APM_CAP_RESUME_STANDBY_RING: u32 = 16;
+pub const APM_CAP_RESUME_SUSPEND_RING: u32 = 32;
+pub const APM_CAP_RESUME_STANDBY_PCMCIA: u32 = 64;
+pub const APM_CAP_RESUME_SUSPEND_PCMCIA: u32 = 128;
+pub const _IOC_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+pub const EDDNR: u32 = 489;
+pub const EDDBUF: u32 = 3328;
+pub const EDDMAXNR: u32 = 6;
+pub const EDDEXTSIZE: u32 = 8;
+pub const EDDPARMSIZE: u32 = 74;
+pub const CHECKEXTENSIONSPRESENT: u32 = 65;
+pub const GETDEVICEPARAMETERS: u32 = 72;
+pub const LEGACYGETDEVICEPARAMETERS: u32 = 8;
+pub const EDDMAGIC1: u32 = 21930;
+pub const EDDMAGIC2: u32 = 43605;
+pub const READ_SECTORS: u32 = 2;
+pub const EDD_MBR_SIG_OFFSET: u32 = 440;
+pub const EDD_MBR_SIG_BUF: u32 = 656;
+pub const EDD_MBR_SIG_MAX: u32 = 16;
+pub const EDD_MBR_SIG_NR_BUF: u32 = 490;
+pub const EDD_EXT_FIXED_DISK_ACCESS: u32 = 1;
+pub const EDD_EXT_DEVICE_LOCKING_AND_EJECTING: u32 = 2;
+pub const EDD_EXT_ENHANCED_DISK_DRIVE_SUPPORT: u32 = 4;
+pub const EDD_EXT_64BIT_EXTENSIONS: u32 = 8;
+pub const EDD_INFO_DMA_BOUNDARY_ERROR_TRANSPARENT: u32 = 1;
+pub const EDD_INFO_GEOMETRY_VALID: u32 = 2;
+pub const EDD_INFO_REMOVABLE: u32 = 4;
+pub const EDD_INFO_WRITE_VERIFY: u32 = 8;
+pub const EDD_INFO_MEDIA_CHANGE_NOTIFICATION: u32 = 16;
+pub const EDD_INFO_LOCKABLE: u32 = 32;
+pub const EDD_INFO_NO_MEDIA_PRESENT: u32 = 64;
+pub const EDD_INFO_USE_INT13_FN50: u32 = 128;
+pub const E820_MAX_ENTRIES_ZEROPAGE: u32 = 128;
+pub const JAILHOUSE_SETUP_REQUIRED_VERSION: u32 = 1;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum x86_hardware_subarch {
+X86_SUBARCH_PC = 0,
+X86_SUBARCH_LGUEST = 1,
+X86_SUBARCH_XEN = 2,
+X86_SUBARCH_INTEL_MID = 3,
+X86_SUBARCH_CE4100 = 4,
+X86_NR_SUBARCHS = 5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union edd_device_params__bindgen_ty_1 {
+pub isa: edd_device_params__bindgen_ty_1__bindgen_ty_1,
+pub pci: edd_device_params__bindgen_ty_1__bindgen_ty_2,
+pub ibnd: edd_device_params__bindgen_ty_1__bindgen_ty_3,
+pub xprs: edd_device_params__bindgen_ty_1__bindgen_ty_4,
+pub htpt: edd_device_params__bindgen_ty_1__bindgen_ty_5,
+pub unknown: edd_device_params__bindgen_ty_1__bindgen_ty_6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union edd_device_params__bindgen_ty_2 {
+pub ata: edd_device_params__bindgen_ty_2__bindgen_ty_1,
+pub atapi: edd_device_params__bindgen_ty_2__bindgen_ty_2,
+pub scsi: edd_device_params__bindgen_ty_2__bindgen_ty_3,
+pub usb: edd_device_params__bindgen_ty_2__bindgen_ty_4,
+pub i1394: edd_device_params__bindgen_ty_2__bindgen_ty_5,
+pub fibre: edd_device_params__bindgen_ty_2__bindgen_ty_6,
+pub i2o: edd_device_params__bindgen_ty_2__bindgen_ty_7,
+pub raid: edd_device_params__bindgen_ty_2__bindgen_ty_8,
+pub sata: edd_device_params__bindgen_ty_2__bindgen_ty_9,
+pub unknown: edd_device_params__bindgen_ty_2__bindgen_ty_10,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86_64/btrfs.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/btrfs.rs
new file mode 100644
index 0000000..cd8650f
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/btrfs.rs
@@ -0,0 +1,1868 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args {
+pub fd: __s64,
+pub name: [crate::ctypes::c_char; 4088usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit {
+pub flags: __u64,
+pub max_rfer: __u64,
+pub max_excl: __u64,
+pub rsv_rfer: __u64,
+pub rsv_excl: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_qgroup_inherit {
+pub flags: __u64,
+pub num_qgroups: __u64,
+pub num_ref_copies: __u64,
+pub num_excl_copies: __u64,
+pub lim: btrfs_qgroup_limit,
+pub qgroups: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_limit_args {
+pub qgroupid: __u64,
+pub lim: btrfs_qgroup_limit,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2 {
+pub fd: __s64,
+pub transid: __u64,
+pub flags: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1,
+pub __bindgen_anon_2: btrfs_ioctl_vol_args_v2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1 {
+pub size: __u64,
+pub qgroup_inherit: *mut btrfs_qgroup_inherit,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_scrub_progress {
+pub data_extents_scrubbed: __u64,
+pub tree_extents_scrubbed: __u64,
+pub data_bytes_scrubbed: __u64,
+pub tree_bytes_scrubbed: __u64,
+pub read_errors: __u64,
+pub csum_errors: __u64,
+pub verify_errors: __u64,
+pub no_csum: __u64,
+pub csum_discards: __u64,
+pub super_errors: __u64,
+pub malloc_errors: __u64,
+pub uncorrectable_errors: __u64,
+pub corrected_errors: __u64,
+pub last_physical: __u64,
+pub unverified_errors: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_scrub_args {
+pub devid: __u64,
+pub start: __u64,
+pub end: __u64,
+pub flags: __u64,
+pub progress: btrfs_scrub_progress,
+pub unused: [__u64; 109usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_start_params {
+pub srcdevid: __u64,
+pub cont_reading_from_srcdev_mode: __u64,
+pub srcdev_name: [__u8; 1025usize],
+pub tgtdev_name: [__u8; 1025usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_status_params {
+pub replace_state: __u64,
+pub progress_1000: __u64,
+pub time_started: __u64,
+pub time_stopped: __u64,
+pub num_write_errors: __u64,
+pub num_uncorrectable_read_errors: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_dev_replace_args {
+pub cmd: __u64,
+pub result: __u64,
+pub __bindgen_anon_1: btrfs_ioctl_dev_replace_args__bindgen_ty_1,
+pub spare: [__u64; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_dev_info_args {
+pub devid: __u64,
+pub uuid: [__u8; 16usize],
+pub bytes_used: __u64,
+pub total_bytes: __u64,
+pub fsid: [__u8; 16usize],
+pub unused: [__u64; 377usize],
+pub path: [__u8; 1024usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_fs_info_args {
+pub max_id: __u64,
+pub num_devices: __u64,
+pub fsid: [__u8; 16usize],
+pub nodesize: __u32,
+pub sectorsize: __u32,
+pub clone_alignment: __u32,
+pub csum_type: __u16,
+pub csum_size: __u16,
+pub flags: __u64,
+pub generation: __u64,
+pub metadata_uuid: [__u8; 16usize],
+pub reserved: [__u8; 944usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_feature_flags {
+pub compat_flags: __u64,
+pub compat_ro_flags: __u64,
+pub incompat_flags: __u64,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_args {
+pub profiles: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1,
+pub devid: __u64,
+pub pstart: __u64,
+pub pend: __u64,
+pub vstart: __u64,
+pub vend: __u64,
+pub target: __u64,
+pub flags: __u64,
+pub __bindgen_anon_2: btrfs_balance_args__bindgen_ty_2,
+pub stripes_min: __u32,
+pub stripes_max: __u32,
+pub unused: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __u32,
+pub usage_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __u32,
+pub limit_max: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_balance_progress {
+pub expected: __u64,
+pub considered: __u64,
+pub completed: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btrfs_ioctl_balance_args {
+pub flags: __u64,
+pub state: __u64,
+pub data: btrfs_balance_args,
+pub meta: btrfs_balance_args,
+pub sys: btrfs_balance_args,
+pub stat: btrfs_balance_progress,
+pub unused: [__u64; 72usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_args {
+pub treeid: __u64,
+pub objectid: __u64,
+pub name: [crate::ctypes::c_char; 4080usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_lookup_user_args {
+pub dirid: __u64,
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub path: [crate::ctypes::c_char; 3824usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_key {
+pub tree_id: __u64,
+pub min_objectid: __u64,
+pub max_objectid: __u64,
+pub min_offset: __u64,
+pub max_offset: __u64,
+pub min_transid: __u64,
+pub max_transid: __u64,
+pub min_type: __u32,
+pub max_type: __u32,
+pub nr_items: __u32,
+pub unused: __u32,
+pub unused1: __u64,
+pub unused2: __u64,
+pub unused3: __u64,
+pub unused4: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_header {
+pub transid: __u64,
+pub objectid: __u64,
+pub offset: __u64,
+pub type_: __u32,
+pub len: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_search_args {
+pub key: btrfs_ioctl_search_key,
+pub buf: [crate::ctypes::c_char; 3992usize],
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_search_args_v2 {
+pub key: btrfs_ioctl_search_key,
+pub buf_size: __u64,
+pub buf: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_clone_range_args {
+pub src_fd: __s64,
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_offset: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_defrag_range_args {
+pub start: __u64,
+pub len: __u64,
+pub flags: __u64,
+pub extent_thresh: __u32,
+pub compress_type: __u32,
+pub unused: [__u32; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_same_extent_info {
+pub fd: __s64,
+pub logical_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_same_args {
+pub logical_offset: __u64,
+pub length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<btrfs_ioctl_same_extent_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_space_info {
+pub flags: __u64,
+pub total_bytes: __u64,
+pub used_bytes: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_ioctl_space_args {
+pub space_slots: __u64,
+pub total_spaces: __u64,
+pub spaces: __IncompleteArrayField<btrfs_ioctl_space_info>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_data_container {
+pub bytes_left: __u32,
+pub bytes_missing: __u32,
+pub elem_cnt: __u32,
+pub elem_missed: __u32,
+pub val: __IncompleteArrayField<__u64>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_ino_path_args {
+pub inum: __u64,
+pub size: __u64,
+pub reserved: [__u64; 4usize],
+pub fspath: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_logical_ino_args {
+pub logical: __u64,
+pub size: __u64,
+pub reserved: [__u64; 3usize],
+pub flags: __u64,
+pub inodes: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_dev_stats {
+pub devid: __u64,
+pub nr_items: __u64,
+pub flags: __u64,
+pub values: [__u64; 5usize],
+pub unused: [__u64; 121usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_ctl_args {
+pub cmd: __u64,
+pub status: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_quota_rescan_args {
+pub flags: __u64,
+pub progress: __u64,
+pub reserved: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_assign_args {
+pub assign: __u64,
+pub src: __u64,
+pub dst: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_qgroup_create_args {
+pub create: __u64,
+pub qgroupid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_timespec {
+pub sec: __u64,
+pub nsec: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_received_subvol_args {
+pub uuid: [crate::ctypes::c_char; 16usize],
+pub stransid: __u64,
+pub rtransid: __u64,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub flags: __u64,
+pub reserved: [__u64; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_send_args {
+pub send_fd: __s64,
+pub clone_sources_count: __u64,
+pub clone_sources: *mut __u64,
+pub parent_root: __u64,
+pub flags: __u64,
+pub version: __u32,
+pub reserved: [__u8; 28usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_info_args {
+pub treeid: __u64,
+pub name: [crate::ctypes::c_char; 256usize],
+pub parent_id: __u64,
+pub dirid: __u64,
+pub generation: __u64,
+pub flags: __u64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __u64,
+pub otransid: __u64,
+pub stransid: __u64,
+pub rtransid: __u64,
+pub ctime: btrfs_ioctl_timespec,
+pub otime: btrfs_ioctl_timespec,
+pub stime: btrfs_ioctl_timespec,
+pub rtime: btrfs_ioctl_timespec,
+pub reserved: [__u64; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args {
+pub min_treeid: __u64,
+pub rootref: [btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1; 255usize],
+pub num_items: __u8,
+pub align: [__u8; 7usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_get_subvol_rootref_args__bindgen_ty_1 {
+pub treeid: __u64,
+pub dirid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_encoded_io_args {
+pub iov: *mut iovec,
+pub iovcnt: crate::ctypes::c_ulong,
+pub offset: __s64,
+pub flags: __u64,
+pub len: __u64,
+pub unencoded_len: __u64,
+pub unencoded_offset: __u64,
+pub compression: __u32,
+pub encryption: __u32,
+pub reserved: [__u8; 64usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_ioctl_subvol_wait {
+pub subvolid: __u64,
+pub mode: __u32,
+pub count: __u32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_key {
+pub objectid: __le64,
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key {
+pub objectid: __u64,
+pub type_: __u8,
+pub offset: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_header {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+pub generation: __le64,
+pub owner: __le64,
+pub nritems: __le32,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_backup {
+pub tree_root: __le64,
+pub tree_root_gen: __le64,
+pub chunk_root: __le64,
+pub chunk_root_gen: __le64,
+pub extent_root: __le64,
+pub extent_root_gen: __le64,
+pub fs_root: __le64,
+pub fs_root_gen: __le64,
+pub dev_root: __le64,
+pub dev_root_gen: __le64,
+pub csum_root: __le64,
+pub csum_root_gen: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub num_devices: __le64,
+pub unused_64: [__le64; 4usize],
+pub tree_root_level: __u8,
+pub chunk_root_level: __u8,
+pub extent_root_level: __u8,
+pub fs_root_level: __u8,
+pub dev_root_level: __u8,
+pub csum_root_level: __u8,
+pub unused_8: [__u8; 10usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_item {
+pub key: btrfs_disk_key,
+pub offset: __le32,
+pub size: __le32,
+}
+#[repr(C, packed)]
+pub struct btrfs_leaf {
+pub header: btrfs_header,
+pub items: __IncompleteArrayField<btrfs_item>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_key_ptr {
+pub key: btrfs_disk_key,
+pub blockptr: __le64,
+pub generation: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_node {
+pub header: btrfs_header,
+pub ptrs: __IncompleteArrayField<btrfs_key_ptr>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_item {
+pub devid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub type_: __le64,
+pub generation: __le64,
+pub start_offset: __le64,
+pub dev_group: __le32,
+pub seek_speed: __u8,
+pub bandwidth: __u8,
+pub uuid: [__u8; 16usize],
+pub fsid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe {
+pub devid: __le64,
+pub offset: __le64,
+pub dev_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_chunk {
+pub length: __le64,
+pub owner: __le64,
+pub stripe_len: __le64,
+pub type_: __le64,
+pub io_align: __le32,
+pub io_width: __le32,
+pub sector_size: __le32,
+pub num_stripes: __le16,
+pub sub_stripes: __le16,
+pub stripe: btrfs_stripe,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_super_block {
+pub csum: [__u8; 32usize],
+pub fsid: [__u8; 16usize],
+pub bytenr: __le64,
+pub flags: __le64,
+pub magic: __le64,
+pub generation: __le64,
+pub root: __le64,
+pub chunk_root: __le64,
+pub log_root: __le64,
+pub __unused_log_root_transid: __le64,
+pub total_bytes: __le64,
+pub bytes_used: __le64,
+pub root_dir_objectid: __le64,
+pub num_devices: __le64,
+pub sectorsize: __le32,
+pub nodesize: __le32,
+pub __unused_leafsize: __le32,
+pub stripesize: __le32,
+pub sys_chunk_array_size: __le32,
+pub chunk_root_generation: __le64,
+pub compat_flags: __le64,
+pub compat_ro_flags: __le64,
+pub incompat_flags: __le64,
+pub csum_type: __le16,
+pub root_level: __u8,
+pub chunk_root_level: __u8,
+pub log_root_level: __u8,
+pub dev_item: btrfs_dev_item,
+pub label: [crate::ctypes::c_char; 256usize],
+pub cache_generation: __le64,
+pub uuid_tree_generation: __le64,
+pub metadata_uuid: [__u8; 16usize],
+pub nr_global_roots: __u64,
+pub reserved: [__le64; 27usize],
+pub sys_chunk_array: [__u8; 2048usize],
+pub super_roots: [btrfs_root_backup; 4usize],
+pub padding: [__u8; 565usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_entry {
+pub offset: __le64,
+pub bytes: __le64,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_header {
+pub location: btrfs_disk_key,
+pub generation: __le64,
+pub num_entries: __le64,
+pub num_bitmaps: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_raid_stride {
+pub devid: __le64,
+pub physical: __le64,
+}
+#[repr(C, packed)]
+pub struct btrfs_stripe_extent {
+pub __bindgen_anon_1: btrfs_stripe_extent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct btrfs_stripe_extent__bindgen_ty_1 {
+pub __empty_strides: btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1,
+pub strides: __IncompleteArrayField<btrfs_raid_stride>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_stripe_extent__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item {
+pub refs: __le64,
+pub generation: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_item_v0 {
+pub refs: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_tree_block_info {
+pub key: btrfs_disk_key,
+pub level: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_data_ref {
+pub root: __le64,
+pub objectid: __le64,
+pub offset: __le64,
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_shared_data_ref {
+pub count: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_owner_ref {
+pub root_id: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_extent_inline_ref {
+pub type_: __u8,
+pub offset: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_extent {
+pub chunk_tree: __le64,
+pub chunk_objectid: __le64,
+pub chunk_offset: __le64,
+pub length: __le64,
+pub chunk_tree_uuid: [__u8; 16usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_ref {
+pub index: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+pub struct btrfs_inode_extref {
+pub parent_objectid: __le64,
+pub index: __le64,
+pub name_len: __le16,
+pub name: __IncompleteArrayField<__u8>,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_timespec {
+pub sec: __le64,
+pub nsec: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_inode_item {
+pub generation: __le64,
+pub transid: __le64,
+pub size: __le64,
+pub nbytes: __le64,
+pub block_group: __le64,
+pub nlink: __le32,
+pub uid: __le32,
+pub gid: __le32,
+pub mode: __le32,
+pub rdev: __le64,
+pub flags: __le64,
+pub sequence: __le64,
+pub reserved: [__le64; 4usize],
+pub atime: btrfs_timespec,
+pub ctime: btrfs_timespec,
+pub mtime: btrfs_timespec,
+pub otime: btrfs_timespec,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_log_item {
+pub end: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dir_item {
+pub location: btrfs_disk_key,
+pub transid: __le64,
+pub data_len: __le16,
+pub name_len: __le16,
+pub type_: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_item {
+pub inode: btrfs_inode_item,
+pub generation: __le64,
+pub root_dirid: __le64,
+pub bytenr: __le64,
+pub byte_limit: __le64,
+pub bytes_used: __le64,
+pub last_snapshot: __le64,
+pub flags: __le64,
+pub refs: __le32,
+pub drop_progress: btrfs_disk_key,
+pub drop_level: __u8,
+pub level: __u8,
+pub generation_v2: __le64,
+pub uuid: [__u8; 16usize],
+pub parent_uuid: [__u8; 16usize],
+pub received_uuid: [__u8; 16usize],
+pub ctransid: __le64,
+pub otransid: __le64,
+pub stransid: __le64,
+pub rtransid: __le64,
+pub ctime: btrfs_timespec,
+pub otime: btrfs_timespec,
+pub stime: btrfs_timespec,
+pub rtime: btrfs_timespec,
+pub reserved: [__le64; 8usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_root_ref {
+pub dirid: __le64,
+pub sequence: __le64,
+pub name_len: __le16,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_disk_balance_args {
+pub profiles: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1,
+pub devid: __le64,
+pub pstart: __le64,
+pub pend: __le64,
+pub vstart: __le64,
+pub vend: __le64,
+pub target: __le64,
+pub flags: __le64,
+pub __bindgen_anon_2: btrfs_disk_balance_args__bindgen_ty_2,
+pub stripes_min: __le32,
+pub stripes_max: __le32,
+pub unused: [__le64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1 {
+pub usage_min: __le32,
+pub usage_max: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1 {
+pub limit_min: __le32,
+pub limit_max: __le32,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct btrfs_balance_item {
+pub flags: __le64,
+pub data: btrfs_disk_balance_args,
+pub meta: btrfs_disk_balance_args,
+pub sys: btrfs_disk_balance_args,
+pub unused: [__le64; 4usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_file_extent_item {
+pub generation: __le64,
+pub ram_bytes: __le64,
+pub compression: __u8,
+pub encryption: __u8,
+pub other_encoding: __le16,
+pub type_: __u8,
+pub disk_bytenr: __le64,
+pub disk_num_bytes: __le64,
+pub offset: __le64,
+pub num_bytes: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_csum_item {
+pub csum: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_stats_item {
+pub values: [__le64; 5usize],
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_dev_replace_item {
+pub src_devid: __le64,
+pub cursor_left: __le64,
+pub cursor_right: __le64,
+pub cont_reading_from_srcdev_mode: __le64,
+pub replace_state: __le64,
+pub time_started: __le64,
+pub time_stopped: __le64,
+pub num_write_errors: __le64,
+pub num_uncorrectable_read_errors: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_block_group_item {
+pub used: __le64,
+pub chunk_objectid: __le64,
+pub flags: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_free_space_info {
+pub extent_count: __le32,
+pub flags: __le32,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_status_item {
+pub version: __le64,
+pub generation: __le64,
+pub flags: __le64,
+pub rescan: __le64,
+pub enable_gen: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_info_item {
+pub generation: __le64,
+pub rfer: __le64,
+pub rfer_cmpr: __le64,
+pub excl: __le64,
+pub excl_cmpr: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_qgroup_limit_item {
+pub flags: __le64,
+pub max_rfer: __le64,
+pub max_excl: __le64,
+pub rsv_rfer: __le64,
+pub rsv_excl: __le64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct btrfs_verity_descriptor_item {
+pub size: __le64,
+pub reserved: [__le64; 2usize],
+pub encryption: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+pub _address: u8,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const _IOC_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+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 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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+pub const BTRFS_IOCTL_MAGIC: u32 = 148;
+pub const BTRFS_VOL_NAME_MAX: u32 = 255;
+pub const BTRFS_LABEL_SIZE: u32 = 256;
+pub const BTRFS_PATH_NAME_MAX: u32 = 4087;
+pub const BTRFS_DEVICE_PATH_NAME_MAX: u32 = 1024;
+pub const BTRFS_SUBVOL_NAME_MAX: u32 = 4039;
+pub const BTRFS_SUBVOL_CREATE_ASYNC: u32 = 1;
+pub const BTRFS_SUBVOL_RDONLY: u32 = 2;
+pub const BTRFS_SUBVOL_QGROUP_INHERIT: u32 = 4;
+pub const BTRFS_DEVICE_SPEC_BY_ID: u32 = 8;
+pub const BTRFS_SUBVOL_SPEC_BY_ID: u32 = 16;
+pub const BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED: u32 = 30;
+pub const BTRFS_FSID_SIZE: u32 = 16;
+pub const BTRFS_UUID_SIZE: u32 = 16;
+pub const BTRFS_UUID_UNPARSED_SIZE: u32 = 37;
+pub const BTRFS_QGROUP_LIMIT_MAX_RFER: u32 = 1;
+pub const BTRFS_QGROUP_LIMIT_MAX_EXCL: u32 = 2;
+pub const BTRFS_QGROUP_LIMIT_RSV_RFER: u32 = 4;
+pub const BTRFS_QGROUP_LIMIT_RSV_EXCL: u32 = 8;
+pub const BTRFS_QGROUP_LIMIT_RFER_CMPR: u32 = 16;
+pub const BTRFS_QGROUP_LIMIT_EXCL_CMPR: u32 = 32;
+pub const BTRFS_QGROUP_INHERIT_SET_LIMITS: u32 = 1;
+pub const BTRFS_QGROUP_INHERIT_FLAGS_SUPP: u32 = 1;
+pub const BTRFS_DEVICE_REMOVE_ARGS_MASK: u32 = 8;
+pub const BTRFS_SUBVOL_CREATE_ARGS_MASK: u32 = 6;
+pub const BTRFS_SUBVOL_DELETE_ARGS_MASK: u32 = 16;
+pub const BTRFS_SCRUB_READONLY: u32 = 1;
+pub const BTRFS_SCRUB_SUPPORTED_FLAGS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED: u32 = 3;
+pub const BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED: u32 = 4;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_START: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR: u32 = 0;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED: u32 = 1;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED: u32 = 2;
+pub const BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS: u32 = 3;
+pub const BTRFS_FS_INFO_FLAG_CSUM_INFO: u32 = 1;
+pub const BTRFS_FS_INFO_FLAG_GENERATION: u32 = 2;
+pub const BTRFS_FS_INFO_FLAG_METADATA_UUID: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE: u32 = 1;
+pub const BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: u32 = 2;
+pub const BTRFS_FEATURE_COMPAT_RO_VERITY: u32 = 4;
+pub const BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF: u32 = 1;
+pub const BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL: u32 = 2;
+pub const BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS: u32 = 4;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO: u32 = 8;
+pub const BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD: u32 = 16;
+pub const BTRFS_FEATURE_INCOMPAT_BIG_METADATA: u32 = 32;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF: u32 = 64;
+pub const BTRFS_FEATURE_INCOMPAT_RAID56: u32 = 128;
+pub const BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA: u32 = 256;
+pub const BTRFS_FEATURE_INCOMPAT_NO_HOLES: u32 = 512;
+pub const BTRFS_FEATURE_INCOMPAT_METADATA_UUID: u32 = 1024;
+pub const BTRFS_FEATURE_INCOMPAT_RAID1C34: u32 = 2048;
+pub const BTRFS_FEATURE_INCOMPAT_ZONED: u32 = 4096;
+pub const BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2: u32 = 8192;
+pub const BTRFS_FEATURE_INCOMPAT_RAID_STRIPE_TREE: u32 = 16384;
+pub const BTRFS_FEATURE_INCOMPAT_SIMPLE_QUOTA: u32 = 65536;
+pub const BTRFS_BALANCE_CTL_PAUSE: u32 = 1;
+pub const BTRFS_BALANCE_CTL_CANCEL: u32 = 2;
+pub const BTRFS_BALANCE_DATA: u32 = 1;
+pub const BTRFS_BALANCE_SYSTEM: u32 = 2;
+pub const BTRFS_BALANCE_METADATA: u32 = 4;
+pub const BTRFS_BALANCE_TYPE_MASK: u32 = 7;
+pub const BTRFS_BALANCE_FORCE: u32 = 8;
+pub const BTRFS_BALANCE_RESUME: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_PROFILES: u32 = 1;
+pub const BTRFS_BALANCE_ARGS_USAGE: u32 = 2;
+pub const BTRFS_BALANCE_ARGS_DEVID: u32 = 4;
+pub const BTRFS_BALANCE_ARGS_DRANGE: u32 = 8;
+pub const BTRFS_BALANCE_ARGS_VRANGE: u32 = 16;
+pub const BTRFS_BALANCE_ARGS_LIMIT: u32 = 32;
+pub const BTRFS_BALANCE_ARGS_LIMIT_RANGE: u32 = 64;
+pub const BTRFS_BALANCE_ARGS_STRIPES_RANGE: u32 = 128;
+pub const BTRFS_BALANCE_ARGS_USAGE_RANGE: u32 = 1024;
+pub const BTRFS_BALANCE_ARGS_MASK: u32 = 1279;
+pub const BTRFS_BALANCE_ARGS_CONVERT: u32 = 256;
+pub const BTRFS_BALANCE_ARGS_SOFT: u32 = 512;
+pub const BTRFS_BALANCE_STATE_RUNNING: u32 = 1;
+pub const BTRFS_BALANCE_STATE_PAUSE_REQ: u32 = 2;
+pub const BTRFS_BALANCE_STATE_CANCEL_REQ: u32 = 4;
+pub const BTRFS_INO_LOOKUP_PATH_MAX: u32 = 4080;
+pub const BTRFS_INO_LOOKUP_USER_PATH_MAX: u32 = 3824;
+pub const BTRFS_DEFRAG_RANGE_COMPRESS: u32 = 1;
+pub const BTRFS_DEFRAG_RANGE_START_IO: u32 = 2;
+pub const BTRFS_DEFRAG_RANGE_FLAGS_SUPP: u32 = 3;
+pub const BTRFS_SAME_DATA_DIFFERS: u32 = 1;
+pub const BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET: u32 = 1;
+pub const BTRFS_DEV_STATS_RESET: u32 = 1;
+pub const BTRFS_QUOTA_CTL_ENABLE: u32 = 1;
+pub const BTRFS_QUOTA_CTL_DISABLE: u32 = 2;
+pub const BTRFS_QUOTA_CTL_RESCAN__NOTUSED: u32 = 3;
+pub const BTRFS_QUOTA_CTL_ENABLE_SIMPLE_QUOTA: u32 = 4;
+pub const BTRFS_SEND_FLAG_NO_FILE_DATA: u32 = 1;
+pub const BTRFS_SEND_FLAG_OMIT_STREAM_HEADER: u32 = 2;
+pub const BTRFS_SEND_FLAG_OMIT_END_CMD: u32 = 4;
+pub const BTRFS_SEND_FLAG_VERSION: u32 = 8;
+pub const BTRFS_SEND_FLAG_COMPRESSED: u32 = 16;
+pub const BTRFS_SEND_FLAG_MASK: u32 = 31;
+pub const BTRFS_MAX_ROOTREF_BUFFER_NUM: u32 = 255;
+pub const BTRFS_ENCODED_IO_COMPRESSION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZLIB: u32 = 1;
+pub const BTRFS_ENCODED_IO_COMPRESSION_ZSTD: u32 = 2;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_4K: u32 = 3;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_8K: u32 = 4;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_16K: u32 = 5;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_32K: u32 = 6;
+pub const BTRFS_ENCODED_IO_COMPRESSION_LZO_64K: u32 = 7;
+pub const BTRFS_ENCODED_IO_COMPRESSION_TYPES: u32 = 8;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_NONE: u32 = 0;
+pub const BTRFS_ENCODED_IO_ENCRYPTION_TYPES: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_ONE: u32 = 0;
+pub const BTRFS_SUBVOL_SYNC_WAIT_FOR_QUEUED: u32 = 1;
+pub const BTRFS_SUBVOL_SYNC_COUNT: u32 = 2;
+pub const BTRFS_SUBVOL_SYNC_PEEK_FIRST: u32 = 3;
+pub const BTRFS_SUBVOL_SYNC_PEEK_LAST: u32 = 4;
+pub const BTRFS_MAGIC: u64 = 5575266562640200287;
+pub const BTRFS_MAX_LEVEL: u32 = 8;
+pub const BTRFS_NAME_LEN: u32 = 255;
+pub const BTRFS_LINK_MAX: u32 = 65535;
+pub const BTRFS_ROOT_TREE_OBJECTID: u32 = 1;
+pub const BTRFS_EXTENT_TREE_OBJECTID: u32 = 2;
+pub const BTRFS_CHUNK_TREE_OBJECTID: u32 = 3;
+pub const BTRFS_DEV_TREE_OBJECTID: u32 = 4;
+pub const BTRFS_FS_TREE_OBJECTID: u32 = 5;
+pub const BTRFS_ROOT_TREE_DIR_OBJECTID: u32 = 6;
+pub const BTRFS_CSUM_TREE_OBJECTID: u32 = 7;
+pub const BTRFS_QUOTA_TREE_OBJECTID: u32 = 8;
+pub const BTRFS_UUID_TREE_OBJECTID: u32 = 9;
+pub const BTRFS_FREE_SPACE_TREE_OBJECTID: u32 = 10;
+pub const BTRFS_BLOCK_GROUP_TREE_OBJECTID: u32 = 11;
+pub const BTRFS_RAID_STRIPE_TREE_OBJECTID: u32 = 12;
+pub const BTRFS_DEV_STATS_OBJECTID: u32 = 0;
+pub const BTRFS_BALANCE_OBJECTID: i32 = -4;
+pub const BTRFS_ORPHAN_OBJECTID: i32 = -5;
+pub const BTRFS_TREE_LOG_OBJECTID: i32 = -6;
+pub const BTRFS_TREE_LOG_FIXUP_OBJECTID: i32 = -7;
+pub const BTRFS_TREE_RELOC_OBJECTID: i32 = -8;
+pub const BTRFS_DATA_RELOC_TREE_OBJECTID: i32 = -9;
+pub const BTRFS_EXTENT_CSUM_OBJECTID: i32 = -10;
+pub const BTRFS_FREE_SPACE_OBJECTID: i32 = -11;
+pub const BTRFS_FREE_INO_OBJECTID: i32 = -12;
+pub const BTRFS_MULTIPLE_OBJECTIDS: i32 = -255;
+pub const BTRFS_FIRST_FREE_OBJECTID: u32 = 256;
+pub const BTRFS_LAST_FREE_OBJECTID: i32 = -256;
+pub const BTRFS_FIRST_CHUNK_TREE_OBJECTID: u32 = 256;
+pub const BTRFS_DEV_ITEMS_OBJECTID: u32 = 1;
+pub const BTRFS_BTREE_INODE_OBJECTID: u32 = 1;
+pub const BTRFS_EMPTY_SUBVOL_DIR_OBJECTID: u32 = 2;
+pub const BTRFS_DEV_REPLACE_DEVID: u32 = 0;
+pub const BTRFS_INODE_ITEM_KEY: u32 = 1;
+pub const BTRFS_INODE_REF_KEY: u32 = 12;
+pub const BTRFS_INODE_EXTREF_KEY: u32 = 13;
+pub const BTRFS_XATTR_ITEM_KEY: u32 = 24;
+pub const BTRFS_VERITY_DESC_ITEM_KEY: u32 = 36;
+pub const BTRFS_VERITY_MERKLE_ITEM_KEY: u32 = 37;
+pub const BTRFS_ORPHAN_ITEM_KEY: u32 = 48;
+pub const BTRFS_DIR_LOG_ITEM_KEY: u32 = 60;
+pub const BTRFS_DIR_LOG_INDEX_KEY: u32 = 72;
+pub const BTRFS_DIR_ITEM_KEY: u32 = 84;
+pub const BTRFS_DIR_INDEX_KEY: u32 = 96;
+pub const BTRFS_EXTENT_DATA_KEY: u32 = 108;
+pub const BTRFS_EXTENT_CSUM_KEY: u32 = 128;
+pub const BTRFS_ROOT_ITEM_KEY: u32 = 132;
+pub const BTRFS_ROOT_BACKREF_KEY: u32 = 144;
+pub const BTRFS_ROOT_REF_KEY: u32 = 156;
+pub const BTRFS_EXTENT_ITEM_KEY: u32 = 168;
+pub const BTRFS_METADATA_ITEM_KEY: u32 = 169;
+pub const BTRFS_EXTENT_OWNER_REF_KEY: u32 = 172;
+pub const BTRFS_TREE_BLOCK_REF_KEY: u32 = 176;
+pub const BTRFS_EXTENT_DATA_REF_KEY: u32 = 178;
+pub const BTRFS_SHARED_BLOCK_REF_KEY: u32 = 182;
+pub const BTRFS_SHARED_DATA_REF_KEY: u32 = 184;
+pub const BTRFS_BLOCK_GROUP_ITEM_KEY: u32 = 192;
+pub const BTRFS_FREE_SPACE_INFO_KEY: u32 = 198;
+pub const BTRFS_FREE_SPACE_EXTENT_KEY: u32 = 199;
+pub const BTRFS_FREE_SPACE_BITMAP_KEY: u32 = 200;
+pub const BTRFS_DEV_EXTENT_KEY: u32 = 204;
+pub const BTRFS_DEV_ITEM_KEY: u32 = 216;
+pub const BTRFS_CHUNK_ITEM_KEY: u32 = 228;
+pub const BTRFS_RAID_STRIPE_KEY: u32 = 230;
+pub const BTRFS_QGROUP_STATUS_KEY: u32 = 240;
+pub const BTRFS_QGROUP_INFO_KEY: u32 = 242;
+pub const BTRFS_QGROUP_LIMIT_KEY: u32 = 244;
+pub const BTRFS_QGROUP_RELATION_KEY: u32 = 246;
+pub const BTRFS_BALANCE_ITEM_KEY: u32 = 248;
+pub const BTRFS_TEMPORARY_ITEM_KEY: u32 = 248;
+pub const BTRFS_DEV_STATS_KEY: u32 = 249;
+pub const BTRFS_PERSISTENT_ITEM_KEY: u32 = 249;
+pub const BTRFS_DEV_REPLACE_KEY: u32 = 250;
+pub const BTRFS_UUID_KEY_SUBVOL: u32 = 251;
+pub const BTRFS_UUID_KEY_RECEIVED_SUBVOL: u32 = 252;
+pub const BTRFS_STRING_ITEM_KEY: u32 = 253;
+pub const BTRFS_MAX_METADATA_BLOCKSIZE: u32 = 65536;
+pub const BTRFS_CSUM_SIZE: u32 = 32;
+pub const BTRFS_FT_UNKNOWN: u32 = 0;
+pub const BTRFS_FT_REG_FILE: u32 = 1;
+pub const BTRFS_FT_DIR: u32 = 2;
+pub const BTRFS_FT_CHRDEV: u32 = 3;
+pub const BTRFS_FT_BLKDEV: u32 = 4;
+pub const BTRFS_FT_FIFO: u32 = 5;
+pub const BTRFS_FT_SOCK: u32 = 6;
+pub const BTRFS_FT_SYMLINK: u32 = 7;
+pub const BTRFS_FT_XATTR: u32 = 8;
+pub const BTRFS_FT_MAX: u32 = 9;
+pub const BTRFS_FT_ENCRYPTED: u32 = 128;
+pub const BTRFS_INODE_NODATASUM: u32 = 1;
+pub const BTRFS_INODE_NODATACOW: u32 = 2;
+pub const BTRFS_INODE_READONLY: u32 = 4;
+pub const BTRFS_INODE_NOCOMPRESS: u32 = 8;
+pub const BTRFS_INODE_PREALLOC: u32 = 16;
+pub const BTRFS_INODE_SYNC: u32 = 32;
+pub const BTRFS_INODE_IMMUTABLE: u32 = 64;
+pub const BTRFS_INODE_APPEND: u32 = 128;
+pub const BTRFS_INODE_NODUMP: u32 = 256;
+pub const BTRFS_INODE_NOATIME: u32 = 512;
+pub const BTRFS_INODE_DIRSYNC: u32 = 1024;
+pub const BTRFS_INODE_COMPRESS: u32 = 2048;
+pub const BTRFS_INODE_ROOT_ITEM_INIT: u32 = 2147483648;
+pub const BTRFS_INODE_FLAG_MASK: u32 = 2147487743;
+pub const BTRFS_INODE_RO_VERITY: u32 = 1;
+pub const BTRFS_INODE_RO_FLAG_MASK: u32 = 1;
+pub const BTRFS_SYSTEM_CHUNK_ARRAY_SIZE: u32 = 2048;
+pub const BTRFS_NUM_BACKUP_ROOTS: u32 = 4;
+pub const BTRFS_FREE_SPACE_EXTENT: u32 = 1;
+pub const BTRFS_FREE_SPACE_BITMAP: u32 = 2;
+pub const BTRFS_HEADER_FLAG_WRITTEN: u32 = 1;
+pub const BTRFS_HEADER_FLAG_RELOC: u32 = 2;
+pub const BTRFS_SUPER_FLAG_ERROR: u32 = 4;
+pub const BTRFS_SUPER_FLAG_SEEDING: u64 = 4294967296;
+pub const BTRFS_SUPER_FLAG_METADUMP: u64 = 8589934592;
+pub const BTRFS_SUPER_FLAG_METADUMP_V2: u64 = 17179869184;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID: u64 = 34359738368;
+pub const BTRFS_SUPER_FLAG_CHANGING_FSID_V2: u64 = 68719476736;
+pub const BTRFS_SUPER_FLAG_CHANGING_BG_TREE: u64 = 274877906944;
+pub const BTRFS_SUPER_FLAG_CHANGING_DATA_CSUM: u64 = 549755813888;
+pub const BTRFS_SUPER_FLAG_CHANGING_META_CSUM: u64 = 1099511627776;
+pub const BTRFS_EXTENT_FLAG_DATA: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_TREE_BLOCK: u32 = 2;
+pub const BTRFS_BLOCK_FLAG_FULL_BACKREF: u32 = 256;
+pub const BTRFS_BACKREF_REV_MAX: u32 = 256;
+pub const BTRFS_BACKREF_REV_SHIFT: u32 = 56;
+pub const BTRFS_OLD_BACKREF_REV: u32 = 0;
+pub const BTRFS_MIXED_BACKREF_REV: u32 = 1;
+pub const BTRFS_EXTENT_FLAG_SUPER: u64 = 281474976710656;
+pub const BTRFS_ROOT_SUBVOL_RDONLY: u32 = 1;
+pub const BTRFS_ROOT_SUBVOL_DEAD: u64 = 281474976710656;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_ALWAYS: u32 = 0;
+pub const BTRFS_DEV_REPLACE_ITEM_CONT_READING_FROM_SRCDEV_MODE_AVOID: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_DATA: u32 = 1;
+pub const BTRFS_BLOCK_GROUP_SYSTEM: u32 = 2;
+pub const BTRFS_BLOCK_GROUP_METADATA: u32 = 4;
+pub const BTRFS_BLOCK_GROUP_RAID0: u32 = 8;
+pub const BTRFS_BLOCK_GROUP_RAID1: u32 = 16;
+pub const BTRFS_BLOCK_GROUP_DUP: u32 = 32;
+pub const BTRFS_BLOCK_GROUP_RAID10: u32 = 64;
+pub const BTRFS_BLOCK_GROUP_RAID5: u32 = 128;
+pub const BTRFS_BLOCK_GROUP_RAID6: u32 = 256;
+pub const BTRFS_BLOCK_GROUP_RAID1C3: u32 = 512;
+pub const BTRFS_BLOCK_GROUP_RAID1C4: u32 = 1024;
+pub const BTRFS_BLOCK_GROUP_TYPE_MASK: u32 = 7;
+pub const BTRFS_BLOCK_GROUP_PROFILE_MASK: u32 = 2040;
+pub const BTRFS_BLOCK_GROUP_RAID56_MASK: u32 = 384;
+pub const BTRFS_BLOCK_GROUP_RAID1_MASK: u32 = 1552;
+pub const BTRFS_AVAIL_ALLOC_BIT_SINGLE: u64 = 281474976710656;
+pub const BTRFS_SPACE_INFO_GLOBAL_RSV: u64 = 562949953421312;
+pub const BTRFS_EXTENDED_PROFILE_MASK: u64 = 281474976712696;
+pub const BTRFS_FREE_SPACE_USING_BITMAPS: u32 = 1;
+pub const BTRFS_QGROUP_LEVEL_SHIFT: u32 = 48;
+pub const BTRFS_QGROUP_STATUS_FLAG_ON: u32 = 1;
+pub const BTRFS_QGROUP_STATUS_FLAG_RESCAN: u32 = 2;
+pub const BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT: u32 = 4;
+pub const BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE: u32 = 8;
+pub const BTRFS_QGROUP_STATUS_FLAGS_MASK: u32 = 15;
+pub const BTRFS_QGROUP_STATUS_VERSION: u32 = 1;
+pub const BTRFS_FILE_EXTENT_INLINE: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_INLINE;
+pub const BTRFS_FILE_EXTENT_REG: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_REG;
+pub const BTRFS_FILE_EXTENT_PREALLOC: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_FILE_EXTENT_PREALLOC;
+pub const BTRFS_NR_FILE_EXTENT_TYPES: _bindgen_ty_1 = _bindgen_ty_1::BTRFS_NR_FILE_EXTENT_TYPES;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_dev_stat_values {
+BTRFS_DEV_STAT_WRITE_ERRS = 0,
+BTRFS_DEV_STAT_READ_ERRS = 1,
+BTRFS_DEV_STAT_FLUSH_ERRS = 2,
+BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
+BTRFS_DEV_STAT_GENERATION_ERRS = 4,
+BTRFS_DEV_STAT_VALUES_MAX = 5,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_err_code {
+BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
+BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
+BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
+BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
+BTRFS_ERROR_DEV_TGT_REPLACE = 5,
+BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
+BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
+BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
+BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
+BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum btrfs_csum_type {
+BTRFS_CSUM_TYPE_CRC32 = 0,
+BTRFS_CSUM_TYPE_XXHASH = 1,
+BTRFS_CSUM_TYPE_SHA256 = 2,
+BTRFS_CSUM_TYPE_BLAKE2 = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+BTRFS_FILE_EXTENT_INLINE = 0,
+BTRFS_FILE_EXTENT_REG = 1,
+BTRFS_FILE_EXTENT_PREALLOC = 2,
+BTRFS_NR_FILE_EXTENT_TYPES = 3,
+}
+#[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 btrfs_ioctl_vol_args_v2__bindgen_ty_1 {
+pub __bindgen_anon_1: btrfs_ioctl_vol_args_v2__bindgen_ty_1__bindgen_ty_1,
+pub unused: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_vol_args_v2__bindgen_ty_2 {
+pub name: [crate::ctypes::c_char; 4040usize],
+pub devid: __u64,
+pub subvolid: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_ioctl_dev_replace_args__bindgen_ty_1 {
+pub start: btrfs_ioctl_dev_replace_start_params,
+pub status: btrfs_ioctl_dev_replace_status_params,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_1 {
+pub usage: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_balance_args__bindgen_ty_2 {
+pub limit: __u64,
+pub __bindgen_anon_1: btrfs_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_1 {
+pub usage: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btrfs_disk_balance_args__bindgen_ty_2 {
+pub limit: __le64,
+pub __bindgen_anon_1: btrfs_disk_balance_args__bindgen_ty_2__bindgen_ty_1,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86_64/elf_uapi.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/elf_uapi.rs
new file mode 100644
index 0000000..e28e927
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/elf_uapi.rs
@@ -0,0 +1,524 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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 __s128 = i128;
+pub type __u128 = u128;
+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 Elf32_Addr = __u32;
+pub type Elf32_Half = __u16;
+pub type Elf32_Off = __u32;
+pub type Elf32_Sword = __s32;
+pub type Elf32_Word = __u32;
+pub type Elf64_Addr = __u64;
+pub type Elf64_Half = __u16;
+pub type Elf64_SHalf = __s16;
+pub type Elf64_Off = __u64;
+pub type Elf64_Sword = __s32;
+pub type Elf64_Word = __u32;
+pub type Elf64_Xword = __u64;
+pub type Elf64_Sxword = __s64;
+pub type Elf32_Rel = elf32_rel;
+pub type Elf64_Rel = elf64_rel;
+pub type Elf32_Rela = elf32_rela;
+pub type Elf64_Rela = elf64_rela;
+pub type Elf32_Sym = elf32_sym;
+pub type Elf64_Sym = elf64_sym;
+pub type Elf32_Ehdr = elf32_hdr;
+pub type Elf64_Ehdr = elf64_hdr;
+pub type Elf32_Phdr = elf32_phdr;
+pub type Elf64_Phdr = elf64_phdr;
+pub type Elf32_Shdr = elf32_shdr;
+pub type Elf64_Shdr = elf64_shdr;
+pub type Elf32_Nhdr = elf32_note;
+pub type Elf64_Nhdr = elf64_note;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf32_Dyn {
+pub d_tag: Elf32_Sword,
+pub d_un: Elf32_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct Elf64_Dyn {
+pub d_tag: Elf64_Sxword,
+pub d_un: Elf64_Dyn__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rel {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rel {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_rela {
+pub r_offset: Elf32_Addr,
+pub r_info: Elf32_Word,
+pub r_addend: Elf32_Sword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_rela {
+pub r_offset: Elf64_Addr,
+pub r_info: Elf64_Xword,
+pub r_addend: Elf64_Sxword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_sym {
+pub st_name: Elf32_Word,
+pub st_value: Elf32_Addr,
+pub st_size: Elf32_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_sym {
+pub st_name: Elf64_Word,
+pub st_info: crate::ctypes::c_uchar,
+pub st_other: crate::ctypes::c_uchar,
+pub st_shndx: Elf64_Half,
+pub st_value: Elf64_Addr,
+pub st_size: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf32_Half,
+pub e_machine: Elf32_Half,
+pub e_version: Elf32_Word,
+pub e_entry: Elf32_Addr,
+pub e_phoff: Elf32_Off,
+pub e_shoff: Elf32_Off,
+pub e_flags: Elf32_Word,
+pub e_ehsize: Elf32_Half,
+pub e_phentsize: Elf32_Half,
+pub e_phnum: Elf32_Half,
+pub e_shentsize: Elf32_Half,
+pub e_shnum: Elf32_Half,
+pub e_shstrndx: Elf32_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_hdr {
+pub e_ident: [crate::ctypes::c_uchar; 16usize],
+pub e_type: Elf64_Half,
+pub e_machine: Elf64_Half,
+pub e_version: Elf64_Word,
+pub e_entry: Elf64_Addr,
+pub e_phoff: Elf64_Off,
+pub e_shoff: Elf64_Off,
+pub e_flags: Elf64_Word,
+pub e_ehsize: Elf64_Half,
+pub e_phentsize: Elf64_Half,
+pub e_phnum: Elf64_Half,
+pub e_shentsize: Elf64_Half,
+pub e_shnum: Elf64_Half,
+pub e_shstrndx: Elf64_Half,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_phdr {
+pub p_type: Elf32_Word,
+pub p_offset: Elf32_Off,
+pub p_vaddr: Elf32_Addr,
+pub p_paddr: Elf32_Addr,
+pub p_filesz: Elf32_Word,
+pub p_memsz: Elf32_Word,
+pub p_flags: Elf32_Word,
+pub p_align: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_phdr {
+pub p_type: Elf64_Word,
+pub p_flags: Elf64_Word,
+pub p_offset: Elf64_Off,
+pub p_vaddr: Elf64_Addr,
+pub p_paddr: Elf64_Addr,
+pub p_filesz: Elf64_Xword,
+pub p_memsz: Elf64_Xword,
+pub p_align: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_shdr {
+pub sh_name: Elf32_Word,
+pub sh_type: Elf32_Word,
+pub sh_flags: Elf32_Word,
+pub sh_addr: Elf32_Addr,
+pub sh_offset: Elf32_Off,
+pub sh_size: Elf32_Word,
+pub sh_link: Elf32_Word,
+pub sh_info: Elf32_Word,
+pub sh_addralign: Elf32_Word,
+pub sh_entsize: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_shdr {
+pub sh_name: Elf64_Word,
+pub sh_type: Elf64_Word,
+pub sh_flags: Elf64_Xword,
+pub sh_addr: Elf64_Addr,
+pub sh_offset: Elf64_Off,
+pub sh_size: Elf64_Xword,
+pub sh_link: Elf64_Word,
+pub sh_info: Elf64_Word,
+pub sh_addralign: Elf64_Xword,
+pub sh_entsize: Elf64_Xword,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf32_note {
+pub n_namesz: Elf32_Word,
+pub n_descsz: Elf32_Word,
+pub n_type: Elf32_Word,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct elf64_note {
+pub n_namesz: Elf64_Word,
+pub n_descsz: Elf64_Word,
+pub n_type: Elf64_Word,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const PT_NULL: u32 = 0;
+pub const PT_LOAD: u32 = 1;
+pub const PT_DYNAMIC: u32 = 2;
+pub const PT_INTERP: u32 = 3;
+pub const PT_NOTE: u32 = 4;
+pub const PT_SHLIB: u32 = 5;
+pub const PT_PHDR: u32 = 6;
+pub const PT_TLS: u32 = 7;
+pub const PT_LOOS: u32 = 1610612736;
+pub const PT_HIOS: u32 = 1879048191;
+pub const PT_LOPROC: u32 = 1879048192;
+pub const PT_HIPROC: u32 = 2147483647;
+pub const PT_GNU_EH_FRAME: u32 = 1685382480;
+pub const PT_GNU_STACK: u32 = 1685382481;
+pub const PT_GNU_RELRO: u32 = 1685382482;
+pub const PT_GNU_PROPERTY: u32 = 1685382483;
+pub const PT_AARCH64_MEMTAG_MTE: u32 = 1879048194;
+pub const PN_XNUM: u32 = 65535;
+pub const ET_NONE: u32 = 0;
+pub const ET_REL: u32 = 1;
+pub const ET_EXEC: u32 = 2;
+pub const ET_DYN: u32 = 3;
+pub const ET_CORE: u32 = 4;
+pub const ET_LOPROC: u32 = 65280;
+pub const ET_HIPROC: u32 = 65535;
+pub const DT_NULL: u32 = 0;
+pub const DT_NEEDED: u32 = 1;
+pub const DT_PLTRELSZ: u32 = 2;
+pub const DT_PLTGOT: u32 = 3;
+pub const DT_HASH: u32 = 4;
+pub const DT_STRTAB: u32 = 5;
+pub const DT_SYMTAB: u32 = 6;
+pub const DT_RELA: u32 = 7;
+pub const DT_RELASZ: u32 = 8;
+pub const DT_RELAENT: u32 = 9;
+pub const DT_STRSZ: u32 = 10;
+pub const DT_SYMENT: u32 = 11;
+pub const DT_INIT: u32 = 12;
+pub const DT_FINI: u32 = 13;
+pub const DT_SONAME: u32 = 14;
+pub const DT_RPATH: u32 = 15;
+pub const DT_SYMBOLIC: u32 = 16;
+pub const DT_REL: u32 = 17;
+pub const DT_RELSZ: u32 = 18;
+pub const DT_RELENT: u32 = 19;
+pub const DT_PLTREL: u32 = 20;
+pub const DT_DEBUG: u32 = 21;
+pub const DT_TEXTREL: u32 = 22;
+pub const DT_JMPREL: u32 = 23;
+pub const DT_ENCODING: u32 = 32;
+pub const OLD_DT_LOOS: u32 = 1610612736;
+pub const DT_LOOS: u32 = 1610612749;
+pub const DT_HIOS: u32 = 1879044096;
+pub const DT_VALRNGLO: u32 = 1879047424;
+pub const DT_VALRNGHI: u32 = 1879047679;
+pub const DT_ADDRRNGLO: u32 = 1879047680;
+pub const DT_ADDRRNGHI: u32 = 1879047935;
+pub const DT_VERSYM: u32 = 1879048176;
+pub const DT_RELACOUNT: u32 = 1879048185;
+pub const DT_RELCOUNT: u32 = 1879048186;
+pub const DT_FLAGS_1: u32 = 1879048187;
+pub const DT_VERDEF: u32 = 1879048188;
+pub const DT_VERDEFNUM: u32 = 1879048189;
+pub const DT_VERNEED: u32 = 1879048190;
+pub const DT_VERNEEDNUM: u32 = 1879048191;
+pub const OLD_DT_HIOS: u32 = 1879048191;
+pub const DT_LOPROC: u32 = 1879048192;
+pub const DT_HIPROC: u32 = 2147483647;
+pub const STB_LOCAL: u32 = 0;
+pub const STB_GLOBAL: u32 = 1;
+pub const STB_WEAK: u32 = 2;
+pub const STT_NOTYPE: u32 = 0;
+pub const STT_OBJECT: u32 = 1;
+pub const STT_FUNC: u32 = 2;
+pub const STT_SECTION: u32 = 3;
+pub const STT_FILE: u32 = 4;
+pub const STT_COMMON: u32 = 5;
+pub const STT_TLS: u32 = 6;
+pub const EI_NIDENT: u32 = 16;
+pub const PF_R: u32 = 4;
+pub const PF_W: u32 = 2;
+pub const PF_X: u32 = 1;
+pub const SHT_NULL: u32 = 0;
+pub const SHT_PROGBITS: u32 = 1;
+pub const SHT_SYMTAB: u32 = 2;
+pub const SHT_STRTAB: u32 = 3;
+pub const SHT_RELA: u32 = 4;
+pub const SHT_HASH: u32 = 5;
+pub const SHT_DYNAMIC: u32 = 6;
+pub const SHT_NOTE: u32 = 7;
+pub const SHT_NOBITS: u32 = 8;
+pub const SHT_REL: u32 = 9;
+pub const SHT_SHLIB: u32 = 10;
+pub const SHT_DYNSYM: u32 = 11;
+pub const SHT_NUM: u32 = 12;
+pub const SHT_LOPROC: u32 = 1879048192;
+pub const SHT_HIPROC: u32 = 2147483647;
+pub const SHT_LOUSER: u32 = 2147483648;
+pub const SHT_HIUSER: u32 = 4294967295;
+pub const SHF_WRITE: u32 = 1;
+pub const SHF_ALLOC: u32 = 2;
+pub const SHF_EXECINSTR: u32 = 4;
+pub const SHF_RELA_LIVEPATCH: u32 = 1048576;
+pub const SHF_RO_AFTER_INIT: u32 = 2097152;
+pub const SHF_MASKPROC: u32 = 4026531840;
+pub const SHN_UNDEF: u32 = 0;
+pub const SHN_LORESERVE: u32 = 65280;
+pub const SHN_LOPROC: u32 = 65280;
+pub const SHN_HIPROC: u32 = 65311;
+pub const SHN_LIVEPATCH: u32 = 65312;
+pub const SHN_ABS: u32 = 65521;
+pub const SHN_COMMON: u32 = 65522;
+pub const SHN_HIRESERVE: u32 = 65535;
+pub const EI_MAG0: u32 = 0;
+pub const EI_MAG1: u32 = 1;
+pub const EI_MAG2: u32 = 2;
+pub const EI_MAG3: u32 = 3;
+pub const EI_CLASS: u32 = 4;
+pub const EI_DATA: u32 = 5;
+pub const EI_VERSION: u32 = 6;
+pub const EI_OSABI: u32 = 7;
+pub const EI_PAD: u32 = 8;
+pub const ELFMAG0: u32 = 127;
+pub const ELFMAG1: u8 = 69u8;
+pub const ELFMAG2: u8 = 76u8;
+pub const ELFMAG3: u8 = 70u8;
+pub const ELFMAG: &[u8; 5] = b"\x7FELF\0";
+pub const SELFMAG: u32 = 4;
+pub const ELFCLASSNONE: u32 = 0;
+pub const ELFCLASS32: u32 = 1;
+pub const ELFCLASS64: u32 = 2;
+pub const ELFCLASSNUM: u32 = 3;
+pub const ELFDATANONE: u32 = 0;
+pub const ELFDATA2LSB: u32 = 1;
+pub const ELFDATA2MSB: u32 = 2;
+pub const EV_NONE: u32 = 0;
+pub const EV_CURRENT: u32 = 1;
+pub const EV_NUM: u32 = 2;
+pub const ELFOSABI_NONE: u32 = 0;
+pub const ELFOSABI_LINUX: u32 = 3;
+pub const ELF_OSABI: u32 = 0;
+pub const NT_PRSTATUS: u32 = 1;
+pub const NT_PRFPREG: u32 = 2;
+pub const NT_PRPSINFO: u32 = 3;
+pub const NT_TASKSTRUCT: u32 = 4;
+pub const NT_AUXV: u32 = 6;
+pub const NT_SIGINFO: u32 = 1397311305;
+pub const NT_FILE: u32 = 1179208773;
+pub const NT_PRXFPREG: u32 = 1189489535;
+pub const NT_PPC_VMX: u32 = 256;
+pub const NT_PPC_SPE: u32 = 257;
+pub const NT_PPC_VSX: u32 = 258;
+pub const NT_PPC_TAR: u32 = 259;
+pub const NT_PPC_PPR: u32 = 260;
+pub const NT_PPC_DSCR: u32 = 261;
+pub const NT_PPC_EBB: u32 = 262;
+pub const NT_PPC_PMU: u32 = 263;
+pub const NT_PPC_TM_CGPR: u32 = 264;
+pub const NT_PPC_TM_CFPR: u32 = 265;
+pub const NT_PPC_TM_CVMX: u32 = 266;
+pub const NT_PPC_TM_CVSX: u32 = 267;
+pub const NT_PPC_TM_SPR: u32 = 268;
+pub const NT_PPC_TM_CTAR: u32 = 269;
+pub const NT_PPC_TM_CPPR: u32 = 270;
+pub const NT_PPC_TM_CDSCR: u32 = 271;
+pub const NT_PPC_PKEY: u32 = 272;
+pub const NT_PPC_DEXCR: u32 = 273;
+pub const NT_PPC_HASHKEYR: u32 = 274;
+pub const NT_386_TLS: u32 = 512;
+pub const NT_386_IOPERM: u32 = 513;
+pub const NT_X86_XSTATE: u32 = 514;
+pub const NT_X86_SHSTK: u32 = 516;
+pub const NT_X86_XSAVE_LAYOUT: u32 = 517;
+pub const NT_S390_HIGH_GPRS: u32 = 768;
+pub const NT_S390_TIMER: u32 = 769;
+pub const NT_S390_TODCMP: u32 = 770;
+pub const NT_S390_TODPREG: u32 = 771;
+pub const NT_S390_CTRS: u32 = 772;
+pub const NT_S390_PREFIX: u32 = 773;
+pub const NT_S390_LAST_BREAK: u32 = 774;
+pub const NT_S390_SYSTEM_CALL: u32 = 775;
+pub const NT_S390_TDB: u32 = 776;
+pub const NT_S390_VXRS_LOW: u32 = 777;
+pub const NT_S390_VXRS_HIGH: u32 = 778;
+pub const NT_S390_GS_CB: u32 = 779;
+pub const NT_S390_GS_BC: u32 = 780;
+pub const NT_S390_RI_CB: u32 = 781;
+pub const NT_S390_PV_CPU_DATA: u32 = 782;
+pub const NT_ARM_VFP: u32 = 1024;
+pub const NT_ARM_TLS: u32 = 1025;
+pub const NT_ARM_HW_BREAK: u32 = 1026;
+pub const NT_ARM_HW_WATCH: u32 = 1027;
+pub const NT_ARM_SYSTEM_CALL: u32 = 1028;
+pub const NT_ARM_SVE: u32 = 1029;
+pub const NT_ARM_PAC_MASK: u32 = 1030;
+pub const NT_ARM_PACA_KEYS: u32 = 1031;
+pub const NT_ARM_PACG_KEYS: u32 = 1032;
+pub const NT_ARM_TAGGED_ADDR_CTRL: u32 = 1033;
+pub const NT_ARM_PAC_ENABLED_KEYS: u32 = 1034;
+pub const NT_ARM_SSVE: u32 = 1035;
+pub const NT_ARM_ZA: u32 = 1036;
+pub const NT_ARM_ZT: u32 = 1037;
+pub const NT_ARM_FPMR: u32 = 1038;
+pub const NT_ARM_POE: u32 = 1039;
+pub const NT_ARM_GCS: u32 = 1040;
+pub const NT_ARC_V2: u32 = 1536;
+pub const NT_VMCOREDD: u32 = 1792;
+pub const NT_MIPS_DSP: u32 = 2048;
+pub const NT_MIPS_FP_MODE: u32 = 2049;
+pub const NT_MIPS_MSA: u32 = 2050;
+pub const NT_RISCV_CSR: u32 = 2304;
+pub const NT_RISCV_VECTOR: u32 = 2305;
+pub const NT_RISCV_TAGGED_ADDR_CTRL: u32 = 2306;
+pub const NT_LOONGARCH_CPUCFG: u32 = 2560;
+pub const NT_LOONGARCH_CSR: u32 = 2561;
+pub const NT_LOONGARCH_LSX: u32 = 2562;
+pub const NT_LOONGARCH_LASX: u32 = 2563;
+pub const NT_LOONGARCH_LBT: u32 = 2564;
+pub const NT_LOONGARCH_HW_BREAK: u32 = 2565;
+pub const NT_LOONGARCH_HW_WATCH: u32 = 2566;
+pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 3221225472;
+pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf32_Dyn__bindgen_ty_1 {
+pub d_val: Elf32_Sword,
+pub d_ptr: Elf32_Addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union Elf64_Dyn__bindgen_ty_1 {
+pub d_val: Elf64_Xword,
+pub d_ptr: Elf64_Addr,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86_64/errno.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/errno.rs
new file mode 100644
index 0000000..5b018a2
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/errno.rs
@@ -0,0 +1,135 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86_64/general.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/general.rs
new file mode 100644
index 0000000..c402469
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/general.rs
@@ -0,0 +1,3276 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_sighandler_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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 __s128 = i128;
+pub type __u128 = u128;
+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 sigset_t = crate::ctypes::c_ulong;
+pub type __signalfn_t = ::core::option::Option<unsafe extern "C" fn(arg1: crate::ctypes::c_int)>;
+pub type __sighandler_t = __signalfn_t;
+pub type __restorefn_t = ::core::option::Option<unsafe extern "C" fn()>;
+pub type __sigrestore_t = __restorefn_t;
+pub type stack_t = sigaltstack;
+pub type sigval_t = sigval;
+pub type siginfo_t = siginfo;
+pub type sigevent_t = sigevent;
+pub type cc_t = crate::ctypes::c_uchar;
+pub type speed_t = crate::ctypes::c_uint;
+pub type tcflag_t = crate::ctypes::c_uint;
+pub type __fsword_t = __kernel_long_t;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fd_set {
+pub fds_bits: [crate::ctypes::c_ulong; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_fsid_t {
+pub val: [crate::ctypes::c_int; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __user_cap_header_struct {
+pub version: __u32,
+pub pid: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __user_cap_data_struct {
+pub effective: __u32,
+pub permitted: __u32,
+pub inheritable: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_cap_data {
+pub magic_etc: __le32,
+pub data: [vfs_cap_data__bindgen_ty_1; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_cap_data__bindgen_ty_1 {
+pub permitted: __le32,
+pub inheritable: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_ns_cap_data {
+pub magic_etc: __le32,
+pub data: [vfs_ns_cap_data__bindgen_ty_1; 2usize],
+pub rootid: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct vfs_ns_cap_data__bindgen_ty_1 {
+pub permitted: __le32,
+pub inheritable: __le32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct f_owner_ex {
+pub type_: crate::ctypes::c_int,
+pub pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct flock {
+pub l_type: crate::ctypes::c_short,
+pub l_whence: crate::ctypes::c_short,
+pub l_start: __kernel_off_t,
+pub l_len: __kernel_off_t,
+pub l_pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct flock64 {
+pub l_type: crate::ctypes::c_short,
+pub l_whence: crate::ctypes::c_short,
+pub l_start: __kernel_loff_t,
+pub l_len: __kernel_loff_t,
+pub l_pid: __kernel_pid_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct open_how {
+pub flags: __u64,
+pub mode: __u64,
+pub resolve: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct epoll_event {
+pub events: __poll_t,
+pub data: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct epoll_params {
+pub busy_poll_usecs: __u32,
+pub busy_poll_budget: __u16,
+pub prefer_busy_poll: __u8,
+pub __pad: __u8,
+}
+#[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 log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct futex_waitv {
+pub val: __u64,
+pub uaddr: __u64,
+pub flags: __u32,
+pub __reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list {
+pub next: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct robust_list_head {
+pub list: robust_list,
+pub futex_offset: crate::ctypes::c_long,
+pub list_op_pending: *mut robust_list,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct inotify_event {
+pub wd: __s32,
+pub mask: __u32,
+pub cookie: __u32,
+pub len: __u32,
+pub name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat_range {
+pub off: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cachestat {
+pub nr_cache: __u64,
+pub nr_dirty: __u64,
+pub nr_writeback: __u64,
+pub nr_evicted: __u64,
+pub nr_recently_evicted: __u64,
+}
+#[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 vgetrandom_opaque_params {
+pub size_of_opaque_state: __u32,
+pub mmap_prot: __u32,
+pub mmap_flags: __u32,
+pub reserved: [__u32; 13usize],
+}
+#[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 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 sigaction {
+pub sa_handler: __sighandler_t,
+pub sa_flags: crate::ctypes::c_ulong,
+pub sa_restorer: __sigrestore_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_flags: crate::ctypes::c_int,
+pub ss_size: __kernel_size_t,
+}
+#[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_errno: crate::ctypes::c_int,
+pub si_code: crate::ctypes::c_int,
+pub _sifields: __sifields,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sigevent {
+pub sigev_value: sigval_t,
+pub sigev_signo: crate::ctypes::c_int,
+pub sigev_notify: crate::ctypes::c_int,
+pub _sigev_un: sigevent__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sigevent__bindgen_ty_1__bindgen_ty_1 {
+pub _function: ::core::option::Option<unsafe extern "C" fn(arg1: sigval_t)>,
+pub _attribute: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx_timestamp {
+pub tv_sec: __s64,
+pub tv_nsec: __u32,
+pub __reserved: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statx {
+pub stx_mask: __u32,
+pub stx_blksize: __u32,
+pub stx_attributes: __u64,
+pub stx_nlink: __u32,
+pub stx_uid: __u32,
+pub stx_gid: __u32,
+pub stx_mode: __u16,
+pub __spare0: [__u16; 1usize],
+pub stx_ino: __u64,
+pub stx_size: __u64,
+pub stx_blocks: __u64,
+pub stx_attributes_mask: __u64,
+pub stx_atime: statx_timestamp,
+pub stx_btime: statx_timestamp,
+pub stx_ctime: statx_timestamp,
+pub stx_mtime: statx_timestamp,
+pub stx_rdev_major: __u32,
+pub stx_rdev_minor: __u32,
+pub stx_dev_major: __u32,
+pub stx_dev_minor: __u32,
+pub stx_mnt_id: __u64,
+pub stx_dio_mem_align: __u32,
+pub stx_dio_offset_align: __u32,
+pub stx_subvol: __u64,
+pub stx_atomic_write_unit_min: __u32,
+pub stx_atomic_write_unit_max: __u32,
+pub stx_atomic_write_segments_max: __u32,
+pub __spare1: [__u32; 1usize],
+pub __spare3: [__u64; 9usize],
+}
+#[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; 19usize],
+}
+#[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; 19usize],
+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; 19usize],
+pub c_ispeed: speed_t,
+pub c_ospeed: speed_t,
+}
+#[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_uchar,
+pub c_cc: [crate::ctypes::c_uchar; 8usize],
+}
+#[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 iovec {
+pub iov_base: *mut crate::ctypes::c_void,
+pub iov_len: __kernel_size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_cmsg {
+pub frag_offset: __u64,
+pub frag_size: __u32,
+pub frag_token: __u32,
+pub dmabuf_id: __u32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct dmabuf_token {
+pub token_start: __u32,
+pub token_count: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xattr_args {
+pub value: __u64,
+pub size: __u32,
+pub flags: __u32,
+}
+#[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, Copy, Clone)]
+pub struct uffdio_poison {
+pub range: uffdio_range,
+pub mode: __u64,
+pub updated: __s64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct uffdio_move {
+pub dst: __u64,
+pub src: __u64,
+pub len: __u64,
+pub mode: __u64,
+pub move_: __s64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct linux_dirent64 {
+pub d_ino: crate::ctypes::c_ulong,
+pub d_off: crate::ctypes::c_long,
+pub d_reclen: __u16,
+pub d_type: __u8,
+pub d_name: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct stat {
+pub st_dev: __kernel_ulong_t,
+pub st_ino: __kernel_ulong_t,
+pub st_nlink: __kernel_ulong_t,
+pub st_mode: crate::ctypes::c_uint,
+pub st_uid: crate::ctypes::c_uint,
+pub st_gid: crate::ctypes::c_uint,
+pub __pad0: crate::ctypes::c_uint,
+pub st_rdev: __kernel_ulong_t,
+pub st_size: __kernel_long_t,
+pub st_blksize: __kernel_long_t,
+pub st_blocks: __kernel_long_t,
+pub st_atime: __kernel_ulong_t,
+pub st_atime_nsec: __kernel_ulong_t,
+pub st_mtime: __kernel_ulong_t,
+pub st_mtime_nsec: __kernel_ulong_t,
+pub st_ctime: __kernel_ulong_t,
+pub st_ctime_nsec: __kernel_ulong_t,
+pub __unused: [__kernel_long_t; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __old_kernel_stat {
+pub st_dev: crate::ctypes::c_ushort,
+pub st_ino: crate::ctypes::c_ushort,
+pub st_mode: crate::ctypes::c_ushort,
+pub st_nlink: crate::ctypes::c_ushort,
+pub st_uid: crate::ctypes::c_ushort,
+pub st_gid: crate::ctypes::c_ushort,
+pub st_rdev: crate::ctypes::c_ushort,
+pub st_size: crate::ctypes::c_uint,
+pub st_atime: crate::ctypes::c_uint,
+pub st_mtime: crate::ctypes::c_uint,
+pub st_ctime: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs {
+pub f_type: __kernel_long_t,
+pub f_bsize: __kernel_long_t,
+pub f_blocks: __kernel_long_t,
+pub f_bfree: __kernel_long_t,
+pub f_bavail: __kernel_long_t,
+pub f_files: __kernel_long_t,
+pub f_ffree: __kernel_long_t,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __kernel_long_t,
+pub f_frsize: __kernel_long_t,
+pub f_flags: __kernel_long_t,
+pub f_spare: [__kernel_long_t; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct statfs64 {
+pub f_type: __kernel_long_t,
+pub f_bsize: __kernel_long_t,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __kernel_long_t,
+pub f_frsize: __kernel_long_t,
+pub f_flags: __kernel_long_t,
+pub f_spare: [__kernel_long_t; 4usize],
+}
+#[repr(C, packed(4))]
+#[derive(Debug, Copy, Clone)]
+pub struct compat_statfs64 {
+pub f_type: __u32,
+pub f_bsize: __u32,
+pub f_blocks: __u64,
+pub f_bfree: __u64,
+pub f_bavail: __u64,
+pub f_files: __u64,
+pub f_ffree: __u64,
+pub f_fsid: __kernel_fsid_t,
+pub f_namelen: __u32,
+pub f_frsize: __u32,
+pub f_flags: __u32,
+pub f_spare: [__u32; 4usize],
+}
+#[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; 1usize],
+}
+#[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_restorer: __sigrestore_t,
+pub sa_mask: kernel_sigset_t,
+}
+pub const LINUX_VERSION_CODE: u32 = 396544;
+pub const LINUX_VERSION_MAJOR: u32 = 6;
+pub const LINUX_VERSION_PATCHLEVEL: u32 = 13;
+pub const LINUX_VERSION_SUBLEVEL: u32 = 0;
+pub const AT_SYSINFO_EHDR: u32 = 33;
+pub const AT_VECTOR_SIZE_ARCH: u32 = 3;
+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_HWCAP3: u32 = 29;
+pub const AT_HWCAP4: u32 = 30;
+pub const AT_EXECFN: u32 = 31;
+pub const AT_MINSIGSTKSZ: u32 = 51;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+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_ACCMODE: u32 = 3;
+pub const O_RDONLY: u32 = 0;
+pub const O_WRONLY: u32 = 1;
+pub const O_RDWR: u32 = 2;
+pub const O_CREAT: u32 = 64;
+pub const O_EXCL: u32 = 128;
+pub const O_NOCTTY: u32 = 256;
+pub const O_TRUNC: u32 = 512;
+pub const O_APPEND: u32 = 1024;
+pub const O_NONBLOCK: u32 = 2048;
+pub const O_DSYNC: u32 = 4096;
+pub const FASYNC: u32 = 8192;
+pub const O_DIRECT: u32 = 16384;
+pub const O_LARGEFILE: u32 = 32768;
+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_SYNC: u32 = 1048576;
+pub const O_SYNC: u32 = 1052672;
+pub const O_PATH: u32 = 2097152;
+pub const __O_TMPFILE: u32 = 4194304;
+pub const O_TMPFILE: u32 = 4259840;
+pub const O_NDELAY: u32 = 2048;
+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_GETLK: u32 = 5;
+pub const F_SETLK: u32 = 6;
+pub const F_SETLKW: u32 = 7;
+pub const F_SETOWN: u32 = 8;
+pub const F_GETOWN: u32 = 9;
+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_NOTIFY: u32 = 1026;
+pub const F_DUPFD_QUERY: u32 = 1027;
+pub const F_CREATED_QUERY: u32 = 1028;
+pub const F_CANCELLK: u32 = 1029;
+pub const F_DUPFD_CLOEXEC: u32 = 1030;
+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_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 AT_RENAME_NOREPLACE: u32 = 1;
+pub const AT_RENAME_EXCHANGE: u32 = 2;
+pub const AT_RENAME_WHITEOUT: u32 = 4;
+pub const AT_EACCESS: u32 = 512;
+pub const AT_REMOVEDIR: u32 = 512;
+pub const AT_HANDLE_FID: u32 = 512;
+pub const AT_HANDLE_MNT_ID_UNIQUE: u32 = 1;
+pub const AT_HANDLE_CONNECTABLE: u32 = 2;
+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 EPOLL_IOC_TYPE: u32 = 138;
+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_ALLOCATE_RANGE: u32 = 0;
+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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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 FUTEX2_SIZE_U8: u32 = 0;
+pub const FUTEX2_SIZE_U16: u32 = 1;
+pub const FUTEX2_SIZE_U32: u32 = 2;
+pub const FUTEX2_SIZE_U64: u32 = 3;
+pub const FUTEX2_NUMA: u32 = 4;
+pub const FUTEX2_PRIVATE: u32 = 128;
+pub const FUTEX2_SIZE_MASK: u32 = 3;
+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 = 2048;
+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 BCACHEFS_SUPER_MAGIC: u32 = 3393526350;
+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 PID_FS_MAGIC: u32 = 1346978886;
+pub const MAP_32BIT: u32 = 64;
+pub const MAP_ABOVE4G: u32 = 128;
+pub const PROT_READ: u32 = 1;
+pub const PROT_WRITE: u32 = 2;
+pub const PROT_EXEC: u32 = 4;
+pub const PROT_SEM: u32 = 8;
+pub const PROT_NONE: u32 = 0;
+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_ANONYMOUS: u32 = 32;
+pub const MAP_POPULATE: u32 = 32768;
+pub const MAP_NONBLOCK: u32 = 65536;
+pub const MAP_STACK: u32 = 131072;
+pub const MAP_HUGETLB: u32 = 262144;
+pub const MAP_SYNC: u32 = 524288;
+pub const MAP_FIXED_NOREPLACE: u32 = 1048576;
+pub const MAP_UNINITIALIZED: u32 = 67108864;
+pub const MLOCK_ONFAULT: u32 = 1;
+pub const MS_ASYNC: u32 = 1;
+pub const MS_INVALIDATE: u32 = 2;
+pub const MS_SYNC: u32 = 4;
+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_HWPOISON: u32 = 100;
+pub const MADV_SOFT_OFFLINE: u32 = 101;
+pub const MADV_MERGEABLE: u32 = 12;
+pub const MADV_UNMERGEABLE: u32 = 13;
+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 MADV_GUARD_INSTALL: u32 = 102;
+pub const MADV_GUARD_REMOVE: u32 = 103;
+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 MAP_GROWSDOWN: u32 = 256;
+pub const MAP_DENYWRITE: u32 = 2048;
+pub const MAP_EXECUTABLE: u32 = 4096;
+pub const MAP_LOCKED: u32 = 8192;
+pub const MAP_NORESERVE: u32 = 16384;
+pub const MCL_CURRENT: u32 = 1;
+pub const MCL_FUTURE: u32 = 2;
+pub const MCL_ONFAULT: u32 = 4;
+pub const SHADOW_STACK_SET_TOKEN: u32 = 1;
+pub const SHADOW_STACK_SET_MARKER: u32 = 2;
+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_DROPPABLE: u32 = 8;
+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 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 POLLWRNORM: u32 = 256;
+pub const POLLWRBAND: u32 = 512;
+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 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_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_RSS: u32 = 5;
+pub const RLIMIT_NPROC: u32 = 6;
+pub const RLIMIT_NOFILE: u32 = 7;
+pub const RLIMIT_MEMLOCK: u32 = 8;
+pub const RLIMIT_AS: u32 = 9;
+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_EXT: u32 = 7;
+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 = 32;
+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 SIGABRT: u32 = 6;
+pub const SIGIOT: u32 = 6;
+pub const SIGBUS: u32 = 7;
+pub const SIGFPE: u32 = 8;
+pub const SIGKILL: u32 = 9;
+pub const SIGUSR1: u32 = 10;
+pub const SIGSEGV: u32 = 11;
+pub const SIGUSR2: u32 = 12;
+pub const SIGPIPE: u32 = 13;
+pub const SIGALRM: u32 = 14;
+pub const SIGTERM: u32 = 15;
+pub const SIGSTKFLT: u32 = 16;
+pub const SIGCHLD: u32 = 17;
+pub const SIGCONT: u32 = 18;
+pub const SIGSTOP: u32 = 19;
+pub const SIGTSTP: u32 = 20;
+pub const SIGTTIN: u32 = 21;
+pub const SIGTTOU: u32 = 22;
+pub const SIGURG: u32 = 23;
+pub const SIGXCPU: u32 = 24;
+pub const SIGXFSZ: u32 = 25;
+pub const SIGVTALRM: u32 = 26;
+pub const SIGPROF: u32 = 27;
+pub const SIGWINCH: u32 = 28;
+pub const SIGIO: u32 = 29;
+pub const SIGPOLL: u32 = 29;
+pub const SIGPWR: u32 = 30;
+pub const SIGSYS: u32 = 31;
+pub const SIGUNUSED: u32 = 31;
+pub const SIGRTMIN: u32 = 32;
+pub const SA_RESTORER: u32 = 67108864;
+pub const MINSIGSTKSZ: u32 = 2048;
+pub const SIGSTKSZ: u32 = 8192;
+pub const SA_NOCLDSTOP: u32 = 1;
+pub const SA_NOCLDWAIT: u32 = 2;
+pub const SA_SIGINFO: u32 = 4;
+pub const SA_UNSUPPORTED: u32 = 1024;
+pub const SA_EXPOSE_TAGBITS: u32 = 2048;
+pub const SA_ONSTACK: u32 = 134217728;
+pub const SA_RESTART: u32 = 268435456;
+pub const SA_NODEFER: u32 = 1073741824;
+pub const SA_RESETHAND: u32 = 2147483648;
+pub const SA_NOMASK: u32 = 1073741824;
+pub const SA_ONESHOT: u32 = 2147483648;
+pub const SIG_BLOCK: u32 = 0;
+pub const SIG_UNBLOCK: u32 = 1;
+pub const SIG_SETMASK: u32 = 2;
+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 SEGV_CPERR: u32 = 10;
+pub const NSIGSEGV: u32 = 10;
+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_MNT_ID_UNIQUE: u32 = 16384;
+pub const STATX_SUBVOL: u32 = 32768;
+pub const STATX_WRITE_ATOMIC: u32 = 65536;
+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 STATX_ATTR_WRITE_ATOMIC: u32 = 4194304;
+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 = 19;
+pub const VINTR: u32 = 0;
+pub const VQUIT: u32 = 1;
+pub const VERASE: u32 = 2;
+pub const VKILL: u32 = 3;
+pub const VEOF: u32 = 4;
+pub const VTIME: u32 = 5;
+pub const VMIN: u32 = 6;
+pub const VSWTC: u32 = 7;
+pub const VSTART: u32 = 8;
+pub const VSTOP: u32 = 9;
+pub const VSUSP: u32 = 10;
+pub const VEOL: u32 = 11;
+pub const VREPRINT: u32 = 12;
+pub const VDISCARD: u32 = 13;
+pub const VWERASE: u32 = 14;
+pub const VLNEXT: u32 = 15;
+pub const VEOL2: u32 = 16;
+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 TOSTOP: u32 = 256;
+pub const ECHOCTL: u32 = 512;
+pub const ECHOPRT: u32 = 1024;
+pub const ECHOKE: u32 = 2048;
+pub const FLUSHO: u32 = 4096;
+pub const PENDIN: u32 = 16384;
+pub const IEXTEN: u32 = 32768;
+pub const EXTPROC: u32 = 65536;
+pub const TCSANOW: u32 = 0;
+pub const TCSADRAIN: u32 = 1;
+pub const TCSAFLUSH: u32 = 2;
+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 TIOCSER_TEMT: u32 = 1;
+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 = 8;
+pub const TIOCM_SR: u32 = 16;
+pub const TIOCM_CTS: u32 = 32;
+pub const TIOCM_CAR: u32 = 64;
+pub const TIOCM_RNG: u32 = 128;
+pub const TIOCM_DSR: u32 = 256;
+pub const TIOCM_CD: u32 = 64;
+pub const TIOCM_RI: u32 = 128;
+pub const TIOCM_OUT1: u32 = 8192;
+pub const TIOCM_OUT2: u32 = 16384;
+pub const TIOCM_LOOP: u32 = 32768;
+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 UIO_FASTIOV: u32 = 8;
+pub const UIO_MAXIOV: u32 = 1024;
+pub const __X32_SYSCALL_BIT: u32 = 1073741824;
+pub const __NR_read: u32 = 0;
+pub const __NR_write: u32 = 1;
+pub const __NR_open: u32 = 2;
+pub const __NR_close: u32 = 3;
+pub const __NR_stat: u32 = 4;
+pub const __NR_fstat: u32 = 5;
+pub const __NR_lstat: u32 = 6;
+pub const __NR_poll: u32 = 7;
+pub const __NR_lseek: u32 = 8;
+pub const __NR_mmap: u32 = 9;
+pub const __NR_mprotect: u32 = 10;
+pub const __NR_munmap: u32 = 11;
+pub const __NR_brk: u32 = 12;
+pub const __NR_rt_sigaction: u32 = 13;
+pub const __NR_rt_sigprocmask: u32 = 14;
+pub const __NR_rt_sigreturn: u32 = 15;
+pub const __NR_ioctl: u32 = 16;
+pub const __NR_pread64: u32 = 17;
+pub const __NR_pwrite64: u32 = 18;
+pub const __NR_readv: u32 = 19;
+pub const __NR_writev: u32 = 20;
+pub const __NR_access: u32 = 21;
+pub const __NR_pipe: u32 = 22;
+pub const __NR_select: u32 = 23;
+pub const __NR_sched_yield: u32 = 24;
+pub const __NR_mremap: u32 = 25;
+pub const __NR_msync: u32 = 26;
+pub const __NR_mincore: u32 = 27;
+pub const __NR_madvise: u32 = 28;
+pub const __NR_shmget: u32 = 29;
+pub const __NR_shmat: u32 = 30;
+pub const __NR_shmctl: u32 = 31;
+pub const __NR_dup: u32 = 32;
+pub const __NR_dup2: u32 = 33;
+pub const __NR_pause: u32 = 34;
+pub const __NR_nanosleep: u32 = 35;
+pub const __NR_getitimer: u32 = 36;
+pub const __NR_alarm: u32 = 37;
+pub const __NR_setitimer: u32 = 38;
+pub const __NR_getpid: u32 = 39;
+pub const __NR_sendfile: u32 = 40;
+pub const __NR_socket: u32 = 41;
+pub const __NR_connect: u32 = 42;
+pub const __NR_accept: u32 = 43;
+pub const __NR_sendto: u32 = 44;
+pub const __NR_recvfrom: u32 = 45;
+pub const __NR_sendmsg: u32 = 46;
+pub const __NR_recvmsg: u32 = 47;
+pub const __NR_shutdown: u32 = 48;
+pub const __NR_bind: u32 = 49;
+pub const __NR_listen: u32 = 50;
+pub const __NR_getsockname: u32 = 51;
+pub const __NR_getpeername: u32 = 52;
+pub const __NR_socketpair: u32 = 53;
+pub const __NR_setsockopt: u32 = 54;
+pub const __NR_getsockopt: u32 = 55;
+pub const __NR_clone: u32 = 56;
+pub const __NR_fork: u32 = 57;
+pub const __NR_vfork: u32 = 58;
+pub const __NR_execve: u32 = 59;
+pub const __NR_exit: u32 = 60;
+pub const __NR_wait4: u32 = 61;
+pub const __NR_kill: u32 = 62;
+pub const __NR_uname: u32 = 63;
+pub const __NR_semget: u32 = 64;
+pub const __NR_semop: u32 = 65;
+pub const __NR_semctl: u32 = 66;
+pub const __NR_shmdt: u32 = 67;
+pub const __NR_msgget: u32 = 68;
+pub const __NR_msgsnd: u32 = 69;
+pub const __NR_msgrcv: u32 = 70;
+pub const __NR_msgctl: u32 = 71;
+pub const __NR_fcntl: u32 = 72;
+pub const __NR_flock: u32 = 73;
+pub const __NR_fsync: u32 = 74;
+pub const __NR_fdatasync: u32 = 75;
+pub const __NR_truncate: u32 = 76;
+pub const __NR_ftruncate: u32 = 77;
+pub const __NR_getdents: u32 = 78;
+pub const __NR_getcwd: u32 = 79;
+pub const __NR_chdir: u32 = 80;
+pub const __NR_fchdir: u32 = 81;
+pub const __NR_rename: u32 = 82;
+pub const __NR_mkdir: u32 = 83;
+pub const __NR_rmdir: u32 = 84;
+pub const __NR_creat: u32 = 85;
+pub const __NR_link: u32 = 86;
+pub const __NR_unlink: u32 = 87;
+pub const __NR_symlink: u32 = 88;
+pub const __NR_readlink: u32 = 89;
+pub const __NR_chmod: u32 = 90;
+pub const __NR_fchmod: u32 = 91;
+pub const __NR_chown: u32 = 92;
+pub const __NR_fchown: u32 = 93;
+pub const __NR_lchown: u32 = 94;
+pub const __NR_umask: u32 = 95;
+pub const __NR_gettimeofday: u32 = 96;
+pub const __NR_getrlimit: u32 = 97;
+pub const __NR_getrusage: u32 = 98;
+pub const __NR_sysinfo: u32 = 99;
+pub const __NR_times: u32 = 100;
+pub const __NR_ptrace: u32 = 101;
+pub const __NR_getuid: u32 = 102;
+pub const __NR_syslog: u32 = 103;
+pub const __NR_getgid: u32 = 104;
+pub const __NR_setuid: u32 = 105;
+pub const __NR_setgid: u32 = 106;
+pub const __NR_geteuid: u32 = 107;
+pub const __NR_getegid: u32 = 108;
+pub const __NR_setpgid: u32 = 109;
+pub const __NR_getppid: u32 = 110;
+pub const __NR_getpgrp: u32 = 111;
+pub const __NR_setsid: u32 = 112;
+pub const __NR_setreuid: u32 = 113;
+pub const __NR_setregid: u32 = 114;
+pub const __NR_getgroups: u32 = 115;
+pub const __NR_setgroups: u32 = 116;
+pub const __NR_setresuid: u32 = 117;
+pub const __NR_getresuid: u32 = 118;
+pub const __NR_setresgid: u32 = 119;
+pub const __NR_getresgid: u32 = 120;
+pub const __NR_getpgid: u32 = 121;
+pub const __NR_setfsuid: u32 = 122;
+pub const __NR_setfsgid: u32 = 123;
+pub const __NR_getsid: u32 = 124;
+pub const __NR_capget: u32 = 125;
+pub const __NR_capset: u32 = 126;
+pub const __NR_rt_sigpending: u32 = 127;
+pub const __NR_rt_sigtimedwait: u32 = 128;
+pub const __NR_rt_sigqueueinfo: u32 = 129;
+pub const __NR_rt_sigsuspend: u32 = 130;
+pub const __NR_sigaltstack: u32 = 131;
+pub const __NR_utime: u32 = 132;
+pub const __NR_mknod: u32 = 133;
+pub const __NR_uselib: u32 = 134;
+pub const __NR_personality: u32 = 135;
+pub const __NR_ustat: u32 = 136;
+pub const __NR_statfs: u32 = 137;
+pub const __NR_fstatfs: u32 = 138;
+pub const __NR_sysfs: u32 = 139;
+pub const __NR_getpriority: u32 = 140;
+pub const __NR_setpriority: u32 = 141;
+pub const __NR_sched_setparam: u32 = 142;
+pub const __NR_sched_getparam: u32 = 143;
+pub const __NR_sched_setscheduler: u32 = 144;
+pub const __NR_sched_getscheduler: u32 = 145;
+pub const __NR_sched_get_priority_max: u32 = 146;
+pub const __NR_sched_get_priority_min: u32 = 147;
+pub const __NR_sched_rr_get_interval: u32 = 148;
+pub const __NR_mlock: u32 = 149;
+pub const __NR_munlock: u32 = 150;
+pub const __NR_mlockall: u32 = 151;
+pub const __NR_munlockall: u32 = 152;
+pub const __NR_vhangup: u32 = 153;
+pub const __NR_modify_ldt: u32 = 154;
+pub const __NR_pivot_root: u32 = 155;
+pub const __NR__sysctl: u32 = 156;
+pub const __NR_prctl: u32 = 157;
+pub const __NR_arch_prctl: u32 = 158;
+pub const __NR_adjtimex: u32 = 159;
+pub const __NR_setrlimit: u32 = 160;
+pub const __NR_chroot: u32 = 161;
+pub const __NR_sync: u32 = 162;
+pub const __NR_acct: u32 = 163;
+pub const __NR_settimeofday: u32 = 164;
+pub const __NR_mount: u32 = 165;
+pub const __NR_umount2: u32 = 166;
+pub const __NR_swapon: u32 = 167;
+pub const __NR_swapoff: u32 = 168;
+pub const __NR_reboot: u32 = 169;
+pub const __NR_sethostname: u32 = 170;
+pub const __NR_setdomainname: u32 = 171;
+pub const __NR_iopl: u32 = 172;
+pub const __NR_ioperm: u32 = 173;
+pub const __NR_create_module: u32 = 174;
+pub const __NR_init_module: u32 = 175;
+pub const __NR_delete_module: u32 = 176;
+pub const __NR_get_kernel_syms: u32 = 177;
+pub const __NR_query_module: u32 = 178;
+pub const __NR_quotactl: u32 = 179;
+pub const __NR_nfsservctl: u32 = 180;
+pub const __NR_getpmsg: u32 = 181;
+pub const __NR_putpmsg: u32 = 182;
+pub const __NR_afs_syscall: u32 = 183;
+pub const __NR_tuxcall: u32 = 184;
+pub const __NR_security: u32 = 185;
+pub const __NR_gettid: u32 = 186;
+pub const __NR_readahead: u32 = 187;
+pub const __NR_setxattr: u32 = 188;
+pub const __NR_lsetxattr: u32 = 189;
+pub const __NR_fsetxattr: u32 = 190;
+pub const __NR_getxattr: u32 = 191;
+pub const __NR_lgetxattr: u32 = 192;
+pub const __NR_fgetxattr: u32 = 193;
+pub const __NR_listxattr: u32 = 194;
+pub const __NR_llistxattr: u32 = 195;
+pub const __NR_flistxattr: u32 = 196;
+pub const __NR_removexattr: u32 = 197;
+pub const __NR_lremovexattr: u32 = 198;
+pub const __NR_fremovexattr: u32 = 199;
+pub const __NR_tkill: u32 = 200;
+pub const __NR_time: u32 = 201;
+pub const __NR_futex: u32 = 202;
+pub const __NR_sched_setaffinity: u32 = 203;
+pub const __NR_sched_getaffinity: u32 = 204;
+pub const __NR_set_thread_area: u32 = 205;
+pub const __NR_io_setup: u32 = 206;
+pub const __NR_io_destroy: u32 = 207;
+pub const __NR_io_getevents: u32 = 208;
+pub const __NR_io_submit: u32 = 209;
+pub const __NR_io_cancel: u32 = 210;
+pub const __NR_get_thread_area: u32 = 211;
+pub const __NR_lookup_dcookie: u32 = 212;
+pub const __NR_epoll_create: u32 = 213;
+pub const __NR_epoll_ctl_old: u32 = 214;
+pub const __NR_epoll_wait_old: u32 = 215;
+pub const __NR_remap_file_pages: u32 = 216;
+pub const __NR_getdents64: u32 = 217;
+pub const __NR_set_tid_address: u32 = 218;
+pub const __NR_restart_syscall: u32 = 219;
+pub const __NR_semtimedop: u32 = 220;
+pub const __NR_fadvise64: u32 = 221;
+pub const __NR_timer_create: u32 = 222;
+pub const __NR_timer_settime: u32 = 223;
+pub const __NR_timer_gettime: u32 = 224;
+pub const __NR_timer_getoverrun: u32 = 225;
+pub const __NR_timer_delete: u32 = 226;
+pub const __NR_clock_settime: u32 = 227;
+pub const __NR_clock_gettime: u32 = 228;
+pub const __NR_clock_getres: u32 = 229;
+pub const __NR_clock_nanosleep: u32 = 230;
+pub const __NR_exit_group: u32 = 231;
+pub const __NR_epoll_wait: u32 = 232;
+pub const __NR_epoll_ctl: u32 = 233;
+pub const __NR_tgkill: u32 = 234;
+pub const __NR_utimes: u32 = 235;
+pub const __NR_vserver: u32 = 236;
+pub const __NR_mbind: u32 = 237;
+pub const __NR_set_mempolicy: u32 = 238;
+pub const __NR_get_mempolicy: u32 = 239;
+pub const __NR_mq_open: u32 = 240;
+pub const __NR_mq_unlink: u32 = 241;
+pub const __NR_mq_timedsend: u32 = 242;
+pub const __NR_mq_timedreceive: u32 = 243;
+pub const __NR_mq_notify: u32 = 244;
+pub const __NR_mq_getsetattr: u32 = 245;
+pub const __NR_kexec_load: u32 = 246;
+pub const __NR_waitid: u32 = 247;
+pub const __NR_add_key: u32 = 248;
+pub const __NR_request_key: u32 = 249;
+pub const __NR_keyctl: u32 = 250;
+pub const __NR_ioprio_set: u32 = 251;
+pub const __NR_ioprio_get: u32 = 252;
+pub const __NR_inotify_init: u32 = 253;
+pub const __NR_inotify_add_watch: u32 = 254;
+pub const __NR_inotify_rm_watch: u32 = 255;
+pub const __NR_migrate_pages: u32 = 256;
+pub const __NR_openat: u32 = 257;
+pub const __NR_mkdirat: u32 = 258;
+pub const __NR_mknodat: u32 = 259;
+pub const __NR_fchownat: u32 = 260;
+pub const __NR_futimesat: u32 = 261;
+pub const __NR_newfstatat: u32 = 262;
+pub const __NR_unlinkat: u32 = 263;
+pub const __NR_renameat: u32 = 264;
+pub const __NR_linkat: u32 = 265;
+pub const __NR_symlinkat: u32 = 266;
+pub const __NR_readlinkat: u32 = 267;
+pub const __NR_fchmodat: u32 = 268;
+pub const __NR_faccessat: u32 = 269;
+pub const __NR_pselect6: u32 = 270;
+pub const __NR_ppoll: u32 = 271;
+pub const __NR_unshare: u32 = 272;
+pub const __NR_set_robust_list: u32 = 273;
+pub const __NR_get_robust_list: u32 = 274;
+pub const __NR_splice: u32 = 275;
+pub const __NR_tee: u32 = 276;
+pub const __NR_sync_file_range: u32 = 277;
+pub const __NR_vmsplice: u32 = 278;
+pub const __NR_move_pages: u32 = 279;
+pub const __NR_utimensat: u32 = 280;
+pub const __NR_epoll_pwait: u32 = 281;
+pub const __NR_signalfd: u32 = 282;
+pub const __NR_timerfd_create: u32 = 283;
+pub const __NR_eventfd: u32 = 284;
+pub const __NR_fallocate: u32 = 285;
+pub const __NR_timerfd_settime: u32 = 286;
+pub const __NR_timerfd_gettime: u32 = 287;
+pub const __NR_accept4: u32 = 288;
+pub const __NR_signalfd4: u32 = 289;
+pub const __NR_eventfd2: u32 = 290;
+pub const __NR_epoll_create1: u32 = 291;
+pub const __NR_dup3: u32 = 292;
+pub const __NR_pipe2: u32 = 293;
+pub const __NR_inotify_init1: u32 = 294;
+pub const __NR_preadv: u32 = 295;
+pub const __NR_pwritev: u32 = 296;
+pub const __NR_rt_tgsigqueueinfo: u32 = 297;
+pub const __NR_perf_event_open: u32 = 298;
+pub const __NR_recvmmsg: u32 = 299;
+pub const __NR_fanotify_init: u32 = 300;
+pub const __NR_fanotify_mark: u32 = 301;
+pub const __NR_prlimit64: u32 = 302;
+pub const __NR_name_to_handle_at: u32 = 303;
+pub const __NR_open_by_handle_at: u32 = 304;
+pub const __NR_clock_adjtime: u32 = 305;
+pub const __NR_syncfs: u32 = 306;
+pub const __NR_sendmmsg: u32 = 307;
+pub const __NR_setns: u32 = 308;
+pub const __NR_getcpu: u32 = 309;
+pub const __NR_process_vm_readv: u32 = 310;
+pub const __NR_process_vm_writev: u32 = 311;
+pub const __NR_kcmp: u32 = 312;
+pub const __NR_finit_module: u32 = 313;
+pub const __NR_sched_setattr: u32 = 314;
+pub const __NR_sched_getattr: u32 = 315;
+pub const __NR_renameat2: u32 = 316;
+pub const __NR_seccomp: u32 = 317;
+pub const __NR_getrandom: u32 = 318;
+pub const __NR_memfd_create: u32 = 319;
+pub const __NR_kexec_file_load: u32 = 320;
+pub const __NR_bpf: u32 = 321;
+pub const __NR_execveat: u32 = 322;
+pub const __NR_userfaultfd: u32 = 323;
+pub const __NR_membarrier: u32 = 324;
+pub const __NR_mlock2: u32 = 325;
+pub const __NR_copy_file_range: u32 = 326;
+pub const __NR_preadv2: u32 = 327;
+pub const __NR_pwritev2: u32 = 328;
+pub const __NR_pkey_mprotect: u32 = 329;
+pub const __NR_pkey_alloc: u32 = 330;
+pub const __NR_pkey_free: u32 = 331;
+pub const __NR_statx: u32 = 332;
+pub const __NR_io_pgetevents: u32 = 333;
+pub const __NR_rseq: u32 = 334;
+pub const __NR_uretprobe: u32 = 335;
+pub const __NR_pidfd_send_signal: u32 = 424;
+pub const __NR_io_uring_setup: u32 = 425;
+pub const __NR_io_uring_enter: u32 = 426;
+pub const __NR_io_uring_register: u32 = 427;
+pub const __NR_open_tree: u32 = 428;
+pub const __NR_move_mount: u32 = 429;
+pub const __NR_fsopen: u32 = 430;
+pub const __NR_fsconfig: u32 = 431;
+pub const __NR_fsmount: u32 = 432;
+pub const __NR_fspick: u32 = 433;
+pub const __NR_pidfd_open: u32 = 434;
+pub const __NR_clone3: u32 = 435;
+pub const __NR_close_range: u32 = 436;
+pub const __NR_openat2: u32 = 437;
+pub const __NR_pidfd_getfd: u32 = 438;
+pub const __NR_faccessat2: u32 = 439;
+pub const __NR_process_madvise: u32 = 440;
+pub const __NR_epoll_pwait2: u32 = 441;
+pub const __NR_mount_setattr: u32 = 442;
+pub const __NR_quotactl_fd: u32 = 443;
+pub const __NR_landlock_create_ruleset: u32 = 444;
+pub const __NR_landlock_add_rule: u32 = 445;
+pub const __NR_landlock_restrict_self: u32 = 446;
+pub const __NR_memfd_secret: u32 = 447;
+pub const __NR_process_mrelease: u32 = 448;
+pub const __NR_futex_waitv: u32 = 449;
+pub const __NR_set_mempolicy_home_node: u32 = 450;
+pub const __NR_cachestat: u32 = 451;
+pub const __NR_fchmodat2: u32 = 452;
+pub const __NR_map_shadow_stack: u32 = 453;
+pub const __NR_futex_wake: u32 = 454;
+pub const __NR_futex_wait: u32 = 455;
+pub const __NR_futex_requeue: u32 = 456;
+pub const __NR_statmount: u32 = 457;
+pub const __NR_listmount: u32 = 458;
+pub const __NR_lsm_get_self_attr: u32 = 459;
+pub const __NR_lsm_set_self_attr: u32 = 460;
+pub const __NR_lsm_list_modules: u32 = 461;
+pub const __NR_mseal: u32 = 462;
+pub const __NR_setxattrat: u32 = 463;
+pub const __NR_getxattrat: u32 = 464;
+pub const __NR_listxattrat: u32 = 465;
+pub const __NR_removexattrat: u32 = 466;
+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 = 2048;
+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_MOVE: u32 = 5;
+pub const _UFFDIO_WRITEPROTECT: u32 = 6;
+pub const _UFFDIO_CONTINUE: u32 = 7;
+pub const _UFFDIO_POISON: u32 = 8;
+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_FEATURE_WP_UNPOPULATED: u32 = 8192;
+pub const UFFD_FEATURE_POISON: u32 = 16384;
+pub const UFFD_FEATURE_WP_ASYNC: u32 = 32768;
+pub const UFFD_FEATURE_MOVE: u32 = 65536;
+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 = 2048;
+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 = 526336;
+pub const TFD_CREATE_FLAGS: u32 = 526336;
+pub const TFD_SETTIME_FLAGS: u32 = 1;
+pub const ARCH_SET_FS: u32 = 4098;
+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 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;
+pub const _NSIG: u32 = 64;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd {
+MEMBARRIER_CMD_QUERY = 0,
+MEMBARRIER_CMD_GLOBAL = 1,
+MEMBARRIER_CMD_GLOBAL_EXPEDITED = 2,
+MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 4,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED = 8,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 16,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 32,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 64,
+MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 128,
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 256,
+MEMBARRIER_CMD_GET_REGISTRATIONS = 512,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum membarrier_cmd_flag {
+MEMBARRIER_CMD_FLAG_CPU = 1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_get_policy_ex_arg__bindgen_ty_1 {
+pub version: __u8,
+pub v1: fscrypt_policy_v1,
+pub v2: fscrypt_policy_v2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union fscrypt_key_specifier__bindgen_ty_1 {
+pub __reserved: [__u8; 32usize],
+pub descriptor: [__u8; 8usize],
+pub identifier: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigval {
+pub sival_int: crate::ctypes::c_int,
+pub sival_ptr: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields {
+pub _kill: __sifields__bindgen_ty_1,
+pub _timer: __sifields__bindgen_ty_2,
+pub _rt: __sifields__bindgen_ty_3,
+pub _sigchld: __sifields__bindgen_ty_4,
+pub _sigfault: __sifields__bindgen_ty_5,
+pub _sigpoll: __sifields__bindgen_ty_6,
+pub _sigsys: __sifields__bindgen_ty_7,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __sifields__bindgen_ty_5__bindgen_ty_1 {
+pub _trapno: crate::ctypes::c_int,
+pub _addr_lsb: crate::ctypes::c_short,
+pub _addr_bnd: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1,
+pub _addr_pkey: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_2,
+pub _perf: __sifields__bindgen_ty_5__bindgen_ty_1__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union siginfo__bindgen_ty_1 {
+pub __bindgen_anon_1: siginfo__bindgen_ty_1__bindgen_ty_1,
+pub _si_pad: [crate::ctypes::c_int; 32usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union sigevent__bindgen_ty_1 {
+pub _pad: [crate::ctypes::c_int; 12usize],
+pub _tid: crate::ctypes::c_int,
+pub _sigev_thread: sigevent__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1 {
+pub pagefault: uffd_msg__bindgen_ty_1__bindgen_ty_1,
+pub fork: uffd_msg__bindgen_ty_1__bindgen_ty_2,
+pub remap: uffd_msg__bindgen_ty_1__bindgen_ty_3,
+pub remove: uffd_msg__bindgen_ty_1__bindgen_ty_4,
+pub reserved: uffd_msg__bindgen_ty_1__bindgen_ty_5,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
+pub ptid: __u32,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl membarrier_cmd {
+pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL;
+}
+impl user_desc {
+#[inline]
+pub fn seg_32bit(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn seg_32bit_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_32bit_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn contents_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 2u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_contents_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn read_exec_only_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_read_exec_only_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn limit_in_pages_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_limit_in_pages_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn seg_not_present_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_seg_not_present_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn useable_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 6usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_useable_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 6usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn lm(&self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_lm(&mut self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(7usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn lm_raw(this: *const Self) -> crate::ctypes::c_uint {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 7usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_lm_raw(this: *mut Self, val: crate::ctypes::c_uint) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 7usize, 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, lm: 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.set(7usize, 1u8, {
+let lm: u32 = unsafe { ::core::mem::transmute(lm) };
+lm as u64
+});
+__bindgen_bitfield_unit
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86_64/if_arp.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/if_arp.rs
new file mode 100644
index 0000000..5d13014
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/if_arp.rs
@@ -0,0 +1,2757 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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 __s128 = i128;
+pub type __u128 = u128;
+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 id: __u16,
+pub type_flags: __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 __BITS_PER_LONG_LONG: u32 = 64;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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_VNET_HDR_SZ: u32 = 24;
+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_DPLL_PIN: _bindgen_ty_4 = _bindgen_ty_4::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_4 = _bindgen_ty_4::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_10 = _bindgen_ty_10::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_14 = _bindgen_ty_14::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_20 = _bindgen_ty_20::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_21 = _bindgen_ty_21::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_22 = _bindgen_ty_22::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_22 = _bindgen_ty_22::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_23 = _bindgen_ty_23::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_23 = _bindgen_ty_23::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_27 = _bindgen_ty_27::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_28 = _bindgen_ty_28::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_31 = _bindgen_ty_31::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_36 = _bindgen_ty_36::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_37 = _bindgen_ty_37::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_37 = _bindgen_ty_37::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_38 = _bindgen_ty_38::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_39 = _bindgen_ty_39::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_40 = _bindgen_ty_40::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_40 = _bindgen_ty_40::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_41 = _bindgen_ty_41::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_42 = _bindgen_ty_42::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_43 = _bindgen_ty_43::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_44 = _bindgen_ty_44::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_47 = _bindgen_ty_47::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_47 = _bindgen_ty_47::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_48 = _bindgen_ty_48::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_50 = _bindgen_ty_50::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_51 = _bindgen_ty_51::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_53 = _bindgen_ty_53::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_54 = _bindgen_ty_54::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_55 = _bindgen_ty_55::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__IFLA_DSA_MAX;
+pub const IF_PORT_UNKNOWN: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_UNKNOWN;
+pub const IF_PORT_10BASE2: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASE2;
+pub const IF_PORT_10BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_10BASET;
+pub const IF_PORT_AUI: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_AUI;
+pub const IF_PORT_100BASET: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASET;
+pub const IF_PORT_100BASETX: _bindgen_ty_57 = _bindgen_ty_57::IF_PORT_100BASETX;
+pub const IF_PORT_100BASEFX: _bindgen_ty_57 = _bindgen_ty_57::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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_20 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_21 {
+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_22 {
+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_23 {
+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_24 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_25 {
+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_26 {
+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_27 {
+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_28 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_29 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+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_41 {
+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_42 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+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_54 {
+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_55 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_56 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_57 {
+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_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/x86_64/if_ether.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/if_ether.rs
new file mode 100644
index 0000000..22f63ce
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/if_ether.rs
@@ -0,0 +1,170 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/x86_64/if_packet.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/if_packet.rs
new file mode 100644
index 0000000..396193a
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/if_packet.rs
@@ -0,0 +1,311 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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 __s128 = i128;
+pub type __u128 = u128;
+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 id: __u16,
+pub type_flags: __u16,
+pub max_num_members: __u32,
+}
+pub const __LITTLE_ENDIAN: u32 = 1234;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_VNET_HDR_SZ: u32 = 24;
+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.9.4/src/x86_64/image.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/image.rs
new file mode 100644
index 0000000..609ea88
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/image.rs
@@ -0,0 +1,3 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86_64/io_uring.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/io_uring.rs
new file mode 100644
index 0000000..1a09c53
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/io_uring.rs
@@ -0,0 +1,1336 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_rwf_t = crate::ctypes::c_int;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v1 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub master_key_descriptor: [__u8; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_key {
+pub mode: __u32,
+pub raw: [__u8; 64usize],
+pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fscrypt_policy_v2 {
+pub version: __u8,
+pub contents_encryption_mode: __u8,
+pub filenames_encryption_mode: __u8,
+pub flags: __u8,
+pub log2_data_unit_size: __u8,
+pub __reserved: [__u8; 3usize],
+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)]
+pub struct statmount {
+pub size: __u32,
+pub mnt_opts: __u32,
+pub mask: __u64,
+pub sb_dev_major: __u32,
+pub sb_dev_minor: __u32,
+pub sb_magic: __u64,
+pub sb_flags: __u32,
+pub fs_type: __u32,
+pub mnt_id: __u64,
+pub mnt_parent_id: __u64,
+pub mnt_id_old: __u32,
+pub mnt_parent_id_old: __u32,
+pub mnt_attr: __u64,
+pub mnt_propagation: __u64,
+pub mnt_peer_group: __u64,
+pub mnt_master: __u64,
+pub propagate_from: __u64,
+pub mnt_root: __u32,
+pub mnt_point: __u32,
+pub mnt_ns_id: __u64,
+pub fs_subtype: __u32,
+pub sb_source: __u32,
+pub opt_num: __u32,
+pub opt_array: __u32,
+pub opt_sec_num: __u32,
+pub opt_sec_array: __u32,
+pub __spare2: [__u64; 46usize],
+pub str_: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct mnt_id_req {
+pub size: __u32,
+pub spare: __u32,
+pub mnt_id: __u64,
+pub param: __u64,
+pub mnt_ns_id: __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 fsuuid2 {
+pub len: __u8,
+pub uuid: [__u8; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fs_sysfs_path {
+pub len: __u8,
+pub name: [__u8; 128usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct file_dedupe_range_info {
+pub dest_fd: __s64,
+pub dest_offset: __u64,
+pub bytes_deduped: __u64,
+pub status: __s32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct file_dedupe_range {
+pub src_offset: __u64,
+pub src_length: __u64,
+pub dest_count: __u16,
+pub reserved1: __u16,
+pub reserved2: __u32,
+pub info: __IncompleteArrayField<file_dedupe_range_info>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct files_stat_struct {
+pub nr_files: crate::ctypes::c_ulong,
+pub nr_free_files: crate::ctypes::c_ulong,
+pub max_files: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct inodes_stat_t {
+pub nr_inodes: crate::ctypes::c_long,
+pub nr_unused: crate::ctypes::c_long,
+pub dummy: [crate::ctypes::c_long; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsxattr {
+pub fsx_xflags: __u32,
+pub fsx_extsize: __u32,
+pub fsx_nextents: __u32,
+pub fsx_projid: __u32,
+pub fsx_cowextsize: __u32,
+pub fsx_pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct page_region {
+pub start: __u64,
+pub end: __u64,
+pub categories: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pm_scan_arg {
+pub size: __u64,
+pub flags: __u64,
+pub start: __u64,
+pub end: __u64,
+pub walk_end: __u64,
+pub vec: __u64,
+pub vec_len: __u64,
+pub max_pages: __u64,
+pub category_inverted: __u64,
+pub category_mask: __u64,
+pub category_anyof_mask: __u64,
+pub return_mask: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct procmap_query {
+pub size: __u64,
+pub query_flags: __u64,
+pub query_addr: __u64,
+pub vma_start: __u64,
+pub vma_end: __u64,
+pub vma_flags: __u64,
+pub vma_page_size: __u64,
+pub vma_offset: __u64,
+pub inode: __u64,
+pub dev_major: __u32,
+pub dev_minor: __u32,
+pub vma_name_size: __u32,
+pub build_id_size: __u32,
+pub vma_name_addr: __u64,
+pub build_id_addr: __u64,
+}
+#[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_2__bindgen_ty_1 {
+pub level: __u32,
+pub optname: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_sqe__bindgen_ty_5__bindgen_ty_1 {
+pub addr_len: __u16,
+pub __pad3: [__u16; 1usize],
+}
+#[repr(C)]
+pub struct io_uring_sqe__bindgen_ty_6 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_sqe__bindgen_ty_6__bindgen_ty_1>,
+pub optval: __BindgenUnionField<__u64>,
+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 user_addr: __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 user_addr: __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_region_desc {
+pub user_addr: __u64,
+pub size: __u64,
+pub flags: __u32,
+pub id: __u32,
+pub mmap_offset: __u64,
+pub __resv: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_mem_region_reg {
+pub region_uptr: __u64,
+pub flags: __u64,
+pub __resv: [__u64; 2usize],
+}
+#[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_probe_op {
+pub op: __u8,
+pub resv: __u8,
+pub flags: __u16,
+pub resv2: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_probe {
+pub last_op: __u8,
+pub ops_len: __u8,
+pub resv: __u16,
+pub resv2: [__u32; 3usize],
+pub ops: __IncompleteArrayField<io_uring_probe_op>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct io_uring_restriction {
+pub opcode: __u16,
+pub __bindgen_anon_1: io_uring_restriction__bindgen_ty_1,
+pub resv: __u8,
+pub resv2: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clock_register {
+pub clockid: __u32,
+pub __resv: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_clone_buffers {
+pub src_fd: __u32,
+pub flags: __u32,
+pub src_off: __u32,
+pub dst_off: __u32,
+pub nr: __u32,
+pub pad: [__u32; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf {
+pub addr: __u64,
+pub len: __u32,
+pub bid: __u16,
+pub resv: __u16,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring {
+pub __bindgen_anon_1: io_uring_buf_ring__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct io_uring_buf_ring__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1 {
+pub resv1: __u64,
+pub resv2: __u32,
+pub resv3: __u16,
+pub tail: __u16,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2 {
+pub __empty_bufs: io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
+pub bufs: __IncompleteArrayField<io_uring_buf>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_reg {
+pub ring_addr: __u64,
+pub ring_entries: __u32,
+pub bgid: __u16,
+pub flags: __u16,
+pub resv: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_buf_status {
+pub buf_group: __u32,
+pub head: __u32,
+pub resv: [__u32; 8usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_napi {
+pub busy_poll_to: __u32,
+pub prefer_busy_poll: __u8,
+pub opcode: __u8,
+pub pad: [__u8; 2usize],
+pub op_param: __u32,
+pub resv: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_reg_wait {
+pub ts: __kernel_timespec,
+pub min_wait_usec: __u32,
+pub flags: __u32,
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub pad: [__u32; 3usize],
+pub pad2: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct io_uring_getevents_arg {
+pub sigmask: __u64,
+pub sigmask_sz: __u32,
+pub min_wait_usec: __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 opcode: __u8,
+pub pad: [__u8; 7usize],
+pub pad2: [__u64; 3usize],
+}
+#[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_NRBITS: u32 = 8;
+pub const _IOC_TYPEBITS: u32 = 8;
+pub const _IOC_SIZEBITS: u32 = 14;
+pub const _IOC_DIRBITS: u32 = 2;
+pub const _IOC_NRMASK: u32 = 255;
+pub const _IOC_TYPEMASK: u32 = 255;
+pub const _IOC_SIZEMASK: u32 = 16383;
+pub const _IOC_DIRMASK: u32 = 3;
+pub const _IOC_NRSHIFT: u32 = 0;
+pub const _IOC_TYPESHIFT: u32 = 8;
+pub const _IOC_SIZESHIFT: u32 = 16;
+pub const _IOC_DIRSHIFT: u32 = 30;
+pub const _IOC_NONE: u32 = 0;
+pub const _IOC_WRITE: u32 = 1;
+pub const _IOC_READ: u32 = 2;
+pub const IOC_IN: u32 = 1073741824;
+pub const IOC_OUT: u32 = 2147483648;
+pub const IOC_INOUT: u32 = 3221225472;
+pub const IOCSIZE_MASK: u32 = 1073676288;
+pub const IOCSIZE_SHIFT: u32 = 16;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_BENEATH: u32 = 512;
+pub const MOVE_MOUNT__MASK: u32 = 887;
+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 MNT_ID_REQ_SIZE_VER0: u32 = 24;
+pub const MNT_ID_REQ_SIZE_VER1: u32 = 32;
+pub const STATMOUNT_SB_BASIC: u32 = 1;
+pub const STATMOUNT_MNT_BASIC: u32 = 2;
+pub const STATMOUNT_PROPAGATE_FROM: u32 = 4;
+pub const STATMOUNT_MNT_ROOT: u32 = 8;
+pub const STATMOUNT_MNT_POINT: u32 = 16;
+pub const STATMOUNT_FS_TYPE: u32 = 32;
+pub const STATMOUNT_MNT_NS_ID: u32 = 64;
+pub const STATMOUNT_MNT_OPTS: u32 = 128;
+pub const STATMOUNT_FS_SUBTYPE: u32 = 256;
+pub const STATMOUNT_SB_SOURCE: u32 = 512;
+pub const STATMOUNT_OPT_ARRAY: u32 = 1024;
+pub const STATMOUNT_OPT_SEC_ARRAY: u32 = 2048;
+pub const LSMT_ROOT: i32 = -1;
+pub const LISTMOUNT_REVERSE: u32 = 1;
+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 PROCFS_IOCTL_MAGIC: u8 = 102u8;
+pub const PAGE_IS_WPALLOWED: u32 = 1;
+pub const PAGE_IS_WRITTEN: u32 = 2;
+pub const PAGE_IS_FILE: u32 = 4;
+pub const PAGE_IS_PRESENT: u32 = 8;
+pub const PAGE_IS_SWAPPED: u32 = 16;
+pub const PAGE_IS_PFNZERO: u32 = 32;
+pub const PAGE_IS_HUGE: u32 = 64;
+pub const PAGE_IS_SOFT_DIRTY: u32 = 128;
+pub const PM_SCAN_WP_MATCHING: u32 = 1;
+pub const PM_SCAN_CHECK_WPASYNC: u32 = 2;
+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_SETUP_NO_MMAP: u32 = 16384;
+pub const IORING_SETUP_REGISTERED_FD_ONLY: u32 = 32768;
+pub const IORING_SETUP_NO_SQARRAY: u32 = 65536;
+pub const IORING_SETUP_HYBRID_IOPOLL: u32 = 131072;
+pub const IORING_URING_CMD_FIXED: u32 = 1;
+pub const IORING_URING_CMD_MASK: 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_MULTISHOT: u32 = 64;
+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_ASYNC_CANCEL_USERDATA: u32 = 16;
+pub const IORING_ASYNC_CANCEL_OP: u32 = 32;
+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_RECVSEND_BUNDLE: u32 = 16;
+pub const IORING_NOTIF_USAGE_ZC_COPIED: u32 = 2147483648;
+pub const IORING_ACCEPT_MULTISHOT: u32 = 1;
+pub const IORING_ACCEPT_DONTWAIT: u32 = 2;
+pub const IORING_ACCEPT_POLL_FIRST: u32 = 4;
+pub const IORING_MSG_RING_CQE_SKIP: u32 = 1;
+pub const IORING_MSG_RING_FLAGS_PASS: u32 = 2;
+pub const IORING_FIXED_FD_NO_CLOEXEC: u32 = 1;
+pub const IORING_NOP_INJECT_RESULT: u32 = 1;
+pub const IORING_NOP_FILE: u32 = 2;
+pub const IORING_NOP_FIXED_FILE: u32 = 4;
+pub const IORING_NOP_FIXED_BUFFER: u32 = 8;
+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_CQE_F_BUF_MORE: u32 = 16;
+pub const IORING_CQE_BUFFER_SHIFT: u32 = 16;
+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_OFF_PBUF_RING: u32 = 2147483648;
+pub const IORING_OFF_PBUF_SHIFT: u32 = 16;
+pub const IORING_OFF_MMAP_MASK: u32 = 4160749568;
+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_ENTER_ABS_TIMER: u32 = 32;
+pub const IORING_ENTER_EXT_ARG_REG: u32 = 64;
+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_FEAT_RECVSEND_BUNDLE: u32 = 16384;
+pub const IORING_FEAT_MIN_TIMEOUT: u32 = 32768;
+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_MEM_REGION_TYPE_USER: _bindgen_ty_1 = _bindgen_ty_1::IORING_MEM_REGION_TYPE_USER;
+pub const IORING_MEM_REGION_REG_WAIT_ARG: _bindgen_ty_2 = _bindgen_ty_2::IORING_MEM_REGION_REG_WAIT_ARG;
+pub const IORING_REGISTER_SRC_REGISTERED: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_SRC_REGISTERED;
+pub const IORING_REGISTER_DST_REPLACE: _bindgen_ty_3 = _bindgen_ty_3::IORING_REGISTER_DST_REPLACE;
+pub const IORING_REG_WAIT_TS: _bindgen_ty_4 = _bindgen_ty_4::IORING_REG_WAIT_TS;
+#[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,
+FSCONFIG_CMD_CREATE_EXCL = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum procmap_query_flags {
+PROCMAP_QUERY_VMA_READABLE = 1,
+PROCMAP_QUERY_VMA_WRITABLE = 2,
+PROCMAP_QUERY_VMA_EXECUTABLE = 4,
+PROCMAP_QUERY_VMA_SHARED = 8,
+PROCMAP_QUERY_COVERING_OR_NEXT_VMA = 16,
+PROCMAP_QUERY_FILE_BACKED_VMA = 32,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_sqe_flags_bit {
+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_READ_MULTISHOT = 49,
+IORING_OP_WAITID = 50,
+IORING_OP_FUTEX_WAIT = 51,
+IORING_OP_FUTEX_WAKE = 52,
+IORING_OP_FUTEX_WAITV = 53,
+IORING_OP_FIXED_FD_INSTALL = 54,
+IORING_OP_FTRUNCATE = 55,
+IORING_OP_BIND = 56,
+IORING_OP_LISTEN = 57,
+IORING_OP_LAST = 58,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_msg_ring_flags {
+IORING_MSG_DATA = 0,
+IORING_MSG_SEND_FD = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_op {
+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_PBUF_STATUS = 26,
+IORING_REGISTER_NAPI = 27,
+IORING_UNREGISTER_NAPI = 28,
+IORING_REGISTER_CLOCK = 29,
+IORING_REGISTER_CLONE_BUFFERS = 30,
+IORING_REGISTER_SEND_MSG_RING = 31,
+IORING_REGISTER_RESIZE_RINGS = 33,
+IORING_REGISTER_MEM_REGION = 34,
+IORING_REGISTER_LAST = 35,
+IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_wq_type {
+IO_WQ_BOUND = 0,
+IO_WQ_UNBOUND = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+IORING_MEM_REGION_TYPE_USER = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_2 {
+IORING_MEM_REGION_REG_WAIT_ARG = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_3 {
+IORING_REGISTER_SRC_REGISTERED = 1,
+IORING_REGISTER_DST_REPLACE = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_pbuf_ring_flags {
+IOU_PBUF_RING_MMAP = 1,
+IOU_PBUF_RING_INC = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_op {
+IO_URING_NAPI_REGISTER_OP = 0,
+IO_URING_NAPI_STATIC_ADD_ID = 1,
+IO_URING_NAPI_STATIC_DEL_ID = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_napi_tracking_strategy {
+IO_URING_NAPI_TRACKING_DYNAMIC = 0,
+IO_URING_NAPI_TRACKING_STATIC = 1,
+IO_URING_NAPI_TRACKING_INACTIVE = 255,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_register_restriction_op {
+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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_4 {
+IORING_REG_WAIT_TS = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum io_uring_socket_op {
+SOCKET_URING_OP_SIOCINQ = 0,
+SOCKET_URING_OP_SIOCOUTQ = 1,
+SOCKET_URING_OP_GETSOCKOPT = 2,
+SOCKET_URING_OP_SETSOCKOPT = 3,
+}
+#[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,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_2__bindgen_ty_1,
+}
+#[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,
+pub waitid_flags: __u32,
+pub futex_flags: __u32,
+pub install_fd_flags: __u32,
+pub nop_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 optlen: __u32,
+pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_5__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_restriction__bindgen_ty_1 {
+pub register_op: __u8,
+pub sqe_op: __u8,
+pub sqe_flags: __u8,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86_64/ioctl.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/ioctl.rs
new file mode 100644
index 0000000..63131c9
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/ioctl.rs
@@ -0,0 +1,1502 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub const FIONREAD: u32 = 21531;
+pub const FIONBIO: u32 = 21537;
+pub const FIOCLEX: u32 = 21585;
+pub const FIONCLEX: u32 = 21584;
+pub const FIOASYNC: u32 = 21586;
+pub const FIOQSIZE: u32 = 21600;
+pub const TCXONC: u32 = 21514;
+pub const TCFLSH: u32 = 21515;
+pub const TIOCSCTTY: u32 = 21518;
+pub const TIOCSPGRP: u32 = 21520;
+pub const TIOCOUTQ: u32 = 21521;
+pub const TIOCSTI: u32 = 21522;
+pub const TIOCSWINSZ: u32 = 21524;
+pub const TIOCMGET: u32 = 21525;
+pub const TIOCMBIS: u32 = 21526;
+pub const TIOCMBIC: u32 = 21527;
+pub const TIOCMSET: u32 = 21528;
+pub const TIOCSSOFTCAR: u32 = 21530;
+pub const TIOCLINUX: u32 = 21532;
+pub const TIOCCONS: u32 = 21533;
+pub const TIOCSSERIAL: u32 = 21535;
+pub const TIOCPKT: u32 = 21536;
+pub const TIOCNOTTY: u32 = 21538;
+pub const TIOCSETD: u32 = 21539;
+pub const TIOCSBRK: u32 = 21543;
+pub const TIOCCBRK: u32 = 21544;
+pub const TIOCSRS485: u32 = 21551;
+pub const TIOCSPTLCK: u32 = 1074025521;
+pub const TIOCSIG: u32 = 1074025526;
+pub const TIOCVHANGUP: u32 = 21559;
+pub const TIOCSERCONFIG: u32 = 21587;
+pub const TIOCSERGWILD: u32 = 21588;
+pub const TIOCSERSWILD: u32 = 21589;
+pub const TIOCSLCKTRMIOS: u32 = 21591;
+pub const TIOCSERGSTRUCT: u32 = 21592;
+pub const TIOCSERGETLSR: u32 = 21593;
+pub const TIOCSERGETMULTI: u32 = 21594;
+pub const TIOCSERSETMULTI: u32 = 21595;
+pub const TIOCMIWAIT: u32 = 21596;
+pub const TCGETS: u32 = 21505;
+pub const TCGETA: u32 = 21509;
+pub const TCSBRK: u32 = 21513;
+pub const TCSBRKP: u32 = 21541;
+pub const TCSETA: u32 = 21510;
+pub const TCSETAF: u32 = 21512;
+pub const TCSETAW: u32 = 21511;
+pub const TIOCEXCL: u32 = 21516;
+pub const TIOCNXCL: u32 = 21517;
+pub const TIOCGDEV: u32 = 2147767346;
+pub const TIOCGEXCL: u32 = 2147767360;
+pub const TIOCGICOUNT: u32 = 21597;
+pub const TIOCGLCKTRMIOS: u32 = 21590;
+pub const TIOCGPGRP: u32 = 21519;
+pub const TIOCGPKT: u32 = 2147767352;
+pub const TIOCGPTLCK: u32 = 2147767353;
+pub const TIOCGPTN: u32 = 2147767344;
+pub const TIOCGPTPEER: u32 = 21569;
+pub const TIOCGRS485: u32 = 21550;
+pub const TIOCGSERIAL: u32 = 21534;
+pub const TIOCGSID: u32 = 21545;
+pub const TIOCGSOFTCAR: u32 = 21529;
+pub const TIOCGWINSZ: u32 = 21523;
+pub const TCGETS2: u32 = 2150388778;
+pub const TCGETX: u32 = 21554;
+pub const TCSETS: u32 = 21506;
+pub const TCSETS2: u32 = 1076646955;
+pub const TCSETSF: u32 = 21508;
+pub const TCSETSF2: u32 = 1076646957;
+pub const TCSETSW: u32 = 21507;
+pub const TCSETSW2: u32 = 1076646956;
+pub const TCSETX: u32 = 21555;
+pub const TCSETXF: u32 = 21556;
+pub const TCSETXW: u32 = 21557;
+pub const TIOCGETD: u32 = 21540;
+pub const MTIOCGET: u32 = 2150657282;
+pub const BLKSSZGET: u32 = 4712;
+pub const BLKPBSZGET: u32 = 4731;
+pub const BLKROSET: u32 = 4701;
+pub const BLKROGET: u32 = 4702;
+pub const BLKRRPART: u32 = 4703;
+pub const BLKGETSIZE: u32 = 4704;
+pub const BLKFLSBUF: u32 = 4705;
+pub const BLKRASET: u32 = 4706;
+pub const BLKRAGET: u32 = 4707;
+pub const BLKFRASET: u32 = 4708;
+pub const BLKFRAGET: u32 = 4709;
+pub const BLKSECTSET: u32 = 4710;
+pub const BLKSECTGET: u32 = 4711;
+pub const BLKPG: u32 = 4713;
+pub const BLKBSZGET: u32 = 2148012656;
+pub const BLKBSZSET: u32 = 1074270833;
+pub const BLKGETSIZE64: u32 = 2148012658;
+pub const BLKTRACESETUP: u32 = 3225948787;
+pub const BLKTRACESTART: u32 = 4724;
+pub const BLKTRACESTOP: u32 = 4725;
+pub const BLKTRACETEARDOWN: u32 = 4726;
+pub const BLKDISCARD: u32 = 4727;
+pub const BLKIOMIN: u32 = 4728;
+pub const BLKIOOPT: u32 = 4729;
+pub const BLKALIGNOFF: u32 = 4730;
+pub const BLKDISCARDZEROES: u32 = 4732;
+pub const BLKSECDISCARD: u32 = 4733;
+pub const BLKROTATIONAL: u32 = 4734;
+pub const BLKZEROOUT: u32 = 4735;
+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 = 2148575745;
+pub const UFFDIO_WAKE: u32 = 2148575746;
+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 = 46849;
+pub const NS_GET_PARENT: u32 = 46850;
+pub const NS_GET_NSTYPE: u32 = 46851;
+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 = 35073;
+pub const SIOCSPGRP: u32 = 35074;
+pub const FIOGETOWN: u32 = 35075;
+pub const SIOCGPGRP: u32 = 35076;
+pub const SIOCATMARK: u32 = 35077;
+pub const SIOCGSTAMP: u32 = 35078;
+pub const TIOCINQ: u32 = 21531;
+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 = 1;
+pub const FIGETBSZ: u32 = 2;
+pub const FIFREEZE: u32 = 3221510263;
+pub const FITHAW: u32 = 3221510264;
+pub const FITRIM: u32 = 3222820985;
+pub const FICLONE: u32 = 1074041865;
+pub const FICLONERANGE: u32 = 1075876877;
+pub const FIDEDUPERANGE: u32 = 3222836278;
+pub const FS_IOC_GETFLAGS: u32 = 2148034049;
+pub const FS_IOC_SETFLAGS: u32 = 1074292226;
+pub const FS_IOC_GETVERSION: u32 = 2148038145;
+pub const FS_IOC_SETVERSION: u32 = 1074296322;
+pub const FS_IOC_FIEMAP: u32 = 3223348747;
+pub const FS_IOC32_GETFLAGS: u32 = 2147771905;
+pub const FS_IOC32_SETFLAGS: u32 = 1074030082;
+pub const FS_IOC32_GETVERSION: u32 = 2147776001;
+pub const FS_IOC32_SETVERSION: u32 = 1074034178;
+pub const FS_IOC_FSGETXATTR: u32 = 2149341215;
+pub const FS_IOC_FSSETXATTR: u32 = 1075599392;
+pub const FS_IOC_GETFSLABEL: u32 = 2164298801;
+pub const FS_IOC_SETFSLABEL: u32 = 1090556978;
+pub const EXT4_IOC_GETVERSION: u32 = 2148034051;
+pub const EXT4_IOC_SETVERSION: u32 = 1074292228;
+pub const EXT4_IOC_GETVERSION_OLD: u32 = 2148038145;
+pub const EXT4_IOC_SETVERSION_OLD: u32 = 1074296322;
+pub const EXT4_IOC_GETRSVSZ: u32 = 2148034053;
+pub const EXT4_IOC_SETRSVSZ: u32 = 1074292230;
+pub const EXT4_IOC_GROUP_EXTEND: u32 = 1074292231;
+pub const EXT4_IOC_MIGRATE: u32 = 26121;
+pub const EXT4_IOC_ALLOC_DA_BLKS: u32 = 26124;
+pub const EXT4_IOC_RESIZE_FS: u32 = 1074292240;
+pub const EXT4_IOC_SWAP_BOOT: u32 = 26129;
+pub const EXT4_IOC_PRECACHE_EXTENTS: u32 = 26130;
+pub const EXT4_IOC_CLEAR_ES_CACHE: u32 = 26152;
+pub const EXT4_IOC_GETSTATE: u32 = 1074030121;
+pub const EXT4_IOC_GET_ES_CACHE: u32 = 3223348778;
+pub const EXT4_IOC_CHECKPOINT: u32 = 1074030123;
+pub const EXT4_IOC_SHUTDOWN: u32 = 2147768445;
+pub const EXT4_IOC32_GETVERSION: u32 = 2147771907;
+pub const EXT4_IOC32_SETVERSION: u32 = 1074030084;
+pub const EXT4_IOC32_GETRSVSZ: u32 = 2147771909;
+pub const EXT4_IOC32_SETRSVSZ: u32 = 1074030086;
+pub const EXT4_IOC32_GROUP_EXTEND: u32 = 1074030087;
+pub const EXT4_IOC32_GETVERSION_OLD: u32 = 2147776001;
+pub const EXT4_IOC32_SETVERSION_OLD: u32 = 1074034178;
+pub const VIDIOC_SUBDEV_QUERYSTD: u32 = 2148030015;
+pub const AUTOFS_DEV_IOCTL_CLOSEMOUNT: u32 = 3222836085;
+pub const LIRC_SET_SEND_CARRIER: u32 = 1074030867;
+pub const AUTOFS_IOC_PROTOSUBVER: u32 = 2147783527;
+pub const PTP_SYS_OFFSET_PRECISE: u32 = 3225435400;
+pub const FSI_SCOM_WRITE: u32 = 3223352066;
+pub const ATM_GETCIRANGE: u32 = 1074815370;
+pub const DMA_BUF_SET_NAME_B: u32 = 1074291201;
+pub const RIO_CM_EP_GET_LIST_SIZE: u32 = 3221512961;
+pub const TUNSETPERSIST: u32 = 1074025675;
+pub const FS_IOC_GET_ENCRYPTION_POLICY: u32 = 1074554389;
+pub const CEC_RECEIVE: u32 = 3224920326;
+pub const MGSL_IOCGPARAMS: u32 = 2150657281;
+pub const ENI_SETMULT: u32 = 1074815335;
+pub const RIO_GET_EVENT_MASK: u32 = 2147773710;
+pub const LIRC_GET_MAX_TIMEOUT: u32 = 2147772681;
+pub const USBDEVFS_CLAIMINTERFACE: u32 = 2147767567;
+pub const CHIOMOVE: u32 = 1075077889;
+pub const SONYPI_IOCGBATFLAGS: u32 = 2147579399;
+pub const BTRFS_IOC_SYNC: u32 = 37896;
+pub const VIDIOC_TRY_FMT: u32 = 3234879040;
+pub const LIRC_SET_REC_MODE: u32 = 1074030866;
+pub const VIDIOC_DQEVENT: u32 = 2156418649;
+pub const RPMSG_DESTROY_EPT_IOCTL: u32 = 46338;
+pub const UVCIOC_CTRL_MAP: u32 = 3227546912;
+pub const VHOST_SET_BACKEND_FEATURES: u32 = 1074310949;
+pub const VHOST_VSOCK_SET_GUEST_CID: u32 = 1074311008;
+pub const UI_SET_KEYBIT: u32 = 1074025829;
+pub const LIRC_SET_REC_TIMEOUT: u32 = 1074030872;
+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 = 1074310930;
+pub const RIO_ENABLE_DOORBELL_RANGE: u32 = 1074294025;
+pub const VIDIOC_TRY_EXT_CTRLS: u32 = 3223344713;
+pub const LIRC_GET_REC_MODE: u32 = 2147772674;
+pub const PPGETTIME: u32 = 2148561045;
+pub const BTRFS_IOC_RM_DEV: u32 = 1342215179;
+pub const ATM_SETBACKEND: u32 = 1073897970;
+pub const FSL_HV_IOCTL_PARTITION_START: u32 = 3222318851;
+pub const FBIO_WAITEVENT: u32 = 18056;
+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 = 601;
+pub const NVME_IOCTL_SUBMIT_IO: u32 = 1076907586;
+pub const NILFS_IOCTL_SYNC: u32 = 2148036234;
+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 = 2147787781;
+pub const NS_GETPSTAT: u32 = 3222298977;
+pub const UI_SET_PROPBIT: u32 = 1074025838;
+pub const TUNSETFILTEREBPF: u32 = 2147767521;
+pub const RIO_MPORT_MAINT_COMPTAG_SET: u32 = 1074031874;
+pub const AUTOFS_DEV_IOCTL_VERSION: u32 = 3222836081;
+pub const WDIOC_SETOPTIONS: u32 = 2147768068;
+pub const VHOST_SCSI_SET_ENDPOINT: u32 = 1088991040;
+pub const MGSL_IOCGTXIDLE: u32 = 27907;
+pub const ATM_ADDLECSADDR: u32 = 1074815374;
+pub const FSL_HV_IOCTL_GETPROP: u32 = 3223891719;
+pub const FDGETPRM: u32 = 2149581316;
+pub const HIDIOCAPPLICATION: u32 = 18434;
+pub const ENI_MEMDUMP: u32 = 1074815328;
+pub const PTP_SYS_OFFSET2: u32 = 1128283406;
+pub const VIDIOC_SUBDEV_G_DV_TIMINGS: u32 = 3229898328;
+pub const DMA_BUF_SET_NAME_A: u32 = 1074029057;
+pub const PTP_PIN_GETFUNC: u32 = 3227532550;
+pub const PTP_SYS_OFFSET_EXTENDED: u32 = 3300932873;
+pub const DFL_FPGA_PORT_UINT_SET_IRQ: u32 = 1074312776;
+pub const RTC_EPOCH_READ: u32 = 2148036621;
+pub const VIDIOC_SUBDEV_S_SELECTION: u32 = 3225441854;
+pub const VIDIOC_QUERY_EXT_CTRL: u32 = 3236451943;
+pub const ATM_GETLECSADDR: u32 = 1074815376;
+pub const FSL_HV_IOCTL_PARTITION_STOP: u32 = 3221794564;
+pub const SONET_GETDIAG: u32 = 2147770644;
+pub const ATMMPC_DATA: u32 = 25049;
+pub const IPMICTL_UNREGISTER_FOR_CMD_CHANS: u32 = 2148296989;
+pub const HIDIOCGCOLLECTIONINDEX: u32 = 1075333136;
+pub const RPMSG_CREATE_EPT_IOCTL: u32 = 1076409601;
+pub const GPIOHANDLE_GET_LINE_VALUES_IOCTL: u32 = 3225465864;
+pub const UI_DEV_SETUP: u32 = 1079792899;
+pub const ISST_IF_IO_CMD: u32 = 1074331138;
+pub const RIO_MPORT_MAINT_READ_REMOTE: u32 = 2149084423;
+pub const VIDIOC_OMAP3ISP_HIST_CFG: u32 = 3224393412;
+pub const BLKGETNRZONES: u32 = 2147750533;
+pub const VIDIOC_G_MODULATOR: u32 = 3225703990;
+pub const VBG_IOCTL_WRITE_CORE_DUMP: u32 = 3223082515;
+pub const USBDEVFS_SETINTERFACE: u32 = 2148029700;
+pub const PPPIOCGCHAN: u32 = 2147775543;
+pub const EVIOCGVERSION: u32 = 2147763457;
+pub const VHOST_NET_SET_BACKEND: u32 = 1074310960;
+pub const USBDEVFS_REAPURBNDELAY: u32 = 1074287885;
+pub const RNDZAPENTCNT: u32 = 20996;
+pub const VIDIOC_G_PARM: u32 = 3234616853;
+pub const TUNGETDEVNETNS: u32 = 21731;
+pub const LIRC_SET_MEASURE_CARRIER_MODE: u32 = 1074030877;
+pub const VHOST_SET_VRING_ERR: u32 = 1074310946;
+pub const VDUSE_VQ_SETUP: u32 = 1075872020;
+pub const AUTOFS_IOC_SETTIMEOUT: u32 = 3221787492;
+pub const VIDIOC_S_FREQUENCY: u32 = 1076647481;
+pub const F2FS_IOC_SEC_TRIM_FILE: u32 = 1075377428;
+pub const FS_IOC_REMOVE_ENCRYPTION_KEY: u32 = 3225445912;
+pub const WDIOC_GETPRETIMEOUT: u32 = 2147768073;
+pub const USBDEVFS_DROP_PRIVILEGES: u32 = 1074025758;
+pub const BTRFS_IOC_SNAP_CREATE_V2: u32 = 1342215191;
+pub const VHOST_VSOCK_SET_RUNNING: u32 = 1074048865;
+pub const STP_SET_OPTIONS: u32 = 1074275586;
+pub const FBIO_RADEON_GET_MIRROR: u32 = 2148024323;
+pub const IVTVFB_IOC_DMA_FRAME: u32 = 1075336896;
+pub const IPMICTL_SEND_COMMAND: u32 = 2150131981;
+pub const VIDIOC_G_ENC_INDEX: u32 = 2283296332;
+pub const DFL_FPGA_FME_PORT_PR: u32 = 46720;
+pub const CHIOSVOLTAG: u32 = 1076912914;
+pub const ATM_SETESIF: u32 = 1074815373;
+pub const FW_CDEV_IOC_SEND_RESPONSE: u32 = 1075323652;
+pub const PMU_IOC_GET_MODEL: u32 = 2148024835;
+pub const JSIOCGBTNMAP: u32 = 2214619700;
+pub const USBDEVFS_HUB_PORTINFO: u32 = 2155894035;
+pub const VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS: u32 = 3222820363;
+pub const FDCLRPRM: u32 = 577;
+pub const BTRFS_IOC_SCRUB: u32 = 3288372251;
+pub const USBDEVFS_DISCONNECT: u32 = 21782;
+pub const TUNSETVNETBE: u32 = 1074025694;
+pub const ATMTCP_REMOVE: u32 = 24975;
+pub const VHOST_VDPA_GET_CONFIG: u32 = 2148052851;
+pub const PPPIOCGNPMODE: u32 = 3221779532;
+pub const FDGETDRVPRM: u32 = 2155872785;
+pub const TUNSETVNETLE: u32 = 1074025692;
+pub const PHN_SETREG: u32 = 1074294790;
+pub const PPPIOCDETACH: u32 = 1074033724;
+pub const MMTIMER_GETRES: u32 = 2148035841;
+pub const VIDIOC_SUBDEV_ENUMSTD: u32 = 3225966105;
+pub const PPGETFLAGS: u32 = 2147774618;
+pub const VDUSE_DEV_GET_FEATURES: u32 = 2148040977;
+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 = 2148052512;
+pub const MEDIA_IOC_ENUM_LINKS: u32 = 3223878658;
+pub const F2FS_IOC_PRECACHE_EXTENTS: u32 = 62735;
+pub const DFL_FPGA_PORT_DMA_MAP: u32 = 46659;
+pub const MGSL_IOCGXCTRL: u32 = 27926;
+pub const FW_CDEV_IOC_SEND_REQUEST: u32 = 1076372225;
+pub const SONYPI_IOCGBLUE: u32 = 2147579400;
+pub const F2FS_IOC_DECOMPRESS_FILE: u32 = 62743;
+pub const I2OHTML: u32 = 3224398089;
+pub const VFIO_GET_API_VERSION: u32 = 15204;
+pub const IDT77105_GETSTATZ: u32 = 1074815283;
+pub const I2OPARMSET: u32 = 3223873795;
+pub const TEE_IOC_CANCEL: u32 = 2148049924;
+pub const PTP_SYS_OFFSET_PRECISE2: u32 = 3225435409;
+pub const DFL_FPGA_PORT_RESET: u32 = 46656;
+pub const PPPIOCGASYNCMAP: u32 = 2147775576;
+pub const EVIOCGKEYCODE_V2: u32 = 2150122756;
+pub const DM_DEV_SET_GEOMETRY: u32 = 3241737487;
+pub const HIDIOCSUSAGE: u32 = 1075333132;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323664;
+pub const PTP_EXTTS_REQUEST: u32 = 1074806018;
+pub const SWITCHTEC_IOCTL_EVENT_CTL: u32 = 3223869251;
+pub const WDIOC_SETPRETIMEOUT: u32 = 3221509896;
+pub const VHOST_SCSI_CLEAR_ENDPOINT: u32 = 1088991041;
+pub const JSIOCGAXES: u32 = 2147576337;
+pub const HIDIOCSFLAG: u32 = 1074022415;
+pub const PTP_PEROUT_REQUEST2: u32 = 1077427468;
+pub const PPWDATA: u32 = 1073836166;
+pub const PTP_CLOCK_GETCAPS: u32 = 2152742145;
+pub const FDGETMAXERRS: u32 = 2148794894;
+pub const TUNSETQUEUE: u32 = 1074025689;
+pub const PTP_ENABLE_PPS: u32 = 1074019588;
+pub const SIOCSIFATMTCP: u32 = 24960;
+pub const CEC_ADAP_G_LOG_ADDRS: u32 = 2153537795;
+pub const ND_IOCTL_ARS_CAP: u32 = 3223342593;
+pub const NBD_SET_BLKSIZE: u32 = 43777;
+pub const NBD_SET_TIMEOUT: u32 = 43785;
+pub const VHOST_SCSI_GET_ABI_VERSION: u32 = 1074048834;
+pub const RIO_UNMAP_INBOUND: u32 = 1074294034;
+pub const ATM_QUERYLOOP: u32 = 1074815316;
+pub const DFL_FPGA_GET_API_VERSION: u32 = 46592;
+pub const USBDEVFS_WAIT_FOR_RESUME: u32 = 21795;
+pub const FBIO_CURSOR: u32 = 3228059144;
+pub const RNDCLEARPOOL: u32 = 20998;
+pub const VIDIOC_QUERYSTD: u32 = 2148030015;
+pub const DMA_BUF_IOCTL_SYNC: u32 = 1074291200;
+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 = 2150651402;
+pub const PTP_ENABLE_PPS2: u32 = 1074019597;
+pub const PCITEST_CLEAR_IRQ: u32 = 20496;
+pub const IPMICTL_SET_GETS_EVENTS_CMD: u32 = 2147772688;
+pub const BTRFS_IOC_DEVICES_READY: u32 = 2415957031;
+pub const JSIOCGAXMAP: u32 = 2151705138;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER: u32 = 2148541196;
+pub const FW_CDEV_IOC_SET_ISO_CHANNELS: u32 = 1074799383;
+pub const RTC_WIE_OFF: u32 = 28688;
+pub const PPGETMODE: u32 = 2147774616;
+pub const VIDIOC_DBG_G_REGISTER: u32 = 3224917584;
+pub const PTP_SYS_OFFSET: u32 = 1128283397;
+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 = 37894;
+pub const INOTIFY_IOC_SETNEXTWD: u32 = 1074022656;
+pub const SNAPSHOT_GET_IMAGE_SIZE: u32 = 2148021006;
+pub const TUNDETACHFILTER: u32 = 1074812118;
+pub const ND_IOCTL_CLEAR_ERROR: u32 = 3223342596;
+pub const IOC_PR_CLEAR: u32 = 1074819277;
+pub const SCIF_READFROM: u32 = 3223876362;
+pub const PPPIOCGDEBUG: u32 = 2147775553;
+pub const BLKGETZONESZ: u32 = 2147750532;
+pub const HIDIOCGUSAGES: u32 = 3491514387;
+pub const SONYPI_IOCGTEMP: u32 = 2147579404;
+pub const UI_SET_MSCBIT: u32 = 1074025832;
+pub const APM_IOC_SUSPEND: u32 = 16642;
+pub const BTRFS_IOC_TREE_SEARCH: u32 = 3489698833;
+pub const RTC_PLL_GET: u32 = 2149609489;
+pub const RIO_CM_EP_GET_LIST: u32 = 3221512962;
+pub const USBDEVFS_DISCSIGNAL: u32 = 2148553998;
+pub const LIRC_GET_MIN_TIMEOUT: u32 = 2147772680;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY: u32 = 2174244674;
+pub const DM_TARGET_MSG: u32 = 3241737486;
+pub const SONYPI_IOCGBAT1REM: u32 = 2147644931;
+pub const EVIOCSFF: u32 = 1076905344;
+pub const TUNSETGROUP: u32 = 1074025678;
+pub const EVIOCGKEYCODE: u32 = 2148025604;
+pub const KCOV_REMOTE_ENABLE: u32 = 1075340134;
+pub const ND_IOCTL_GET_CONFIG_SIZE: u32 = 3222031876;
+pub const FDEJECT: u32 = 602;
+pub const TUNSETOFFLOAD: u32 = 1074025680;
+pub const PPPIOCCONNECT: u32 = 1074033722;
+pub const ATM_ADDADDR: u32 = 1074815368;
+pub const VDUSE_DEV_INJECT_CONFIG_IRQ: u32 = 33043;
+pub const AUTOFS_DEV_IOCTL_ASKUMOUNT: u32 = 3222836093;
+pub const VHOST_VDPA_GET_STATUS: u32 = 2147594097;
+pub const CCISS_PASSTHRU: u32 = 3227009547;
+pub const MGSL_IOCCLRMODCOUNT: u32 = 27919;
+pub const TEE_IOC_SUPPL_SEND: u32 = 2148574215;
+pub const ATMARPD_CTRL: u32 = 25057;
+pub const UI_ABS_SETUP: u32 = 1075598596;
+pub const UI_DEV_DESTROY: u32 = 21762;
+pub const BTRFS_IOC_QUOTA_CTL: u32 = 3222311976;
+pub const RTC_AIE_ON: u32 = 28673;
+pub const AUTOFS_IOC_EXPIRE: u32 = 2165085029;
+pub const PPPIOCSDEBUG: u32 = 1074033728;
+pub const GPIO_V2_LINE_SET_VALUES_IOCTL: u32 = 3222320143;
+pub const PPPIOCSMRU: u32 = 1074033746;
+pub const CCISS_DEREGDISK: u32 = 16908;
+pub const UI_DEV_CREATE: u32 = 21761;
+pub const FUSE_DEV_IOC_CLONE: u32 = 2147804416;
+pub const BTRFS_IOC_START_SYNC: u32 = 2148045848;
+pub const NILFS_IOCTL_DELETE_CHECKPOINT: u32 = 1074294401;
+pub const SNAPSHOT_AVAIL_SWAP_SIZE: u32 = 2148021011;
+pub const DM_TABLE_CLEAR: u32 = 3241737482;
+pub const CCISS_GETINTINFO: u32 = 2148024834;
+pub const PPPIOCSASYNCMAP: u32 = 1074033751;
+pub const I2OEVTGET: u32 = 2154326283;
+pub const NVME_IOCTL_RESET: u32 = 20036;
+pub const PPYIELD: u32 = 28813;
+pub const NVME_IOCTL_IO64_CMD: u32 = 3226488392;
+pub const TUNSETCARRIER: u32 = 1074025698;
+pub const DM_DEV_WAIT: u32 = 3241737480;
+pub const RTC_WIE_ON: u32 = 28687;
+pub const MEDIA_IOC_DEVICE_INFO: u32 = 3238034432;
+pub const RIO_CM_CHAN_CREATE: u32 = 3221381891;
+pub const MGSL_IOCSPARAMS: u32 = 1076915456;
+pub const RTC_SET_TIME: u32 = 1076129802;
+pub const VHOST_RESET_OWNER: u32 = 44802;
+pub const IOC_OPAL_PSID_REVERT_TPR: u32 = 1091072232;
+pub const AUTOFS_DEV_IOCTL_OPENMOUNT: u32 = 3222836084;
+pub const UDF_GETEABLOCK: u32 = 2148035649;
+pub const VFIO_IOMMU_MAP_DMA: u32 = 15217;
+pub const VIDIOC_SUBSCRIBE_EVENT: u32 = 1075861082;
+pub const HIDIOCGFLAG: u32 = 2147764238;
+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 = 1074835969;
+pub const CCISS_GETFIRMVER: u32 = 2147762696;
+pub const ND_IOCTL_ARS_START: u32 = 3223342594;
+pub const PPPIOCSMRRU: u32 = 1074033723;
+pub const CEC_ADAP_S_LOG_ADDRS: u32 = 3227279620;
+pub const RPROC_GET_SHUTDOWN_ON_RELEASE: u32 = 2147792642;
+pub const DMA_HEAP_IOCTL_ALLOC: u32 = 3222816768;
+pub const PPSETTIME: u32 = 1074819222;
+pub const RTC_ALM_READ: u32 = 2149871624;
+pub const VDUSE_SET_API_VERSION: u32 = 1074299137;
+pub const RIO_MPORT_MAINT_WRITE_REMOTE: u32 = 1075342600;
+pub const VIDIOC_SUBDEV_S_CROP: u32 = 3224917564;
+pub const USBDEVFS_CONNECT: u32 = 21783;
+pub const SYNC_IOC_FILE_INFO: u32 = 3224911364;
+pub const ATMARP_MKIP: u32 = 25058;
+pub const VFIO_IOMMU_SPAPR_TCE_GET_INFO: u32 = 15216;
+pub const CCISS_GETHEARTBEAT: u32 = 2147762694;
+pub const ATM_RSTADDR: u32 = 1074815367;
+pub const NBD_SET_SIZE: u32 = 43778;
+pub const UDF_GETVOLIDENT: u32 = 2148035650;
+pub const GPIO_V2_LINE_GET_VALUES_IOCTL: u32 = 3222320142;
+pub const MGSL_IOCSTXIDLE: u32 = 27906;
+pub const FSL_HV_IOCTL_SETPROP: u32 = 3223891720;
+pub const BTRFS_IOC_GET_DEV_STATS: u32 = 3288896564;
+pub const PPRSTATUS: u32 = 2147577985;
+pub const MGSL_IOCTXENABLE: u32 = 27908;
+pub const UDF_GETEASIZE: u32 = 2147773504;
+pub const NVME_IOCTL_ADMIN64_CMD: u32 = 3226488391;
+pub const VHOST_SET_OWNER: u32 = 44801;
+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 = 1074815371;
+pub const HPET_IE_ON: u32 = 26625;
+pub const PERF_EVENT_IOC_ID: u32 = 2148017159;
+pub const TUNSETSNDBUF: u32 = 1074025684;
+pub const PTP_PIN_SETFUNC: u32 = 1080048903;
+pub const PPPIOCDISCONN: u32 = 29753;
+pub const VIDIOC_QUERYCTRL: u32 = 3225703972;
+pub const PPEXCL: u32 = 28815;
+pub const PCITEST_MSI: u32 = 1074024451;
+pub const FDWERRORCLR: u32 = 598;
+pub const AUTOFS_IOC_FAIL: u32 = 37729;
+pub const USBDEVFS_IOCTL: u32 = 3222295826;
+pub const VIDIOC_S_STD: u32 = 1074288152;
+pub const F2FS_IOC_RESIZE_FS: u32 = 1074328848;
+pub const SONET_SETDIAG: u32 = 3221512466;
+pub const BTRFS_IOC_DEFRAG: u32 = 1342215170;
+pub const CCISS_GETDRIVVER: u32 = 2147762697;
+pub const IPMICTL_GET_TIMING_PARMS_CMD: u32 = 2148034839;
+pub const HPET_IRQFREQ: u32 = 1074292742;
+pub const ATM_GETESI: u32 = 1074815365;
+pub const CCISS_GETLUNINFO: u32 = 2148286993;
+pub const AUTOFS_DEV_IOCTL_ISMOUNTPOINT: u32 = 3222836094;
+pub const TEE_IOC_SHM_ALLOC: u32 = 3222316033;
+pub const PERF_EVENT_IOC_SET_BPF: u32 = 1074013192;
+pub const UDMABUF_CREATE_LIST: u32 = 1074296131;
+pub const VHOST_SET_LOG_BASE: u32 = 1074310916;
+pub const ZATM_GETPOOL: u32 = 1074815329;
+pub const BR2684_SETFILT: u32 = 1075601808;
+pub const RNDGETPOOL: u32 = 2148028930;
+pub const PPS_GETPARAMS: u32 = 2148036769;
+pub const IOC_PR_RESERVE: u32 = 1074819273;
+pub const VIDIOC_TRY_DECODER_CMD: u32 = 3225966177;
+pub const RIO_CM_CHAN_CLOSE: u32 = 1073898244;
+pub const VIDIOC_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const IOCTL_MEI_CONNECT_CLIENT_VTAG: u32 = 3222554628;
+pub const PMU_IOC_GET_BACKLIGHT: u32 = 2148024833;
+pub const USBDEVFS_GET_CAPABILITIES: u32 = 2147767578;
+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 = 16910;
+pub const FAT_IOCTL_SET_ATTRIBUTES: u32 = 1074033169;
+pub const VIDIOC_CREATE_BUFS: u32 = 3238024796;
+pub const CAPI_GET_VERSION: u32 = 3222291207;
+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY: u32 = 2228770626;
+pub const VFIO_EEH_PE_OP: u32 = 15225;
+pub const FW_CDEV_IOC_CREATE_ISO_CONTEXT: u32 = 3223331592;
+pub const F2FS_IOC_RELEASE_COMPRESS_BLOCKS: u32 = 2148070674;
+pub const NBD_SET_SIZE_BLOCKS: u32 = 43783;
+pub const IPMI_BMC_IOCTL_SET_SMS_ATN: u32 = 45312;
+pub const ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG: u32 = 3222319873;
+pub const VIDIOC_S_AUDOUT: u32 = 1077171762;
+pub const VIDIOC_S_FMT: u32 = 3234878981;
+pub const PPPIOCATTACH: u32 = 1074033725;
+pub const VHOST_GET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310948;
+pub const FS_IOC_MEASURE_VERITY: u32 = 3221513862;
+pub const CCISS_BIG_PASSTHRU: u32 = 3227533842;
+pub const IPMICTL_SET_MY_LUN_CMD: u32 = 2147772691;
+pub const PCITEST_LEGACY_IRQ: u32 = 20482;
+pub const USBDEVFS_SUBMITURB: u32 = 2151175434;
+pub const AUTOFS_IOC_READY: u32 = 37728;
+pub const BTRFS_IOC_SEND: u32 = 1078498342;
+pub const VIDIOC_G_EXT_CTRLS: u32 = 3223344711;
+pub const JSIOCSBTNMAP: u32 = 1140877875;
+pub const PPPIOCSFLAGS: u32 = 1074033753;
+pub const NVRAM_INIT: u32 = 28736;
+pub const RFKILL_IOCTL_NOINPUT: u32 = 20993;
+pub const BTRFS_IOC_BALANCE: u32 = 1342215180;
+pub const FS_IOC_GETFSMAP: u32 = 3233830971;
+pub const IPMICTL_GET_MY_CHANNEL_LUN_CMD: u32 = 2147772699;
+pub const STP_POLICY_ID_GET: u32 = 2148541697;
+pub const PPSETFLAGS: u32 = 1074032795;
+pub const CEC_ADAP_S_PHYS_ADDR: u32 = 1073897730;
+pub const ATMTCP_CREATE: u32 = 24974;
+pub const IPMI_BMC_IOCTL_FORCE_ABORT: u32 = 45314;
+pub const PPPIOCGXASYNCMAP: u32 = 2149610576;
+pub const VHOST_SET_VRING_CALL: u32 = 1074310945;
+pub const LIRC_GET_FEATURES: u32 = 2147772672;
+pub const GSMIOC_DISABLE_NET: u32 = 18179;
+pub const AUTOFS_IOC_CATATONIC: u32 = 37730;
+pub const NBD_DO_IT: u32 = 43779;
+pub const LIRC_SET_REC_CARRIER_RANGE: u32 = 1074030879;
+pub const IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772697;
+pub const EVIOCSCLOCKID: u32 = 1074021792;
+pub const USBDEVFS_FREE_STREAMS: u32 = 2148029725;
+pub const FSI_SCOM_RESET: u32 = 1074033411;
+pub const PMU_IOC_GRAB_BACKLIGHT: u32 = 2148024838;
+pub const VIDIOC_SUBDEV_S_FMT: u32 = 3227014661;
+pub const FDDEFPRM: u32 = 1075839555;
+pub const TEE_IOC_INVOKE: u32 = 2148574211;
+pub const USBDEVFS_BULK: u32 = 3222820098;
+pub const SCIF_VWRITETO: u32 = 3223876365;
+pub const SONYPI_IOCSBRT: u32 = 1073837568;
+pub const BTRFS_IOC_FILE_EXTENT_SAME: u32 = 3222836278;
+pub const RTC_PIE_ON: u32 = 28677;
+pub const BTRFS_IOC_SCAN_DEV: u32 = 1342215172;
+pub const PPPIOCXFERUNIT: u32 = 29774;
+pub const WDIOC_GETTIMEOUT: u32 = 2147768071;
+pub const BTRFS_IOC_SET_RECEIVED_SUBVOL: u32 = 3234370597;
+pub const DFL_FPGA_PORT_ERR_SET_IRQ: u32 = 1074312774;
+pub const FBIO_WAITFORVSYNC: u32 = 1074021920;
+pub const RTC_PIE_OFF: u32 = 28678;
+pub const EVIOCGRAB: u32 = 1074021776;
+pub const PMU_IOC_SET_BACKLIGHT: u32 = 1074283010;
+pub const EVIOCGREP: u32 = 2148025603;
+pub const PERF_EVENT_IOC_MODIFY_ATTRIBUTES: u32 = 1074275339;
+pub const UFFDIO_CONTINUE: u32 = 3223366151;
+pub const VDUSE_GET_API_VERSION: u32 = 2148040960;
+pub const RTC_RD_TIME: u32 = 2149871625;
+pub const FDMSGOFF: u32 = 582;
+pub const IPMICTL_REGISTER_FOR_CMD_CHANS: u32 = 2148296988;
+pub const CAPI_GET_ERRCODE: u32 = 2147631905;
+pub const PCITEST_SET_IRQTYPE: u32 = 1074024456;
+pub const VIDIOC_SUBDEV_S_EDID: u32 = 3223868969;
+pub const MATROXFB_SET_OUTPUT_MODE: u32 = 1074294522;
+pub const RIO_DEV_ADD: u32 = 1075866903;
+pub const VIDIOC_ENUM_FREQ_BANDS: u32 = 3225441893;
+pub const FBIO_RADEON_SET_MIRROR: u32 = 1074282500;
+pub const PCITEST_GET_IRQTYPE: u32 = 20489;
+pub const JSIOCGVERSION: u32 = 2147772929;
+pub const SONYPI_IOCSBLUE: u32 = 1073837577;
+pub const SNAPSHOT_PREF_IMAGE_SIZE: u32 = 13074;
+pub const F2FS_IOC_GET_FEATURES: u32 = 2147808524;
+pub const SCIF_REG: u32 = 3223876360;
+pub const NILFS_IOCTL_CLEAN_SEGMENTS: u32 = 1081634440;
+pub const FW_CDEV_IOC_INITIATE_BUS_RESET: u32 = 1074012933;
+pub const RIO_WAIT_FOR_ASYNC: u32 = 1074294038;
+pub const VHOST_SET_VRING_NUM: u32 = 1074310928;
+pub const AUTOFS_DEV_IOCTL_PROTOVER: u32 = 3222836082;
+pub const RIO_FREE_DMA: u32 = 1074294036;
+pub const MGSL_IOCRXENABLE: u32 = 27909;
+pub const IOCTL_VM_SOCKETS_GET_LOCAL_CID: u32 = 1977;
+pub const IPMICTL_SET_TIMING_PARMS_CMD: u32 = 2148034838;
+pub const PPPIOCGL2TPSTATS: u32 = 2152231990;
+pub const PERF_EVENT_IOC_PERIOD: u32 = 1074275332;
+pub const PTP_PIN_SETFUNC2: u32 = 1080048912;
+pub const CHIOEXCHANGE: u32 = 1075602178;
+pub const NILFS_IOCTL_GET_SUINFO: u32 = 2149084804;
+pub const CEC_DQEVENT: u32 = 3226493191;
+pub const UI_SET_SWBIT: u32 = 1074025837;
+pub const VHOST_VDPA_SET_CONFIG: u32 = 1074311028;
+pub const TUNSETIFF: u32 = 1074025674;
+pub const CHIOPOSITION: u32 = 1074553603;
+pub const IPMICTL_SET_MAINTENANCE_MODE_CMD: u32 = 1074030879;
+pub const BTRFS_IOC_DEFAULT_SUBVOL: u32 = 1074304019;
+pub const RIO_UNMAP_OUTBOUND: u32 = 1076391184;
+pub const CAPI_CLR_FLAGS: u32 = 2147762981;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323663;
+pub const MATROXFB_GET_OUTPUT_CONNECTION: u32 = 2148036344;
+pub const EVIOCSMASK: u32 = 1074808211;
+pub const BTRFS_IOC_FORGET_DEV: u32 = 1342215173;
+pub const CXL_MEM_QUERY_COMMANDS: u32 = 2148060673;
+pub const CEC_S_MODE: u32 = 1074028809;
+pub const MGSL_IOCSIF: u32 = 27914;
+pub const SWITCHTEC_IOCTL_PFF_TO_PORT: u32 = 3222034244;
+pub const PPSETMODE: u32 = 1074032768;
+pub const VFIO_DEVICE_SET_IRQS: u32 = 15214;
+pub const VIDIOC_PREPARE_BUF: u32 = 3227014749;
+pub const CEC_ADAP_G_CONNECTOR_INFO: u32 = 2151964938;
+pub const IOC_OPAL_WRITE_SHADOW_MBR: u32 = 1092645098;
+pub const VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: u32 = 3225441867;
+pub const UDMABUF_CREATE: u32 = 1075344706;
+pub const SONET_CLRDIAG: u32 = 3221512467;
+pub const PHN_SET_REG: u32 = 1074294785;
+pub const RNDADDTOENTCNT: u32 = 1074024961;
+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 = 28674;
+pub const VFIO_GROUP_SET_CONTAINER: u32 = 15208;
+pub const FW_CDEV_IOC_RECEIVE_PHY_PACKETS: u32 = 1074275094;
+pub const VFIO_IOMMU_SPAPR_TCE_REMOVE: u32 = 15224;
+pub const VFIO_IOMMU_GET_INFO: u32 = 15216;
+pub const DM_DEV_SUSPEND: u32 = 3241737478;
+pub const F2FS_IOC_GET_COMPRESS_OPTION: u32 = 2147677461;
+pub const FW_CDEV_IOC_STOP_ISO: u32 = 1074012939;
+pub const GPIO_V2_GET_LINEINFO_IOCTL: u32 = 3238048773;
+pub const ATMMPC_CTRL: u32 = 25048;
+pub const PPPIOCSXASYNCMAP: u32 = 1075868751;
+pub const CHIOGSTATUS: u32 = 1074815752;
+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE: u32 = 3222807309;
+pub const RIO_MPORT_MAINT_PORT_IDX_GET: u32 = 2147773699;
+pub const CAPI_SET_FLAGS: u32 = 2147762980;
+pub const VFIO_GROUP_GET_DEVICE_FD: u32 = 15210;
+pub const VHOST_SET_MEM_TABLE: u32 = 1074310915;
+pub const MATROXFB_SET_OUTPUT_CONNECTION: u32 = 1074294520;
+pub const DFL_FPGA_PORT_GET_REGION_INFO: u32 = 46658;
+pub const VHOST_GET_FEATURES: u32 = 2148052736;
+pub const LIRC_GET_REC_RESOLUTION: u32 = 2147772679;
+pub const PACKET_CTRL_CMD: u32 = 3222820865;
+pub const LIRC_SET_TRANSMITTER_MASK: u32 = 1074030871;
+pub const BTRFS_IOC_ADD_DEV: u32 = 1342215178;
+pub const JSIOCGCORR: u32 = 2149870114;
+pub const VIDIOC_G_FMT: u32 = 3234878980;
+pub const RTC_EPOCH_SET: u32 = 1074294798;
+pub const CAPI_GET_PROFILE: u32 = 3225436937;
+pub const ATM_GETLOOP: u32 = 1074815314;
+pub const SCIF_LISTEN: u32 = 1074033410;
+pub const NBD_CLEAR_QUE: u32 = 43781;
+pub const F2FS_IOC_MOVE_RANGE: u32 = 3223385353;
+pub const LIRC_GET_LENGTH: u32 = 2147772687;
+pub const I8K_SET_FAN: u32 = 3221776775;
+pub const FDSETMAXERRS: u32 = 1075053132;
+pub const VIDIOC_SUBDEV_QUERYCAP: u32 = 2151699968;
+pub const SNAPSHOT_SET_SWAP_AREA: u32 = 1074541325;
+pub const LIRC_GET_REC_TIMEOUT: u32 = 2147772708;
+pub const EVIOCRMFF: u32 = 1074021761;
+pub const GPIO_GET_LINEEVENT_IOCTL: u32 = 3224417284;
+pub const PPRDATA: u32 = 2147577989;
+pub const RIO_MPORT_GET_PROPERTIES: u32 = 2150657284;
+pub const TUNSETVNETHDRSZ: u32 = 1074025688;
+pub const GPIO_GET_LINEINFO_IOCTL: u32 = 3225990146;
+pub const GSMIOC_GETCONF: u32 = 2152482560;
+pub const LIRC_GET_SEND_MODE: u32 = 2147772673;
+pub const PPPIOCSACTIVE: u32 = 1074820166;
+pub const SIOCGSTAMPNS_NEW: u32 = 2148567303;
+pub const IPMICTL_RECEIVE_MSG: u32 = 3224398092;
+pub const LIRC_SET_SEND_DUTY_CYCLE: u32 = 1074030869;
+pub const UI_END_FF_ERASE: u32 = 1074550219;
+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 = 43786;
+pub const VFIO_DEVICE_GET_REGION_INFO: u32 = 15212;
+pub const REISERFS_IOC_UNPACK: u32 = 1074318593;
+pub const FW_CDEV_IOC_REMOVE_DESCRIPTOR: u32 = 1074012935;
+pub const RIO_SET_EVENT_MASK: u32 = 1074031885;
+pub const SNAPSHOT_ALLOC_SWAP_PAGE: u32 = 2148021012;
+pub const VDUSE_VQ_INJECT_IRQ: u32 = 1074037015;
+pub const I2OPASSTHRU: u32 = 2148559116;
+pub const IOC_OPAL_SET_PW: u32 = 1109422304;
+pub const FSI_SCOM_READ: u32 = 3223352065;
+pub const VHOST_VDPA_GET_DEVICE_ID: u32 = 2147790704;
+pub const VIDIOC_QBUF: u32 = 3227014671;
+pub const VIDIOC_S_TUNER: u32 = 1079268894;
+pub const TUNGETVNETHDRSZ: u32 = 2147767511;
+pub const CAPI_NCCI_GETUNIT: u32 = 2147762983;
+pub const DFL_FPGA_PORT_UINT_GET_IRQ_NUM: u32 = 2147792455;
+pub const VIDIOC_OMAP3ISP_STAT_EN: u32 = 3221771975;
+pub const GPIO_V2_LINE_SET_CONFIG_IOCTL: u32 = 3239097357;
+pub const TEE_IOC_VERSION: u32 = 2148312064;
+pub const VIDIOC_LOG_STATUS: u32 = 22086;
+pub const IPMICTL_SEND_COMMAND_SETTIME: u32 = 2150656277;
+pub const VHOST_SET_LOG_FD: u32 = 1074048775;
+pub const SCIF_SEND: u32 = 3222827782;
+pub const VIDIOC_SUBDEV_G_FMT: u32 = 3227014660;
+pub const NS_ADJBUFLEV: u32 = 24931;
+pub const VIDIOC_DBG_S_REGISTER: u32 = 1077433935;
+pub const NILFS_IOCTL_RESIZE: u32 = 1074294411;
+pub const PHN_GETREG: u32 = 3221778437;
+pub const I2OSWDL: u32 = 3224398085;
+pub const VBG_IOCTL_VMMDEV_REQUEST_BIG: u32 = 22019;
+pub const JSIOCGBUTTONS: u32 = 2147576338;
+pub const VFIO_IOMMU_ENABLE: u32 = 15219;
+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 = 1074048887;
+pub const VIDIOC_SUBDEV_G_CROP: u32 = 3224917563;
+pub const VIDIOC_S_CROP: u32 = 1075074620;
+pub const WDIOC_GETTEMP: u32 = 2147768067;
+pub const IOC_OPAL_ADD_USR_TO_LR: u32 = 1092120804;
+pub const UI_SET_LEDBIT: u32 = 1074025833;
+pub const NBD_SET_SOCK: u32 = 43776;
+pub const BTRFS_IOC_SNAP_DESTROY_V2: u32 = 1342215231;
+pub const HIDIOCGCOLLECTIONINFO: u32 = 3222292497;
+pub const I2OSWUL: u32 = 3224398086;
+pub const IOCTL_MEI_NOTIFY_GET: u32 = 2147764227;
+pub const FDFMTTRK: u32 = 1074528840;
+pub const MMTIMER_GETBITS: u32 = 27908;
+pub const VIDIOC_ENUMSTD: u32 = 3225966105;
+pub const VHOST_GET_VRING_BASE: u32 = 3221794578;
+pub const VFIO_DEVICE_IOEVENTFD: u32 = 15220;
+pub const ATMARP_SETENTRY: u32 = 25059;
+pub const CCISS_REVALIDVOLS: u32 = 16906;
+pub const MGSL_IOCLOOPTXDONE: u32 = 27913;
+pub const RTC_VL_READ: u32 = 2147774483;
+pub const ND_IOCTL_ARS_STATUS: u32 = 3224391171;
+pub const RIO_DEV_DEL: u32 = 1075866904;
+pub const VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: u32 = 3223606797;
+pub const VIDIOC_SUBDEV_DV_TIMINGS_CAP: u32 = 3230684772;
+pub const SONYPI_IOCSFAN: u32 = 1073837579;
+pub const SPIOCSTYPE: u32 = 1074295041;
+pub const IPMICTL_REGISTER_FOR_CMD: u32 = 2147641614;
+pub const I8K_GET_FAN: u32 = 3221776774;
+pub const TUNGETVNETBE: u32 = 2147767519;
+pub const AUTOFS_DEV_IOCTL_FAIL: u32 = 3222836087;
+pub const UI_END_FF_UPLOAD: u32 = 1080579529;
+pub const TOSH_SMM: u32 = 3222828176;
+pub const SONYPI_IOCGBAT2REM: u32 = 2147644933;
+pub const F2FS_IOC_GET_COMPRESS_BLOCKS: u32 = 2148070673;
+pub const PPPIOCSNPMODE: u32 = 1074295883;
+pub const USBDEVFS_CONTROL: u32 = 3222820096;
+pub const HIDIOCGUSAGE: u32 = 3222816779;
+pub const TUNSETTXFILTER: u32 = 1074025681;
+pub const TUNGETVNETLE: u32 = 2147767517;
+pub const VIDIOC_ENUM_DV_TIMINGS: u32 = 3230946914;
+pub const BTRFS_IOC_INO_PATHS: u32 = 3224933411;
+pub const MGSL_IOCGXSYNC: u32 = 27924;
+pub const HIDIOCGFIELDINFO: u32 = 3224913930;
+pub const VIDIOC_SUBDEV_G_STD: u32 = 2148029975;
+pub const I2OVALIDATE: u32 = 2147772680;
+pub const VIDIOC_TRY_ENCODER_CMD: u32 = 3223869006;
+pub const NILFS_IOCTL_GET_CPINFO: u32 = 2149084802;
+pub const VIDIOC_G_FREQUENCY: u32 = 3224131128;
+pub const VFAT_IOCTL_READDIR_SHORT: u32 = 2184212994;
+pub const ND_IOCTL_GET_CONFIG_DATA: u32 = 3222031877;
+pub const F2FS_IOC_RESERVE_COMPRESS_BLOCKS: u32 = 2148070675;
+pub const FDGETDRVSTAT: u32 = 2152727058;
+pub const SYNC_IOC_MERGE: u32 = 3224387075;
+pub const VIDIOC_S_DV_TIMINGS: u32 = 3229898327;
+pub const PPPIOCBRIDGECHAN: u32 = 1074033717;
+pub const LIRC_SET_SEND_MODE: u32 = 1074030865;
+pub const RIO_ENABLE_PORTWRITE_RANGE: u32 = 1074818315;
+pub const ATM_GETTYPE: u32 = 1074815364;
+pub const PHN_GETREGS: u32 = 3223875591;
+pub const FDSETEMSGTRESH: u32 = 586;
+pub const NILFS_IOCTL_GET_VINFO: u32 = 3222826630;
+pub const MGSL_IOCWAITEVENT: u32 = 3221515528;
+pub const CAPI_INSTALLED: u32 = 2147631906;
+pub const EVIOCGMASK: u32 = 2148550034;
+pub const BTRFS_IOC_SUBVOL_GETFLAGS: u32 = 2148045849;
+pub const FSL_HV_IOCTL_PARTITION_GET_STATUS: u32 = 3222056706;
+pub const MEDIA_IOC_ENUM_ENTITIES: u32 = 3238034433;
+pub const GSMIOC_GETFIRST: u32 = 2147763972;
+pub const FW_CDEV_IOC_FLUSH_ISO: u32 = 1074012952;
+pub const VIDIOC_DBG_G_CHIP_INFO: u32 = 3234354790;
+pub const F2FS_IOC_RELEASE_VOLATILE_WRITE: u32 = 62724;
+pub const CAPI_GET_SERIAL: u32 = 3221504776;
+pub const FDSETDRVPRM: u32 = 1082131088;
+pub const IOC_OPAL_SAVE: u32 = 1092120796;
+pub const VIDIOC_G_DV_TIMINGS: u32 = 3229898328;
+pub const TUNSETIFINDEX: u32 = 1074025690;
+pub const CCISS_SETINTINFO: u32 = 1074283011;
+pub const RTC_VL_CLR: u32 = 28692;
+pub const VIDIOC_REQBUFS: u32 = 3222558216;
+pub const USBDEVFS_REAPURBNDELAY32: u32 = 1074025741;
+pub const TEE_IOC_SHM_REGISTER: u32 = 3222840329;
+pub const USBDEVFS_SETCONFIGURATION: u32 = 2147767557;
+pub const CCISS_GETNODENAME: u32 = 2148549124;
+pub const VIDIOC_SUBDEV_S_FRAME_INTERVAL: u32 = 3224393238;
+pub const VIDIOC_ENUM_FRAMESIZES: u32 = 3224131146;
+pub const VFIO_DEVICE_PCI_HOT_RESET: u32 = 15217;
+pub const FW_CDEV_IOC_SEND_BROADCAST_REQUEST: u32 = 1076372242;
+pub const LPSETTIMEOUT_NEW: u32 = 1074791951;
+pub const RIO_CM_MPORT_GET_LIST: u32 = 3221512971;
+pub const FW_CDEV_IOC_QUEUE_ISO: u32 = 3222807305;
+pub const FDRAWCMD: u32 = 600;
+pub const SCIF_UNREG: u32 = 3222303497;
+pub const PPPIOCGIDLE64: u32 = 2148561983;
+pub const USBDEVFS_RELEASEINTERFACE: u32 = 2147767568;
+pub const VIDIOC_CROPCAP: u32 = 3224131130;
+pub const DFL_FPGA_PORT_GET_INFO: u32 = 46657;
+pub const PHN_SET_REGS: u32 = 1074294787;
+pub const ATMLEC_DATA: u32 = 25041;
+pub const PPPOEIOCDFWD: u32 = 45313;
+pub const VIDIOC_S_SELECTION: u32 = 3225441887;
+pub const SNAPSHOT_FREE_SWAP_PAGES: u32 = 13065;
+pub const BTRFS_IOC_LOGICAL_INO: u32 = 3224933412;
+pub const VIDIOC_S_CTRL: u32 = 3221771804;
+pub const ZATM_SETPOOL: u32 = 1074815331;
+pub const MTIOCPOS: u32 = 2148035843;
+pub const PMU_IOC_SLEEP: u32 = 16896;
+pub const AUTOFS_DEV_IOCTL_PROTOSUBVER: u32 = 3222836083;
+pub const VBG_IOCTL_CHANGE_FILTER_MASK: u32 = 3223344652;
+pub const NILFS_IOCTL_GET_SUSTAT: u32 = 2150657669;
+pub const VIDIOC_QUERYCAP: u32 = 2154321408;
+pub const HPET_INFO: u32 = 2149083139;
+pub const VIDIOC_AM437X_CCDC_CFG: u32 = 1074288321;
+pub const DM_LIST_DEVICES: u32 = 3241737474;
+pub const TUNSETOWNER: u32 = 1074025676;
+pub const VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: u32 = 3223344654;
+pub const RNDADDENTROPY: u32 = 1074287107;
+pub const USBDEVFS_RESET: u32 = 21780;
+pub const BTRFS_IOC_SUBVOL_CREATE: u32 = 1342215182;
+pub const USBDEVFS_FORBID_SUSPEND: u32 = 21793;
+pub const FDGETDRVTYP: u32 = 2148532751;
+pub const PPWCONTROL: u32 = 1073836164;
+pub const VIDIOC_ENUM_FRAMEINTERVALS: u32 = 3224655435;
+pub const KCOV_DISABLE: u32 = 25445;
+pub const IOC_OPAL_ACTIVATE_LSP: u32 = 1092120799;
+pub const VHOST_VDPA_GET_IOVA_RANGE: u32 = 2148577144;
+pub const PPPIOCSPASS: u32 = 1074820167;
+pub const RIO_CM_CHAN_CONNECT: u32 = 1074291464;
+pub const I2OSWDEL: u32 = 3224398087;
+pub const FS_IOC_SET_ENCRYPTION_POLICY: u32 = 2148296211;
+pub const IOC_OPAL_MBR_DONE: u32 = 1091596521;
+pub const PPPIOCSMAXCID: u32 = 1074033745;
+pub const PPSETPHASE: u32 = 1074032788;
+pub const VHOST_VDPA_SET_VRING_ENABLE: u32 = 1074311029;
+pub const USBDEVFS_GET_SPEED: u32 = 21791;
+pub const SONET_GETFRAMING: u32 = 2147770646;
+pub const VIDIOC_QUERYBUF: u32 = 3227014665;
+pub const VIDIOC_S_EDID: u32 = 3223868969;
+pub const BTRFS_IOC_QGROUP_ASSIGN: u32 = 1075352617;
+pub const PPS_GETCAP: u32 = 2148036771;
+pub const SNAPSHOT_PLATFORM_SUPPORT: u32 = 13071;
+pub const LIRC_SET_REC_TIMEOUT_REPORTS: u32 = 1074030873;
+pub const SCIF_GET_NODEIDS: u32 = 3222827790;
+pub const NBD_DISCONNECT: u32 = 43784;
+pub const VIDIOC_SUBDEV_G_FRAME_INTERVAL: u32 = 3224393237;
+pub const VFIO_IOMMU_DISABLE: u32 = 15220;
+pub const SNAPSHOT_CREATE_IMAGE: u32 = 1074017041;
+pub const SNAPSHOT_POWER_OFF: u32 = 13072;
+pub const APM_IOC_STANDBY: u32 = 16641;
+pub const PPPIOCGUNIT: u32 = 2147775574;
+pub const AUTOFS_IOC_EXPIRE_MULTI: u32 = 1074041702;
+pub const SCIF_BIND: u32 = 3221779201;
+pub const IOC_WATCH_QUEUE_SET_SIZE: u32 = 22368;
+pub const NILFS_IOCTL_CHANGE_CPMODE: u32 = 1074818688;
+pub const IOC_OPAL_LOCK_UNLOCK: u32 = 1092120797;
+pub const F2FS_IOC_SET_PIN_FILE: u32 = 1074066701;
+pub const PPPIOCGRASYNCMAP: u32 = 2147775573;
+pub const MMTIMER_MMAPAVAIL: u32 = 27910;
+pub const I2OPASSTHRU32: u32 = 2148034828;
+pub const DFL_FPGA_FME_PORT_RELEASE: u32 = 1074050689;
+pub const VIDIOC_SUBDEV_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const UI_SET_SNDBIT: u32 = 1074025834;
+pub const VIDIOC_G_AUDOUT: u32 = 2150913585;
+pub const RTC_PLL_SET: u32 = 1075867666;
+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 = 1074048836;
+pub const VHOST_SET_VRING_ADDR: u32 = 1076408081;
+pub const VDUSE_CREATE_DEV: u32 = 1095794946;
+pub const FDFLUSH: u32 = 587;
+pub const VBG_IOCTL_WAIT_FOR_EVENTS: u32 = 3223344650;
+pub const DFL_FPGA_FME_ERR_SET_IRQ: u32 = 1074312836;
+pub const F2FS_IOC_GET_PIN_FILE: u32 = 2147808526;
+pub const SCIF_CONNECT: u32 = 3221779203;
+pub const BLKREPORTZONE: u32 = 3222278786;
+pub const AUTOFS_IOC_ASKUMOUNT: u32 = 2147783536;
+pub const ATM_ADDPARTY: u32 = 1074815476;
+pub const FDSETPRM: u32 = 1075839554;
+pub const ATM_GETSTATZ: u32 = 1074815313;
+pub const ISST_IF_MSR_COMMAND: u32 = 3221814788;
+pub const BTRFS_IOC_GET_SUBVOL_INFO: u32 = 2180551740;
+pub const VIDIOC_UNSUBSCRIBE_EVENT: u32 = 1075861083;
+pub const SEV_ISSUE_CMD: u32 = 3222295296;
+pub const GPIOHANDLE_SET_LINE_VALUES_IOCTL: u32 = 3225465865;
+pub const PCITEST_COPY: u32 = 1074286598;
+pub const IPMICTL_GET_MY_ADDRESS_CMD: u32 = 2147772690;
+pub const CHIOGPICKER: u32 = 2147771140;
+pub const CAPI_NCCI_OPENCOUNT: u32 = 2147762982;
+pub const CXL_MEM_SEND_COMMAND: u32 = 3224423938;
+pub const PERF_EVENT_IOC_SET_FILTER: u32 = 1074275334;
+pub const IOC_OPAL_REVERT_TPR: u32 = 1091072226;
+pub const CHIOGVPARAMS: u32 = 2154849043;
+pub const PTP_PEROUT_REQUEST: u32 = 1077427459;
+pub const FSI_SCOM_CHECK: u32 = 2147775232;
+pub const RTC_IRQP_READ: u32 = 2148036619;
+pub const RIO_MPORT_MAINT_READ_LOCAL: u32 = 2149084421;
+pub const HIDIOCGRDESCSIZE: u32 = 2147764225;
+pub const UI_GET_VERSION: u32 = 2147767597;
+pub const NILFS_IOCTL_GET_CPSTAT: u32 = 2149084803;
+pub const CCISS_GETBUSTYPES: u32 = 2147762695;
+pub const VFIO_IOMMU_SPAPR_TCE_CREATE: u32 = 15223;
+pub const VIDIOC_EXPBUF: u32 = 3225441808;
+pub const UI_SET_RELBIT: u32 = 1074025830;
+pub const VFIO_SET_IOMMU: u32 = 15206;
+pub const VIDIOC_S_MODULATOR: u32 = 1078220343;
+pub const TUNGETFILTER: u32 = 2148553947;
+pub const CCISS_SETNODENAME: u32 = 1074807301;
+pub const FBIO_GETCONTROL2: u32 = 2148025993;
+pub const TUNSETDEBUG: u32 = 1074025673;
+pub const DM_DEV_REMOVE: u32 = 3241737476;
+pub const HIDIOCSUSAGES: u32 = 1344030740;
+pub const FS_IOC_ADD_ENCRYPTION_KEY: u32 = 3226494487;
+pub const FBIOGET_VBLANK: u32 = 2149598738;
+pub const ATM_GETSTAT: u32 = 1074815312;
+pub const VIDIOC_G_JPEGCOMP: u32 = 2156680765;
+pub const TUNATTACHFILTER: u32 = 1074812117;
+pub const UI_SET_ABSBIT: u32 = 1074025831;
+pub const DFL_FPGA_PORT_ERR_GET_IRQ_NUM: u32 = 2147792453;
+pub const USBDEVFS_REAPURB32: u32 = 1074025740;
+pub const BTRFS_IOC_TRANS_END: u32 = 37895;
+pub const CAPI_REGISTER: u32 = 1074545409;
+pub const F2FS_IOC_COMPRESS_FILE: u32 = 62744;
+pub const USBDEVFS_DISCARDURB: u32 = 21771;
+pub const HE_GET_REG: u32 = 1074815328;
+pub const ATM_SETLOOP: u32 = 1074815315;
+pub const ATMSIGD_CTRL: u32 = 25072;
+pub const CIOC_KERNEL_VERSION: u32 = 3221775114;
+pub const BTRFS_IOC_CLONE_RANGE: u32 = 1075876877;
+pub const SNAPSHOT_UNFREEZE: u32 = 13058;
+pub const F2FS_IOC_START_VOLATILE_WRITE: u32 = 62723;
+pub const PMU_IOC_HAS_ADB: u32 = 2148024836;
+pub const I2OGETIOPS: u32 = 2149607680;
+pub const VIDIOC_S_FBUF: u32 = 1076909579;
+pub const PPRCONTROL: u32 = 2147577987;
+pub const CHIOSPICKER: u32 = 1074029317;
+pub const VFIO_IOMMU_SPAPR_REGISTER_MEMORY: u32 = 15221;
+pub const TUNGETSNDBUF: u32 = 2147767507;
+pub const GSMIOC_SETCONF: u32 = 1078740737;
+pub const IOC_PR_PREEMPT: u32 = 1075343563;
+pub const KCOV_INIT_TRACE: u32 = 2148033281;
+pub const SONYPI_IOCGBAT1CAP: u32 = 2147644930;
+pub const SWITCHTEC_IOCTL_FLASH_INFO: u32 = 2148554560;
+pub const MTIOCTOP: u32 = 1074294017;
+pub const VHOST_VDPA_SET_STATUS: u32 = 1073852274;
+pub const VHOST_SCSI_SET_EVENTS_MISSED: u32 = 1074048835;
+pub const VFIO_IOMMU_DIRTY_PAGES: u32 = 15221;
+pub const BTRFS_IOC_SCRUB_PROGRESS: u32 = 3288372253;
+pub const PPPIOCGMRU: u32 = 2147775571;
+pub const BTRFS_IOC_DEV_REPLACE: u32 = 3391657013;
+pub const PPPIOCGFLAGS: u32 = 2147775578;
+pub const NILFS_IOCTL_SET_SUINFO: u32 = 1075342989;
+pub const FW_CDEV_IOC_GET_CYCLE_TIMER2: u32 = 3222807316;
+pub const ATM_DELLECSADDR: u32 = 1074815375;
+pub const FW_CDEV_IOC_GET_SPEED: u32 = 8977;
+pub const PPPIOCGIDLE32: u32 = 2148037695;
+pub const VFIO_DEVICE_RESET: u32 = 15215;
+pub const GPIO_GET_LINEINFO_UNWATCH_IOCTL: u32 = 3221533708;
+pub const WDIOC_GETSTATUS: u32 = 2147768065;
+pub const BTRFS_IOC_SET_FEATURES: u32 = 1076925497;
+pub const IOCTL_MEI_CONNECT_CLIENT: u32 = 3222292481;
+pub const VIDIOC_OMAP3ISP_AEWB_CFG: u32 = 3223344835;
+pub const PCITEST_READ: u32 = 1074286597;
+pub const VFIO_GROUP_GET_STATUS: u32 = 15207;
+pub const MATROXFB_GET_ALL_OUTPUTS: u32 = 2148036347;
+pub const USBDEVFS_CLEAR_HALT: u32 = 2147767573;
+pub const VIDIOC_DECODER_CMD: u32 = 3225966176;
+pub const VIDIOC_G_AUDIO: u32 = 2150913569;
+pub const CCISS_RESCANDISK: u32 = 16912;
+pub const RIO_DISABLE_PORTWRITE_RANGE: u32 = 1074818316;
+pub const IOC_OPAL_SECURE_ERASE_LR: u32 = 1091596519;
+pub const USBDEVFS_REAPURB: u32 = 1074287884;
+pub const DFL_FPGA_CHECK_EXTENSION: u32 = 46593;
+pub const AUTOFS_IOC_PROTOVER: u32 = 2147783523;
+pub const FSL_HV_IOCTL_MEMCPY: u32 = 3223891717;
+pub const BTRFS_IOC_GET_FEATURES: u32 = 2149094457;
+pub const PCITEST_MSIX: u32 = 1074024455;
+pub const BTRFS_IOC_DEFRAG_RANGE: u32 = 1076925456;
+pub const UI_BEGIN_FF_ERASE: u32 = 3222033866;
+pub const DM_GET_TARGET_VERSION: u32 = 3241737489;
+pub const PPPIOCGIDLE: u32 = 2148561983;
+pub const NVRAM_SETCKS: u32 = 28737;
+pub const WDIOC_GETSUPPORT: u32 = 2150127360;
+pub const GSMIOC_ENABLE_NET: u32 = 1077167874;
+pub const GPIO_GET_CHIPINFO_IOCTL: u32 = 2151986177;
+pub const NE_ADD_VCPU: u32 = 3221532193;
+pub const EVIOCSKEYCODE_V2: u32 = 1076380932;
+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 = 1075342598;
+pub const I2OEVTREG: u32 = 1074555146;
+pub const I2OPARMGET: u32 = 3223873796;
+pub const EVIOCGID: u32 = 2148025602;
+pub const BTRFS_IOC_QGROUP_CREATE: u32 = 1074828330;
+pub const AUTOFS_DEV_IOCTL_SETPIPEFD: u32 = 3222836088;
+pub const VIDIOC_S_PARM: u32 = 3234616854;
+pub const TUNSETSTEERINGEBPF: u32 = 2147767520;
+pub const ATM_GETNAMES: u32 = 1074815363;
+pub const VIDIOC_QUERYMENU: u32 = 3224131109;
+pub const DFL_FPGA_PORT_DMA_UNMAP: u32 = 46660;
+pub const I2OLCTGET: u32 = 3222825218;
+pub const FS_IOC_GET_ENCRYPTION_PWSALT: u32 = 1074816532;
+pub const NS_SETBUFLEV: u32 = 1074815330;
+pub const BLKCLOSEZONE: u32 = 1074795143;
+pub const SONET_GETFRSENSE: u32 = 2147901719;
+pub const UI_SET_EVBIT: u32 = 1074025828;
+pub const DM_LIST_VERSIONS: u32 = 3241737485;
+pub const HIDIOCGSTRING: u32 = 2164541444;
+pub const PPPIOCATTCHAN: u32 = 1074033720;
+pub const VDUSE_DEV_SET_CONFIG: u32 = 1074299154;
+pub const TUNGETFEATURES: u32 = 2147767503;
+pub const VFIO_GROUP_UNSET_CONTAINER: u32 = 15209;
+pub const IPMICTL_SET_MY_ADDRESS_CMD: u32 = 2147772689;
+pub const CCISS_REGNEWDISK: u32 = 1074020877;
+pub const VIDIOC_QUERY_DV_TIMINGS: u32 = 2156156515;
+pub const PHN_SETREGS: u32 = 1076391944;
+pub const FAT_IOCTL_GET_ATTRIBUTES: u32 = 2147774992;
+pub const FSL_MC_SEND_MC_COMMAND: u32 = 3225440992;
+pub const TUNGETIFF: u32 = 2147767506;
+pub const PTP_CLOCK_GETCAPS2: u32 = 2152742154;
+pub const BTRFS_IOC_RESIZE: u32 = 1342215171;
+pub const VHOST_SET_VRING_ENDIAN: u32 = 1074310931;
+pub const PPS_KC_BIND: u32 = 1074294949;
+pub const F2FS_IOC_WRITE_CHECKPOINT: u32 = 62727;
+pub const UI_SET_FFBIT: u32 = 1074025835;
+pub const IPMICTL_GET_MY_LUN_CMD: u32 = 2147772692;
+pub const CEC_ADAP_G_PHYS_ADDR: u32 = 2147639553;
+pub const CEC_G_MODE: u32 = 2147770632;
+pub const USBDEVFS_RESETEP: u32 = 2147767555;
+pub const MEDIA_REQUEST_IOC_QUEUE: u32 = 31872;
+pub const USBDEVFS_ALLOC_STREAMS: u32 = 2148029724;
+pub const MGSL_IOCSXCTRL: u32 = 27925;
+pub const MEDIA_IOC_G_TOPOLOGY: u32 = 3225975812;
+pub const PPPIOCUNBRIDGECHAN: u32 = 29748;
+pub const F2FS_IOC_COMMIT_ATOMIC_WRITE: u32 = 62722;
+pub const ISST_IF_GET_PLATFORM_INFO: u32 = 2148072960;
+pub const SCIF_FENCE_MARK: u32 = 3222303503;
+pub const USBDEVFS_RELEASE_PORT: u32 = 2147767577;
+pub const VFIO_CHECK_EXTENSION: u32 = 15205;
+pub const BTRFS_IOC_QGROUP_LIMIT: u32 = 2150667307;
+pub const FAT_IOCTL_GET_VOLUME_ID: u32 = 2147774995;
+pub const UI_SET_PHYS: u32 = 1074287980;
+pub const FDWERRORGET: u32 = 2150105623;
+pub const VIDIOC_SUBDEV_G_EDID: u32 = 3223868968;
+pub const MGSL_IOCGSTATS: u32 = 27911;
+pub const RPROC_SET_SHUTDOWN_ON_RELEASE: u32 = 1074050817;
+pub const SIOCGSTAMP_NEW: u32 = 2148567302;
+pub const RTC_WKALM_RD: u32 = 2150133776;
+pub const PHN_GET_REG: u32 = 3221778432;
+pub const DELL_WMI_SMBIOS_CMD: u32 = 3224655616;
+pub const PHN_NOT_OH: u32 = 28676;
+pub const PPGETMODES: u32 = 2147774615;
+pub const CHIOGPARAMS: u32 = 2148819718;
+pub const VFIO_DEVICE_GET_GFX_DMABUF: u32 = 15219;
+pub const VHOST_SET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310947;
+pub const VIDIOC_SUBDEV_G_SELECTION: u32 = 3225441853;
+pub const BTRFS_IOC_RM_DEV_V2: u32 = 1342215226;
+pub const MGSL_IOCWAITGPIO: u32 = 3222301970;
+pub const PMU_IOC_CAN_SLEEP: u32 = 2148024837;
+pub const KCOV_ENABLE: u32 = 25444;
+pub const BTRFS_IOC_CLONE: u32 = 1074041865;
+pub const F2FS_IOC_DEFRAGMENT: u32 = 3222336776;
+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE: u32 = 1074012942;
+pub const AGPIOC_ALLOCATE: u32 = 3221766406;
+pub const NE_SET_USER_MEMORY_REGION: u32 = 1075359267;
+pub const MGSL_IOCTXABORT: u32 = 27910;
+pub const MGSL_IOCSGPIO: u32 = 1074818320;
+pub const LIRC_SET_REC_CARRIER: u32 = 1074030868;
+pub const F2FS_IOC_FLUSH_DEVICE: u32 = 1074328842;
+pub const SNAPSHOT_ATOMIC_RESTORE: u32 = 13060;
+pub const RTC_UIE_OFF: u32 = 28676;
+pub const BT_BMC_IOCTL_SMS_ATN: u32 = 45312;
+pub const NVME_IOCTL_ID: u32 = 20032;
+pub const NE_START_ENCLAVE: u32 = 3222318628;
+pub const VIDIOC_STREAMON: u32 = 1074026002;
+pub const FDPOLLDRVSTAT: u32 = 2152727059;
+pub const AUTOFS_DEV_IOCTL_READY: u32 = 3222836086;
+pub const VIDIOC_ENUMAUDOUT: u32 = 3224655426;
+pub const VIDIOC_SUBDEV_S_STD: u32 = 1074288152;
+pub const WDIOC_GETTIMELEFT: u32 = 2147768074;
+pub const ATM_GETLINKRATE: u32 = 1074815361;
+pub const RTC_WKALM_SET: u32 = 1076391951;
+pub const VHOST_GET_BACKEND_FEATURES: u32 = 2148052774;
+pub const ATMARP_ENCAP: u32 = 25061;
+pub const CAPI_GET_FLAGS: u32 = 2147762979;
+pub const IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772696;
+pub const DFL_FPGA_FME_PORT_ASSIGN: u32 = 1074050690;
+pub const NS_GET_OWNER_UID: u32 = 46852;
+pub const VIDIOC_OVERLAY: u32 = 1074025998;
+pub const BTRFS_IOC_WAIT_SYNC: u32 = 1074304022;
+pub const GPIOHANDLE_SET_CONFIG_IOCTL: u32 = 3226776586;
+pub const VHOST_GET_VRING_ENDIAN: u32 = 1074310932;
+pub const ATM_GETADDR: u32 = 1074815366;
+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 = 13067;
+pub const JSIOCSAXMAP: u32 = 1077963313;
+pub const F2FS_IOC_SET_COMPRESS_OPTION: u32 = 1073935638;
+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 = 15216;
+pub const VIDIOC_SUBDEV_ENUM_MBUS_CODE: u32 = 3224393218;
+pub const MMTIMER_GETOFFSET: u32 = 27904;
+pub const RIO_CM_CHAN_LISTEN: u32 = 1073898246;
+pub const ATM_SETSC: u32 = 1074029041;
+pub const F2FS_IOC_SHUTDOWN: u32 = 2147768445;
+pub const NVME_IOCTL_RESCAN: u32 = 20038;
+pub const BLKOPENZONE: u32 = 1074795142;
+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 = 25056;
+pub const IPMI_BMC_IOCTL_CLEAR_SMS_ATN: u32 = 45313;
+pub const HIDIOCGVERSION: u32 = 2147764225;
+pub const VIDIOC_S_INPUT: u32 = 3221509671;
+pub const VIDIOC_G_CROP: u32 = 3222558267;
+pub const LIRC_SET_WIDEBAND_RECEIVER: u32 = 1074030883;
+pub const EVIOCGEFFECTS: u32 = 2147763588;
+pub const UVCIOC_CTRL_QUERY: u32 = 3222304033;
+pub const IOC_OPAL_GENERIC_TABLE_RW: u32 = 1094217963;
+pub const FS_IOC_READ_VERITY_METADATA: u32 = 3223873159;
+pub const ND_IOCTL_SET_CONFIG_DATA: u32 = 3221769734;
+pub const USBDEVFS_GETDRIVER: u32 = 1090802952;
+pub const IDT77105_GETSTAT: u32 = 1074815282;
+pub const HIDIOCINITREPORT: u32 = 18437;
+pub const VFIO_DEVICE_GET_INFO: u32 = 15211;
+pub const RIO_CM_CHAN_RECEIVE: u32 = 3222299402;
+pub const RNDGETENTCNT: u32 = 2147766784;
+pub const PPPIOCNEWUNIT: u32 = 3221517374;
+pub const BTRFS_IOC_INO_LOOKUP: u32 = 3489698834;
+pub const FDRESET: u32 = 596;
+pub const IOC_PR_REGISTER: u32 = 1075343560;
+pub const HIDIOCSREPORT: u32 = 1074546696;
+pub const TEE_IOC_OPEN_SESSION: u32 = 2148574210;
+pub const TEE_IOC_SUPPL_RECV: u32 = 2148574214;
+pub const BTRFS_IOC_BALANCE_CTL: u32 = 1074041889;
+pub const GPIO_GET_LINEINFO_WATCH_IOCTL: u32 = 3225990155;
+pub const HIDIOCGRAWINFO: u32 = 2148026371;
+pub const PPPIOCSCOMPRESS: u32 = 1074820173;
+pub const USBDEVFS_CONNECTINFO: u32 = 1074287889;
+pub const BLKRESETZONE: u32 = 1074795139;
+pub const CHIOINITELEM: u32 = 25361;
+pub const NILFS_IOCTL_SET_ALLOC_RANGE: u32 = 1074818700;
+pub const AUTOFS_DEV_IOCTL_CATATONIC: u32 = 3222836089;
+pub const RIO_MPORT_MAINT_HDID_SET: u32 = 1073900801;
+pub const PPGETPHASE: u32 = 2147774617;
+pub const USBDEVFS_DISCONNECT_CLAIM: u32 = 2164806939;
+pub const FDMSGON: u32 = 581;
+pub const VIDIOC_G_SLICED_VBI_CAP: u32 = 3228849733;
+pub const BTRFS_IOC_BALANCE_V2: u32 = 3288372256;
+pub const MEDIA_REQUEST_IOC_REINIT: u32 = 31873;
+pub const IOC_OPAL_ERASE_LR: u32 = 1091596518;
+pub const FDFMTBEG: u32 = 583;
+pub const RNDRESEEDCRNG: u32 = 20999;
+pub const ISST_IF_GET_PHY_ID: u32 = 3221814785;
+pub const TUNSETNOCSUM: u32 = 1074025672;
+pub const SONET_GETSTAT: u32 = 2149867792;
+pub const TFD_IOC_SET_TICKS: u32 = 1074287616;
+pub const PPDATADIR: u32 = 1074032784;
+pub const IOC_OPAL_ENABLE_DISABLE_MBR: u32 = 1091596517;
+pub const GPIO_V2_GET_LINE_IOCTL: u32 = 3260068871;
+pub const RIO_CM_CHAN_SEND: u32 = 1074815753;
+pub const PPWCTLONIRQ: u32 = 1073836178;
+pub const SONYPI_IOCGBRT: u32 = 2147579392;
+pub const IOC_PR_RELEASE: u32 = 1074819274;
+pub const PPCLRIRQ: u32 = 2147774611;
+pub const IPMICTL_SET_MY_CHANNEL_LUN_CMD: u32 = 2147772698;
+pub const MGSL_IOCSXSYNC: u32 = 27923;
+pub const HPET_IE_OFF: u32 = 26626;
+pub const IOC_OPAL_ACTIVATE_USR: u32 = 1091596513;
+pub const SONET_SETFRAMING: u32 = 1074028821;
+pub const PERF_EVENT_IOC_PAUSE_OUTPUT: u32 = 1074013193;
+pub const BTRFS_IOC_LOGICAL_INO_V2: u32 = 3224933435;
+pub const VBG_IOCTL_HGCM_CONNECT: u32 = 3231471108;
+pub const BLKFINISHZONE: u32 = 1074795144;
+pub const EVIOCREVOKE: u32 = 1074021777;
+pub const VFIO_DEVICE_FEATURE: u32 = 15221;
+pub const CCISS_GETPCIINFO: u32 = 2148024833;
+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 = 1074026003;
+pub const VDUSE_DESTROY_DEV: u32 = 1090552067;
+pub const FDGETFDCSTAT: u32 = 2150105621;
+pub const VIDIOC_S_PRIORITY: u32 = 1074026052;
+pub const SNAPSHOT_FREEZE: u32 = 13057;
+pub const VIDIOC_ENUMINPUT: u32 = 3226490394;
+pub const ZATM_GETPOOLZ: u32 = 1074815330;
+pub const RIO_DISABLE_DOORBELL_RANGE: u32 = 1074294026;
+pub const GPIO_V2_GET_LINEINFO_WATCH_IOCTL: u32 = 3238048774;
+pub const VIDIOC_G_STD: u32 = 2148029975;
+pub const USBDEVFS_ALLOW_SUSPEND: u32 = 21794;
+pub const SONET_GETSTATZ: u32 = 2149867793;
+pub const SCIF_ACCEPTREG: u32 = 3221779205;
+pub const VIDIOC_ENCODER_CMD: u32 = 3223869005;
+pub const PPPIOCSRASYNCMAP: u32 = 1074033748;
+pub const IOCTL_MEI_NOTIFY_SET: u32 = 1074022402;
+pub const BTRFS_IOC_QUOTA_RESCAN_STATUS: u32 = 2151715885;
+pub const F2FS_IOC_GARBAGE_COLLECT: u32 = 1074066694;
+pub const ATMLEC_CTRL: u32 = 25040;
+pub const MATROXFB_GET_AVAILABLE_OUTPUTS: u32 = 2148036345;
+pub const DM_DEV_CREATE: u32 = 3241737475;
+pub const VHOST_VDPA_GET_VRING_NUM: u32 = 2147659638;
+pub const VIDIOC_G_CTRL: u32 = 3221771803;
+pub const NBD_CLEAR_SOCK: u32 = 43780;
+pub const VFIO_DEVICE_QUERY_GFX_PLANE: u32 = 15218;
+pub const WDIOC_KEEPALIVE: u32 = 2147768069;
+pub const NVME_IOCTL_SUBSYS_RESET: u32 = 20037;
+pub const PTP_EXTTS_REQUEST2: u32 = 1074806027;
+pub const PCITEST_BAR: u32 = 20481;
+pub const MGSL_IOCGGPIO: u32 = 2148560145;
+pub const EVIOCSREP: u32 = 1074283779;
+pub const VFIO_DEVICE_GET_IRQ_INFO: u32 = 15213;
+pub const HPET_DPI: u32 = 26629;
+pub const VDUSE_VQ_SETUP_KICKFD: u32 = 1074299158;
+pub const ND_IOCTL_CALL: u32 = 3225439754;
+pub const HIDIOCGDEVINFO: u32 = 2149337091;
+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 = 2147767875;
+pub const ATM_NEWBACKENDIF: u32 = 1073897971;
+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 = 1076909650;
+pub const DM_TABLE_LOAD: u32 = 3241737481;
+pub const F2FS_IOC_START_ATOMIC_WRITE: u32 = 62721;
+pub const VIDIOC_G_OUTPUT: u32 = 2147767854;
+pub const ATM_DROPPARTY: u32 = 1074029045;
+pub const CHIOGELEM: u32 = 1080845072;
+pub const BTRFS_IOC_GET_SUPPORTED_FEATURES: u32 = 2152240185;
+pub const EVIOCSKEYCODE: u32 = 1074283780;
+pub const NE_GET_IMAGE_LOAD_INFO: u32 = 3222318626;
+pub const TUNSETLINK: u32 = 1074025677;
+pub const FW_CDEV_IOC_ADD_DESCRIPTOR: u32 = 3222807302;
+pub const BTRFS_IOC_SCRUB_CANCEL: u32 = 37916;
+pub const PPS_SETPARAMS: u32 = 1074294946;
+pub const IOC_OPAL_LR_SETUP: u32 = 1093169379;
+pub const FW_CDEV_IOC_DEALLOCATE: u32 = 1074012931;
+pub const WDIOC_SETTIMEOUT: u32 = 3221509894;
+pub const IOC_WATCH_QUEUE_SET_FILTER: u32 = 22369;
+pub const CAPI_GET_MANUFACTURER: u32 = 3221504774;
+pub const VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY: u32 = 15222;
+pub const ASPEED_P2A_CTRL_IOCTL_SET_WINDOW: u32 = 1074836224;
+pub const VIDIOC_G_EDID: u32 = 3223868968;
+pub const F2FS_IOC_GARBAGE_COLLECT_RANGE: u32 = 1075377419;
+pub const RIO_MAP_INBOUND: u32 = 3223874833;
+pub const IOC_OPAL_TAKE_OWNERSHIP: u32 = 1091072222;
+pub const USBDEVFS_CLAIM_PORT: u32 = 2147767576;
+pub const VIDIOC_S_AUDIO: u32 = 1077171746;
+pub const FS_IOC_GET_ENCRYPTION_NONCE: u32 = 2148558363;
+pub const FW_CDEV_IOC_SEND_STREAM_PACKET: u32 = 1076372243;
+pub const BTRFS_IOC_SNAP_DESTROY: u32 = 1342215183;
+pub const SNAPSHOT_FREE: u32 = 13061;
+pub const I8K_GET_SPEED: u32 = 3221776773;
+pub const HIDIOCGREPORT: u32 = 1074546695;
+pub const HPET_EPI: u32 = 26628;
+pub const JSIOCSCORR: u32 = 1076128289;
+pub const IOC_PR_PREEMPT_ABORT: u32 = 1075343564;
+pub const RIO_MAP_OUTBOUND: u32 = 3223874831;
+pub const ATM_SETESI: u32 = 1074815372;
+pub const FW_CDEV_IOC_START_ISO: u32 = 1074799370;
+pub const ATM_DELADDR: u32 = 1074815369;
+pub const PPFCONTROL: u32 = 1073901710;
+pub const SONYPI_IOCGFAN: u32 = 2147579402;
+pub const RTC_IRQP_SET: u32 = 1074294796;
+pub const PCITEST_WRITE: u32 = 1074286596;
+pub const PPCLAIM: u32 = 28811;
+pub const VIDIOC_S_JPEGCOMP: u32 = 1082938942;
+pub const IPMICTL_UNREGISTER_FOR_CMD: u32 = 2147641615;
+pub const VHOST_SET_FEATURES: u32 = 1074310912;
+pub const TOSHIBA_ACPI_SCI: u32 = 3222828177;
+pub const VIDIOC_DQBUF: u32 = 3227014673;
+pub const BTRFS_IOC_BALANCE_PROGRESS: u32 = 2214630434;
+pub const BTRFS_IOC_SUBVOL_SETFLAGS: u32 = 1074304026;
+pub const ATMLEC_MCAST: u32 = 25042;
+pub const MMTIMER_GETFREQ: u32 = 2148035842;
+pub const VIDIOC_G_SELECTION: u32 = 3225441886;
+pub const RTC_ALM_SET: u32 = 1076129799;
+pub const PPPOEIOCSFWD: u32 = 1074311424;
+pub const IPMICTL_GET_MAINTENANCE_MODE_CMD: u32 = 2147772702;
+pub const FS_IOC_ENABLE_VERITY: u32 = 1082156677;
+pub const NILFS_IOCTL_GET_BDESCS: u32 = 3222826631;
+pub const FDFMTEND: u32 = 585;
+pub const DMA_BUF_SET_NAME: u32 = 1074291201;
+pub const UI_BEGIN_FF_UPLOAD: u32 = 3228063176;
+pub const RTC_UIE_ON: u32 = 28675;
+pub const PPRELEASE: u32 = 28812;
+pub const VFIO_IOMMU_UNMAP_DMA: u32 = 15218;
+pub const VIDIOC_OMAP3ISP_PRV_CFG: u32 = 3228587714;
+pub const GPIO_GET_LINEHANDLE_IOCTL: u32 = 3245126659;
+pub const VFAT_IOCTL_READDIR_BOTH: u32 = 2184212993;
+pub const NVME_IOCTL_ADMIN_CMD: u32 = 3225964097;
+pub const VHOST_SET_VRING_KICK: u32 = 1074310944;
+pub const BTRFS_IOC_SUBVOL_CREATE_V2: u32 = 1342215192;
+pub const BTRFS_IOC_SNAP_CREATE: u32 = 1342215169;
+pub const SONYPI_IOCGBAT2CAP: u32 = 2147644932;
+pub const PPNEGOT: u32 = 1074032785;
+pub const NBD_PRINT_DEBUG: u32 = 43782;
+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 = 2214630431;
+pub const VIDIOC_ENUM_FMT: u32 = 3225441794;
+pub const VIDIOC_G_INPUT: u32 = 2147767846;
+pub const VTPM_PROXY_IOC_NEW_DEV: u32 = 3222577408;
+pub const DFL_FPGA_FME_ERR_GET_IRQ_NUM: u32 = 2147792515;
+pub const ND_IOCTL_DIMM_FLAGS: u32 = 3221769731;
+pub const BTRFS_IOC_QUOTA_RESCAN: u32 = 1077974060;
+pub const MMTIMER_GETCOUNTER: u32 = 2148035849;
+pub const MATROXFB_GET_OUTPUT_MODE: u32 = 3221778170;
+pub const BTRFS_IOC_QUOTA_RESCAN_WAIT: u32 = 37934;
+pub const RIO_CM_CHAN_BIND: u32 = 1074291461;
+pub const HIDIOCGRDESC: u32 = 2416199682;
+pub const MGSL_IOCGIF: u32 = 27915;
+pub const VIDIOC_S_OUTPUT: u32 = 3221509679;
+pub const HIDIOCGREPORTINFO: u32 = 3222030345;
+pub const WDIOC_GETBOOTSTATUS: u32 = 2147768066;
+pub const VDUSE_VQ_GET_INFO: u32 = 3224404245;
+pub const ACRN_IOCTL_ASSIGN_PCIDEV: u32 = 1076142677;
+pub const BLKGETDISKSEQ: u32 = 2148012672;
+pub const ACRN_IOCTL_PM_GET_CPU_STATE: u32 = 3221791328;
+pub const ACRN_IOCTL_DESTROY_VM: u32 = 41489;
+pub const ACRN_IOCTL_SET_PTDEV_INTR: u32 = 1075094099;
+pub const ACRN_IOCTL_CREATE_IOREQ_CLIENT: u32 = 41522;
+pub const ACRN_IOCTL_IRQFD: u32 = 1075356273;
+pub const ACRN_IOCTL_CREATE_VM: u32 = 3224412688;
+pub const ACRN_IOCTL_INJECT_MSI: u32 = 1074831907;
+pub const ACRN_IOCTL_ATTACH_IOREQ_CLIENT: u32 = 41523;
+pub const ACRN_IOCTL_RESET_PTDEV_INTR: u32 = 1075094100;
+pub const ACRN_IOCTL_NOTIFY_REQUEST_FINISH: u32 = 1074307633;
+pub const ACRN_IOCTL_SET_IRQLINE: u32 = 1074307621;
+pub const ACRN_IOCTL_START_VM: u32 = 41490;
+pub const ACRN_IOCTL_SET_VCPU_REGS: u32 = 1093181974;
+pub const ACRN_IOCTL_SET_MEMSEG: u32 = 1075880513;
+pub const ACRN_IOCTL_PAUSE_VM: u32 = 41491;
+pub const ACRN_IOCTL_CLEAR_VM_IOREQ: u32 = 41525;
+pub const ACRN_IOCTL_UNSET_MEMSEG: u32 = 1075880514;
+pub const ACRN_IOCTL_IOEVENTFD: u32 = 1075880560;
+pub const ACRN_IOCTL_DEASSIGN_PCIDEV: u32 = 1076142678;
+pub const ACRN_IOCTL_RESET_VM: u32 = 41493;
+pub const ACRN_IOCTL_DESTROY_IOREQ_CLIENT: u32 = 41524;
+pub const ACRN_IOCTL_VM_INTR_MONITOR: u32 = 1074307620;
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86_64/landlock.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/landlock.rs
new file mode 100644
index 0000000..78f9a70
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/landlock.rs
@@ -0,0 +1,100 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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 __s128 = i128;
+pub type __u128 = u128;
+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 landlock_ruleset_attr {
+pub handled_access_fs: __u64,
+pub handled_access_net: __u64,
+pub scoped: __u64,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_path_beneath_attr {
+pub allowed_access: __u64,
+pub parent_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct landlock_net_port_attr {
+pub allowed_access: __u64,
+pub port: __u64,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const LANDLOCK_CREATE_RULESET_VERSION: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_EXECUTE: u32 = 1;
+pub const LANDLOCK_ACCESS_FS_WRITE_FILE: u32 = 2;
+pub const LANDLOCK_ACCESS_FS_READ_FILE: u32 = 4;
+pub const LANDLOCK_ACCESS_FS_READ_DIR: u32 = 8;
+pub const LANDLOCK_ACCESS_FS_REMOVE_DIR: u32 = 16;
+pub const LANDLOCK_ACCESS_FS_REMOVE_FILE: u32 = 32;
+pub const LANDLOCK_ACCESS_FS_MAKE_CHAR: u32 = 64;
+pub const LANDLOCK_ACCESS_FS_MAKE_DIR: u32 = 128;
+pub const LANDLOCK_ACCESS_FS_MAKE_REG: u32 = 256;
+pub const LANDLOCK_ACCESS_FS_MAKE_SOCK: u32 = 512;
+pub const LANDLOCK_ACCESS_FS_MAKE_FIFO: u32 = 1024;
+pub const LANDLOCK_ACCESS_FS_MAKE_BLOCK: u32 = 2048;
+pub const LANDLOCK_ACCESS_FS_MAKE_SYM: u32 = 4096;
+pub const LANDLOCK_ACCESS_FS_REFER: u32 = 8192;
+pub const LANDLOCK_ACCESS_FS_TRUNCATE: u32 = 16384;
+pub const LANDLOCK_ACCESS_FS_IOCTL_DEV: u32 = 32768;
+pub const LANDLOCK_ACCESS_NET_BIND_TCP: u32 = 1;
+pub const LANDLOCK_ACCESS_NET_CONNECT_TCP: u32 = 2;
+pub const LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: u32 = 1;
+pub const LANDLOCK_SCOPE_SIGNAL: u32 = 2;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum landlock_rule_type {
+LANDLOCK_RULE_PATH_BENEATH = 1,
+LANDLOCK_RULE_NET_PORT = 2,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86_64/loop_device.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/loop_device.rs
new file mode 100644
index 0000000..02fedb5
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/loop_device.rs
@@ -0,0 +1,134 @@
+/* automatically generated by rust-bindgen 0.71.1 */
+
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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.9.4/src/x86_64/mempolicy.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/mempolicy.rs
new file mode 100644
index 0000000..ad4957c
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/mempolicy.rs
@@ -0,0 +1,175 @@
+/* automatically generated by rust-bindgen 0.71.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 EDEADLK: u32 = 35;
+pub const ENAMETOOLONG: u32 = 36;
+pub const ENOLCK: u32 = 37;
+pub const ENOSYS: u32 = 38;
+pub const ENOTEMPTY: u32 = 39;
+pub const ELOOP: u32 = 40;
+pub const EWOULDBLOCK: u32 = 11;
+pub const ENOMSG: u32 = 42;
+pub const EIDRM: u32 = 43;
+pub const ECHRNG: u32 = 44;
+pub const EL2NSYNC: u32 = 45;
+pub const EL3HLT: u32 = 46;
+pub const EL3RST: u32 = 47;
+pub const ELNRNG: u32 = 48;
+pub const EUNATCH: u32 = 49;
+pub const ENOCSI: u32 = 50;
+pub const EL2HLT: u32 = 51;
+pub const EBADE: u32 = 52;
+pub const EBADR: u32 = 53;
+pub const EXFULL: u32 = 54;
+pub const ENOANO: u32 = 55;
+pub const EBADRQC: u32 = 56;
+pub const EBADSLT: u32 = 57;
+pub const EDEADLOCK: u32 = 35;
+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 EMULTIHOP: u32 = 72;
+pub const EDOTDOT: u32 = 73;
+pub const EBADMSG: u32 = 74;
+pub const EOVERFLOW: u32 = 75;
+pub const ENOTUNIQ: u32 = 76;
+pub const EBADFD: u32 = 77;
+pub const EREMCHG: u32 = 78;
+pub const ELIBACC: u32 = 79;
+pub const ELIBBAD: u32 = 80;
+pub const ELIBSCN: u32 = 81;
+pub const ELIBMAX: u32 = 82;
+pub const ELIBEXEC: u32 = 83;
+pub const EILSEQ: u32 = 84;
+pub const ERESTART: u32 = 85;
+pub const ESTRPIPE: u32 = 86;
+pub const EUSERS: u32 = 87;
+pub const ENOTSOCK: u32 = 88;
+pub const EDESTADDRREQ: u32 = 89;
+pub const EMSGSIZE: u32 = 90;
+pub const EPROTOTYPE: u32 = 91;
+pub const ENOPROTOOPT: u32 = 92;
+pub const EPROTONOSUPPORT: u32 = 93;
+pub const ESOCKTNOSUPPORT: u32 = 94;
+pub const EOPNOTSUPP: u32 = 95;
+pub const EPFNOSUPPORT: u32 = 96;
+pub const EAFNOSUPPORT: u32 = 97;
+pub const EADDRINUSE: u32 = 98;
+pub const EADDRNOTAVAIL: u32 = 99;
+pub const ENETDOWN: u32 = 100;
+pub const ENETUNREACH: u32 = 101;
+pub const ENETRESET: u32 = 102;
+pub const ECONNABORTED: u32 = 103;
+pub const ECONNRESET: u32 = 104;
+pub const ENOBUFS: u32 = 105;
+pub const EISCONN: u32 = 106;
+pub const ENOTCONN: u32 = 107;
+pub const ESHUTDOWN: u32 = 108;
+pub const ETOOMANYREFS: u32 = 109;
+pub const ETIMEDOUT: u32 = 110;
+pub const ECONNREFUSED: u32 = 111;
+pub const EHOSTDOWN: u32 = 112;
+pub const EHOSTUNREACH: u32 = 113;
+pub const EALREADY: u32 = 114;
+pub const EINPROGRESS: u32 = 115;
+pub const ESTALE: u32 = 116;
+pub const EUCLEAN: u32 = 117;
+pub const ENOTNAM: u32 = 118;
+pub const ENAVAIL: u32 = 119;
+pub const EISNAM: u32 = 120;
+pub const EREMOTEIO: u32 = 121;
+pub const EDQUOT: u32 = 122;
+pub const ENOMEDIUM: u32 = 123;
+pub const EMEDIUMTYPE: u32 = 124;
+pub const ECANCELED: u32 = 125;
+pub const ENOKEY: u32 = 126;
+pub const EKEYEXPIRED: u32 = 127;
+pub const EKEYREVOKED: u32 = 128;
+pub const EKEYREJECTED: u32 = 129;
+pub const EOWNERDEAD: u32 = 130;
+pub const ENOTRECOVERABLE: u32 = 131;
+pub const ERFKILL: u32 = 132;
+pub const EHWPOISON: u32 = 133;
+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_WEIGHTED_INTERLEAVE: _bindgen_ty_1 = _bindgen_ty_1::MPOL_WEIGHTED_INTERLEAVE;
+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_WEIGHTED_INTERLEAVE = 6,
+MPOL_MAX = 7,
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86_64/net.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/net.rs
new file mode 100644
index 0000000..f70d4bf
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/net.rs
@@ -0,0 +1,3427 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+pub type __kernel_sa_family_t = crate::ctypes::c_ushort;
+pub type socklen_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+storage: Storage,
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+pub struct __BindgenUnionField<T>(::core::marker::PhantomData<T>);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_addr {
+pub s_addr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq {
+pub imr_multiaddr: in_addr,
+pub imr_interface: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreqn {
+pub imr_multiaddr: in_addr,
+pub imr_address: in_addr,
+pub imr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_mreq_source {
+pub imr_multiaddr: __be32,
+pub imr_interface: __be32,
+pub imr_sourceaddr: __be32,
+}
+#[repr(C)]
+pub struct ip_msfilter {
+pub imsf_multiaddr: __be32,
+pub imsf_interface: __be32,
+pub imsf_fmode: __u32,
+pub imsf_numsrc: __u32,
+pub __bindgen_anon_1: ip_msfilter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct ip_msfilter__bindgen_ty_1 {
+pub imsf_slist: __BindgenUnionField<[__be32; 1usize]>,
+pub __bindgen_anon_1: __BindgenUnionField<ip_msfilter__bindgen_ty_1__bindgen_ty_1>,
+pub bindgen_union_field: u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 {
+pub __empty_imsf_slist_flex: ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
+pub imsf_slist_flex: __IncompleteArrayField<__be32>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_req {
+pub gr_interface: __u32,
+pub gr_group: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_source_req {
+pub gsr_interface: __u32,
+pub gsr_group: __kernel_sockaddr_storage,
+pub gsr_source: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+pub struct group_filter {
+pub __bindgen_anon_1: group_filter__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1 {
+pub __bindgen_anon_1: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_1>,
+pub __bindgen_anon_2: __BindgenUnionField<group_filter__bindgen_ty_1__bindgen_ty_2>,
+pub bindgen_union_field: [u64; 34usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_1 {
+pub gf_interface_aux: __u32,
+pub gf_group_aux: __kernel_sockaddr_storage,
+pub gf_fmode_aux: __u32,
+pub gf_numsrc_aux: __u32,
+pub gf_slist: [__kernel_sockaddr_storage; 1usize],
+}
+#[repr(C)]
+pub struct group_filter__bindgen_ty_1__bindgen_ty_2 {
+pub gf_interface: __u32,
+pub gf_group: __kernel_sockaddr_storage,
+pub gf_fmode: __u32,
+pub gf_numsrc: __u32,
+pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct in_pktinfo {
+pub ipi_ifindex: crate::ctypes::c_int,
+pub ipi_spec_dst: in_addr,
+pub ipi_addr: in_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_in {
+pub sin_family: __kernel_sa_family_t,
+pub sin_port: __be16,
+pub sin_addr: in_addr,
+pub __pad: [crate::ctypes::c_uchar; 8usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct iphdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub tos: __u8,
+pub tot_len: __be16,
+pub id: __be16,
+pub frag_off: __be16,
+pub ttl: __u8,
+pub protocol: __u8,
+pub check: __sum16,
+pub __bindgen_anon_1: iphdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iphdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: __be32,
+pub daddr: __be32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_auth_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub reserved: __be16,
+pub spi: __be32,
+pub seq_no: __be32,
+pub auth_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct ip_esp_hdr {
+pub spi: __be32,
+pub seq_no: __be32,
+pub enc_data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_comp_hdr {
+pub nexthdr: __u8,
+pub flags: __u8,
+pub cpi: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip_beet_phdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub padlen: __u8,
+pub reserved: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_addr {
+pub in6_u: in6_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr_in6 {
+pub sin6_family: crate::ctypes::c_ushort,
+pub sin6_port: __be16,
+pub sin6_flowinfo: __be32,
+pub sin6_addr: in6_addr,
+pub sin6_scope_id: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6_mreq {
+pub ipv6mr_multiaddr: in6_addr,
+pub ipv6mr_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_flowlabel_req {
+pub flr_dst: in6_addr,
+pub flr_label: __be32,
+pub flr_action: __u8,
+pub flr_share: __u8,
+pub flr_flags: __u16,
+pub flr_expires: __u16,
+pub flr_linger: __u16,
+pub __flr_pad: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_pktinfo {
+pub ipi6_addr: in6_addr,
+pub ipi6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6_mtuinfo {
+pub ip6m_addr: sockaddr_in6,
+pub ip6m_mtu: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct in6_ifreq {
+pub ifr6_addr: in6_addr,
+pub ifr6_prefixlen: __u32,
+pub ifr6_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_rt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+pub type_: __u8,
+pub segments_left: __u8,
+}
+#[repr(C, packed)]
+#[derive(Debug, Copy, Clone)]
+pub struct ipv6_opt_hdr {
+pub nexthdr: __u8,
+pub hdrlen: __u8,
+}
+#[repr(C)]
+pub struct rt0_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: __IncompleteArrayField<in6_addr>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rt2_hdr {
+pub rt_hdr: ipv6_rt_hdr,
+pub reserved: __u32,
+pub addr: in6_addr,
+}
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub struct ipv6_destopt_hao {
+pub type_: __u8,
+pub length: __u8,
+pub addr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr {
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+pub flow_lbl: [__u8; 3usize],
+pub payload_len: __be16,
+pub nexthdr: __u8,
+pub hop_limit: __u8,
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_1 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ipv6hdr__bindgen_ty_1__bindgen_ty_2 {
+pub saddr: in6_addr,
+pub daddr: in6_addr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcphdr {
+pub source: __be16,
+pub dest: __be16,
+pub seq: __be32,
+pub ack_seq: __be32,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub window: __be16,
+pub check: __sum16,
+pub urg_ptr: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_opt {
+pub opt_code: __u32,
+pub opt_val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_repair_window {
+pub snd_wl1: __u32,
+pub snd_wnd: __u32,
+pub max_window: __u32,
+pub rcv_wnd: __u32,
+pub rcv_wup: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_info {
+pub tcpi_state: __u8,
+pub tcpi_ca_state: __u8,
+pub tcpi_retransmits: __u8,
+pub tcpi_probes: __u8,
+pub tcpi_backoff: __u8,
+pub tcpi_options: __u8,
+pub _bitfield_align_1: [u8; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub tcpi_rto: __u32,
+pub tcpi_ato: __u32,
+pub tcpi_snd_mss: __u32,
+pub tcpi_rcv_mss: __u32,
+pub tcpi_unacked: __u32,
+pub tcpi_sacked: __u32,
+pub tcpi_lost: __u32,
+pub tcpi_retrans: __u32,
+pub tcpi_fackets: __u32,
+pub tcpi_last_data_sent: __u32,
+pub tcpi_last_ack_sent: __u32,
+pub tcpi_last_data_recv: __u32,
+pub tcpi_last_ack_recv: __u32,
+pub tcpi_pmtu: __u32,
+pub tcpi_rcv_ssthresh: __u32,
+pub tcpi_rtt: __u32,
+pub tcpi_rttvar: __u32,
+pub tcpi_snd_ssthresh: __u32,
+pub tcpi_snd_cwnd: __u32,
+pub tcpi_advmss: __u32,
+pub tcpi_reordering: __u32,
+pub tcpi_rcv_rtt: __u32,
+pub tcpi_rcv_space: __u32,
+pub tcpi_total_retrans: __u32,
+pub tcpi_pacing_rate: __u64,
+pub tcpi_max_pacing_rate: __u64,
+pub tcpi_bytes_acked: __u64,
+pub tcpi_bytes_received: __u64,
+pub tcpi_segs_out: __u32,
+pub tcpi_segs_in: __u32,
+pub tcpi_notsent_bytes: __u32,
+pub tcpi_min_rtt: __u32,
+pub tcpi_data_segs_in: __u32,
+pub tcpi_data_segs_out: __u32,
+pub tcpi_delivery_rate: __u64,
+pub tcpi_busy_time: __u64,
+pub tcpi_rwnd_limited: __u64,
+pub tcpi_sndbuf_limited: __u64,
+pub tcpi_delivered: __u32,
+pub tcpi_delivered_ce: __u32,
+pub tcpi_bytes_sent: __u64,
+pub tcpi_bytes_retrans: __u64,
+pub tcpi_dsack_dups: __u32,
+pub tcpi_reord_seen: __u32,
+pub tcpi_rcv_ooopack: __u32,
+pub tcpi_snd_wnd: __u32,
+pub tcpi_rcv_wnd: __u32,
+pub tcpi_rehash: __u32,
+pub tcpi_total_rto: __u16,
+pub tcpi_total_rto_recoveries: __u16,
+pub tcpi_total_rto_time: __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(Copy, Clone)]
+pub struct tcp_ao_add {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub key: [__u8; 80usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_del {
+pub addr: __kernel_sockaddr_storage,
+pub ifindex: __s32,
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub prefix: __u8,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub current_key: __u8,
+pub rnext: __u8,
+pub keyflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_info_opt {
+pub _bitfield_align_1: [u32; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+pub reserved2: __u16,
+pub current_key: __u8,
+pub rnext: __u8,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+pub pkt_key_not_found: __u64,
+pub pkt_ao_required: __u64,
+pub pkt_dropped_icmp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct tcp_ao_getsockopt {
+pub addr: __kernel_sockaddr_storage,
+pub alg_name: [crate::ctypes::c_char; 64usize],
+pub key: [__u8; 80usize],
+pub nkeys: __u32,
+pub _bitfield_align_1: [u16; 0],
+pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+pub sndid: __u8,
+pub rcvid: __u8,
+pub prefix: __u8,
+pub maclen: __u8,
+pub keyflags: __u8,
+pub keylen: __u8,
+pub ifindex: __s32,
+pub pkt_good: __u64,
+pub pkt_bad: __u64,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_ao_repair {
+pub snt_isn: __be32,
+pub rcv_isn: __be32,
+pub snd_sne: __u32,
+pub rcv_sne: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcp_zerocopy_receive {
+pub address: __u64,
+pub length: __u32,
+pub recv_skip_hint: __u32,
+pub inq: __u32,
+pub err: __s32,
+pub copybuf_address: __u64,
+pub copybuf_len: __s32,
+pub flags: __u32,
+pub msg_control: __u64,
+pub msg_controllen: __u64,
+pub msg_flags: __u32,
+pub reserved: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_un {
+pub sun_family: __kernel_sa_family_t,
+pub sun_path: [crate::ctypes::c_char; 108usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct sockaddr {
+pub __storage: __kernel_sockaddr_storage,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sync_serial_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct te1_settings {
+pub clock_rate: crate::ctypes::c_uint,
+pub clock_type: crate::ctypes::c_uint,
+pub loopback: crate::ctypes::c_ushort,
+pub slot_map: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct raw_hdlc_proto {
+pub encoding: crate::ctypes::c_ushort,
+pub parity: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto {
+pub t391: crate::ctypes::c_uint,
+pub t392: crate::ctypes::c_uint,
+pub n391: crate::ctypes::c_uint,
+pub n392: crate::ctypes::c_uint,
+pub n393: crate::ctypes::c_uint,
+pub lmi: crate::ctypes::c_ushort,
+pub dce: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc {
+pub dlci: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fr_proto_pvc_info {
+pub dlci: crate::ctypes::c_uint,
+pub master: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct cisco_proto {
+pub interval: crate::ctypes::c_uint,
+pub timeout: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct x25_hdlc_proto {
+pub dce: crate::ctypes::c_ushort,
+pub modulo: crate::ctypes::c_uint,
+pub window: crate::ctypes::c_uint,
+pub t1: crate::ctypes::c_uint,
+pub t2: crate::ctypes::c_uint,
+pub n2: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifmap {
+pub mem_start: crate::ctypes::c_ulong,
+pub mem_end: crate::ctypes::c_ulong,
+pub base_addr: crate::ctypes::c_ushort,
+pub irq: crate::ctypes::c_uchar,
+pub dma: crate::ctypes::c_uchar,
+pub port: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct if_settings {
+pub type_: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub ifs_ifsu: if_settings__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifreq {
+pub ifr_ifrn: ifreq__bindgen_ty_1,
+pub ifr_ifru: ifreq__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+pub ifc_len: crate::ctypes::c_int,
+pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+pub struct xt_entry_match {
+pub u: xt_entry_match__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_1 {
+pub match_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_match__bindgen_ty_1__bindgen_ty_2 {
+pub match_size: __u16,
+pub match_: *mut xt_match,
+}
+#[repr(C)]
+pub struct xt_entry_target {
+pub u: xt_entry_target__bindgen_ty_1,
+pub data: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_1 {
+pub target_size: __u16,
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_entry_target__bindgen_ty_1__bindgen_ty_2 {
+pub target_size: __u16,
+pub target: *mut xt_target,
+}
+#[repr(C)]
+pub struct xt_standard_target {
+pub target: xt_entry_target,
+pub verdict: crate::ctypes::c_int,
+}
+#[repr(C)]
+pub struct xt_error_target {
+pub target: xt_entry_target,
+pub errorname: [crate::ctypes::c_char; 30usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_get_revision {
+pub name: [crate::ctypes::c_char; 29usize],
+pub revision: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _xt_align {
+pub u8_: __u8,
+pub u16_: __u16,
+pub u32_: __u32,
+pub u64_: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_counters {
+pub pcnt: __u64,
+pub bcnt: __u64,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct xt_counters_info {
+pub name: [crate::ctypes::c_char; 32usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: __IncompleteArrayField<xt_counters>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_tcp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub option: __u8,
+pub flg_mask: __u8,
+pub flg_cmp: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xt_udp {
+pub spts: [__u16; 2usize],
+pub dpts: [__u16; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ip6t_ip6 {
+pub src: in6_addr,
+pub dst: in6_addr,
+pub smsk: in6_addr,
+pub dmsk: in6_addr,
+pub iniface: [crate::ctypes::c_char; 16usize],
+pub outiface: [crate::ctypes::c_char; 16usize],
+pub iniface_mask: [crate::ctypes::c_uchar; 16usize],
+pub outiface_mask: [crate::ctypes::c_uchar; 16usize],
+pub proto: __u16,
+pub tos: __u8,
+pub flags: __u8,
+pub invflags: __u8,
+}
+#[repr(C)]
+pub struct ip6t_entry {
+pub ipv6: ip6t_ip6,
+pub nfcache: crate::ctypes::c_uint,
+pub target_offset: __u16,
+pub next_offset: __u16,
+pub comefrom: crate::ctypes::c_uint,
+pub counters: xt_counters,
+pub elems: __IncompleteArrayField<crate::ctypes::c_uchar>,
+}
+#[repr(C)]
+pub struct ip6t_standard {
+pub entry: ip6t_entry,
+pub target: xt_standard_target,
+}
+#[repr(C)]
+pub struct ip6t_error {
+pub entry: ip6t_entry,
+pub target: xt_error_target,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_icmp {
+pub type_: __u8,
+pub code: [__u8; 2usize],
+pub invflags: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ip6t_getinfo {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+}
+#[repr(C)]
+pub struct ip6t_replace {
+pub name: [crate::ctypes::c_char; 32usize],
+pub valid_hooks: crate::ctypes::c_uint,
+pub num_entries: crate::ctypes::c_uint,
+pub size: crate::ctypes::c_uint,
+pub hook_entry: [crate::ctypes::c_uint; 5usize],
+pub underflow: [crate::ctypes::c_uint; 5usize],
+pub num_counters: crate::ctypes::c_uint,
+pub counters: *mut xt_counters,
+pub entries: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+pub struct ip6t_get_entries {
+pub name: [crate::ctypes::c_char; 32usize],
+pub size: crate::ctypes::c_uint,
+pub entrytable: __IncompleteArrayField<ip6t_entry>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct so_timestamping {
+pub flags: crate::ctypes::c_int,
+pub bind_phc: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct hwtstamp_config {
+pub flags: crate::ctypes::c_int,
+pub tx_type: crate::ctypes::c_int,
+pub rx_filter: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct scm_ts_pktinfo {
+pub if_index: __u32,
+pub pkt_length: __u32,
+pub reserved: [__u32; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_txtime {
+pub clockid: __kernel_clockid_t,
+pub flags: __u32,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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 IP_PROTOCOL: u32 = 52;
+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 __LITTLE_ENDIAN: u32 = 1234;
+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 SIOCGSTAMP_OLD: u32 = 35078;
+pub const SIOCGSTAMPNS_OLD: u32 = 35079;
+pub const SOL_SOCKET: u32 = 1;
+pub const SO_DEBUG: u32 = 1;
+pub const SO_REUSEADDR: u32 = 2;
+pub const SO_TYPE: u32 = 3;
+pub const SO_ERROR: u32 = 4;
+pub const SO_DONTROUTE: u32 = 5;
+pub const SO_BROADCAST: u32 = 6;
+pub const SO_SNDBUF: u32 = 7;
+pub const SO_RCVBUF: u32 = 8;
+pub const SO_SNDBUFFORCE: u32 = 32;
+pub const SO_RCVBUFFORCE: u32 = 33;
+pub const SO_KEEPALIVE: u32 = 9;
+pub const SO_OOBINLINE: u32 = 10;
+pub const SO_NO_CHECK: u32 = 11;
+pub const SO_PRIORITY: u32 = 12;
+pub const SO_LINGER: u32 = 13;
+pub const SO_BSDCOMPAT: u32 = 14;
+pub const SO_REUSEPORT: u32 = 15;
+pub const SO_PASSCRED: u32 = 16;
+pub const SO_PEERCRED: u32 = 17;
+pub const SO_RCVLOWAT: u32 = 18;
+pub const SO_SNDLOWAT: u32 = 19;
+pub const SO_RCVTIMEO_OLD: u32 = 20;
+pub const SO_SNDTIMEO_OLD: u32 = 21;
+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_ACCEPTCONN: u32 = 30;
+pub const SO_PEERSEC: u32 = 31;
+pub const SO_PASSSEC: u32 = 34;
+pub const SO_MARK: u32 = 36;
+pub const SO_PROTOCOL: u32 = 38;
+pub const SO_DOMAIN: u32 = 39;
+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_PASSPIDFD: u32 = 76;
+pub const SO_PEERPIDFD: u32 = 77;
+pub const SO_DEVMEM_LINEAR: u32 = 78;
+pub const SCM_DEVMEM_LINEAR: u32 = 78;
+pub const SO_DEVMEM_DMABUF: u32 = 79;
+pub const SCM_DEVMEM_DMABUF: u32 = 79;
+pub const SO_DEVMEM_DONTNEED: u32 = 80;
+pub const SCM_TS_OPT_ID: u32 = 81;
+pub const SO_TIMESTAMP: u32 = 29;
+pub const SO_TIMESTAMPNS: u32 = 35;
+pub const SO_TIMESTAMPING: u32 = 37;
+pub const SO_RCVTIMEO: u32 = 20;
+pub const SO_SNDTIMEO: u32 = 21;
+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_AO_ADD_KEY: u32 = 38;
+pub const TCP_AO_DEL_KEY: u32 = 39;
+pub const TCP_AO_INFO: u32 = 40;
+pub const TCP_AO_GET_KEYS: u32 = 41;
+pub const TCP_AO_REPAIR: u32 = 42;
+pub const TCP_IS_MPTCP: u32 = 43;
+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 TCPI_OPT_USEC_TS: u32 = 64;
+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_AO_MAXKEYLEN: u32 = 80;
+pub const TCP_AO_KEYF_IFINDEX: u32 = 1;
+pub const TCP_AO_KEYF_EXCLUDE_OPT: 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 = 1;
+pub const SOCK_DGRAM: u32 = 2;
+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_SMC: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SMC;
+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_ACCEPT_RA_MIN_LFT: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_ACCEPT_RA_MIN_LFT;
+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;
+pub const SOF_TIMESTAMPING_TX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_HARDWARE;
+pub const SOF_TIMESTAMPING_TX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SOFTWARE;
+pub const SOF_TIMESTAMPING_RX_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_HARDWARE;
+pub const SOF_TIMESTAMPING_RX_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RX_SOFTWARE;
+pub const SOF_TIMESTAMPING_SOFTWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SOFTWARE;
+pub const SOF_TIMESTAMPING_SYS_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_SYS_HARDWARE;
+pub const SOF_TIMESTAMPING_RAW_HARDWARE: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_RAW_HARDWARE;
+pub const SOF_TIMESTAMPING_OPT_ID: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID;
+pub const SOF_TIMESTAMPING_TX_SCHED: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_SCHED;
+pub const SOF_TIMESTAMPING_TX_ACK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_TX_ACK;
+pub const SOF_TIMESTAMPING_OPT_CMSG: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_CMSG;
+pub const SOF_TIMESTAMPING_OPT_TSONLY: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TSONLY;
+pub const SOF_TIMESTAMPING_OPT_STATS: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_STATS;
+pub const SOF_TIMESTAMPING_OPT_PKTINFO: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_PKTINFO;
+pub const SOF_TIMESTAMPING_OPT_TX_SWHW: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_TX_SWHW;
+pub const SOF_TIMESTAMPING_BIND_PHC: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_BIND_PHC;
+pub const SOF_TIMESTAMPING_OPT_ID_TCP: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_ID_TCP;
+pub const SOF_TIMESTAMPING_OPT_RX_FILTER: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_LAST: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_OPT_RX_FILTER;
+pub const SOF_TIMESTAMPING_MASK: _bindgen_ty_10 = _bindgen_ty_10::SOF_TIMESTAMPING_MASK;
+#[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_SMC = 256,
+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_ACCEPT_RA_MIN_LFT = 58,
+DEVCONF_MAX = 59,
+}
+#[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 = 32768,
+TCP_FLAG_ECE = 16384,
+TCP_FLAG_URG = 8192,
+TCP_FLAG_ACK = 4096,
+TCP_FLAG_PSH = 2048,
+TCP_FLAG_RST = 1024,
+TCP_FLAG_SYN = 512,
+TCP_FLAG_FIN = 256,
+TCP_RESERVED_BITS = 15,
+TCP_DATA_OFFSET = 240,
+}
+#[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(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_10 {
+SOF_TIMESTAMPING_TX_HARDWARE = 1,
+SOF_TIMESTAMPING_TX_SOFTWARE = 2,
+SOF_TIMESTAMPING_RX_HARDWARE = 4,
+SOF_TIMESTAMPING_RX_SOFTWARE = 8,
+SOF_TIMESTAMPING_SOFTWARE = 16,
+SOF_TIMESTAMPING_SYS_HARDWARE = 32,
+SOF_TIMESTAMPING_RAW_HARDWARE = 64,
+SOF_TIMESTAMPING_OPT_ID = 128,
+SOF_TIMESTAMPING_TX_SCHED = 256,
+SOF_TIMESTAMPING_TX_ACK = 512,
+SOF_TIMESTAMPING_OPT_CMSG = 1024,
+SOF_TIMESTAMPING_OPT_TSONLY = 2048,
+SOF_TIMESTAMPING_OPT_STATS = 4096,
+SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
+SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
+SOF_TIMESTAMPING_BIND_PHC = 32768,
+SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
+SOF_TIMESTAMPING_OPT_RX_FILTER = 131072,
+SOF_TIMESTAMPING_MASK = 262143,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_flags {
+HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_tx_types {
+HWTSTAMP_TX_OFF = 0,
+HWTSTAMP_TX_ON = 1,
+HWTSTAMP_TX_ONESTEP_SYNC = 2,
+HWTSTAMP_TX_ONESTEP_P2P = 3,
+__HWTSTAMP_TX_CNT = 4,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum hwtstamp_rx_filters {
+HWTSTAMP_FILTER_NONE = 0,
+HWTSTAMP_FILTER_ALL = 1,
+HWTSTAMP_FILTER_SOME = 2,
+HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
+HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
+HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
+HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
+HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
+HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
+HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
+HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
+HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
+HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
+HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
+HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
+HWTSTAMP_FILTER_NTP_ALL = 15,
+__HWTSTAMP_FILTER_CNT = 16,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum txtime_flags {
+SOF_TXTIME_DEADLINE_MODE = 1,
+SOF_TXTIME_REPORT_ERRORS = 2,
+SOF_TXTIME_FLAGS_MASK = 3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union iphdr__bindgen_ty_1 {
+pub __bindgen_anon_1: iphdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: iphdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union in6_addr__bindgen_ty_1 {
+pub u6_addr8: [__u8; 16usize],
+pub u6_addr16: [__be16; 8usize],
+pub u6_addr32: [__be32; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ipv6hdr__bindgen_ty_1 {
+pub __bindgen_anon_1: ipv6hdr__bindgen_ty_1__bindgen_ty_1,
+pub addrs: ipv6hdr__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union tcp_word_hdr {
+pub hdr: tcphdr,
+pub words: [__be32; 5usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+pub raw_hdlc: *mut raw_hdlc_proto,
+pub cisco: *mut cisco_proto,
+pub fr: *mut fr_proto,
+pub fr_pvc: *mut fr_proto_pvc,
+pub fr_pvc_info: *mut fr_proto_pvc_info,
+pub x25: *mut x25_hdlc_proto,
+pub sync: *mut sync_serial_settings,
+pub te1: *mut te1_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+pub ifrn_name: [crate::ctypes::c_char; 16usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+pub ifru_addr: sockaddr,
+pub ifru_dstaddr: sockaddr,
+pub ifru_broadaddr: sockaddr,
+pub ifru_netmask: sockaddr,
+pub ifru_hwaddr: sockaddr,
+pub ifru_flags: crate::ctypes::c_short,
+pub ifru_ivalue: crate::ctypes::c_int,
+pub ifru_mtu: crate::ctypes::c_int,
+pub ifru_map: ifmap,
+pub ifru_slave: [crate::ctypes::c_char; 16usize],
+pub ifru_newname: [crate::ctypes::c_char; 16usize],
+pub ifru_data: *mut crate::ctypes::c_void,
+pub ifru_settings: if_settings,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+pub ifcu_buf: *mut crate::ctypes::c_char,
+pub ifcu_req: *mut ifreq,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union nf_inet_addr {
+pub all: [__u32; 4usize],
+pub ip: __be32,
+pub ip6: [__be32; 4usize],
+pub in_: in_addr,
+pub in6: in6_addr,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_match__bindgen_ty_1 {
+pub user: xt_entry_match__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_match__bindgen_ty_1__bindgen_ty_2,
+pub match_size: __u16,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xt_entry_target__bindgen_ty_1 {
+pub user: xt_entry_target__bindgen_ty_1__bindgen_ty_1,
+pub kernel: xt_entry_target__bindgen_ty_1__bindgen_ty_2,
+pub target_size: __u16,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+#[inline]
+pub const fn new(storage: Storage) -> Self {
+Self { storage }
+}
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+#[inline]
+fn extract_bit(byte: u8, index: usize) -> bool {
+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 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];
+Self::extract_bit(byte, index)
+}
+#[inline]
+pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize);
+Self::extract_bit(byte, index)
+}
+#[inline]
+fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
+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 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];
+*byte = Self::change_bit(*byte, index, val);
+}
+#[inline]
+pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
+debug_assert!(index / 8 < core::mem::size_of::<Storage>());
+let byte_index = index / 8;
+let byte = (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize);
+*byte = Self::change_bit(*byte, index, val);
+}
+#[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 unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+let mut val = 0;
+for i in 0..(bit_width as usize) {
+if Self::raw_get_bit(this, 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);
+}
+}
+#[inline]
+pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
+debug_assert!(bit_width <= 64);
+debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
+debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
+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::raw_set_bit(this, index + bit_offset, val_bit_is_set);
+}
+}
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl<T> __BindgenUnionField<T> {
+#[inline]
+pub const fn new() -> Self {
+__BindgenUnionField(::core::marker::PhantomData)
+}
+#[inline]
+pub unsafe fn as_ref(&self) -> &T {
+::core::mem::transmute(self)
+}
+#[inline]
+pub unsafe fn as_mut(&mut self) -> &mut T {
+::core::mem::transmute(self)
+}
+}
+impl<T> ::core::default::Default for __BindgenUnionField<T> {
+#[inline]
+fn default() -> Self {
+Self::new()
+}
+}
+impl<T> ::core::clone::Clone for __BindgenUnionField<T> {
+#[inline]
+fn clone(&self) -> Self {
+*self
+}
+}
+impl<T> ::core::marker::Copy for __BindgenUnionField<T> {}
+impl<T> ::core::fmt::Debug for __BindgenUnionField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__BindgenUnionField")
+}
+}
+impl<T> ::core::hash::Hash for __BindgenUnionField<T> {
+fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+impl<T> ::core::cmp::PartialEq for __BindgenUnionField<T> {
+fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
+true
+}
+}
+impl<T> ::core::cmp::Eq for __BindgenUnionField<T> {}
+impl iphdr {
+#[inline]
+pub fn ihl(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_ihl(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ihl_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_ihl_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(ihl: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let ihl: u8 = unsafe { ::core::mem::transmute(ihl) };
+ihl as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl ipv6hdr {
+#[inline]
+pub fn priority(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_priority(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn priority_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_priority_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn version(&self) -> __u8 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+}
+#[inline]
+pub fn set_version(&mut self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn version_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_version_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(priority: __u8, version: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let priority: u8 = unsafe { ::core::mem::transmute(priority) };
+priority as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let version: u8 = unsafe { ::core::mem::transmute(version) };
+version as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcphdr {
+#[inline]
+pub fn res1(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_res1(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn res1_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_res1_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn doff(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) }
+}
+#[inline]
+pub fn set_doff(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn doff_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_doff_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 4u8, val as u64)
+}
+}
+#[inline]
+pub fn fin(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_fin(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn fin_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_fin_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 8usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn syn(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_syn(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn syn_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_syn_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 9usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn rst(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_rst(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn rst_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 10usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_rst_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 10usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn psh(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_psh(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn psh_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 11usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_psh_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 11usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ack(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ack(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ack_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 12usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ack_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 12usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn urg(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_urg(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn urg_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 13usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_urg_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 13usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ece(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_ece(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ece_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 14usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_ece_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 14usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn cwr(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_cwr(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn cwr_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 15usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_cwr_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 15usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(res1: __u16, doff: __u16, fin: __u16, syn: __u16, rst: __u16, psh: __u16, ack: __u16, urg: __u16, ece: __u16, cwr: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 4u8, {
+let res1: u16 = unsafe { ::core::mem::transmute(res1) };
+res1 as u64
+});
+__bindgen_bitfield_unit.set(4usize, 4u8, {
+let doff: u16 = unsafe { ::core::mem::transmute(doff) };
+doff as u64
+});
+__bindgen_bitfield_unit.set(8usize, 1u8, {
+let fin: u16 = unsafe { ::core::mem::transmute(fin) };
+fin as u64
+});
+__bindgen_bitfield_unit.set(9usize, 1u8, {
+let syn: u16 = unsafe { ::core::mem::transmute(syn) };
+syn as u64
+});
+__bindgen_bitfield_unit.set(10usize, 1u8, {
+let rst: u16 = unsafe { ::core::mem::transmute(rst) };
+rst as u64
+});
+__bindgen_bitfield_unit.set(11usize, 1u8, {
+let psh: u16 = unsafe { ::core::mem::transmute(psh) };
+psh as u64
+});
+__bindgen_bitfield_unit.set(12usize, 1u8, {
+let ack: u16 = unsafe { ::core::mem::transmute(ack) };
+ack as u64
+});
+__bindgen_bitfield_unit.set(13usize, 1u8, {
+let urg: u16 = unsafe { ::core::mem::transmute(urg) };
+urg as u64
+});
+__bindgen_bitfield_unit.set(14usize, 1u8, {
+let ece: u16 = unsafe { ::core::mem::transmute(ece) };
+ece as u64
+});
+__bindgen_bitfield_unit.set(15usize, 1u8, {
+let cwr: u16 = unsafe { ::core::mem::transmute(cwr) };
+cwr 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 unsafe fn tcpi_snd_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_snd_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_rcv_wscale_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 4u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_rcv_wscale_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_delivery_rate_app_limited_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 8usize, 1u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_delivery_rate_app_limited_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 unsafe fn tcpi_fastopen_client_fail_raw(this: *const Self) -> __u8 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 9usize, 2u8) as u8) }
+}
+#[inline]
+pub unsafe fn set_tcpi_fastopen_client_fail_raw(this: *mut Self, val: __u8) {
+unsafe {
+let val: u8 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 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 tcp_ao_add {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 30u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 30u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 30u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_del {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn del_async(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_del_async(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn del_async_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_del_async_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 29u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 29u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, del_async: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let del_async: u32 = unsafe { ::core::mem::transmute(del_async) };
+del_async as u64
+});
+__bindgen_bitfield_unit.set(3usize, 29u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_info_opt {
+#[inline]
+pub fn set_current(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_current(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_current_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_current_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_rnext(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_rnext(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_rnext_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_rnext_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn ao_required(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_ao_required(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn ao_required_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_ao_required_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn set_counters(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_set_counters(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn set_counters_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_set_counters_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn accept_icmps(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
+}
+#[inline]
+pub fn set_accept_icmps(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn accept_icmps_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 4usize, 1u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_accept_icmps_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 4usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u32 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+self._bitfield_1.set(5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u32 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 5usize, 27u8) as u32) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u32) {
+unsafe {
+let val: u32 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 5usize, 27u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(set_current: __u32, set_rnext: __u32, ao_required: __u32, set_counters: __u32, accept_icmps: __u32, reserved: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let set_current: u32 = unsafe { ::core::mem::transmute(set_current) };
+set_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let set_rnext: u32 = unsafe { ::core::mem::transmute(set_rnext) };
+set_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let ao_required: u32 = unsafe { ::core::mem::transmute(ao_required) };
+ao_required as u64
+});
+__bindgen_bitfield_unit.set(3usize, 1u8, {
+let set_counters: u32 = unsafe { ::core::mem::transmute(set_counters) };
+set_counters as u64
+});
+__bindgen_bitfield_unit.set(4usize, 1u8, {
+let accept_icmps: u32 = unsafe { ::core::mem::transmute(accept_icmps) };
+accept_icmps as u64
+});
+__bindgen_bitfield_unit.set(5usize, 27u8, {
+let reserved: u32 = unsafe { ::core::mem::transmute(reserved) };
+reserved as u64
+});
+__bindgen_bitfield_unit
+}
+}
+impl tcp_ao_getsockopt {
+#[inline]
+pub fn is_current(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_current(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_current_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 0usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_current_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 0usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn is_rnext(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_is_rnext(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn is_rnext_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 1usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_is_rnext_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 1usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn get_all(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
+}
+#[inline]
+pub fn set_get_all(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn get_all_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 2usize, 1u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_get_all_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 2usize, 1u8, val as u64)
+}
+}
+#[inline]
+pub fn reserved(&self) -> __u16 {
+unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
+}
+#[inline]
+pub fn set_reserved(&mut self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+self._bitfield_1.set(3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub unsafe fn reserved_raw(this: *const Self) -> __u16 {
+unsafe { ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(::core::ptr::addr_of!((*this)._bitfield_1), 3usize, 13u8) as u16) }
+}
+#[inline]
+pub unsafe fn set_reserved_raw(this: *mut Self, val: __u16) {
+unsafe {
+let val: u16 = ::core::mem::transmute(val);
+<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(::core::ptr::addr_of_mut!((*this)._bitfield_1), 3usize, 13u8, val as u64)
+}
+}
+#[inline]
+pub fn new_bitfield_1(is_current: __u16, is_rnext: __u16, get_all: __u16, reserved: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> {
+let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+__bindgen_bitfield_unit.set(0usize, 1u8, {
+let is_current: u16 = unsafe { ::core::mem::transmute(is_current) };
+is_current as u64
+});
+__bindgen_bitfield_unit.set(1usize, 1u8, {
+let is_rnext: u16 = unsafe { ::core::mem::transmute(is_rnext) };
+is_rnext as u64
+});
+__bindgen_bitfield_unit.set(2usize, 1u8, {
+let get_all: u16 = unsafe { ::core::mem::transmute(get_all) };
+get_all as u64
+});
+__bindgen_bitfield_unit.set(3usize, 13u8, {
+let reserved: u16 = unsafe { ::core::mem::transmute(reserved) };
+reserved 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;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_LAST: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl hwtstamp_flags {
+pub const HWTSTAMP_FLAG_MASK: hwtstamp_flags = hwtstamp_flags::HWTSTAMP_FLAG_BONDED_PHC_INDEX;
+}
+impl txtime_flags {
+pub const SOF_TXTIME_FLAGS_LAST: txtime_flags = txtime_flags::SOF_TXTIME_REPORT_ERRORS;
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86_64/netlink.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/netlink.rs
new file mode 100644
index 0000000..3e394d0
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/netlink.rs
@@ -0,0 +1,2946 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __kernel_sockaddr_storage {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+pub ss_family: __kernel_sa_family_t,
+pub __data: [crate::ctypes::c_char; 126usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sockaddr_nl {
+pub nl_family: __kernel_sa_family_t,
+pub nl_pad: crate::ctypes::c_ushort,
+pub nl_pid: __u32,
+pub nl_groups: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsghdr {
+pub nlmsg_len: __u32,
+pub nlmsg_type: __u16,
+pub nlmsg_flags: __u16,
+pub nlmsg_seq: __u32,
+pub nlmsg_pid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlmsgerr {
+pub error: crate::ctypes::c_int,
+pub msg: nlmsghdr,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_pktinfo {
+pub group: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_req {
+pub nm_block_size: crate::ctypes::c_uint,
+pub nm_block_nr: crate::ctypes::c_uint,
+pub nm_frame_size: crate::ctypes::c_uint,
+pub nm_frame_nr: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nl_mmap_hdr {
+pub nm_status: crate::ctypes::c_uint,
+pub nm_len: crate::ctypes::c_uint,
+pub nm_group: __u32,
+pub nm_pid: __u32,
+pub nm_uid: __u32,
+pub nm_gid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nlattr {
+pub nla_len: __u16,
+pub nla_type: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nla_bitfield32 {
+pub value: __u32,
+pub selector: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats {
+pub rx_packets: __u32,
+pub tx_packets: __u32,
+pub rx_bytes: __u32,
+pub tx_bytes: __u32,
+pub rx_errors: __u32,
+pub tx_errors: __u32,
+pub rx_dropped: __u32,
+pub tx_dropped: __u32,
+pub multicast: __u32,
+pub collisions: __u32,
+pub rx_length_errors: __u32,
+pub rx_over_errors: __u32,
+pub rx_crc_errors: __u32,
+pub rx_frame_errors: __u32,
+pub rx_fifo_errors: __u32,
+pub rx_missed_errors: __u32,
+pub tx_aborted_errors: __u32,
+pub tx_carrier_errors: __u32,
+pub tx_fifo_errors: __u32,
+pub tx_heartbeat_errors: __u32,
+pub tx_window_errors: __u32,
+pub rx_compressed: __u32,
+pub tx_compressed: __u32,
+pub rx_nohandler: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+pub collisions: __u64,
+pub rx_length_errors: __u64,
+pub rx_over_errors: __u64,
+pub rx_crc_errors: __u64,
+pub rx_frame_errors: __u64,
+pub rx_fifo_errors: __u64,
+pub rx_missed_errors: __u64,
+pub tx_aborted_errors: __u64,
+pub tx_carrier_errors: __u64,
+pub tx_fifo_errors: __u64,
+pub tx_heartbeat_errors: __u64,
+pub tx_window_errors: __u64,
+pub rx_compressed: __u64,
+pub tx_compressed: __u64,
+pub rx_nohandler: __u64,
+pub rx_otherhost_dropped: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_hw_stats64 {
+pub rx_packets: __u64,
+pub tx_packets: __u64,
+pub rx_bytes: __u64,
+pub tx_bytes: __u64,
+pub rx_errors: __u64,
+pub tx_errors: __u64,
+pub rx_dropped: __u64,
+pub tx_dropped: __u64,
+pub multicast: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnl_link_ifmap {
+pub mem_start: __u64,
+pub mem_end: __u64,
+pub base_addr: __u64,
+pub irq: __u16,
+pub dma: __u8,
+pub port: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_bridge_id {
+pub prio: [__u8; 2usize],
+pub addr: [__u8; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_cacheinfo {
+pub max_reasm_len: __u32,
+pub tstamp: __u32,
+pub reachable_time: __u32,
+pub retrans_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vlan_qos_mapping {
+pub from: __u32,
+pub to: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tunnel_msg {
+pub family: __u8,
+pub flags: __u8,
+pub reserved2: __u16,
+pub ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vxlan_port_range {
+pub low: __be16,
+pub high: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_mac {
+pub vf: __u32,
+pub mac: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_broadcast {
+pub broadcast: [__u8; 32usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_vlan_info {
+pub vf: __u32,
+pub vlan: __u32,
+pub qos: __u32,
+pub vlan_proto: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_tx_rate {
+pub vf: __u32,
+pub rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rate {
+pub vf: __u32,
+pub min_tx_rate: __u32,
+pub max_tx_rate: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_spoofchk {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_guid {
+pub vf: __u32,
+pub guid: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_link_state {
+pub vf: __u32,
+pub link_state: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_rss_query_en {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_vf_trust {
+pub vf: __u32,
+pub setting: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_port_vsi {
+pub vsi_mgr_id: __u8,
+pub vsi_type_id: [__u8; 3usize],
+pub vsi_type_version: __u8,
+pub pad: [__u8; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct if_stats_msg {
+pub family: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub ifindex: __u32,
+pub filter_mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifla_rmnet_flags {
+pub flags: __u32,
+pub mask: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifaddrmsg {
+pub ifa_family: __u8,
+pub ifa_prefixlen: __u8,
+pub ifa_flags: __u8,
+pub ifa_scope: __u8,
+pub ifa_index: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifa_cacheinfo {
+pub ifa_prefered: __u32,
+pub ifa_valid: __u32,
+pub cstamp: __u32,
+pub tstamp: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndmsg {
+pub ndm_family: __u8,
+pub ndm_pad1: __u8,
+pub ndm_pad2: __u16,
+pub ndm_ifindex: __s32,
+pub ndm_state: __u16,
+pub ndm_flags: __u8,
+pub ndm_type: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nda_cacheinfo {
+pub ndm_confirmed: __u32,
+pub ndm_used: __u32,
+pub ndm_updated: __u32,
+pub ndm_refcnt: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_stats {
+pub ndts_allocs: __u64,
+pub ndts_destroys: __u64,
+pub ndts_hash_grows: __u64,
+pub ndts_res_failed: __u64,
+pub ndts_lookups: __u64,
+pub ndts_hits: __u64,
+pub ndts_rcv_probes_mcast: __u64,
+pub ndts_rcv_probes_ucast: __u64,
+pub ndts_periodic_gc_runs: __u64,
+pub ndts_forced_gc_runs: __u64,
+pub ndts_table_fulls: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndtmsg {
+pub ndtm_family: __u8,
+pub ndtm_pad1: __u8,
+pub ndtm_pad2: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ndt_config {
+pub ndtc_key_len: __u16,
+pub ndtc_entry_size: __u16,
+pub ndtc_entries: __u32,
+pub ndtc_last_flush: __u32,
+pub ndtc_last_rand: __u32,
+pub ndtc_hash_rnd: __u32,
+pub ndtc_hash_mask: __u32,
+pub ndtc_hash_chain_gc: __u32,
+pub ndtc_proxy_qlen: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtattr {
+pub rta_len: crate::ctypes::c_ushort,
+pub rta_type: crate::ctypes::c_ushort,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtmsg {
+pub rtm_family: crate::ctypes::c_uchar,
+pub rtm_dst_len: crate::ctypes::c_uchar,
+pub rtm_src_len: crate::ctypes::c_uchar,
+pub rtm_tos: crate::ctypes::c_uchar,
+pub rtm_table: crate::ctypes::c_uchar,
+pub rtm_protocol: crate::ctypes::c_uchar,
+pub rtm_scope: crate::ctypes::c_uchar,
+pub rtm_type: crate::ctypes::c_uchar,
+pub rtm_flags: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtnexthop {
+pub rtnh_len: crate::ctypes::c_ushort,
+pub rtnh_flags: crate::ctypes::c_uchar,
+pub rtnh_hops: crate::ctypes::c_uchar,
+pub rtnh_ifindex: crate::ctypes::c_int,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct rtvia {
+pub rtvia_family: __kernel_sa_family_t,
+pub rtvia_addr: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_cacheinfo {
+pub rta_clntref: __u32,
+pub rta_lastuse: __u32,
+pub rta_expires: __s32,
+pub rta_error: __u32,
+pub rta_used: __u32,
+pub rta_id: __u32,
+pub rta_ts: __u32,
+pub rta_tsage: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct rta_session {
+pub proto: __u8,
+pub pad1: __u8,
+pub pad2: __u16,
+pub u: rta_session__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_1 {
+pub sport: __u16,
+pub dport: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_session__bindgen_ty_1__bindgen_ty_2 {
+pub type_: __u8,
+pub code: __u8,
+pub ident: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rta_mfc_stats {
+pub mfcs_packets: __u64,
+pub mfcs_bytes: __u64,
+pub mfcs_wrong_if: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct rtgenmsg {
+pub rtgen_family: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ifinfomsg {
+pub ifi_family: crate::ctypes::c_uchar,
+pub __ifi_pad: crate::ctypes::c_uchar,
+pub ifi_type: crate::ctypes::c_ushort,
+pub ifi_index: crate::ctypes::c_int,
+pub ifi_flags: crate::ctypes::c_uint,
+pub ifi_change: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefixmsg {
+pub prefix_family: crate::ctypes::c_uchar,
+pub prefix_pad1: crate::ctypes::c_uchar,
+pub prefix_pad2: crate::ctypes::c_ushort,
+pub prefix_ifindex: crate::ctypes::c_int,
+pub prefix_type: crate::ctypes::c_uchar,
+pub prefix_len: crate::ctypes::c_uchar,
+pub prefix_flags: crate::ctypes::c_uchar,
+pub prefix_pad3: crate::ctypes::c_uchar,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct prefix_cacheinfo {
+pub preferred_time: __u32,
+pub valid_time: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcmsg {
+pub tcm_family: crate::ctypes::c_uchar,
+pub tcm__pad1: crate::ctypes::c_uchar,
+pub tcm__pad2: crate::ctypes::c_ushort,
+pub tcm_ifindex: crate::ctypes::c_int,
+pub tcm_handle: __u32,
+pub tcm_parent: __u32,
+pub tcm_info: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct nduseroptmsg {
+pub nduseropt_family: crate::ctypes::c_uchar,
+pub nduseropt_pad1: crate::ctypes::c_uchar,
+pub nduseropt_opts_len: crate::ctypes::c_ushort,
+pub nduseropt_ifindex: crate::ctypes::c_int,
+pub nduseropt_icmp_type: __u8,
+pub nduseropt_icmp_code: __u8,
+pub nduseropt_pad2: crate::ctypes::c_ushort,
+pub nduseropt_pad3: crate::ctypes::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tcamsg {
+pub tca_family: crate::ctypes::c_uchar,
+pub tca__pad1: crate::ctypes::c_uchar,
+pub tca__pad2: crate::ctypes::c_ushort,
+}
+pub const _K_SS_MAXSIZE: u32 = 128;
+pub const SOCK_SNDBUF_LOCK: u32 = 1;
+pub const SOCK_RCVBUF_LOCK: u32 = 2;
+pub const SOCK_BUF_LOCK_MASK: u32 = 3;
+pub const SOCK_TXREHASH_DEFAULT: u32 = 255;
+pub const SOCK_TXREHASH_DISABLED: u32 = 0;
+pub const SOCK_TXREHASH_ENABLED: u32 = 1;
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+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_TCP_USEC_TS: u32 = 16;
+pub const RTAX_FEATURE_MASK: u32 = 31;
+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_DPLL_PIN: _bindgen_ty_2 = _bindgen_ty_2::IFLA_DPLL_PIN;
+pub const IFLA_MAX_PACING_OFFLOAD_HORIZON: _bindgen_ty_2 = _bindgen_ty_2::IFLA_MAX_PACING_OFFLOAD_HORIZON;
+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_FDB_N_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_N_LEARNED;
+pub const IFLA_BR_FDB_MAX_LEARNED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_MAX_LEARNED;
+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_NEIGH_VLAN_SUPPRESS: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_NEIGH_VLAN_SUPPRESS;
+pub const IFLA_BRPORT_BACKUP_NHID: _bindgen_ty_8 = _bindgen_ty_8::IFLA_BRPORT_BACKUP_NHID;
+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_BC_CUTOFF: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_CUTOFF;
+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 IFLA_NETKIT_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_UNSPEC;
+pub const IFLA_NETKIT_PEER_INFO: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_INFO;
+pub const IFLA_NETKIT_PRIMARY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PRIMARY;
+pub const IFLA_NETKIT_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_POLICY;
+pub const IFLA_NETKIT_PEER_POLICY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_POLICY;
+pub const IFLA_NETKIT_MODE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_MODE;
+pub const IFLA_NETKIT_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_SCRUB;
+pub const IFLA_NETKIT_PEER_SCRUB: _bindgen_ty_18 = _bindgen_ty_18::IFLA_NETKIT_PEER_SCRUB;
+pub const __IFLA_NETKIT_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_NETKIT_MAX;
+pub const VNIFILTER_ENTRY_STATS_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_UNSPEC;
+pub const VNIFILTER_ENTRY_STATS_RX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_RX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_RX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_RX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_RX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_TX_BYTES: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_BYTES;
+pub const VNIFILTER_ENTRY_STATS_TX_PKTS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_PKTS;
+pub const VNIFILTER_ENTRY_STATS_TX_DROPS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_DROPS;
+pub const VNIFILTER_ENTRY_STATS_TX_ERRORS: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_TX_ERRORS;
+pub const VNIFILTER_ENTRY_STATS_PAD: _bindgen_ty_19 = _bindgen_ty_19::VNIFILTER_ENTRY_STATS_PAD;
+pub const __VNIFILTER_ENTRY_STATS_MAX: _bindgen_ty_19 = _bindgen_ty_19::__VNIFILTER_ENTRY_STATS_MAX;
+pub const VXLAN_VNIFILTER_ENTRY_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY_START: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_START;
+pub const VXLAN_VNIFILTER_ENTRY_END: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_END;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP;
+pub const VXLAN_VNIFILTER_ENTRY_GROUP6: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_GROUP6;
+pub const VXLAN_VNIFILTER_ENTRY_STATS: _bindgen_ty_20 = _bindgen_ty_20::VXLAN_VNIFILTER_ENTRY_STATS;
+pub const __VXLAN_VNIFILTER_ENTRY_MAX: _bindgen_ty_20 = _bindgen_ty_20::__VXLAN_VNIFILTER_ENTRY_MAX;
+pub const VXLAN_VNIFILTER_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_UNSPEC;
+pub const VXLAN_VNIFILTER_ENTRY: _bindgen_ty_21 = _bindgen_ty_21::VXLAN_VNIFILTER_ENTRY;
+pub const __VXLAN_VNIFILTER_MAX: _bindgen_ty_21 = _bindgen_ty_21::__VXLAN_VNIFILTER_MAX;
+pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UNSPEC;
+pub const IFLA_VXLAN_ID: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_ID;
+pub const IFLA_VXLAN_GROUP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP;
+pub const IFLA_VXLAN_LINK: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LINK;
+pub const IFLA_VXLAN_LOCAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL;
+pub const IFLA_VXLAN_TTL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL;
+pub const IFLA_VXLAN_TOS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TOS;
+pub const IFLA_VXLAN_LEARNING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LEARNING;
+pub const IFLA_VXLAN_AGEING: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_AGEING;
+pub const IFLA_VXLAN_LIMIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LIMIT;
+pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT_RANGE;
+pub const IFLA_VXLAN_PROXY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PROXY;
+pub const IFLA_VXLAN_RSC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_RSC;
+pub const IFLA_VXLAN_L2MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L2MISS;
+pub const IFLA_VXLAN_L3MISS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_L3MISS;
+pub const IFLA_VXLAN_PORT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_PORT;
+pub const IFLA_VXLAN_GROUP6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GROUP6;
+pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCAL6;
+pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_CSUM;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_TX;
+pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_UDP_ZERO_CSUM6_RX;
+pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_TX;
+pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_RX;
+pub const IFLA_VXLAN_GBP: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GBP;
+pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_REMCSUM_NOPARTIAL;
+pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_COLLECT_METADATA;
+pub const IFLA_VXLAN_LABEL: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL;
+pub const IFLA_VXLAN_GPE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_GPE;
+pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_TTL_INHERIT;
+pub const IFLA_VXLAN_DF: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_DF;
+pub const IFLA_VXLAN_VNIFILTER: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_VNIFILTER;
+pub const IFLA_VXLAN_LOCALBYPASS: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LOCALBYPASS;
+pub const IFLA_VXLAN_LABEL_POLICY: _bindgen_ty_22 = _bindgen_ty_22::IFLA_VXLAN_LABEL_POLICY;
+pub const __IFLA_VXLAN_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_VXLAN_MAX;
+pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UNSPEC;
+pub const IFLA_GENEVE_ID: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_ID;
+pub const IFLA_GENEVE_REMOTE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE;
+pub const IFLA_GENEVE_TTL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL;
+pub const IFLA_GENEVE_TOS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TOS;
+pub const IFLA_GENEVE_PORT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_PORT;
+pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_COLLECT_METADATA;
+pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_REMOTE6;
+pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_CSUM;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_TX;
+pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_UDP_ZERO_CSUM6_RX;
+pub const IFLA_GENEVE_LABEL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_LABEL;
+pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_TTL_INHERIT;
+pub const IFLA_GENEVE_DF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_DF;
+pub const IFLA_GENEVE_INNER_PROTO_INHERIT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_GENEVE_INNER_PROTO_INHERIT;
+pub const __IFLA_GENEVE_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_GENEVE_MAX;
+pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_UNSPEC;
+pub const IFLA_BAREUDP_PORT: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_PORT;
+pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_ETHERTYPE;
+pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_SRCPORT_MIN;
+pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BAREUDP_MULTIPROTO_MODE;
+pub const __IFLA_BAREUDP_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BAREUDP_MAX;
+pub const IFLA_PPP_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_UNSPEC;
+pub const IFLA_PPP_DEV_FD: _bindgen_ty_25 = _bindgen_ty_25::IFLA_PPP_DEV_FD;
+pub const __IFLA_PPP_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_PPP_MAX;
+pub const IFLA_GTP_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_UNSPEC;
+pub const IFLA_GTP_FD0: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD0;
+pub const IFLA_GTP_FD1: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_FD1;
+pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_PDP_HASHSIZE;
+pub const IFLA_GTP_ROLE: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_ROLE;
+pub const IFLA_GTP_CREATE_SOCKETS: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_CREATE_SOCKETS;
+pub const IFLA_GTP_RESTART_COUNT: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_RESTART_COUNT;
+pub const IFLA_GTP_LOCAL: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL;
+pub const IFLA_GTP_LOCAL6: _bindgen_ty_26 = _bindgen_ty_26::IFLA_GTP_LOCAL6;
+pub const __IFLA_GTP_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_GTP_MAX;
+pub const IFLA_BOND_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UNSPEC;
+pub const IFLA_BOND_MODE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MODE;
+pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ACTIVE_SLAVE;
+pub const IFLA_BOND_MIIMON: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIIMON;
+pub const IFLA_BOND_UPDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_UPDELAY;
+pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_DOWNDELAY;
+pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_USE_CARRIER;
+pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_INTERVAL;
+pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_IP_TARGET;
+pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_VALIDATE;
+pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ARP_ALL_TARGETS;
+pub const IFLA_BOND_PRIMARY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY;
+pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PRIMARY_RESELECT;
+pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_FAIL_OVER_MAC;
+pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_XMIT_HASH_POLICY;
+pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_RESEND_IGMP;
+pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NUM_PEER_NOTIF;
+pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_ALL_SLAVES_ACTIVE;
+pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MIN_LINKS;
+pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_LP_INTERVAL;
+pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PACKETS_PER_SLAVE;
+pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_RATE;
+pub const IFLA_BOND_AD_SELECT: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_SELECT;
+pub const IFLA_BOND_AD_INFO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_INFO;
+pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYS_PRIO;
+pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_USER_PORT_KEY;
+pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_ACTOR_SYSTEM;
+pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_TLB_DYNAMIC_LB;
+pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_PEER_NOTIF_DELAY;
+pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_AD_LACP_ACTIVE;
+pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_MISSED_MAX;
+pub const IFLA_BOND_NS_IP6_TARGET: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_NS_IP6_TARGET;
+pub const IFLA_BOND_COUPLED_CONTROL: _bindgen_ty_27 = _bindgen_ty_27::IFLA_BOND_COUPLED_CONTROL;
+pub const __IFLA_BOND_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_BOND_MAX;
+pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_UNSPEC;
+pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_AGGREGATOR;
+pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_NUM_PORTS;
+pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_ACTOR_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_KEY;
+pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_BOND_AD_INFO_PARTNER_MAC;
+pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_BOND_AD_INFO_MAX;
+pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_UNSPEC;
+pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_STATE;
+pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_MII_STATUS;
+pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT;
+pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PERM_HWADDR;
+pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_QUEUE_ID;
+pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID;
+pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE;
+pub const IFLA_BOND_SLAVE_PRIO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_BOND_SLAVE_PRIO;
+pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_BOND_SLAVE_MAX;
+pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO_UNSPEC;
+pub const IFLA_VF_INFO: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_INFO;
+pub const __IFLA_VF_INFO_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_INFO_MAX;
+pub const IFLA_VF_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_UNSPEC;
+pub const IFLA_VF_MAC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_MAC;
+pub const IFLA_VF_VLAN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN;
+pub const IFLA_VF_TX_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TX_RATE;
+pub const IFLA_VF_SPOOFCHK: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_SPOOFCHK;
+pub const IFLA_VF_LINK_STATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_LINK_STATE;
+pub const IFLA_VF_RATE: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RATE;
+pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_RSS_QUERY_EN;
+pub const IFLA_VF_STATS: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_STATS;
+pub const IFLA_VF_TRUST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_TRUST;
+pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_NODE_GUID;
+pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_IB_PORT_GUID;
+pub const IFLA_VF_VLAN_LIST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_VLAN_LIST;
+pub const IFLA_VF_BROADCAST: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_BROADCAST;
+pub const __IFLA_VF_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_MAX;
+pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO_UNSPEC;
+pub const IFLA_VF_VLAN_INFO: _bindgen_ty_32 = _bindgen_ty_32::IFLA_VF_VLAN_INFO;
+pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_VF_VLAN_INFO_MAX;
+pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_AUTO;
+pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_ENABLE;
+pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_33 = _bindgen_ty_33::IFLA_VF_LINK_STATE_DISABLE;
+pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_33 = _bindgen_ty_33::__IFLA_VF_LINK_STATE_MAX;
+pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_PACKETS;
+pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_PACKETS;
+pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_BYTES;
+pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_BYTES;
+pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_BROADCAST;
+pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_MULTICAST;
+pub const IFLA_VF_STATS_PAD: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_PAD;
+pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_RX_DROPPED;
+pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_34 = _bindgen_ty_34::IFLA_VF_STATS_TX_DROPPED;
+pub const __IFLA_VF_STATS_MAX: _bindgen_ty_34 = _bindgen_ty_34::__IFLA_VF_STATS_MAX;
+pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT_UNSPEC;
+pub const IFLA_VF_PORT: _bindgen_ty_35 = _bindgen_ty_35::IFLA_VF_PORT;
+pub const __IFLA_VF_PORT_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_VF_PORT_MAX;
+pub const IFLA_PORT_UNSPEC: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_UNSPEC;
+pub const IFLA_PORT_VF: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VF;
+pub const IFLA_PORT_PROFILE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_PROFILE;
+pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_VSI_TYPE;
+pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_INSTANCE_UUID;
+pub const IFLA_PORT_HOST_UUID: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_HOST_UUID;
+pub const IFLA_PORT_REQUEST: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_REQUEST;
+pub const IFLA_PORT_RESPONSE: _bindgen_ty_36 = _bindgen_ty_36::IFLA_PORT_RESPONSE;
+pub const __IFLA_PORT_MAX: _bindgen_ty_36 = _bindgen_ty_36::__IFLA_PORT_MAX;
+pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE;
+pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_PREASSOCIATE_RR;
+pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_ASSOCIATE;
+pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_37 = _bindgen_ty_37::PORT_REQUEST_DISASSOCIATE;
+pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_SUCCESS;
+pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INVALID_FORMAT;
+pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_UNUSED_VTID;
+pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VIOLATION;
+pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION;
+pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_38 = _bindgen_ty_38::PORT_VDP_RESPONSE_OUT_OF_SYNC;
+pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_SUCCESS;
+pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INPROGRESS;
+pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INVALID;
+pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_BADSTATE;
+pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES;
+pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_38 = _bindgen_ty_38::PORT_PROFILE_RESPONSE_ERROR;
+pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UNSPEC;
+pub const IFLA_IPOIB_PKEY: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_PKEY;
+pub const IFLA_IPOIB_MODE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_MODE;
+pub const IFLA_IPOIB_UMCAST: _bindgen_ty_39 = _bindgen_ty_39::IFLA_IPOIB_UMCAST;
+pub const __IFLA_IPOIB_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_IPOIB_MAX;
+pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_DATAGRAM;
+pub const IPOIB_MODE_CONNECTED: _bindgen_ty_40 = _bindgen_ty_40::IPOIB_MODE_CONNECTED;
+pub const HSR_PROTOCOL_HSR: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_HSR;
+pub const HSR_PROTOCOL_PRP: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_PRP;
+pub const HSR_PROTOCOL_MAX: _bindgen_ty_41 = _bindgen_ty_41::HSR_PROTOCOL_MAX;
+pub const IFLA_HSR_UNSPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_UNSPEC;
+pub const IFLA_HSR_SLAVE1: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE1;
+pub const IFLA_HSR_SLAVE2: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SLAVE2;
+pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_MULTICAST_SPEC;
+pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SUPERVISION_ADDR;
+pub const IFLA_HSR_SEQ_NR: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_SEQ_NR;
+pub const IFLA_HSR_VERSION: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_VERSION;
+pub const IFLA_HSR_PROTOCOL: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_PROTOCOL;
+pub const IFLA_HSR_INTERLINK: _bindgen_ty_42 = _bindgen_ty_42::IFLA_HSR_INTERLINK;
+pub const __IFLA_HSR_MAX: _bindgen_ty_42 = _bindgen_ty_42::__IFLA_HSR_MAX;
+pub const IFLA_STATS_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_UNSPEC;
+pub const IFLA_STATS_LINK_64: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_64;
+pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS;
+pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_XSTATS_SLAVE;
+pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_LINK_OFFLOAD_XSTATS;
+pub const IFLA_STATS_AF_SPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_STATS_AF_SPEC;
+pub const __IFLA_STATS_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_STATS_MAX;
+pub const IFLA_STATS_GETSET_UNSPEC: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GETSET_UNSPEC;
+pub const IFLA_STATS_GET_FILTERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_GET_FILTERS;
+pub const IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_STATS_GETSET_MAX: _bindgen_ty_44 = _bindgen_ty_44::__IFLA_STATS_GETSET_MAX;
+pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_UNSPEC;
+pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BRIDGE;
+pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_45 = _bindgen_ty_45::LINK_XSTATS_TYPE_BOND;
+pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_45 = _bindgen_ty_45::__LINK_XSTATS_TYPE_MAX;
+pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_CPU_HIT;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_HW_S_INFO;
+pub const IFLA_OFFLOAD_XSTATS_L3_STATS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_OFFLOAD_XSTATS_L3_STATS;
+pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_OFFLOAD_XSTATS_MAX;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST;
+pub const IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED: _bindgen_ty_47 = _bindgen_ty_47::IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED;
+pub const __IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_NONE;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_DRV;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_SKB;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_HW;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = _bindgen_ty_48::XDP_ATTACHED_MULTI;
+pub const IFLA_XDP_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_UNSPEC;
+pub const IFLA_XDP_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FD;
+pub const IFLA_XDP_ATTACHED: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_ATTACHED;
+pub const IFLA_XDP_FLAGS: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_FLAGS;
+pub const IFLA_XDP_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_PROG_ID;
+pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_DRV_PROG_ID;
+pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_SKB_PROG_ID;
+pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_HW_PROG_ID;
+pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_49 = _bindgen_ty_49::IFLA_XDP_EXPECTED_FD;
+pub const __IFLA_XDP_MAX: _bindgen_ty_49 = _bindgen_ty_49::__IFLA_XDP_MAX;
+pub const IFLA_EVENT_NONE: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NONE;
+pub const IFLA_EVENT_REBOOT: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_REBOOT;
+pub const IFLA_EVENT_FEATURES: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_FEATURES;
+pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_FAILOVER;
+pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_NOTIFY_PEERS;
+pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_IGMP_RESEND;
+pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_50 = _bindgen_ty_50::IFLA_EVENT_BONDING_OPTIONS;
+pub const IFLA_TUN_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_UNSPEC;
+pub const IFLA_TUN_OWNER: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_OWNER;
+pub const IFLA_TUN_GROUP: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_GROUP;
+pub const IFLA_TUN_TYPE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_TYPE;
+pub const IFLA_TUN_PI: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PI;
+pub const IFLA_TUN_VNET_HDR: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_VNET_HDR;
+pub const IFLA_TUN_PERSIST: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_PERSIST;
+pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_MULTI_QUEUE;
+pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_QUEUES;
+pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_51 = _bindgen_ty_51::IFLA_TUN_NUM_DISABLED_QUEUES;
+pub const __IFLA_TUN_MAX: _bindgen_ty_51 = _bindgen_ty_51::__IFLA_TUN_MAX;
+pub const IFLA_RMNET_UNSPEC: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_UNSPEC;
+pub const IFLA_RMNET_MUX_ID: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_MUX_ID;
+pub const IFLA_RMNET_FLAGS: _bindgen_ty_52 = _bindgen_ty_52::IFLA_RMNET_FLAGS;
+pub const __IFLA_RMNET_MAX: _bindgen_ty_52 = _bindgen_ty_52::__IFLA_RMNET_MAX;
+pub const IFLA_MCTP_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_UNSPEC;
+pub const IFLA_MCTP_NET: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_NET;
+pub const IFLA_MCTP_PHYS_BINDING: _bindgen_ty_53 = _bindgen_ty_53::IFLA_MCTP_PHYS_BINDING;
+pub const __IFLA_MCTP_MAX: _bindgen_ty_53 = _bindgen_ty_53::__IFLA_MCTP_MAX;
+pub const IFLA_DSA_UNSPEC: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_UNSPEC;
+pub const IFLA_DSA_CONDUIT: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const IFLA_DSA_MASTER: _bindgen_ty_54 = _bindgen_ty_54::IFLA_DSA_CONDUIT;
+pub const __IFLA_DSA_MAX: _bindgen_ty_54 = _bindgen_ty_54::__IFLA_DSA_MAX;
+pub const IFA_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::IFA_UNSPEC;
+pub const IFA_ADDRESS: _bindgen_ty_55 = _bindgen_ty_55::IFA_ADDRESS;
+pub const IFA_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LOCAL;
+pub const IFA_LABEL: _bindgen_ty_55 = _bindgen_ty_55::IFA_LABEL;
+pub const IFA_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_BROADCAST;
+pub const IFA_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_ANYCAST;
+pub const IFA_CACHEINFO: _bindgen_ty_55 = _bindgen_ty_55::IFA_CACHEINFO;
+pub const IFA_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::IFA_MULTICAST;
+pub const IFA_FLAGS: _bindgen_ty_55 = _bindgen_ty_55::IFA_FLAGS;
+pub const IFA_RT_PRIORITY: _bindgen_ty_55 = _bindgen_ty_55::IFA_RT_PRIORITY;
+pub const IFA_TARGET_NETNSID: _bindgen_ty_55 = _bindgen_ty_55::IFA_TARGET_NETNSID;
+pub const IFA_PROTO: _bindgen_ty_55 = _bindgen_ty_55::IFA_PROTO;
+pub const __IFA_MAX: _bindgen_ty_55 = _bindgen_ty_55::__IFA_MAX;
+pub const NDA_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::NDA_UNSPEC;
+pub const NDA_DST: _bindgen_ty_56 = _bindgen_ty_56::NDA_DST;
+pub const NDA_LLADDR: _bindgen_ty_56 = _bindgen_ty_56::NDA_LLADDR;
+pub const NDA_CACHEINFO: _bindgen_ty_56 = _bindgen_ty_56::NDA_CACHEINFO;
+pub const NDA_PROBES: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROBES;
+pub const NDA_VLAN: _bindgen_ty_56 = _bindgen_ty_56::NDA_VLAN;
+pub const NDA_PORT: _bindgen_ty_56 = _bindgen_ty_56::NDA_PORT;
+pub const NDA_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_VNI;
+pub const NDA_IFINDEX: _bindgen_ty_56 = _bindgen_ty_56::NDA_IFINDEX;
+pub const NDA_MASTER: _bindgen_ty_56 = _bindgen_ty_56::NDA_MASTER;
+pub const NDA_LINK_NETNSID: _bindgen_ty_56 = _bindgen_ty_56::NDA_LINK_NETNSID;
+pub const NDA_SRC_VNI: _bindgen_ty_56 = _bindgen_ty_56::NDA_SRC_VNI;
+pub const NDA_PROTOCOL: _bindgen_ty_56 = _bindgen_ty_56::NDA_PROTOCOL;
+pub const NDA_NH_ID: _bindgen_ty_56 = _bindgen_ty_56::NDA_NH_ID;
+pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_56 = _bindgen_ty_56::NDA_FDB_EXT_ATTRS;
+pub const NDA_FLAGS_EXT: _bindgen_ty_56 = _bindgen_ty_56::NDA_FLAGS_EXT;
+pub const NDA_NDM_STATE_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_STATE_MASK;
+pub const NDA_NDM_FLAGS_MASK: _bindgen_ty_56 = _bindgen_ty_56::NDA_NDM_FLAGS_MASK;
+pub const __NDA_MAX: _bindgen_ty_56 = _bindgen_ty_56::__NDA_MAX;
+pub const NDTPA_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UNSPEC;
+pub const NDTPA_IFINDEX: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_IFINDEX;
+pub const NDTPA_REFCNT: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REFCNT;
+pub const NDTPA_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_REACHABLE_TIME;
+pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_BASE_REACHABLE_TIME;
+pub const NDTPA_RETRANS_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_RETRANS_TIME;
+pub const NDTPA_GC_STALETIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_GC_STALETIME;
+pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_DELAY_PROBE_TIME;
+pub const NDTPA_QUEUE_LEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LEN;
+pub const NDTPA_APP_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_APP_PROBES;
+pub const NDTPA_UCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_UCAST_PROBES;
+pub const NDTPA_MCAST_PROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_PROBES;
+pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_ANYCAST_DELAY;
+pub const NDTPA_PROXY_DELAY: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_DELAY;
+pub const NDTPA_PROXY_QLEN: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PROXY_QLEN;
+pub const NDTPA_LOCKTIME: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_LOCKTIME;
+pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_QUEUE_LENBYTES;
+pub const NDTPA_MCAST_REPROBES: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_MCAST_REPROBES;
+pub const NDTPA_PAD: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_PAD;
+pub const NDTPA_INTERVAL_PROBE_TIME_MS: _bindgen_ty_57 = _bindgen_ty_57::NDTPA_INTERVAL_PROBE_TIME_MS;
+pub const __NDTPA_MAX: _bindgen_ty_57 = _bindgen_ty_57::__NDTPA_MAX;
+pub const NDTA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::NDTA_UNSPEC;
+pub const NDTA_NAME: _bindgen_ty_58 = _bindgen_ty_58::NDTA_NAME;
+pub const NDTA_THRESH1: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH1;
+pub const NDTA_THRESH2: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH2;
+pub const NDTA_THRESH3: _bindgen_ty_58 = _bindgen_ty_58::NDTA_THRESH3;
+pub const NDTA_CONFIG: _bindgen_ty_58 = _bindgen_ty_58::NDTA_CONFIG;
+pub const NDTA_PARMS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PARMS;
+pub const NDTA_STATS: _bindgen_ty_58 = _bindgen_ty_58::NDTA_STATS;
+pub const NDTA_GC_INTERVAL: _bindgen_ty_58 = _bindgen_ty_58::NDTA_GC_INTERVAL;
+pub const NDTA_PAD: _bindgen_ty_58 = _bindgen_ty_58::NDTA_PAD;
+pub const __NDTA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__NDTA_MAX;
+pub const FDB_NOTIFY_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_BIT;
+pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_59 = _bindgen_ty_59::FDB_NOTIFY_INACTIVE_BIT;
+pub const NFEA_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::NFEA_UNSPEC;
+pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_60 = _bindgen_ty_60::NFEA_ACTIVITY_NOTIFY;
+pub const NFEA_DONT_REFRESH: _bindgen_ty_60 = _bindgen_ty_60::NFEA_DONT_REFRESH;
+pub const __NFEA_MAX: _bindgen_ty_60 = _bindgen_ty_60::__NFEA_MAX;
+pub const RTM_BASE: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_NEWLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_BASE;
+pub const RTM_DELLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINK;
+pub const RTM_GETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINK;
+pub const RTM_SETLINK: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETLINK;
+pub const RTM_NEWADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDR;
+pub const RTM_DELADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDR;
+pub const RTM_GETADDR: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDR;
+pub const RTM_NEWROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWROUTE;
+pub const RTM_DELROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELROUTE;
+pub const RTM_GETROUTE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETROUTE;
+pub const RTM_NEWNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGH;
+pub const RTM_DELNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEIGH;
+pub const RTM_GETNEIGH: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGH;
+pub const RTM_NEWRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWRULE;
+pub const RTM_DELRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELRULE;
+pub const RTM_GETRULE: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETRULE;
+pub const RTM_NEWQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWQDISC;
+pub const RTM_DELQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELQDISC;
+pub const RTM_GETQDISC: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETQDISC;
+pub const RTM_NEWTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTCLASS;
+pub const RTM_DELTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTCLASS;
+pub const RTM_GETTCLASS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTCLASS;
+pub const RTM_NEWTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTFILTER;
+pub const RTM_DELTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTFILTER;
+pub const RTM_GETTFILTER: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTFILTER;
+pub const RTM_NEWACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWACTION;
+pub const RTM_DELACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELACTION;
+pub const RTM_GETACTION: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETACTION;
+pub const RTM_NEWPREFIX: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWPREFIX;
+pub const RTM_GETMULTICAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMULTICAST;
+pub const RTM_GETANYCAST: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETANYCAST;
+pub const RTM_NEWNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEIGHTBL;
+pub const RTM_GETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEIGHTBL;
+pub const RTM_SETNEIGHTBL: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETNEIGHTBL;
+pub const RTM_NEWNDUSEROPT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNDUSEROPT;
+pub const RTM_NEWADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWADDRLABEL;
+pub const RTM_DELADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELADDRLABEL;
+pub const RTM_GETADDRLABEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETADDRLABEL;
+pub const RTM_GETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETDCB;
+pub const RTM_SETDCB: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETDCB;
+pub const RTM_NEWNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNETCONF;
+pub const RTM_DELNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNETCONF;
+pub const RTM_GETNETCONF: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNETCONF;
+pub const RTM_NEWMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWMDB;
+pub const RTM_DELMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELMDB;
+pub const RTM_GETMDB: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETMDB;
+pub const RTM_NEWNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNSID;
+pub const RTM_DELNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNSID;
+pub const RTM_GETNSID: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNSID;
+pub const RTM_NEWSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWSTATS;
+pub const RTM_GETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETSTATS;
+pub const RTM_SETSTATS: _bindgen_ty_61 = _bindgen_ty_61::RTM_SETSTATS;
+pub const RTM_NEWCACHEREPORT: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCACHEREPORT;
+pub const RTM_NEWCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWCHAIN;
+pub const RTM_DELCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELCHAIN;
+pub const RTM_GETCHAIN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETCHAIN;
+pub const RTM_NEWNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOP;
+pub const RTM_DELNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOP;
+pub const RTM_GETNEXTHOP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOP;
+pub const RTM_NEWLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWLINKPROP;
+pub const RTM_DELLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELLINKPROP;
+pub const RTM_GETLINKPROP: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETLINKPROP;
+pub const RTM_NEWVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWVLAN;
+pub const RTM_DELVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELVLAN;
+pub const RTM_GETVLAN: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETVLAN;
+pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWNEXTHOPBUCKET;
+pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELNEXTHOPBUCKET;
+pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETNEXTHOPBUCKET;
+pub const RTM_NEWTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_NEWTUNNEL;
+pub const RTM_DELTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_DELTUNNEL;
+pub const RTM_GETTUNNEL: _bindgen_ty_61 = _bindgen_ty_61::RTM_GETTUNNEL;
+pub const __RTM_MAX: _bindgen_ty_61 = _bindgen_ty_61::__RTM_MAX;
+pub const RTN_UNSPEC: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNSPEC;
+pub const RTN_UNICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNICAST;
+pub const RTN_LOCAL: _bindgen_ty_62 = _bindgen_ty_62::RTN_LOCAL;
+pub const RTN_BROADCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_BROADCAST;
+pub const RTN_ANYCAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_ANYCAST;
+pub const RTN_MULTICAST: _bindgen_ty_62 = _bindgen_ty_62::RTN_MULTICAST;
+pub const RTN_BLACKHOLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_BLACKHOLE;
+pub const RTN_UNREACHABLE: _bindgen_ty_62 = _bindgen_ty_62::RTN_UNREACHABLE;
+pub const RTN_PROHIBIT: _bindgen_ty_62 = _bindgen_ty_62::RTN_PROHIBIT;
+pub const RTN_THROW: _bindgen_ty_62 = _bindgen_ty_62::RTN_THROW;
+pub const RTN_NAT: _bindgen_ty_62 = _bindgen_ty_62::RTN_NAT;
+pub const RTN_XRESOLVE: _bindgen_ty_62 = _bindgen_ty_62::RTN_XRESOLVE;
+pub const __RTN_MAX: _bindgen_ty_62 = _bindgen_ty_62::__RTN_MAX;
+pub const RTAX_UNSPEC: _bindgen_ty_63 = _bindgen_ty_63::RTAX_UNSPEC;
+pub const RTAX_LOCK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_LOCK;
+pub const RTAX_MTU: _bindgen_ty_63 = _bindgen_ty_63::RTAX_MTU;
+pub const RTAX_WINDOW: _bindgen_ty_63 = _bindgen_ty_63::RTAX_WINDOW;
+pub const RTAX_RTT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTT;
+pub const RTAX_RTTVAR: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTTVAR;
+pub const RTAX_SSTHRESH: _bindgen_ty_63 = _bindgen_ty_63::RTAX_SSTHRESH;
+pub const RTAX_CWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CWND;
+pub const RTAX_ADVMSS: _bindgen_ty_63 = _bindgen_ty_63::RTAX_ADVMSS;
+pub const RTAX_REORDERING: _bindgen_ty_63 = _bindgen_ty_63::RTAX_REORDERING;
+pub const RTAX_HOPLIMIT: _bindgen_ty_63 = _bindgen_ty_63::RTAX_HOPLIMIT;
+pub const RTAX_INITCWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITCWND;
+pub const RTAX_FEATURES: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FEATURES;
+pub const RTAX_RTO_MIN: _bindgen_ty_63 = _bindgen_ty_63::RTAX_RTO_MIN;
+pub const RTAX_INITRWND: _bindgen_ty_63 = _bindgen_ty_63::RTAX_INITRWND;
+pub const RTAX_QUICKACK: _bindgen_ty_63 = _bindgen_ty_63::RTAX_QUICKACK;
+pub const RTAX_CC_ALGO: _bindgen_ty_63 = _bindgen_ty_63::RTAX_CC_ALGO;
+pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_63 = _bindgen_ty_63::RTAX_FASTOPEN_NO_COOKIE;
+pub const __RTAX_MAX: _bindgen_ty_63 = _bindgen_ty_63::__RTAX_MAX;
+pub const PREFIX_UNSPEC: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_UNSPEC;
+pub const PREFIX_ADDRESS: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_ADDRESS;
+pub const PREFIX_CACHEINFO: _bindgen_ty_64 = _bindgen_ty_64::PREFIX_CACHEINFO;
+pub const __PREFIX_MAX: _bindgen_ty_64 = _bindgen_ty_64::__PREFIX_MAX;
+pub const TCA_UNSPEC: _bindgen_ty_65 = _bindgen_ty_65::TCA_UNSPEC;
+pub const TCA_KIND: _bindgen_ty_65 = _bindgen_ty_65::TCA_KIND;
+pub const TCA_OPTIONS: _bindgen_ty_65 = _bindgen_ty_65::TCA_OPTIONS;
+pub const TCA_STATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS;
+pub const TCA_XSTATS: _bindgen_ty_65 = _bindgen_ty_65::TCA_XSTATS;
+pub const TCA_RATE: _bindgen_ty_65 = _bindgen_ty_65::TCA_RATE;
+pub const TCA_FCNT: _bindgen_ty_65 = _bindgen_ty_65::TCA_FCNT;
+pub const TCA_STATS2: _bindgen_ty_65 = _bindgen_ty_65::TCA_STATS2;
+pub const TCA_STAB: _bindgen_ty_65 = _bindgen_ty_65::TCA_STAB;
+pub const TCA_PAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_PAD;
+pub const TCA_DUMP_INVISIBLE: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_INVISIBLE;
+pub const TCA_CHAIN: _bindgen_ty_65 = _bindgen_ty_65::TCA_CHAIN;
+pub const TCA_HW_OFFLOAD: _bindgen_ty_65 = _bindgen_ty_65::TCA_HW_OFFLOAD;
+pub const TCA_INGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_INGRESS_BLOCK;
+pub const TCA_EGRESS_BLOCK: _bindgen_ty_65 = _bindgen_ty_65::TCA_EGRESS_BLOCK;
+pub const TCA_DUMP_FLAGS: _bindgen_ty_65 = _bindgen_ty_65::TCA_DUMP_FLAGS;
+pub const TCA_EXT_WARN_MSG: _bindgen_ty_65 = _bindgen_ty_65::TCA_EXT_WARN_MSG;
+pub const __TCA_MAX: _bindgen_ty_65 = _bindgen_ty_65::__TCA_MAX;
+pub const NDUSEROPT_UNSPEC: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_UNSPEC;
+pub const NDUSEROPT_SRCADDR: _bindgen_ty_66 = _bindgen_ty_66::NDUSEROPT_SRCADDR;
+pub const __NDUSEROPT_MAX: _bindgen_ty_66 = _bindgen_ty_66::__NDUSEROPT_MAX;
+pub const TCA_ROOT_UNSPEC: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_UNSPEC;
+pub const TCA_ROOT_TAB: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TAB;
+pub const TCA_ROOT_FLAGS: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_FLAGS;
+pub const TCA_ROOT_COUNT: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_COUNT;
+pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_TIME_DELTA;
+pub const TCA_ROOT_EXT_WARN_MSG: _bindgen_ty_67 = _bindgen_ty_67::TCA_ROOT_EXT_WARN_MSG;
+pub const __TCA_ROOT_MAX: _bindgen_ty_67 = _bindgen_ty_67::__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,
+NL_ATTR_TYPE_SINT = 16,
+NL_ATTR_TYPE_UINT = 17,
+}
+#[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_DPLL_PIN = 65,
+IFLA_MAX_PACING_OFFLOAD_HORIZON = 66,
+__IFLA_MAX = 67,
+}
+#[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_FDB_N_LEARNED = 48,
+IFLA_BR_FDB_MAX_LEARNED = 49,
+__IFLA_BR_MAX = 50,
+}
+#[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_NEIGH_VLAN_SUPPRESS = 43,
+IFLA_BRPORT_BACKUP_NHID = 44,
+__IFLA_BRPORT_MAX = 45,
+}
+#[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_BC_CUTOFF = 9,
+__IFLA_MACVLAN_MAX = 10,
+}
+#[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(i32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_action {
+NETKIT_NEXT = -1,
+NETKIT_PASS = 0,
+NETKIT_DROP = 2,
+NETKIT_REDIRECT = 7,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_mode {
+NETKIT_L2 = 0,
+NETKIT_L3 = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum netkit_scrub {
+NETKIT_SCRUB_NONE = 0,
+NETKIT_SCRUB_DEFAULT = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_18 {
+IFLA_NETKIT_UNSPEC = 0,
+IFLA_NETKIT_PEER_INFO = 1,
+IFLA_NETKIT_PRIMARY = 2,
+IFLA_NETKIT_POLICY = 3,
+IFLA_NETKIT_PEER_POLICY = 4,
+IFLA_NETKIT_MODE = 5,
+IFLA_NETKIT_SCRUB = 6,
+IFLA_NETKIT_PEER_SCRUB = 7,
+__IFLA_NETKIT_MAX = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_19 {
+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_20 {
+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_21 {
+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_22 {
+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_LOCALBYPASS = 31,
+IFLA_VXLAN_LABEL_POLICY = 32,
+__IFLA_VXLAN_MAX = 33,
+}
+#[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 ifla_vxlan_label_policy {
+VXLAN_LABEL_FIXED = 0,
+VXLAN_LABEL_INHERIT = 1,
+__VXLAN_LABEL_END = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_23 {
+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_24 {
+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_25 {
+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_26 {
+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_LOCAL = 7,
+IFLA_GTP_LOCAL6 = 8,
+__IFLA_GTP_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_27 {
+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_COUPLED_CONTROL = 32,
+__IFLA_BOND_MAX = 33,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_28 {
+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_29 {
+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_30 {
+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_31 {
+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_32 {
+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_33 {
+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_34 {
+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_35 {
+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_36 {
+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_37 {
+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_38 {
+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_39 {
+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_40 {
+IPOIB_MODE_DATAGRAM = 0,
+IPOIB_MODE_CONNECTED = 1,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_41 {
+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_42 {
+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_INTERLINK = 8,
+__IFLA_HSR_MAX = 9,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_43 {
+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_44 {
+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_45 {
+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_46 {
+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_47 {
+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_48 {
+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_49 {
+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_50 {
+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_51 {
+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_52 {
+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_53 {
+IFLA_MCTP_UNSPEC = 0,
+IFLA_MCTP_NET = 1,
+IFLA_MCTP_PHYS_BINDING = 2,
+__IFLA_MCTP_MAX = 3,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_54 {
+IFLA_DSA_UNSPEC = 0,
+IFLA_DSA_CONDUIT = 1,
+__IFLA_DSA_MAX = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_55 {
+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_56 {
+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_57 {
+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_58 {
+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_59 {
+FDB_NOTIFY_BIT = 1,
+FDB_NOTIFY_INACTIVE_BIT = 2,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_60 {
+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_61 {
+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_62 {
+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_63 {
+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_64 {
+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_65 {
+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_66 {
+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_67 {
+TCA_ROOT_UNSPEC = 0,
+TCA_ROOT_TAB = 1,
+TCA_ROOT_FLAGS = 2,
+TCA_ROOT_COUNT = 3,
+TCA_ROOT_TIME_DELTA = 4,
+TCA_ROOT_EXT_WARN_MSG = 5,
+__TCA_ROOT_MAX = 6,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __kernel_sockaddr_storage__bindgen_ty_1 {
+pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1,
+pub __align: *mut crate::ctypes::c_void,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union rta_session__bindgen_ty_1 {
+pub ports: rta_session__bindgen_ty_1__bindgen_ty_1,
+pub icmpt: rta_session__bindgen_ty_1__bindgen_ty_2,
+pub spi: __u32,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
+impl nlmsgerr_attrs {
+pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_MISS_NEST;
+}
+impl netlink_policy_type_attr {
+pub const NL_POLICY_TYPE_ATTR_MAX: netlink_policy_type_attr = netlink_policy_type_attr::NL_POLICY_TYPE_ATTR_MASK;
+}
+impl macsec_validation_type {
+pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT;
+}
+impl macsec_offload {
+pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC;
+}
+impl ifla_vxlan_df {
+pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT;
+}
+impl ifla_vxlan_label_policy {
+pub const VXLAN_LABEL_MAX: ifla_vxlan_label_policy = ifla_vxlan_label_policy::VXLAN_LABEL_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.9.4/src/x86_64/prctl.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/prctl.rs
new file mode 100644
index 0000000..e21d350
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/prctl.rs
@@ -0,0 +1,262 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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 __s128 = i128;
+pub type __u128 = u128;
+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 __BITS_PER_LONG_LONG: u32 = 64;
+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_PMLEN_SHIFT: u32 = 24;
+pub const PR_PMLEN_MASK: u32 = 2130706432;
+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_MDWE_NO_INHERIT: u32 = 2;
+pub const PR_GET_MDWE: u32 = 66;
+pub const PR_SET_VMA: u32 = 1398164801;
+pub const PR_SET_VMA_ANON_NAME: u32 = 0;
+pub const PR_GET_AUXV: u32 = 1096112214;
+pub const PR_SET_MEMORY_MERGE: u32 = 67;
+pub const PR_GET_MEMORY_MERGE: u32 = 68;
+pub const PR_RISCV_V_SET_CONTROL: u32 = 69;
+pub const PR_RISCV_V_GET_CONTROL: u32 = 70;
+pub const PR_RISCV_V_VSTATE_CTRL_DEFAULT: u32 = 0;
+pub const PR_RISCV_V_VSTATE_CTRL_OFF: u32 = 1;
+pub const PR_RISCV_V_VSTATE_CTRL_ON: u32 = 2;
+pub const PR_RISCV_V_VSTATE_CTRL_INHERIT: u32 = 16;
+pub const PR_RISCV_V_VSTATE_CTRL_CUR_MASK: u32 = 3;
+pub const PR_RISCV_V_VSTATE_CTRL_NEXT_MASK: u32 = 12;
+pub const PR_RISCV_V_VSTATE_CTRL_MASK: u32 = 31;
+pub const PR_RISCV_SET_ICACHE_FLUSH_CTX: u32 = 71;
+pub const PR_RISCV_CTX_SW_FENCEI_ON: u32 = 0;
+pub const PR_RISCV_CTX_SW_FENCEI_OFF: u32 = 1;
+pub const PR_RISCV_SCOPE_PER_PROCESS: u32 = 0;
+pub const PR_RISCV_SCOPE_PER_THREAD: u32 = 1;
+pub const PR_PPC_GET_DEXCR: u32 = 72;
+pub const PR_PPC_SET_DEXCR: u32 = 73;
+pub const PR_PPC_DEXCR_SBHE: u32 = 0;
+pub const PR_PPC_DEXCR_IBRTPD: u32 = 1;
+pub const PR_PPC_DEXCR_SRAPD: u32 = 2;
+pub const PR_PPC_DEXCR_NPHIE: u32 = 3;
+pub const PR_PPC_DEXCR_CTRL_EDITABLE: u32 = 1;
+pub const PR_PPC_DEXCR_CTRL_SET: u32 = 2;
+pub const PR_PPC_DEXCR_CTRL_CLEAR: u32 = 4;
+pub const PR_PPC_DEXCR_CTRL_SET_ONEXEC: u32 = 8;
+pub const PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC: u32 = 16;
+pub const PR_PPC_DEXCR_CTRL_MASK: u32 = 31;
+pub const PR_GET_SHADOW_STACK_STATUS: u32 = 74;
+pub const PR_SET_SHADOW_STACK_STATUS: u32 = 75;
+pub const PR_SHADOW_STACK_ENABLE: u32 = 1;
+pub const PR_SHADOW_STACK_WRITE: u32 = 2;
+pub const PR_SHADOW_STACK_PUSH: u32 = 4;
+pub const PR_LOCK_SHADOW_STACK_STATUS: u32 = 76;
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86_64/ptrace.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/ptrace.rs
new file mode 100644
index 0000000..042b846
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/ptrace.rs
@@ -0,0 +1,899 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct audit_status {
+pub mask: __u32,
+pub enabled: __u32,
+pub failure: __u32,
+pub pid: __u32,
+pub rate_limit: __u32,
+pub backlog_limit: __u32,
+pub lost: __u32,
+pub backlog: __u32,
+pub __bindgen_anon_1: audit_status__bindgen_ty_1,
+pub backlog_wait_time: __u32,
+pub backlog_wait_time_actual: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_features {
+pub vers: __u32,
+pub mask: __u32,
+pub features: __u32,
+pub lock: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct audit_tty_status {
+pub enabled: __u32,
+pub log_passwd: __u32,
+}
+#[repr(C)]
+#[derive(Debug)]
+pub struct audit_rule_data {
+pub flags: __u32,
+pub action: __u32,
+pub field_count: __u32,
+pub mask: [__u32; 64usize],
+pub fields: [__u32; 64usize],
+pub values: [__u32; 64usize],
+pub fieldflags: [__u32; 64usize],
+pub buflen: __u32,
+pub buf: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_filter {
+pub code: __u16,
+pub jt: __u8,
+pub jf: __u8,
+pub k: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct sock_fprog {
+pub len: crate::ctypes::c_ushort,
+pub filter: *mut sock_filter,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_peeksiginfo_args {
+pub off: __u64,
+pub flags: __u32,
+pub nr: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_metadata {
+pub filter_off: __u64,
+pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ptrace_syscall_info {
+pub op: __u8,
+pub pad: [__u8; 3usize],
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub stack_pointer: __u64,
+pub __bindgen_anon_1: ptrace_syscall_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2 {
+pub rval: __s64,
+pub is_error: __u8,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3 {
+pub nr: __u64,
+pub args: [__u64; 6usize],
+pub ret_data: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_rseq_configuration {
+pub rseq_abi_pointer: __u64,
+pub rseq_abi_size: __u32,
+pub signature: __u32,
+pub flags: __u32,
+pub pad: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ptrace_sud_config {
+pub mode: __u64,
+pub selector: __u64,
+pub offset: __u64,
+pub len: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct pt_regs {
+pub r15: crate::ctypes::c_ulong,
+pub r14: crate::ctypes::c_ulong,
+pub r13: crate::ctypes::c_ulong,
+pub r12: crate::ctypes::c_ulong,
+pub rbp: crate::ctypes::c_ulong,
+pub rbx: crate::ctypes::c_ulong,
+pub r11: crate::ctypes::c_ulong,
+pub r10: crate::ctypes::c_ulong,
+pub r9: crate::ctypes::c_ulong,
+pub r8: crate::ctypes::c_ulong,
+pub rax: crate::ctypes::c_ulong,
+pub rcx: crate::ctypes::c_ulong,
+pub rdx: crate::ctypes::c_ulong,
+pub rsi: crate::ctypes::c_ulong,
+pub rdi: crate::ctypes::c_ulong,
+pub orig_rax: crate::ctypes::c_ulong,
+pub rip: crate::ctypes::c_ulong,
+pub cs: crate::ctypes::c_ulong,
+pub eflags: crate::ctypes::c_ulong,
+pub rsp: crate::ctypes::c_ulong,
+pub ss: crate::ctypes::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_data {
+pub nr: crate::ctypes::c_int,
+pub arch: __u32,
+pub instruction_pointer: __u64,
+pub args: [__u64; 6usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_sizes {
+pub seccomp_notif: __u16,
+pub seccomp_notif_resp: __u16,
+pub seccomp_data: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif {
+pub id: __u64,
+pub pid: __u32,
+pub flags: __u32,
+pub data: seccomp_data,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_resp {
+pub id: __u64,
+pub val: __s64,
+pub error: __s32,
+pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct seccomp_notif_addfd {
+pub id: __u64,
+pub flags: __u32,
+pub srcfd: __u32,
+pub newfd: __u32,
+pub newfd_flags: __u32,
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const EM_NONE: u32 = 0;
+pub const EM_M32: u32 = 1;
+pub const EM_SPARC: u32 = 2;
+pub const EM_386: u32 = 3;
+pub const EM_68K: u32 = 4;
+pub const EM_88K: u32 = 5;
+pub const EM_486: u32 = 6;
+pub const EM_860: u32 = 7;
+pub const EM_MIPS: u32 = 8;
+pub const EM_MIPS_RS3_LE: u32 = 10;
+pub const EM_MIPS_RS4_BE: u32 = 10;
+pub const EM_PARISC: u32 = 15;
+pub const EM_SPARC32PLUS: u32 = 18;
+pub const EM_PPC: u32 = 20;
+pub const EM_PPC64: u32 = 21;
+pub const EM_SPU: u32 = 23;
+pub const EM_ARM: u32 = 40;
+pub const EM_SH: u32 = 42;
+pub const EM_SPARCV9: u32 = 43;
+pub const EM_H8_300: u32 = 46;
+pub const EM_IA_64: u32 = 50;
+pub const EM_X86_64: u32 = 62;
+pub const EM_S390: u32 = 22;
+pub const EM_CRIS: u32 = 76;
+pub const EM_M32R: u32 = 88;
+pub const EM_MN10300: u32 = 89;
+pub const EM_OPENRISC: u32 = 92;
+pub const EM_ARCOMPACT: u32 = 93;
+pub const EM_XTENSA: u32 = 94;
+pub const EM_BLACKFIN: u32 = 106;
+pub const EM_UNICORE: u32 = 110;
+pub const EM_ALTERA_NIOS2: u32 = 113;
+pub const EM_TI_C6000: u32 = 140;
+pub const EM_HEXAGON: u32 = 164;
+pub const EM_NDS32: u32 = 167;
+pub const EM_AARCH64: u32 = 183;
+pub const EM_TILEPRO: u32 = 188;
+pub const EM_MICROBLAZE: u32 = 189;
+pub const EM_TILEGX: u32 = 191;
+pub const EM_ARCV2: u32 = 195;
+pub const EM_RISCV: u32 = 243;
+pub const EM_BPF: u32 = 247;
+pub const EM_CSKY: u32 = 252;
+pub const EM_LOONGARCH: u32 = 258;
+pub const EM_FRV: u32 = 21569;
+pub const EM_ALPHA: u32 = 36902;
+pub const EM_CYGNUS_M32R: u32 = 36929;
+pub const EM_S390_OLD: u32 = 41872;
+pub const EM_CYGNUS_MN10300: u32 = 48879;
+pub const AUDIT_GET: u32 = 1000;
+pub const AUDIT_SET: u32 = 1001;
+pub const AUDIT_LIST: u32 = 1002;
+pub const AUDIT_ADD: u32 = 1003;
+pub const AUDIT_DEL: u32 = 1004;
+pub const AUDIT_USER: u32 = 1005;
+pub const AUDIT_LOGIN: u32 = 1006;
+pub const AUDIT_WATCH_INS: u32 = 1007;
+pub const AUDIT_WATCH_REM: u32 = 1008;
+pub const AUDIT_WATCH_LIST: u32 = 1009;
+pub const AUDIT_SIGNAL_INFO: u32 = 1010;
+pub const AUDIT_ADD_RULE: u32 = 1011;
+pub const AUDIT_DEL_RULE: u32 = 1012;
+pub const AUDIT_LIST_RULES: u32 = 1013;
+pub const AUDIT_TRIM: u32 = 1014;
+pub const AUDIT_MAKE_EQUIV: u32 = 1015;
+pub const AUDIT_TTY_GET: u32 = 1016;
+pub const AUDIT_TTY_SET: u32 = 1017;
+pub const AUDIT_SET_FEATURE: u32 = 1018;
+pub const AUDIT_GET_FEATURE: u32 = 1019;
+pub const AUDIT_FIRST_USER_MSG: u32 = 1100;
+pub const AUDIT_USER_AVC: u32 = 1107;
+pub const AUDIT_USER_TTY: u32 = 1124;
+pub const AUDIT_LAST_USER_MSG: u32 = 1199;
+pub const AUDIT_FIRST_USER_MSG2: u32 = 2100;
+pub const AUDIT_LAST_USER_MSG2: u32 = 2999;
+pub const AUDIT_DAEMON_START: u32 = 1200;
+pub const AUDIT_DAEMON_END: u32 = 1201;
+pub const AUDIT_DAEMON_ABORT: u32 = 1202;
+pub const AUDIT_DAEMON_CONFIG: u32 = 1203;
+pub const AUDIT_SYSCALL: u32 = 1300;
+pub const AUDIT_PATH: u32 = 1302;
+pub const AUDIT_IPC: u32 = 1303;
+pub const AUDIT_SOCKETCALL: u32 = 1304;
+pub const AUDIT_CONFIG_CHANGE: u32 = 1305;
+pub const AUDIT_SOCKADDR: u32 = 1306;
+pub const AUDIT_CWD: u32 = 1307;
+pub const AUDIT_EXECVE: u32 = 1309;
+pub const AUDIT_IPC_SET_PERM: u32 = 1311;
+pub const AUDIT_MQ_OPEN: u32 = 1312;
+pub const AUDIT_MQ_SENDRECV: u32 = 1313;
+pub const AUDIT_MQ_NOTIFY: u32 = 1314;
+pub const AUDIT_MQ_GETSETATTR: u32 = 1315;
+pub const AUDIT_KERNEL_OTHER: u32 = 1316;
+pub const AUDIT_FD_PAIR: u32 = 1317;
+pub const AUDIT_OBJ_PID: u32 = 1318;
+pub const AUDIT_TTY: u32 = 1319;
+pub const AUDIT_EOE: u32 = 1320;
+pub const AUDIT_BPRM_FCAPS: u32 = 1321;
+pub const AUDIT_CAPSET: u32 = 1322;
+pub const AUDIT_MMAP: u32 = 1323;
+pub const AUDIT_NETFILTER_PKT: u32 = 1324;
+pub const AUDIT_NETFILTER_CFG: u32 = 1325;
+pub const AUDIT_SECCOMP: u32 = 1326;
+pub const AUDIT_PROCTITLE: u32 = 1327;
+pub const AUDIT_FEATURE_CHANGE: u32 = 1328;
+pub const AUDIT_REPLACE: u32 = 1329;
+pub const AUDIT_KERN_MODULE: u32 = 1330;
+pub const AUDIT_FANOTIFY: u32 = 1331;
+pub const AUDIT_TIME_INJOFFSET: u32 = 1332;
+pub const AUDIT_TIME_ADJNTPVAL: u32 = 1333;
+pub const AUDIT_BPF: u32 = 1334;
+pub const AUDIT_EVENT_LISTENER: u32 = 1335;
+pub const AUDIT_URINGOP: u32 = 1336;
+pub const AUDIT_OPENAT2: u32 = 1337;
+pub const AUDIT_DM_CTRL: u32 = 1338;
+pub const AUDIT_DM_EVENT: u32 = 1339;
+pub const AUDIT_AVC: u32 = 1400;
+pub const AUDIT_SELINUX_ERR: u32 = 1401;
+pub const AUDIT_AVC_PATH: u32 = 1402;
+pub const AUDIT_MAC_POLICY_LOAD: u32 = 1403;
+pub const AUDIT_MAC_STATUS: u32 = 1404;
+pub const AUDIT_MAC_CONFIG_CHANGE: u32 = 1405;
+pub const AUDIT_MAC_UNLBL_ALLOW: u32 = 1406;
+pub const AUDIT_MAC_CIPSOV4_ADD: u32 = 1407;
+pub const AUDIT_MAC_CIPSOV4_DEL: u32 = 1408;
+pub const AUDIT_MAC_MAP_ADD: u32 = 1409;
+pub const AUDIT_MAC_MAP_DEL: u32 = 1410;
+pub const AUDIT_MAC_IPSEC_ADDSA: u32 = 1411;
+pub const AUDIT_MAC_IPSEC_DELSA: u32 = 1412;
+pub const AUDIT_MAC_IPSEC_ADDSPD: u32 = 1413;
+pub const AUDIT_MAC_IPSEC_DELSPD: u32 = 1414;
+pub const AUDIT_MAC_IPSEC_EVENT: u32 = 1415;
+pub const AUDIT_MAC_UNLBL_STCADD: u32 = 1416;
+pub const AUDIT_MAC_UNLBL_STCDEL: u32 = 1417;
+pub const AUDIT_MAC_CALIPSO_ADD: u32 = 1418;
+pub const AUDIT_MAC_CALIPSO_DEL: u32 = 1419;
+pub const AUDIT_IPE_ACCESS: u32 = 1420;
+pub const AUDIT_IPE_CONFIG_CHANGE: u32 = 1421;
+pub const AUDIT_IPE_POLICY_LOAD: u32 = 1422;
+pub const AUDIT_FIRST_KERN_ANOM_MSG: u32 = 1700;
+pub const AUDIT_LAST_KERN_ANOM_MSG: u32 = 1799;
+pub const AUDIT_ANOM_PROMISCUOUS: u32 = 1700;
+pub const AUDIT_ANOM_ABEND: u32 = 1701;
+pub const AUDIT_ANOM_LINK: u32 = 1702;
+pub const AUDIT_ANOM_CREAT: u32 = 1703;
+pub const AUDIT_INTEGRITY_DATA: u32 = 1800;
+pub const AUDIT_INTEGRITY_METADATA: u32 = 1801;
+pub const AUDIT_INTEGRITY_STATUS: u32 = 1802;
+pub const AUDIT_INTEGRITY_HASH: u32 = 1803;
+pub const AUDIT_INTEGRITY_PCR: u32 = 1804;
+pub const AUDIT_INTEGRITY_RULE: u32 = 1805;
+pub const AUDIT_INTEGRITY_EVM_XATTR: u32 = 1806;
+pub const AUDIT_INTEGRITY_POLICY_RULE: u32 = 1807;
+pub const AUDIT_KERNEL: u32 = 2000;
+pub const AUDIT_FILTER_USER: u32 = 0;
+pub const AUDIT_FILTER_TASK: u32 = 1;
+pub const AUDIT_FILTER_ENTRY: u32 = 2;
+pub const AUDIT_FILTER_WATCH: u32 = 3;
+pub const AUDIT_FILTER_EXIT: u32 = 4;
+pub const AUDIT_FILTER_EXCLUDE: u32 = 5;
+pub const AUDIT_FILTER_TYPE: u32 = 5;
+pub const AUDIT_FILTER_FS: u32 = 6;
+pub const AUDIT_FILTER_URING_EXIT: u32 = 7;
+pub const AUDIT_NR_FILTERS: u32 = 8;
+pub const AUDIT_FILTER_PREPEND: u32 = 16;
+pub const AUDIT_NEVER: u32 = 0;
+pub const AUDIT_POSSIBLE: u32 = 1;
+pub const AUDIT_ALWAYS: u32 = 2;
+pub const AUDIT_MAX_FIELDS: u32 = 64;
+pub const AUDIT_MAX_KEY_LEN: u32 = 256;
+pub const AUDIT_BITMASK_SIZE: u32 = 64;
+pub const AUDIT_SYSCALL_CLASSES: u32 = 16;
+pub const AUDIT_CLASS_DIR_WRITE: u32 = 0;
+pub const AUDIT_CLASS_DIR_WRITE_32: u32 = 1;
+pub const AUDIT_CLASS_CHATTR: u32 = 2;
+pub const AUDIT_CLASS_CHATTR_32: u32 = 3;
+pub const AUDIT_CLASS_READ: u32 = 4;
+pub const AUDIT_CLASS_READ_32: u32 = 5;
+pub const AUDIT_CLASS_WRITE: u32 = 6;
+pub const AUDIT_CLASS_WRITE_32: u32 = 7;
+pub const AUDIT_CLASS_SIGNAL: u32 = 8;
+pub const AUDIT_CLASS_SIGNAL_32: u32 = 9;
+pub const AUDIT_UNUSED_BITS: u32 = 134216704;
+pub const AUDIT_COMPARE_UID_TO_OBJ_UID: u32 = 1;
+pub const AUDIT_COMPARE_GID_TO_OBJ_GID: u32 = 2;
+pub const AUDIT_COMPARE_EUID_TO_OBJ_UID: u32 = 3;
+pub const AUDIT_COMPARE_EGID_TO_OBJ_GID: u32 = 4;
+pub const AUDIT_COMPARE_AUID_TO_OBJ_UID: u32 = 5;
+pub const AUDIT_COMPARE_SUID_TO_OBJ_UID: u32 = 6;
+pub const AUDIT_COMPARE_SGID_TO_OBJ_GID: u32 = 7;
+pub const AUDIT_COMPARE_FSUID_TO_OBJ_UID: u32 = 8;
+pub const AUDIT_COMPARE_FSGID_TO_OBJ_GID: u32 = 9;
+pub const AUDIT_COMPARE_UID_TO_AUID: u32 = 10;
+pub const AUDIT_COMPARE_UID_TO_EUID: u32 = 11;
+pub const AUDIT_COMPARE_UID_TO_FSUID: u32 = 12;
+pub const AUDIT_COMPARE_UID_TO_SUID: u32 = 13;
+pub const AUDIT_COMPARE_AUID_TO_FSUID: u32 = 14;
+pub const AUDIT_COMPARE_AUID_TO_SUID: u32 = 15;
+pub const AUDIT_COMPARE_AUID_TO_EUID: u32 = 16;
+pub const AUDIT_COMPARE_EUID_TO_SUID: u32 = 17;
+pub const AUDIT_COMPARE_EUID_TO_FSUID: u32 = 18;
+pub const AUDIT_COMPARE_SUID_TO_FSUID: u32 = 19;
+pub const AUDIT_COMPARE_GID_TO_EGID: u32 = 20;
+pub const AUDIT_COMPARE_GID_TO_FSGID: u32 = 21;
+pub const AUDIT_COMPARE_GID_TO_SGID: u32 = 22;
+pub const AUDIT_COMPARE_EGID_TO_FSGID: u32 = 23;
+pub const AUDIT_COMPARE_EGID_TO_SGID: u32 = 24;
+pub const AUDIT_COMPARE_SGID_TO_FSGID: u32 = 25;
+pub const AUDIT_MAX_FIELD_COMPARE: u32 = 25;
+pub const AUDIT_PID: u32 = 0;
+pub const AUDIT_UID: u32 = 1;
+pub const AUDIT_EUID: u32 = 2;
+pub const AUDIT_SUID: u32 = 3;
+pub const AUDIT_FSUID: u32 = 4;
+pub const AUDIT_GID: u32 = 5;
+pub const AUDIT_EGID: u32 = 6;
+pub const AUDIT_SGID: u32 = 7;
+pub const AUDIT_FSGID: u32 = 8;
+pub const AUDIT_LOGINUID: u32 = 9;
+pub const AUDIT_PERS: u32 = 10;
+pub const AUDIT_ARCH: u32 = 11;
+pub const AUDIT_MSGTYPE: u32 = 12;
+pub const AUDIT_SUBJ_USER: u32 = 13;
+pub const AUDIT_SUBJ_ROLE: u32 = 14;
+pub const AUDIT_SUBJ_TYPE: u32 = 15;
+pub const AUDIT_SUBJ_SEN: u32 = 16;
+pub const AUDIT_SUBJ_CLR: u32 = 17;
+pub const AUDIT_PPID: u32 = 18;
+pub const AUDIT_OBJ_USER: u32 = 19;
+pub const AUDIT_OBJ_ROLE: u32 = 20;
+pub const AUDIT_OBJ_TYPE: u32 = 21;
+pub const AUDIT_OBJ_LEV_LOW: u32 = 22;
+pub const AUDIT_OBJ_LEV_HIGH: u32 = 23;
+pub const AUDIT_LOGINUID_SET: u32 = 24;
+pub const AUDIT_SESSIONID: u32 = 25;
+pub const AUDIT_FSTYPE: u32 = 26;
+pub const AUDIT_DEVMAJOR: u32 = 100;
+pub const AUDIT_DEVMINOR: u32 = 101;
+pub const AUDIT_INODE: u32 = 102;
+pub const AUDIT_EXIT: u32 = 103;
+pub const AUDIT_SUCCESS: u32 = 104;
+pub const AUDIT_WATCH: u32 = 105;
+pub const AUDIT_PERM: u32 = 106;
+pub const AUDIT_DIR: u32 = 107;
+pub const AUDIT_FILETYPE: u32 = 108;
+pub const AUDIT_OBJ_UID: u32 = 109;
+pub const AUDIT_OBJ_GID: u32 = 110;
+pub const AUDIT_FIELD_COMPARE: u32 = 111;
+pub const AUDIT_EXE: u32 = 112;
+pub const AUDIT_SADDR_FAM: u32 = 113;
+pub const AUDIT_ARG0: u32 = 200;
+pub const AUDIT_ARG1: u32 = 201;
+pub const AUDIT_ARG2: u32 = 202;
+pub const AUDIT_ARG3: u32 = 203;
+pub const AUDIT_FILTERKEY: u32 = 210;
+pub const AUDIT_NEGATE: u32 = 2147483648;
+pub const AUDIT_BIT_MASK: u32 = 134217728;
+pub const AUDIT_LESS_THAN: u32 = 268435456;
+pub const AUDIT_GREATER_THAN: u32 = 536870912;
+pub const AUDIT_NOT_EQUAL: u32 = 805306368;
+pub const AUDIT_EQUAL: u32 = 1073741824;
+pub const AUDIT_BIT_TEST: u32 = 1207959552;
+pub const AUDIT_LESS_THAN_OR_EQUAL: u32 = 1342177280;
+pub const AUDIT_GREATER_THAN_OR_EQUAL: u32 = 1610612736;
+pub const AUDIT_OPERATORS: u32 = 2013265920;
+pub const AUDIT_STATUS_ENABLED: u32 = 1;
+pub const AUDIT_STATUS_FAILURE: u32 = 2;
+pub const AUDIT_STATUS_PID: u32 = 4;
+pub const AUDIT_STATUS_RATE_LIMIT: u32 = 8;
+pub const AUDIT_STATUS_BACKLOG_LIMIT: u32 = 16;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME: u32 = 32;
+pub const AUDIT_STATUS_LOST: u32 = 64;
+pub const AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL: u32 = 128;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH: u32 = 4;
+pub const AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND: u32 = 8;
+pub const AUDIT_FEATURE_BITMAP_SESSIONID_FILTER: u32 = 16;
+pub const AUDIT_FEATURE_BITMAP_LOST_RESET: u32 = 32;
+pub const AUDIT_FEATURE_BITMAP_FILTER_FS: u32 = 64;
+pub const AUDIT_FEATURE_BITMAP_ALL: u32 = 127;
+pub const AUDIT_VERSION_LATEST: u32 = 127;
+pub const AUDIT_VERSION_BACKLOG_LIMIT: u32 = 1;
+pub const AUDIT_VERSION_BACKLOG_WAIT_TIME: u32 = 2;
+pub const AUDIT_FAIL_SILENT: u32 = 0;
+pub const AUDIT_FAIL_PRINTK: u32 = 1;
+pub const AUDIT_FAIL_PANIC: u32 = 2;
+pub const __AUDIT_ARCH_CONVENTION_MASK: u32 = 805306368;
+pub const __AUDIT_ARCH_CONVENTION_MIPS64_N32: u32 = 536870912;
+pub const __AUDIT_ARCH_64BIT: u32 = 2147483648;
+pub const __AUDIT_ARCH_LE: u32 = 1073741824;
+pub const AUDIT_ARCH_AARCH64: u32 = 3221225655;
+pub const AUDIT_ARCH_ALPHA: u32 = 3221262374;
+pub const AUDIT_ARCH_ARCOMPACT: u32 = 1073741917;
+pub const AUDIT_ARCH_ARCOMPACTBE: u32 = 93;
+pub const AUDIT_ARCH_ARCV2: u32 = 1073742019;
+pub const AUDIT_ARCH_ARCV2BE: u32 = 195;
+pub const AUDIT_ARCH_ARM: u32 = 1073741864;
+pub const AUDIT_ARCH_ARMEB: u32 = 40;
+pub const AUDIT_ARCH_C6X: u32 = 1073741964;
+pub const AUDIT_ARCH_C6XBE: u32 = 140;
+pub const AUDIT_ARCH_CRIS: u32 = 1073741900;
+pub const AUDIT_ARCH_CSKY: u32 = 1073742076;
+pub const AUDIT_ARCH_FRV: u32 = 21569;
+pub const AUDIT_ARCH_H8300: u32 = 46;
+pub const AUDIT_ARCH_HEXAGON: u32 = 164;
+pub const AUDIT_ARCH_I386: u32 = 1073741827;
+pub const AUDIT_ARCH_IA64: u32 = 3221225522;
+pub const AUDIT_ARCH_M32R: u32 = 88;
+pub const AUDIT_ARCH_M68K: u32 = 4;
+pub const AUDIT_ARCH_MICROBLAZE: u32 = 189;
+pub const AUDIT_ARCH_MIPS: u32 = 8;
+pub const AUDIT_ARCH_MIPSEL: u32 = 1073741832;
+pub const AUDIT_ARCH_MIPS64: u32 = 2147483656;
+pub const AUDIT_ARCH_MIPS64N32: u32 = 2684354568;
+pub const AUDIT_ARCH_MIPSEL64: u32 = 3221225480;
+pub const AUDIT_ARCH_MIPSEL64N32: u32 = 3758096392;
+pub const AUDIT_ARCH_NDS32: u32 = 1073741991;
+pub const AUDIT_ARCH_NDS32BE: u32 = 167;
+pub const AUDIT_ARCH_NIOS2: u32 = 1073741937;
+pub const AUDIT_ARCH_OPENRISC: u32 = 92;
+pub const AUDIT_ARCH_PARISC: u32 = 15;
+pub const AUDIT_ARCH_PARISC64: u32 = 2147483663;
+pub const AUDIT_ARCH_PPC: u32 = 20;
+pub const AUDIT_ARCH_PPC64: u32 = 2147483669;
+pub const AUDIT_ARCH_PPC64LE: u32 = 3221225493;
+pub const AUDIT_ARCH_RISCV32: u32 = 1073742067;
+pub const AUDIT_ARCH_RISCV64: u32 = 3221225715;
+pub const AUDIT_ARCH_S390: u32 = 22;
+pub const AUDIT_ARCH_S390X: u32 = 2147483670;
+pub const AUDIT_ARCH_SH: u32 = 42;
+pub const AUDIT_ARCH_SHEL: u32 = 1073741866;
+pub const AUDIT_ARCH_SH64: u32 = 2147483690;
+pub const AUDIT_ARCH_SHEL64: u32 = 3221225514;
+pub const AUDIT_ARCH_SPARC: u32 = 2;
+pub const AUDIT_ARCH_SPARC64: u32 = 2147483691;
+pub const AUDIT_ARCH_TILEGX: u32 = 3221225663;
+pub const AUDIT_ARCH_TILEGX32: u32 = 1073742015;
+pub const AUDIT_ARCH_TILEPRO: u32 = 1073742012;
+pub const AUDIT_ARCH_UNICORE: u32 = 1073741934;
+pub const AUDIT_ARCH_X86_64: u32 = 3221225534;
+pub const AUDIT_ARCH_XTENSA: u32 = 94;
+pub const AUDIT_ARCH_LOONGARCH32: u32 = 1073742082;
+pub const AUDIT_ARCH_LOONGARCH64: u32 = 3221225730;
+pub const AUDIT_PERM_EXEC: u32 = 1;
+pub const AUDIT_PERM_WRITE: u32 = 2;
+pub const AUDIT_PERM_READ: u32 = 4;
+pub const AUDIT_PERM_ATTR: u32 = 8;
+pub const AUDIT_MESSAGE_TEXT_MAX: u32 = 8560;
+pub const AUDIT_FEATURE_VERSION: u32 = 1;
+pub const AUDIT_FEATURE_ONLY_UNSET_LOGINUID: u32 = 0;
+pub const AUDIT_FEATURE_LOGINUID_IMMUTABLE: u32 = 1;
+pub const AUDIT_LAST_FEATURE: u32 = 1;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_MAJOR_VERSION: u32 = 1;
+pub const BPF_MINOR_VERSION: u32 = 1;
+pub const BPF_A: u32 = 16;
+pub const BPF_TAX: u32 = 0;
+pub const BPF_TXA: u32 = 128;
+pub const BPF_MEMWORDS: u32 = 16;
+pub const SKF_AD_OFF: i32 = -4096;
+pub const SKF_AD_PROTOCOL: u32 = 0;
+pub const SKF_AD_PKTTYPE: u32 = 4;
+pub const SKF_AD_IFINDEX: u32 = 8;
+pub const SKF_AD_NLATTR: u32 = 12;
+pub const SKF_AD_NLATTR_NEST: u32 = 16;
+pub const SKF_AD_MARK: u32 = 20;
+pub const SKF_AD_QUEUE: u32 = 24;
+pub const SKF_AD_HATYPE: u32 = 28;
+pub const SKF_AD_RXHASH: u32 = 32;
+pub const SKF_AD_CPU: u32 = 36;
+pub const SKF_AD_ALU_XOR_X: u32 = 40;
+pub const SKF_AD_VLAN_TAG: u32 = 44;
+pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48;
+pub const SKF_AD_PAY_OFFSET: u32 = 52;
+pub const SKF_AD_RANDOM: u32 = 56;
+pub const SKF_AD_VLAN_TPID: u32 = 60;
+pub const SKF_AD_MAX: u32 = 64;
+pub const SKF_NET_OFF: i32 = -1048576;
+pub const SKF_LL_OFF: i32 = -2097152;
+pub const BPF_NET_OFF: i32 = -1048576;
+pub const BPF_LL_OFF: i32 = -2097152;
+pub const PTRACE_TRACEME: u32 = 0;
+pub const PTRACE_PEEKTEXT: u32 = 1;
+pub const PTRACE_PEEKDATA: u32 = 2;
+pub const PTRACE_PEEKUSR: u32 = 3;
+pub const PTRACE_POKETEXT: u32 = 4;
+pub const PTRACE_POKEDATA: u32 = 5;
+pub const PTRACE_POKEUSR: u32 = 6;
+pub const PTRACE_CONT: u32 = 7;
+pub const PTRACE_KILL: u32 = 8;
+pub const PTRACE_SINGLESTEP: u32 = 9;
+pub const PTRACE_ATTACH: u32 = 16;
+pub const PTRACE_DETACH: u32 = 17;
+pub const PTRACE_SYSCALL: u32 = 24;
+pub const PTRACE_SETOPTIONS: u32 = 16896;
+pub const PTRACE_GETEVENTMSG: u32 = 16897;
+pub const PTRACE_GETSIGINFO: u32 = 16898;
+pub const PTRACE_SETSIGINFO: u32 = 16899;
+pub const PTRACE_GETREGSET: u32 = 16900;
+pub const PTRACE_SETREGSET: u32 = 16901;
+pub const PTRACE_SEIZE: u32 = 16902;
+pub const PTRACE_INTERRUPT: u32 = 16903;
+pub const PTRACE_LISTEN: u32 = 16904;
+pub const PTRACE_PEEKSIGINFO: u32 = 16905;
+pub const PTRACE_GETSIGMASK: u32 = 16906;
+pub const PTRACE_SETSIGMASK: u32 = 16907;
+pub const PTRACE_SECCOMP_GET_FILTER: u32 = 16908;
+pub const PTRACE_SECCOMP_GET_METADATA: u32 = 16909;
+pub const PTRACE_GET_SYSCALL_INFO: u32 = 16910;
+pub const PTRACE_SYSCALL_INFO_NONE: u32 = 0;
+pub const PTRACE_SYSCALL_INFO_ENTRY: u32 = 1;
+pub const PTRACE_SYSCALL_INFO_EXIT: u32 = 2;
+pub const PTRACE_SYSCALL_INFO_SECCOMP: u32 = 3;
+pub const PTRACE_GET_RSEQ_CONFIGURATION: u32 = 16911;
+pub const PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16912;
+pub const PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG: u32 = 16913;
+pub const PTRACE_EVENTMSG_SYSCALL_ENTRY: u32 = 1;
+pub const PTRACE_EVENTMSG_SYSCALL_EXIT: u32 = 2;
+pub const PTRACE_PEEKSIGINFO_SHARED: u32 = 1;
+pub const PTRACE_EVENT_FORK: u32 = 1;
+pub const PTRACE_EVENT_VFORK: u32 = 2;
+pub const PTRACE_EVENT_CLONE: u32 = 3;
+pub const PTRACE_EVENT_EXEC: u32 = 4;
+pub const PTRACE_EVENT_VFORK_DONE: u32 = 5;
+pub const PTRACE_EVENT_EXIT: u32 = 6;
+pub const PTRACE_EVENT_SECCOMP: u32 = 7;
+pub const PTRACE_EVENT_STOP: u32 = 128;
+pub const PTRACE_O_TRACESYSGOOD: u32 = 1;
+pub const PTRACE_O_TRACEFORK: u32 = 2;
+pub const PTRACE_O_TRACEVFORK: u32 = 4;
+pub const PTRACE_O_TRACECLONE: u32 = 8;
+pub const PTRACE_O_TRACEEXEC: u32 = 16;
+pub const PTRACE_O_TRACEVFORKDONE: u32 = 32;
+pub const PTRACE_O_TRACEEXIT: u32 = 64;
+pub const PTRACE_O_TRACESECCOMP: u32 = 128;
+pub const PTRACE_O_EXITKILL: u32 = 1048576;
+pub const PTRACE_O_SUSPEND_SECCOMP: u32 = 2097152;
+pub const PTRACE_O_MASK: u32 = 3145983;
+pub const FRAME_SIZE: u32 = 168;
+pub const PTRACE_GETREGS: u32 = 12;
+pub const PTRACE_SETREGS: u32 = 13;
+pub const PTRACE_GETFPREGS: u32 = 14;
+pub const PTRACE_SETFPREGS: u32 = 15;
+pub const PTRACE_GETFPXREGS: u32 = 18;
+pub const PTRACE_SETFPXREGS: u32 = 19;
+pub const PTRACE_OLDSETOPTIONS: u32 = 21;
+pub const PTRACE_GET_THREAD_AREA: u32 = 25;
+pub const PTRACE_SET_THREAD_AREA: u32 = 26;
+pub const PTRACE_ARCH_PRCTL: u32 = 30;
+pub const PTRACE_SYSEMU: u32 = 31;
+pub const PTRACE_SYSEMU_SINGLESTEP: u32 = 32;
+pub const PTRACE_SINGLEBLOCK: u32 = 33;
+pub const X86_EFLAGS_CF_BIT: u32 = 0;
+pub const X86_EFLAGS_FIXED_BIT: u32 = 1;
+pub const X86_EFLAGS_PF_BIT: u32 = 2;
+pub const X86_EFLAGS_AF_BIT: u32 = 4;
+pub const X86_EFLAGS_ZF_BIT: u32 = 6;
+pub const X86_EFLAGS_SF_BIT: u32 = 7;
+pub const X86_EFLAGS_TF_BIT: u32 = 8;
+pub const X86_EFLAGS_IF_BIT: u32 = 9;
+pub const X86_EFLAGS_DF_BIT: u32 = 10;
+pub const X86_EFLAGS_OF_BIT: u32 = 11;
+pub const X86_EFLAGS_IOPL_BIT: u32 = 12;
+pub const X86_EFLAGS_NT_BIT: u32 = 14;
+pub const X86_EFLAGS_RF_BIT: u32 = 16;
+pub const X86_EFLAGS_VM_BIT: u32 = 17;
+pub const X86_EFLAGS_AC_BIT: u32 = 18;
+pub const X86_EFLAGS_VIF_BIT: u32 = 19;
+pub const X86_EFLAGS_VIP_BIT: u32 = 20;
+pub const X86_EFLAGS_ID_BIT: u32 = 21;
+pub const X86_CR0_PE_BIT: u32 = 0;
+pub const X86_CR0_MP_BIT: u32 = 1;
+pub const X86_CR0_EM_BIT: u32 = 2;
+pub const X86_CR0_TS_BIT: u32 = 3;
+pub const X86_CR0_ET_BIT: u32 = 4;
+pub const X86_CR0_NE_BIT: u32 = 5;
+pub const X86_CR0_WP_BIT: u32 = 16;
+pub const X86_CR0_AM_BIT: u32 = 18;
+pub const X86_CR0_NW_BIT: u32 = 29;
+pub const X86_CR0_CD_BIT: u32 = 30;
+pub const X86_CR0_PG_BIT: u32 = 31;
+pub const X86_CR3_PWT_BIT: u32 = 3;
+pub const X86_CR3_PCD_BIT: u32 = 4;
+pub const X86_CR3_PCID_BITS: u32 = 12;
+pub const X86_CR3_LAM_U57_BIT: u32 = 61;
+pub const X86_CR3_LAM_U48_BIT: u32 = 62;
+pub const X86_CR3_PCID_NOFLUSH_BIT: u32 = 63;
+pub const X86_CR4_VME_BIT: u32 = 0;
+pub const X86_CR4_PVI_BIT: u32 = 1;
+pub const X86_CR4_TSD_BIT: u32 = 2;
+pub const X86_CR4_DE_BIT: u32 = 3;
+pub const X86_CR4_PSE_BIT: u32 = 4;
+pub const X86_CR4_PAE_BIT: u32 = 5;
+pub const X86_CR4_MCE_BIT: u32 = 6;
+pub const X86_CR4_PGE_BIT: u32 = 7;
+pub const X86_CR4_PCE_BIT: u32 = 8;
+pub const X86_CR4_OSFXSR_BIT: u32 = 9;
+pub const X86_CR4_OSXMMEXCPT_BIT: u32 = 10;
+pub const X86_CR4_UMIP_BIT: u32 = 11;
+pub const X86_CR4_LA57_BIT: u32 = 12;
+pub const X86_CR4_VMXE_BIT: u32 = 13;
+pub const X86_CR4_SMXE_BIT: u32 = 14;
+pub const X86_CR4_FSGSBASE_BIT: u32 = 16;
+pub const X86_CR4_PCIDE_BIT: u32 = 17;
+pub const X86_CR4_OSXSAVE_BIT: u32 = 18;
+pub const X86_CR4_SMEP_BIT: u32 = 20;
+pub const X86_CR4_SMAP_BIT: u32 = 21;
+pub const X86_CR4_PKE_BIT: u32 = 22;
+pub const X86_CR4_CET_BIT: u32 = 23;
+pub const X86_CR4_LAM_SUP_BIT: u32 = 28;
+pub const X86_CR4_FRED_BIT: u32 = 32;
+pub const CX86_PCR0: u32 = 32;
+pub const CX86_GCR: u32 = 184;
+pub const CX86_CCR0: u32 = 192;
+pub const CX86_CCR1: u32 = 193;
+pub const CX86_CCR2: u32 = 194;
+pub const CX86_CCR3: u32 = 195;
+pub const CX86_CCR4: u32 = 232;
+pub const CX86_CCR5: u32 = 233;
+pub const CX86_CCR6: u32 = 234;
+pub const CX86_CCR7: u32 = 235;
+pub const CX86_PCR1: u32 = 240;
+pub const CX86_DIR0: u32 = 254;
+pub const CX86_DIR1: u32 = 255;
+pub const CX86_ARR_BASE: u32 = 196;
+pub const CX86_RCR_BASE: u32 = 220;
+pub const SECCOMP_MODE_DISABLED: u32 = 0;
+pub const SECCOMP_MODE_STRICT: u32 = 1;
+pub const SECCOMP_MODE_FILTER: u32 = 2;
+pub const SECCOMP_SET_MODE_STRICT: u32 = 0;
+pub const SECCOMP_SET_MODE_FILTER: u32 = 1;
+pub const SECCOMP_GET_ACTION_AVAIL: u32 = 2;
+pub const SECCOMP_GET_NOTIF_SIZES: u32 = 3;
+pub const SECCOMP_FILTER_FLAG_TSYNC: u32 = 1;
+pub const SECCOMP_FILTER_FLAG_LOG: u32 = 2;
+pub const SECCOMP_FILTER_FLAG_SPEC_ALLOW: u32 = 4;
+pub const SECCOMP_FILTER_FLAG_NEW_LISTENER: u32 = 8;
+pub const SECCOMP_FILTER_FLAG_TSYNC_ESRCH: u32 = 16;
+pub const SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV: u32 = 32;
+pub const SECCOMP_RET_KILL_PROCESS: u32 = 2147483648;
+pub const SECCOMP_RET_KILL_THREAD: u32 = 0;
+pub const SECCOMP_RET_KILL: u32 = 0;
+pub const SECCOMP_RET_TRAP: u32 = 196608;
+pub const SECCOMP_RET_ERRNO: u32 = 327680;
+pub const SECCOMP_RET_USER_NOTIF: u32 = 2143289344;
+pub const SECCOMP_RET_TRACE: u32 = 2146435072;
+pub const SECCOMP_RET_LOG: u32 = 2147221504;
+pub const SECCOMP_RET_ALLOW: u32 = 2147418112;
+pub const SECCOMP_RET_ACTION_FULL: u32 = 4294901760;
+pub const SECCOMP_RET_ACTION: u32 = 2147418112;
+pub const SECCOMP_RET_DATA: u32 = 65535;
+pub const SECCOMP_USER_NOTIF_FLAG_CONTINUE: u32 = 1;
+pub const SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SETFD: u32 = 1;
+pub const SECCOMP_ADDFD_FLAG_SEND: u32 = 2;
+pub const SECCOMP_IOC_MAGIC: u8 = 33u8;
+pub const Audit_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_equal;
+pub const Audit_not_equal: _bindgen_ty_1 = _bindgen_ty_1::Audit_not_equal;
+pub const Audit_bitmask: _bindgen_ty_1 = _bindgen_ty_1::Audit_bitmask;
+pub const Audit_bittest: _bindgen_ty_1 = _bindgen_ty_1::Audit_bittest;
+pub const Audit_lt: _bindgen_ty_1 = _bindgen_ty_1::Audit_lt;
+pub const Audit_gt: _bindgen_ty_1 = _bindgen_ty_1::Audit_gt;
+pub const Audit_le: _bindgen_ty_1 = _bindgen_ty_1::Audit_le;
+pub const Audit_ge: _bindgen_ty_1 = _bindgen_ty_1::Audit_ge;
+pub const Audit_bad: _bindgen_ty_1 = _bindgen_ty_1::Audit_bad;
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum _bindgen_ty_1 {
+Audit_equal = 0,
+Audit_not_equal = 1,
+Audit_bitmask = 2,
+Audit_bittest = 3,
+Audit_lt = 4,
+Audit_gt = 5,
+Audit_le = 6,
+Audit_ge = 7,
+Audit_bad = 8,
+}
+#[repr(u32)]
+#[non_exhaustive]
+#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+pub enum audit_nlgrps {
+AUDIT_NLGRP_NONE = 0,
+AUDIT_NLGRP_READLOG = 1,
+__AUDIT_NLGRP_MAX = 2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union audit_status__bindgen_ty_1 {
+pub version: __u32,
+pub feature_bitmap: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ptrace_syscall_info__bindgen_ty_1 {
+pub entry: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_1,
+pub exit: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_2,
+pub seccomp: ptrace_syscall_info__bindgen_ty_1__bindgen_ty_3,
+}
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86_64/system.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/system.rs
new file mode 100644
index 0000000..29fedf0
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/system.rs
@@ -0,0 +1,132 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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 __s128 = i128;
+pub type __u128 = u128;
+pub type __le16 = __u16;
+pub type __be16 = __u16;
+pub type __le32 = __u32;
+pub type __be32 = __u32;
+pub type __le64 = __u64;
+pub type __be64 = __u64;
+pub type __sum16 = __u16;
+pub type __wsum = __u32;
+pub type __poll_t = crate::ctypes::c_uint;
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+#[repr(C)]
+#[derive(Debug)]
+pub struct sysinfo {
+pub uptime: __kernel_long_t,
+pub loads: [__kernel_ulong_t; 3usize],
+pub totalram: __kernel_ulong_t,
+pub freeram: __kernel_ulong_t,
+pub sharedram: __kernel_ulong_t,
+pub bufferram: __kernel_ulong_t,
+pub totalswap: __kernel_ulong_t,
+pub freeswap: __kernel_ulong_t,
+pub procs: __u16,
+pub pad: __u16,
+pub totalhigh: __kernel_ulong_t,
+pub freehigh: __kernel_ulong_t,
+pub mem_unit: __u32,
+pub _f: __IncompleteArrayField<crate::ctypes::c_char>,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct oldold_utsname {
+pub sysname: [crate::ctypes::c_char; 9usize],
+pub nodename: [crate::ctypes::c_char; 9usize],
+pub release: [crate::ctypes::c_char; 9usize],
+pub version: [crate::ctypes::c_char; 9usize],
+pub machine: [crate::ctypes::c_char; 9usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct old_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct new_utsname {
+pub sysname: [crate::ctypes::c_char; 65usize],
+pub nodename: [crate::ctypes::c_char; 65usize],
+pub release: [crate::ctypes::c_char; 65usize],
+pub version: [crate::ctypes::c_char; 65usize],
+pub machine: [crate::ctypes::c_char; 65usize],
+pub domainname: [crate::ctypes::c_char; 65usize],
+}
+pub const __BITS_PER_LONG_LONG: u32 = 64;
+pub const SI_LOAD_SHIFT: u32 = 16;
+pub const __OLD_UTS_LEN: u32 = 8;
+pub const __NEW_UTS_LEN: u32 = 64;
+impl<T> __IncompleteArrayField<T> {
+#[inline]
+pub const fn new() -> Self {
+__IncompleteArrayField(::core::marker::PhantomData, [])
+}
+#[inline]
+pub fn as_ptr(&self) -> *const T {
+self as *const _ as *const T
+}
+#[inline]
+pub fn as_mut_ptr(&mut self) -> *mut T {
+self as *mut _ as *mut T
+}
+#[inline]
+pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+::core::slice::from_raw_parts(self.as_ptr(), len)
+}
+#[inline]
+pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+}
+}
+impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
+fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+fmt.write_str("__IncompleteArrayField")
+}
+}
diff --git a/vendor/linux-raw-sys-0.9.4/src/x86_64/xdp.rs b/vendor/linux-raw-sys-0.9.4/src/x86_64/xdp.rs
new file mode 100644
index 0000000..c9fde1d
--- /dev/null
+++ b/vendor/linux-raw-sys-0.9.4/src/x86_64/xdp.rs
@@ -0,0 +1,191 @@
+/* automatically generated by rust-bindgen 0.71.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_longlong;
+pub type __u64 = crate::ctypes::c_ulonglong;
+pub type __kernel_key_t = crate::ctypes::c_int;
+pub type __kernel_mqd_t = crate::ctypes::c_int;
+pub type __kernel_old_uid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_gid_t = crate::ctypes::c_ushort;
+pub type __kernel_old_dev_t = crate::ctypes::c_ulong;
+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_daddr_t = crate::ctypes::c_int;
+pub type __kernel_uid32_t = crate::ctypes::c_uint;
+pub type __kernel_gid32_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 __s128 = i128;
+pub type __u128 = u128;
+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,
+pub tx_metadata_len: __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(Copy, Clone)]
+pub struct xsk_tx_metadata {
+pub flags: __u64,
+pub __bindgen_anon_1: xsk_tx_metadata__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1 {
+pub csum_start: __u16,
+pub csum_offset: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2 {
+pub tx_timestamp: __u64,
+}
+#[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 __BITS_PER_LONG_LONG: u32 = 64;
+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_USE_SG: u32 = 16;
+pub const XDP_UMEM_UNALIGNED_CHUNK_FLAG: u32 = 1;
+pub const XDP_UMEM_TX_SW_CSUM: u32 = 2;
+pub const XDP_UMEM_TX_METADATA_LEN: u32 = 4;
+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_TXMD_FLAGS_TIMESTAMP: u32 = 1;
+pub const XDP_TXMD_FLAGS_CHECKSUM: u32 = 2;
+pub const XDP_PKT_CONTD: u32 = 1;
+pub const XDP_TX_METADATA: u32 = 2;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union xsk_tx_metadata__bindgen_ty_1 {
+pub request: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_1,
+pub completion: xsk_tx_metadata__bindgen_ty_1__bindgen_ty_2,
+}
diff --git a/vendor/rustix-1.0.8/.cargo-checksum.json b/vendor/rustix-1.0.8/.cargo-checksum.json
new file mode 100644
index 0000000..f415541
--- /dev/null
+++ b/vendor/rustix-1.0.8/.cargo-checksum.json
@@ -0,0 +1 @@
+{"files": {"CHANGES.md": "b55da933d14dfc512fd660b4301729cbbddb0b106fd75a01974011e7e75f5b38", "CODE_OF_CONDUCT.md": "f210602311e3f74b32f46237fd55f4ce36d798e85e3db1432ec667f63a7ffc44", "CONTRIBUTING.md": "63d06b36bf3e44bd905be68990004e4d6098870885c7d1019c56f847327e5a31", "COPYRIGHT": "377c2e7c53250cc5905c0b0532d35973392af16ffb9596a41d99d202cf3617c9", "Cargo.lock": "c8298fa8846795cf63e7c1aa5272f54d68520669184a1a84e6cb8672b8dd8980", "Cargo.toml": "530920b39e1080bd2951ec04fb5c313732affdc9dadc5e4c2cc593eabc77b765", "LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2", "LICENSE-Apache-2.0_WITH_LLVM-exception": "268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5", "LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3", "ORG_CODE_OF_CONDUCT.md": "a62b69bf86e605ee1bcbb2f0a12ba79e4cebb6983a7b6491949750aecc4f2178", "README.md": "3658622bf9b064542052849cff5ebc8af6cff44862d1c356c53c36016344bca7", "SECURITY.md": "4d75afb09dd28eb5982e3a1f768ee398d90204669ceef3240a16b31dcf04148a", "benches/mod.rs": "9bcb9df020cb3d95db20dfcd549d5b912cdd4ca5a28de248a295001b5eeb47fe", "build.rs": "0626462139f03aab7e514c6d44fa2a2974811e60146b584322c6834680ee1278", "src/backend/libc/c.rs": "239452ff506091099f7ef9690129afb87880ddbf028a56425f841b7da731b271", "src/backend/libc/conv.rs": "7a0d66156f7e26eedcc148694c2ce6e7c9c7f281e9fea3ee6bce3e23be11bb56", "src/backend/libc/event/epoll.rs": "fabf21b7ab278a469fdc71d823c3414d3c72e24d72dab2bebe409105a93ad0e1", "src/backend/libc/event/mod.rs": "554bcf6d614a99c32d021d0a2eb3018705f516120d4e2e52d4376cd835f3f28c", "src/backend/libc/event/poll_fd.rs": "f65971706707fedbe1df2a5c1eafcb2d1a562f383a355e3bef87a905f306afbe", "src/backend/libc/event/syscalls.rs": "4ec44f572ab04ad78b6776bb04ed0dc294fa85cd3d9eccad7c28e01dda90aec1", "src/backend/libc/event/types.rs": "b966e0a3a018ca2ce507371be900fc73b2814cca450b784583207ad2df473f13", "src/backend/libc/event/windows_syscalls.rs": "594ce6df675d1e318a876cb8a4c7f8787532c0f6c40305e3d2d8d3ab96dbdc29", "src/backend/libc/fs/dir.rs": "afbeaaea899e0c4cd0bf1288e66f51e118be547f33250b01e135b47f17e49c9e", "src/backend/libc/fs/inotify.rs": "69376ba2e81f98164029888d0cae554ca1702b532b0045dc55e282f1dd52d7bb", "src/backend/libc/fs/makedev.rs": "29498c935299865c6d52041f4fca598233828c5dd01a0990b1da38e8e6e71926", "src/backend/libc/fs/mod.rs": "077b26ac5c816110d9ae82cd12628cfdd30e8d9e89480e3480c6b90b9bb04abd", "src/backend/libc/fs/syscalls.rs": "ec1b465cf3e858dea7c1672266543767e62168538d664fc08a87663ed872501c", "src/backend/libc/fs/types.rs": "5d7bd1b9c7cef321aabe8e45de5194117df45d6869232ae27f99adb6a4f8bf41", "src/backend/libc/io/errno.rs": "355f9e7c6e617e62494e97f0a5e03ebc341dc4b28b66b30d2a25ba54ee9fb451", "src/backend/libc/io/mod.rs": "746647bd864e4ec7717925b6d176cebdb392b7d015070244cc48d92780351dd6", "src/backend/libc/io/syscalls.rs": "f0b784d98e348f32c9d11578e729fea75da442ceb0dfa407338a02344646a41c", "src/backend/libc/io/types.rs": "2efd39bb3df19a9db5496217284f3d2235ddb354fac81dd71861109a56bede0b", "src/backend/libc/io/windows_syscalls.rs": "dd9e7e10aa02ae1f83bf6dd4b22b0ea472389dce762815593a3994ca6567f396", "src/backend/libc/io_uring/mod.rs": "2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952", "src/backend/libc/io_uring/syscalls.rs": "5221a498e6c396d7c4cb60168ce8459ebca7d6720349a426d8083c227c694212", "src/backend/libc/mm/mod.rs": "8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7", "src/backend/libc/mm/syscalls.rs": "c04c61ad3d7f3b24d13f89144d7fa0a05658cea4763207f9250db4f9362de2fe", "src/backend/libc/mm/types.rs": "4d2ee93fa9fe6e6b90ebea349eb0e133cec37f54089a8568ab075cc020270d15", "src/backend/libc/mod.rs": "04f2adebb271489dc9e9da876e73adfacabbd3830cd6f0b2b82243c0ba1a4bce", "src/backend/libc/mount/mod.rs": "8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7", "src/backend/libc/mount/syscalls.rs": "b1d167b33764c94fbf1bde891478a3d370c576b2080b3daacb0a4313d240d6a0", "src/backend/libc/mount/types.rs": "4cf5067ac700c51db7af9efdbd424ac6f2bb364b369e62697eade6878ff1c81b", "src/backend/libc/net/addr.rs": "6372c483e8ef78cd85eb26a94f61cd1efb8d2be6665fc8e13de67e4c5b28871d", "src/backend/libc/net/ext.rs": "cfce41130eb2e3dd04271e0aa2c1e2de9866397d7d2a59e917d26b784ea30df5", "src/backend/libc/net/mod.rs": "e65ec7ae67411f247e5d80499dd8ca76c14af0ccd21122ad2d03fd8cb5902883", "src/backend/libc/net/msghdr.rs": "7cb21213611eced3276d299c7da032e9168b38d308f15afbbd8735454c01fcec", "src/backend/libc/net/netdevice.rs": "e1a1b978eb61573d2c7687fcabfa7028cdac16d1f29ccd4858ec13d57989bceb", "src/backend/libc/net/read_sockaddr.rs": "95b573a014bf819a63fbe82169a63057f2f860abc8246d55a0d874e3acf7423b", "src/backend/libc/net/send_recv.rs": "b18c8f7ccdf4b5dceb9ae8fb8590fd041aba590a2b4985872a5ba7c054ff49de", "src/backend/libc/net/sockopt.rs": "ce50a8b2589380571fdc552cf95a8e8d6f8915943bc037f4e8745cf1bfd94ea9", "src/backend/libc/net/syscalls.rs": "63bd1bf4c6684c8bac2de05120177eb8959cfab0d1032af16417b35edd2e252c", "src/backend/libc/net/write_sockaddr.rs": "7b5047a50ac2ca966c39922d1cdeead2d40faabe4c7da6bf2ae46bce3bb96547", "src/backend/libc/param/auxv.rs": "4e508557d04f18eb59e0cdf128e0e87d020c5fd04e97427417bc9171ed45ca52", "src/backend/libc/param/mod.rs": "5234b8f1bcb886cca6ea003d411d75eaeebe58deedd80e3441354bf46ed85d4d", "src/backend/libc/pid/mod.rs": "2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952", "src/backend/libc/pid/syscalls.rs": "49ea679b96c0741d048e82964038f9a931bc3cf3a0b59c7db3df89629b9c49e6", "src/backend/libc/pipe/mod.rs": "8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7", "src/backend/libc/pipe/syscalls.rs": "8c05fa158cfbd12c51546a308558a0e80c2abf4e5dc4c4c882dc7d26f00bf213", "src/backend/libc/pipe/types.rs": "ad78eebf29c5768c5d29f2696f4ccca767e007f97abcfebb49d97a2ec569224d", "src/backend/libc/prctl/mod.rs": "2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952", "src/backend/libc/prctl/syscalls.rs": "8a2684f444a7555098dce2b92270d81cefdae902716c6e5d59bd7b0657e8a29d", "src/backend/libc/process/mod.rs": "016edc4e95f692ba63ccb264a676fe6f433de2cba4005a9ad9875fa2be2eae1a", "src/backend/libc/process/syscalls.rs": "1af37e474ef0e21ba5ba62c3d5bf0a9dae7448c114e045959aaa3abef82b1564", "src/backend/libc/process/types.rs": "b4b0cbc6fe175955323e4b2b286a12615f56308128e1f5d0ba8da1113107253e", "src/backend/libc/process/wait.rs": "6963b441ccaf1c38fd6353751ceed84dc6b34b266a7f18b985590ee58f009409", "src/backend/libc/pty/mod.rs": "2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952", "src/backend/libc/pty/syscalls.rs": "dc45fe291f0dc171470dfd9b1d79fb23594d39646512196a02667473fdc90e84", "src/backend/libc/rand/mod.rs": "8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7", "src/backend/libc/rand/syscalls.rs": "d0efbf075f0c398d7d8f1983e7c42fb8331e9d4c8a8699d41f84ee2f967822c1", "src/backend/libc/rand/types.rs": "4eb0b4cdd0a9b089d1c9f6a25ad1ca97be28a38b7b07a705ec605b773f63f880", "src/backend/libc/shm/mod.rs": "8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7", "src/backend/libc/shm/syscalls.rs": "e87bc9091178a1f582c5c7da612c6a227ee51cf171c458c358e9c6e9f4498c66", "src/backend/libc/shm/types.rs": "0a1ac6bb9c024d94eb4bab7452937b7befcb30c581dc787b805011407ba1442d", "src/backend/libc/system/mod.rs": "38563ea68829ca5a4b1b0695ac8a5c05718e85bdc88a36dc805efdfce45d3909", "src/backend/libc/system/syscalls.rs": "3e066fef878b95b487fe2f6d8214abff95fc238477e94d4f97f3b440465c520e", "src/backend/libc/system/types.rs": "6871e16aee14fe2ae03cea798c3e509ffe44778a9c0e5608fd73e2e015876d7e", "src/backend/libc/termios/mod.rs": "8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7", "src/backend/libc/termios/syscalls.rs": "eec92b9411b1aaebae3be85346f77e1df38f591781a5abd4152927f040144f7b", "src/backend/libc/termios/types.rs": "4204ca5e4d45c9788291cdb77a1e3977d33749350fb265f5fdccefc3bd30c51a", "src/backend/libc/thread/cpu_set.rs": "5fca2b47289a2bb6ba908c910a6d27ac78ac10ea21d3c0c018f72f8816c5b9d7", "src/backend/libc/thread/futex.rs": "0c7178bcc9dfd051908e0a0d993892c551c9699f1955dbf2bb003c2ef114ba25", "src/backend/libc/thread/mod.rs": "b7f7961d7f6bf59d8a4773627d95aaedd6136402fe0e112673db16463a015414", "src/backend/libc/thread/syscalls.rs": "99e9b54e4139245158741a850dac2e95d892c8fd0bb7d9a831f45182d344299b", "src/backend/libc/thread/types.rs": "81327c2df8439d1b2f6a04dd5c3985b4aefdd137c2f2f0a2c6c2b346112b08f1", "src/backend/libc/time/mod.rs": "38563ea68829ca5a4b1b0695ac8a5c05718e85bdc88a36dc805efdfce45d3909", "src/backend/libc/time/syscalls.rs": "9985230724569d7aac5875e4577eca90463dd7dcd9822ced9e4f77ac2e3b223c", "src/backend/libc/time/types.rs": "8bcbcaa5c08fd79904d2e32d73454f9b626bd7339fe5923e7f674added053965", "src/backend/libc/ugid/mod.rs": "2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952", "src/backend/libc/ugid/syscalls.rs": "c99a18b7699dc1888528c89ab4fe3b19a49e547de2d76da766c9af56ba9f2bfb", "src/backend/libc/winsock_c.rs": "e766a63e1983b59f63a4ba06aec065241463deb3ca4d6989e8b1ce43870b0bfe", "src/backend/linux_raw/arch/aarch64.rs": "12bb15064d25f0ed08e9eb8842c7dd570393222365b5a33206adc97406d2c061", "src/backend/linux_raw/arch/arm.rs": "7cd435fa38fa553243e8d7c14294e90b948e9a2d21b5313e3b21493f3fb8f7e5", "src/backend/linux_raw/arch/mips.rs": "4eb5e66070576b0978a7c0dc1d8f13fa29928cf022389cd66badcb7f3f5f014a", "src/backend/linux_raw/arch/mips32r6.rs": "5a8a53e4af865ab1bfe2fe5c90f9c735d75fbbad49e59fc6e2b2436adc064797", "src/backend/linux_raw/arch/mips64.rs": "a934ec7c25d59ea468196ca8b6c2b3bcf6068068f2a6ecfd1fa332905224580b", "src/backend/linux_raw/arch/mips64r6.rs": "6bbe6e21e7fd4d88e0efd12f172ec25eb1ac78c7d50a509f302b2d3400aabff0", "src/backend/linux_raw/arch/mod.rs": "bf50f92a5a34a6ad7abd7fbd691844bf0ab5b54a8cc4d8c51941c600f7d1b424", "src/backend/linux_raw/arch/powerpc.rs": "e1734fa226d90d8cb1455d5e98012ca4ff73ac6b392d15fc0c53b9c0af697608", "src/backend/linux_raw/arch/powerpc64.rs": "c9f291271dd7094663d1fbf318a3fae8a23c5bce291e80a4f38c792b43474205", "src/backend/linux_raw/arch/riscv64.rs": "fa50615f6c52587e46746861ac1177285d75da1804700e651ac753fe111514d8", "src/backend/linux_raw/arch/s390x.rs": "797396e13e97feecb6eed9a9bc89017ab1faef381272ad013e144611681288d9", "src/backend/linux_raw/arch/thumb.rs": "e5752ddd79820e783c6c8c977fca34e584908bc000e21ff5177872a7042c2d69", "src/backend/linux_raw/arch/x86.rs": "c66e964b02413b1f9f843a845defb03b72f7c936dc1d35e53010870562bcd034", "src/backend/linux_raw/arch/x86_64.rs": "823327d5f16bd33c586b2641817169d216f308d15a4b70eb3a77432623aa3b16", "src/backend/linux_raw/c.rs": "b8259d7687cb16648666636561dd63c66b1664cd3d8cf0757864415188d67e8a", "src/backend/linux_raw/conv.rs": "8555b5be4c90db7ad9af66adaadc507edee4b69ec4c36068c8eee25489a39c29", "src/backend/linux_raw/event/epoll.rs": "55a1b99c54c5c2cff85d852bc3511be78666341fcaa9050571ed196ec4bc4c5f", "src/backend/linux_raw/event/mod.rs": "72e46b04637e2d1d2a6b97af616144995399e489d1fe916faf835d72fc8c64cd", "src/backend/linux_raw/event/poll_fd.rs": "a5773464e9e30227b4046f029a27d3daf2c7bd0045e54565cf1a8ac2a0d61e81", "src/backend/linux_raw/event/syscalls.rs": "81ec0bad4f30dffc7d484ff50a9456736206bc07e56a1d97283a53bc063442ec", "src/backend/linux_raw/event/types.rs": "15365b0287ec3e76a20e3ecaf1dc3ed9cea0e72d6f299a4898db90f3ffb7c759", "src/backend/linux_raw/fs/dir.rs": "89ff2d8acb045f221af279b64cda2c915d188a5ad4b30bf3bf5f9f8c5da217dc", "src/backend/linux_raw/fs/inotify.rs": "3915ba464c134ef8b12bec297b1e40b0c36c657f241bd2e1861b7c39a3de5774", "src/backend/linux_raw/fs/makedev.rs": "c6b4505c4bcbbc2460e80f3097eb15e2c8ef38d6c6e7abd78e39c53c372139e2", "src/backend/linux_raw/fs/mod.rs": "3d3a42bbf4d086f806d7d9f6e4b0a49a873dc27f4f03ffca0921f5536acc24e5", "src/backend/linux_raw/fs/syscalls.rs": "4b007efe859be1086e9b6e21189837e74b1a04874c26619f0fb70629dc1ca930", "src/backend/linux_raw/fs/types.rs": "c3fcca3bc8a46e24dc70c81e93cf7335b85928ada0f0f8008f050166cf4377f8", "src/backend/linux_raw/io/errno.rs": "42bd687878c215730238bcce6a8d7d605f07cba36fd78a9f53ac88a5cd3a06c9", "src/backend/linux_raw/io/mod.rs": "7ae2324427892cca6f5ab53858d847b165f790a72ec25f3d99fb15f0506c9f27", "src/backend/linux_raw/io/syscalls.rs": "023e63966c75cb0440d28bbb8aa7172972a4222e0df47cdf39776a2bb90b44f1", "src/backend/linux_raw/io/types.rs": "f08b224f483815ecd843d9aec9b0b4d5682409adee2c8e728ebbb874b71204a2", "src/backend/linux_raw/io_uring/mod.rs": "2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952", "src/backend/linux_raw/io_uring/syscalls.rs": "7e40703cc3a020377a4a23bc8651bdf1d65b8f62e174eafb85d27d246f86c39d", "src/backend/linux_raw/mm/mod.rs": "8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7", "src/backend/linux_raw/mm/syscalls.rs": "5f96a14759cdfb8d7dcca2551c863c6b17c1871a5de423c57d23813ab2ca8050", "src/backend/linux_raw/mm/types.rs": "dd16b7121b72d3ea75bae6ed67daf3a3f6fe509ae9cc45f1b7d33285049b0e8f", "src/backend/linux_raw/mod.rs": "8edbb969111d27b64a90c42307799e0a5cb1828a7bec3cba7cda67ea68b532d7", "src/backend/linux_raw/mount/mod.rs": "8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7", "src/backend/linux_raw/mount/syscalls.rs": "30d2a474e867e2453b401eb2e5e4a74b46ffc70efecf6c8cda16a20473a7c066", "src/backend/linux_raw/mount/types.rs": "f393fbcfb762043bd4657852b58b9eaa5ace0585af8666c5234fbbd968de55bd", "src/backend/linux_raw/net/addr.rs": "245f2e5302a1fb3d2d7deff8c8d5e32eab01d4b5679f351d32736737eabdf90a", "src/backend/linux_raw/net/mod.rs": "5640bbaf4963ac4575b0537173422ed6f6a43f34a8f6b656e7257fbbb13e5bcb", "src/backend/linux_raw/net/msghdr.rs": "6ac59d03090cd280664bb20887fd7d818bcfbc7d5beec7d791330ecbfe8bc070", "src/backend/linux_raw/net/netdevice.rs": "eb63618f989f1e4419d8f5c0519ccabd0680abd8d81aff214c5692458e8cbde1", "src/backend/linux_raw/net/read_sockaddr.rs": "ec8e5d4f1389e99884c668ad2530a8e4d2a9fa811690b41ea4ad3cfa9092749b", "src/backend/linux_raw/net/send_recv.rs": "e1fe9b647b76c25138d462748e1e594e56ccb72e7dc02bd6c4ad3c94c3f24e64", "src/backend/linux_raw/net/sockopt.rs": "ea0d013b4d4fcd28d5ed416b1cc45bd0604b0c2593cfd7522d5d4379535252bb", "src/backend/linux_raw/net/syscalls.rs": "7ffe2da0380938b3e40ce5b9607b981d7f44fcf7705e12391e36dcd5257b825a", "src/backend/linux_raw/net/write_sockaddr.rs": "e77f69f7535c7c9f8e7fc8fdfc60f208039cd681aa2c97b102edc53092f1eb43", "src/backend/linux_raw/param/auxv.rs": "ef100bd98d7b5a3466e81ffd892713554864d2f4c2fcea551c9e21e824681a7e", "src/backend/linux_raw/param/init.rs": "c38a0e4e44d25dc0640adce975573c6d0a7e76fd1e23a9754fd97cf32d7c6bee", "src/backend/linux_raw/param/libc_auxv.rs": "a06e2691ee174a81b8ca8d0c266c4a45512a95f274587e3b98786cfd7d9bbde5", "src/backend/linux_raw/param/mod.rs": "2e6a1a1c00351b9c88bd615aa923f71d76208df5626dd9bea03067f28f81dc31", "src/backend/linux_raw/pid/mod.rs": "2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952", "src/backend/linux_raw/pid/syscalls.rs": "d0b5a911940a07bb333ed709e2ecda31965a1aa979689d788af2a063272b0f43", "src/backend/linux_raw/pipe/mod.rs": "8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7", "src/backend/linux_raw/pipe/syscalls.rs": "63ea3215bb837d354f30866c7e86a3fd9596bdc3eac6986193694865da99b163", "src/backend/linux_raw/pipe/types.rs": "55abd34b363307e6102dfca51fbe9a6dbd42254af1b93e1089711fa19699bd8a", "src/backend/linux_raw/prctl/mod.rs": "2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952", "src/backend/linux_raw/prctl/syscalls.rs": "a18b224307e0d27bda9b7b85c75cd6c7ddfe39f5ce52efb7bb0bf0585b757343", "src/backend/linux_raw/process/mod.rs": "6b021a8b81a0323b520d89a1566360c0525a58fb0860ce9dcd4b46ef3bcb2fc3", "src/backend/linux_raw/process/syscalls.rs": "8e7c6d1c07fbbc1db1ef22f05bcd91ceb2c3e3cbe2c99a158d70139c457d065e", "src/backend/linux_raw/process/types.rs": "47ecd87edcd9bcc8f45058610b268c994f3f21a218e9052789c554eabda8c4ba", "src/backend/linux_raw/process/wait.rs": "c1c90edeab2179280f86aeca0bd1b7237e1558645c80d98d9febb19b55f4c910", "src/backend/linux_raw/pty/mod.rs": "2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952", "src/backend/linux_raw/pty/syscalls.rs": "ae09c4aecc0ae87b1ca58d82efc58007b9dddaae78460d615f48da19d1cd0f89", "src/backend/linux_raw/rand/mod.rs": "8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7", "src/backend/linux_raw/rand/syscalls.rs": "6871413354ea271c3f6c1531490d43c8363fa9356a0d900b3a25649e71d3f633", "src/backend/linux_raw/rand/types.rs": "a21dbb1ab31eed6b59a57520be5a3c603c36d18ea74e67f7527f40835ba209a3", "src/backend/linux_raw/reg.rs": "3e321750d91d77c835abd09b06b5851ebf3134d3affb3cce306e38329871bec4", "src/backend/linux_raw/runtime/mod.rs": "b2cae8cce3822c3c92942f06ea0b68464040dcac33c6f0f7ee392c6269993347", "src/backend/linux_raw/runtime/syscalls.rs": "25679940620395e8e8f67a214b573ecba0d8a01b3d91f909ab36a707f889246a", "src/backend/linux_raw/runtime/tls.rs": "364d651b58e0169e22c67586661848d86daff38080a374bb86ce3300794f7e4e", "src/backend/linux_raw/shm/mod.rs": "8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7", "src/backend/linux_raw/shm/syscalls.rs": "d47734bcaebe004c3b5f1329df75eafd687aaf4ad9d16857dd2e8b2ed7d9e417", "src/backend/linux_raw/shm/types.rs": "d6e739cae9a438624d3eb295146f1356e6beb92a12b21904dc5cb3d5dd80c85e", "src/backend/linux_raw/system/mod.rs": "8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7", "src/backend/linux_raw/system/syscalls.rs": "94e9f219276dba7f71fe6512a6d2554d3fcf05af08d6376619220b302ddd007d", "src/backend/linux_raw/system/types.rs": "fc32d2141cc2305b129bee28ab446a0ce0e0a64505caaef06e3482ea5ae40090", "src/backend/linux_raw/termios/mod.rs": "8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7", "src/backend/linux_raw/termios/syscalls.rs": "c1d42cfc87d65a737fb0c38c8e04bd7f25536bbaaf134050b5cd782985a3c4fd", "src/backend/linux_raw/termios/types.rs": "37ae0356a50d62dac7c3575f6fea13a4daf8ef10c119673fc9d4d30ac0c36ab6", "src/backend/linux_raw/thread/cpu_set.rs": "3a7223d540e20bd45b342bd2781756fa3b9d0d331d3007db91e55a1d65e3a571", "src/backend/linux_raw/thread/futex.rs": "2b949694d9c6a2b6fccc6b4cee73673b9cb74903728beb2e88464ea0b3778c3c", "src/backend/linux_raw/thread/mod.rs": "93ada3063d5c398901b2ad130797ba1b797ffd814c969780bd5c06cea8e7619c", "src/backend/linux_raw/thread/syscalls.rs": "0bc5b45f85ad9d66ec01e7ddb35871f15f10a0a9a9a6e30a5bd75d2f1cc91068", "src/backend/linux_raw/thread/types.rs": "cc7153e742eacb78acfed2c5977e38a18f21afc9bb6e05bdbd8803c2b7ba1670", "src/backend/linux_raw/time/mod.rs": "8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7", "src/backend/linux_raw/time/syscalls.rs": "66e3811ffdd3fd7f9ce679063e6ce80e755149b37ce437045a30d48cf4f67cdd", "src/backend/linux_raw/time/types.rs": "430e7798c2332b72d45f9d430e96302211d7195c3b0810d213442bfa5d8295ee", "src/backend/linux_raw/ugid/mod.rs": "2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952", "src/backend/linux_raw/ugid/syscalls.rs": "e77637de0015835039562661d3451afeebce0c7d019cf8e93b6572ee4f20f71c", "src/backend/linux_raw/vdso.rs": "1ef85f02ba89e5afa5b9b574143ed58c447aed18c4e50eb861183cd0e5cbefb0", "src/backend/linux_raw/vdso_wrappers.rs": "cf31e9520c46293e05f1cba001269d9b56db6e3114326ea132e095903a310e9a", "src/bitcast.rs": "6b26f35379b3a39b0cf1458d8ac5d5d1bef28e901ef27f0e5248fbfb2d286216", "src/buffer.rs": "12375a04126d8dfa67fa5a5f3906f4be79bfc5a2ea704d00207322d94f9bdc05", "src/check_types.rs": "a49699c99d942a1d54093b4db36007f24b9807f52e8af6249da4fe4cbe1fde30", "src/clockid.rs": "22820bee8ec05724c02ce7bb606c312b4d3349e5898269f6392d366055875cfe", "src/cstr.rs": "7e291c3a6e5f0c052d9067756e284acf14e73365203b69a4937b923c689e4960", "src/event/epoll.rs": "692bfb5224dbc6aecf912a8218c9841d2cc45134dab462738957e69b3ee98251", "src/event/eventfd.rs": "81cbd08f7bdf40a6ce1ca692b63da1dc8ba925282990668d9d68f1203e839fa1", "src/event/kqueue.rs": "e6022ca584cb0b453a4c4e03be353c97d2f64727278c366758899a0167d48776", "src/event/mod.rs": "fe148bcf9de924f3de4e3416b35c8d43a6964c460b12dcd898b2cf2bdc219abf", "src/event/pause.rs": "fee4b6daf3ed698e85cd6e2c5b9058ffd84e4d21f6f25b336417a9e1ff200ec4", "src/event/poll.rs": "0b3244e1e9c4b2fd17d699ad3ee0af999807836980791e889942b7c710faaa05", "src/event/port.rs": "4bfdf5632cf19dac24db34f2be9913c6d34cd7a57168949d7a531b96fc6e9e27", "src/event/select.rs": "f0b35f6ba35a4446bcef3b109516a4f1ff6ad295d0d4b53b5a9406aa06079b6d", "src/ffi.rs": "fdf74f38eee3d4909b0a866748a6fd9c1a32948a71377c4f1579fc4448c057d8", "src/fs/abs.rs": "28e60f3899f92e0eeee6cb5c42299700c8fc5efb3c35ad67e8f097cea2874dce", "src/fs/at.rs": "f0fdc414e679bbd5a9a4c89cd1895433e1b3332675fc80a58905ab5c1d650c45", "src/fs/constants.rs": "0a78ef3e1f829e31c52a4de9b3b6897f6db637f3a09a4958006ddfcbf98fb8bd", "src/fs/copy_file_range.rs": "d3b644374390d482b2ff749a2459458872b57d0dcf9670368739b7833509a7c2", "src/fs/dir.rs": "347a52f4ca9ac6321c52e802e97ec90d1b4c62ec955c8996fc17f8f5aed69966", "src/fs/fadvise.rs": "33a4eba049ee331913feb8d740320abc58207a69cf02b81bb11291b83110ac5a", "src/fs/fcntl.rs": "3cbcfeb62eca4818239a611bd2df35a0781e1a703b30860f15de77063c7e9179", "src/fs/fcntl_apple.rs": "e2f23f038083621bcdecc98d02ce1023508afaecdb2ed0fba5c8b70f955301e5", "src/fs/fcopyfile.rs": "ce565f61e1fbf2e31086077c2f1d01b6bb3b048915edda87fe9a4a4f5e8ff7e4", "src/fs/fd.rs": "f192fd1d72bc98339fc6a6d57c9a17774a6135f917d204174144c38ade159114", "src/fs/getpath.rs": "28f6970fc1bbc37bb35c84724b59eac436ea7407a4522e18c2bdacb1fdd2edd9", "src/fs/id.rs": "1b5c8a8baf9a9bb1f895f97189cea4e5982a0d35b192afeec6340a6c6222e0cb", "src/fs/inotify.rs": "160e05e6f9ce9e966754747d9ac77882228c572860560de95add337cab9caaa2", "src/fs/ioctl.rs": "c2244a7234c60ddd4fb96c8d0f4de903562b06104f85180f0dc1c0b941d7f11e", "src/fs/makedev.rs": "b31f8e58cb1098abd0e7e5e78c7ae00d7760cf94e1a30aafe04fd8f3707c8bbd", "src/fs/memfd_create.rs": "b83a5ce6476a226c2098774020481d0dc0ec5c52be09d9a58a877437592e8928", "src/fs/mod.rs": "b4641df9c7b56da186410fca1e8b2d4d1c604bb5e869e5ce95ae0676beeca351", "src/fs/openat2.rs": "8e2b73aa55bb5a6fa5c74fd022133ec5577a1db2dc3ab0f2b022b44cd08cbf4e", "src/fs/raw_dir.rs": "5df35b1e090c1df9505434b3036238d9458b97e96819ebeefd788d863894f60c", "src/fs/seek_from.rs": "f3f5bd18d27808f6be9ab2df4d05515b2b5703e5f1f02e6d36f20507e20fe5cd", "src/fs/sendfile.rs": "b0fe446ad86ce44d4fc4b736d819478d71947a4ac27982864174ea16e990a839", "src/fs/special.rs": "4fb09337169a48a2f1032487885f68acddf10d130ada2117e3027eb0846e1c12", "src/fs/statx.rs": "ae97472b69f3846701b5575d2e9d992f79ca4ecdf277b3deb174cf4ebe73b362", "src/fs/sync.rs": "84f24de0ea53f77bd5c471e097abcbecd19c4843b69607f9be9030eb7c9d5aa5", "src/fs/xattr.rs": "a1eacfad1cd089fc1786367211870326e4077b452bf4d6c9b7d3e2e959d484de", "src/io/close.rs": "e6f184a806e7671d03c61f09c24a721d410a177c4ac1e08f5039e21fa9caaf5c", "src/io/dup.rs": "08926bbe2b2c5dbc3d0ff79bfac8be725b90106c91087c8db9df3928ad05c7c1", "src/io/errno.rs": "d014b6a4a4d92cda1e75873a074226101b58bccb4b787985ab00517a3dd9b926", "src/io/fcntl.rs": "99fa698c6a6c68ecece7e7d14e0a65e1b6e17d360f028e14f8800d42a355b22c", "src/io/ioctl.rs": "aa54af5b2e2fe14a88fc0dbba749067321ee816d6c6fb7218cb4e42fd1c4f7a6", "src/io/mod.rs": "8656db3ce0fc51128d9bc6daac4591a5fedd269333627ebf86d6f045305f9e0b", "src/io/read_write.rs": "080dc99807505449ef3e4f619bdf5c8ecda024f33bfeb14faab0b91f45e17cd6", "src/io_uring/bindgen_types.rs": "0f38cb903c962abe2fca743e137d191644428582c5e48ca6004f4e3b5bd11631", "src/io_uring/mod.rs": "e149b36e1dbf4117bf47dc6542bd9e779902b21c78e4d6144092e2427fcd9e5b", "src/ioctl/bsd.rs": "614e647caad5d7f81b2d570ca0dc77cd942f53a2544e4d1252155370e6fe364a", "src/ioctl/linux.rs": "18e6abaa9d58a4365f27029e7944bb896e5cdb5e87329a27e620cd4db508c2b3", "src/ioctl/mod.rs": "58d28ddd723671cdaa3ed8a8bfc1e21d5c115fb820278a41c38ebe50f2bc5a08", "src/ioctl/patterns.rs": "8bc7f5020c68ef67667b9078a867eb9bc5ad6ab7c674c577541d360052a299d3", "src/kernel_sigset.rs": "f457d0e4b6b10c458a84b4877599f9f4607e6b4693dbc37b80f64a269711f686", "src/lib.rs": "266ea5d36749cc96ff88a9458e4dded72e3b06e436f1ba7c8375dadd375ba94b", "src/maybe_polyfill/no_std/io/mod.rs": "77889bb5c5a4f2e50e38379cdaa5d0fef4b0cafc3da056735df01f6deae75747", "src/maybe_polyfill/no_std/mod.rs": "2a10587d0753bd4f849056643fefc98cea90dce266396f8a7bb3a3a1f318e0bb", "src/maybe_polyfill/no_std/net/mod.rs": "1e94d21d455bb1da18a4fccb24b3d93ad42698e22dd888b78115d6266c80288a", "src/maybe_polyfill/no_std/os/fd/mod.rs": "27ef0afbcb0695cbb15101070f417eb51e0ef85ae66ec967d95e80771d507c47", "src/maybe_polyfill/no_std/os/fd/owned.rs": "7ccc8373b44b9ded0e5f4ac9f3c57cac089cc78ce756fc6c13be4d848306329b", "src/maybe_polyfill/no_std/os/fd/raw.rs": "f3648c7bd4a6ff94bd823ed9e0d99d398e02f24875cf9b25962736999e7c6943", "src/maybe_polyfill/no_std/os/mod.rs": "27dab639a765827644005d5f2fcc7c825310606b889cc8dd83f54c9528350dc0", "src/maybe_polyfill/no_std/os/windows/io/mod.rs": "5bbcc05c83fee5026dd744a994e0458469466d5be39081baa62df07753b92fd2", "src/maybe_polyfill/no_std/os/windows/io/raw.rs": "0a82257f263f02a685536538b656f152041ab406155feab294e93e00969b834f", "src/maybe_polyfill/no_std/os/windows/io/socket.rs": "f455fbe9f5dfb38c77892d39116d0153c0e68aff35c0967ec8a28a9587cdecfa", "src/maybe_polyfill/no_std/os/windows/mod.rs": "fdb416f8f231a4e778b5f985b9ae712ece5e1a1402963ad1a5f6a8b9843795f4", "src/maybe_polyfill/std/mod.rs": "d0261b88ece984c9947896a89d7f3ff3470603e5bb5681169ebdb56cbd98a9a6", "src/mm/madvise.rs": "092ff2064b16960369a908aeed70ec38a16fa2a0207f814cdea379e2f2286954", "src/mm/mmap.rs": "7a19699f3b30639f8796cd762b836e74e9aa0950960bb818b1eabdb56fce40f7", "src/mm/mod.rs": "b3a6cb838986d45825b912355cedead761211a494ca6f89b2367a2d2157e340e", "src/mm/msync.rs": "0cfb895703b8b7bac47426c8f03499f2aced3f4e1f31008243a1a629e9d44a1d", "src/mm/userfaultfd.rs": "4d72aee1ba5b6f079064370dcb4fb3a90b359971c869ab8d9727c359f61b971a", "src/mount/fsopen.rs": "0c577ef7e8d9adb3a005785c88d1a7d97622cc7512954b7c00aed936f09352cd", "src/mount/mod.rs": "3896d1f0059a3c26314af70df27e3a9445c0f21843cd33589850e6f0e186f773", "src/mount/mount_unmount.rs": "b888da0c4b59a4552d9058067a357aac9d6f8ccf3c5b2b8d735fb9590b1e9cf0", "src/mount/types.rs": "601ae3e10b7dc496fed7f3b40a80e81c6edd7bf13189d7be45c3212d4c684c39", "src/net/addr.rs": "24b5214b3abc4c5459aa23e46e835edd8b61f9caf54afe43abf4361a9bf0f829", "src/net/mod.rs": "148286bb768ac38e74716bc8aa3fbdc446bb73b2e525524df7b31ed5bb5d1c9b", "src/net/netdevice.rs": "79e2313630f9995e1ca079cd7a658037c4780d5f8152f05edc18b8d9da2dbc66", "src/net/send_recv/mod.rs": "c6f1bcfae0388be6cf66ee70463be63d53683f23bfbe237b9073ba9fe52a11d9", "src/net/send_recv/msg.rs": "5fff35c9193f67d1724c920bab7081b8b8b1368aba250f22fe90caf501141b08", "src/net/socket.rs": "89e97e4675396cd09954729370f02e74ebb1433800e07ac3702cf0bf39a5b661", "src/net/socket_addr_any.rs": "2723feb96ecffeaa552c21adc63eec887549a28b9748088995e68a053f29b59e", "src/net/socketpair.rs": "aa9013de19945bfea3f7d2889cc23abd384717b79f38cd5d045dec09c7517658", "src/net/sockopt.rs": "ce1deb945cb795436a14451ac46e8b2433f3eab97676f82470fbdaeedf874dc1", "src/net/types.rs": "d413ae5605e2c182898d34a8889875f100c5fa4ef94271f09cdc49f387ee6f69", "src/net/wsa.rs": "29856e6d0108be6b719f6ef973c5396e48ddd58ecd0c2db9ca3e2e0ba4eccb5b", "src/not_implemented.rs": "649cdb390d5c18aaaad3f58a052ae74bb264b04f4c02bcc6cfffa87f1f6720ab", "src/param/auxv.rs": "a0239a69a7b2484674f8f556212b45a0f4d3bafbccc23f4cd8bc9ae1fb2883e1", "src/param/init.rs": "f44c8dcf26c3d5f8d8b5aa0a7ee5d6e953ad4baeaca88c6f20cb88eaf0f2e3c9", "src/param/mod.rs": "c514216b96d9520c9ffc5662c97b24f1f36f56fe1f5f3c9f64175c8b35577288", "src/path/arg.rs": "c91ddbeaabd36987cd82fe2f2d1d8a604e5e650f51523a4a9a30f03d074a0504", "src/path/dec_int.rs": "9a8d20552acb530d69593f8bee5a6dca2c96a9677e04c7925ad7dd2e23cedf08", "src/path/mod.rs": "8f4e2cb48cbdbf6844f25232e5a19fcfe22048b5eb2134a1367349a44f88e8ea", "src/pid.rs": "918e76813c872e244428c60e05ea7dc595db793015bafadfbb4de5669176a568", "src/pipe.rs": "ba3618c6e6cedceedb33f96cbc45d185291e1c1751cee0d5652bd44d9e05188d", "src/prctl.rs": "f289ebecdede3d8e71a83e9300c436fc37f7e958fed30a4a746c97307a340113", "src/process/chdir.rs": "d5ed5d97e1c7a10c5e935f24774d42fbe4f0253620709e86f9e8bff1c8a93b66", "src/process/chroot.rs": "01191eeb86295975874019dc675cb0f8f0ca5f79dd78dc9d1c791a952adb3512", "src/process/exit.rs": "e8c22fd82e85652eb3ff892ee421d43d8edfa82729815417bd8e1624f254c9c1", "src/process/fcntl_getlk.rs": "7fa3ddc36cee2547d49a107dc313ac438b5fde7ba6e9bcb741c549ac151b4364", "src/process/id.rs": "71d82dcce9d3cad4bf4cbfa343be688146829e8d111934e16b5766e066ead36a", "src/process/ioctl.rs": "0dc8cf8a8fddb710f14f695f1f253c5b474d9aa5691853d7142c1bc6c0a0a1b1", "src/process/kill.rs": "7d6d2b15f00c2d0dd08042a1a4498a5080a3a159183ea630cd265283040a6f90", "src/process/mod.rs": "9c6d36d7a8c78c86919a4516108154f40c6088e18e7eed76c926d9be27daa1db", "src/process/pidfd.rs": "ce9c52d7f8a3d79a285f070a2a8c0536a84a7e31a8dcb0d76def1078ed6f0726", "src/process/pidfd_getfd.rs": "88bfa535b25d8983c5d0fe0d5328da31252da7218d96602260739eeb5689529d", "src/process/pivot_root.rs": "aeb2464464efd81ca0b940e3e5e3ed1b09380f3e6ba3200972e0ba100f78badc", "src/process/prctl.rs": "fc8db12903a7f2ea8258473a84c400d76aed5c799453a0a8a555f150a79964c6", "src/process/priority.rs": "f11cf35ed9eee03a1f84120754e76db51cf64e6a0d609c9c7fc4b373b9eae5fe", "src/process/procctl.rs": "70e4b4a7de295eeefc5d595b3829bf99e6bec5fbc04eaefa897eefd9cac12d3f", "src/process/rlimit.rs": "10becde11d8b5d3b50aeb21a8fcdf53ec7803bdbbf8d1f4233b8e6c0b85fafb1", "src/process/types.rs": "c44f7971debaf1c355cce11babfb9a78e6f34bdb6686b51386bd8e4f92d7b0d7", "src/process/umask.rs": "15841f5e178dd032f8b8def8545c9e98b205e6b1ba70bf9c07c2c0327a8999c0", "src/process/wait.rs": "6e9763df5e56390c55aa8028851f20391b104e93016fa0acacaf6063063576f6", "src/pty.rs": "8ccdcd92b4c7a452da1068b44b196836f694fa46fa22c446a7f9e1d1dc4172c7", "src/rand/getrandom.rs": "50725a6edf19952a33771c8dd671d15feeb2798362291fbc3ca9758110b36e67", "src/rand/mod.rs": "cab59332aadd9b679f5b22cbb222d48ee028af5eb9fd4a4d43922da659b895d7", "src/runtime.rs": "97c4d285b531af32b40fa11309c9b04fb997c8ae6c89fda91897b6d555ef936e", "src/shm.rs": "8c80096f1a619c43ee078d947129d0dc0ba7c241496335c7a12c91fbc4ddf1c7", "src/signal.rs": "666c0678a2da8bb309fade625016982c7dbe4313da9d74dfed99eac5d8c50a7c", "src/static_assertions.rs": "504cf66f0d5b8e335be02f9ae8b0a355abc98c2c82eec0098bdf0988e662e260", "src/stdio.rs": "38fff53c9845a0e44742b2c4d1d13632b88f7e53ae8888405a645fdf758c05f6", "src/system.rs": "388b4a57c50b41b56ddd3e1968d9f505a213dfe65602e61d2916389f065389d4", "src/termios/ioctl.rs": "8621e7525142d604d7e1bd242132b6fdb5dad048040bcf352acf5213aeb75ef6", "src/termios/mod.rs": "1c467add8298266b9a931d76be51a1046e2fd541775e0856f2700c436ef37da6", "src/termios/tc.rs": "34a9ba54a0207aad1aa5be7adff79708e91623e3bc5a1a2cac756d66519deafe", "src/termios/tty.rs": "25438c7e49621fa64b2777bd7b4de6e74bd9bd1aff324f99daf8619f98c8d013", "src/termios/types.rs": "bb78b37aadccd81e599002197d9aaea7afc10f8e693d6544f7a2d942dc11f72d", "src/thread/clock.rs": "e90a1437e5f9a0decce312c3fa0259d100ec85e050cf14a497c6c26a3bd7d32e", "src/thread/futex.rs": "5a2919d7e9b161d65c09b6f38e702e1a5772ee5f08295e761c75c344707f8a1a", "src/thread/id.rs": "0681e9f3ba22744019ab0a5a5ca78416614b88c31ef879ed260d60dc460689e7", "src/thread/libcap.rs": "4c51b7df566d38dd0f85f81ef53279a745a39f0f4e1154791fd38438e2ca7db1", "src/thread/membarrier.rs": "0c71af8f563d3e2c3552e220dbf66a31d4c35cfea9fd900d60fe002bb230baea", "src/thread/mod.rs": "dddc17c7494b7028a3dc3dc5481797a4f454d2fb9ed086afecfa467270bdf6e6", "src/thread/prctl.rs": "1d91f1513f0984beee85037edc6238e7db7149817277f13cdab69e536a3e38ec", "src/thread/sched.rs": "d1eb4de567dfd1471293b56a275d1003390d7a56a689ed30bbb3c68ebab3fa73", "src/thread/sched_yield.rs": "4208a36afd20e36c9551cf62ea5facaccfed2fffac85aaa66240b777b8b28de0", "src/thread/setns.rs": "dd7cf5423ab6c362edea4b45b9c93066dd126ecf950c07f4a815fe26cf89a99e", "src/time/clock.rs": "7588a33f5279ee683f39ce72a8d0a8dfcc2e25d3dbc29990e6829d7c2df7d99b", "src/time/mod.rs": "43afee938c80d124d04d4ba190c03f4d21d1e3bfc154fff309211e4f6eabe940", "src/time/timerfd.rs": "4df9b6ccd7313b6695b3a2d86a54c6edebd6ce9e5b0d12c3f27751ff87714bf7", "src/timespec.rs": "6e9c00542fee7ca356e38418caac11ee204fd88c92618db15fb2455c8076177a", "src/ugid.rs": "3e259583a0534ce201d5c1d61c7ac35623c03d8c517297e4462b73ec7ce26bf3", "src/utils.rs": "ad680ad8564cb7b37fc746e0b3f89d389278fe1b294ef343a5c4a37677414065", "src/weak.rs": "70af3db87318575d2c19869274a3109ac6c596272aa5f4746aa276dbcf679524"}, "package": "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"}
\ No newline at end of file
diff --git a/vendor/rustix-1.0.8/CHANGES.md b/vendor/rustix-1.0.8/CHANGES.md
new file mode 100644
index 0000000..fd5770d
--- /dev/null
+++ b/vendor/rustix-1.0.8/CHANGES.md
@@ -0,0 +1,397 @@
+# Changes from 0.38.x to 1.x
+
+## Silent behavior changes
+
+[`rustix::pipe::fcntl_setpipe_size`] now returns the new size, which may be
+greater than the requested size.
+
+[`rustix::pipe::fcntl_setpipe_size`]: https://docs.rs/rustix/1/rustix/pipe/fn.fcntl_setpipe_size.html
+
+When a `&mut Vec<_>` is passed to [`rustix::event::epoll::wait`],
+[`rustix::event::kqueue::kevent`], or [`rustix::event::port::getn`], these
+functions previously adjusted the length of the `Vec` to the number of elements
+written, and now do not. A common alternative is to wrap the `&mut Vec<_>`
+using [`spare_capacity`], and then to clear the `Vec` by iterating using
+`.drain(..)` after each call. For an example of using `spare_capacity` in this
+way, see [here].
+
+[`rustix::event::epoll::wait`]: https://docs.rs/rustix/1/rustix/event/epoll/fn.wait.html
+[`rustix::event::kqueue::kevent`]: https://docs.rs/rustix/1/x86_64-unknown-freebsd/rustix/event/kqueue/fn.kevent.html
+[`rustix::event::port::getn`]: https://docs.rs/rustix/1/x86_64-unknown-illumos/rustix/event/port/fn.getn.html
+[`spare_capacity`]: https://docs.rs/rustix/1/rustix/buffer/fn.spare_capacity.html
+[here]: https://docs.rs/rustix/1/rustix/event/epoll/index.html#examples
+
+## API changes
+
+`rustix::thread::FutexOperation` and `rustix::thread::futex` are removed. Use
+the functions in the [`rustix::thread::futex`] module instead.
+
+[`rustix::thread::futex`]: https://docs.rs/rustix/1/rustix/thread/futex/index.html
+
+[`rustix::process::waitpid`]'s return type changed from `WaitStatus` to
+`(Pid, WaitStatus)`, to additionally return the pid of the child.
+
+[`rustix::process::waitpid`]: https://docs.rs/rustix/1/rustix/process/fn.waitpid.html
+
+[`terminating_signal`] and other functions in [`rustix::process::WaitStatus`] changed
+from returning `u32` to returning `i32`, for better compatibility with the new
+[`Signal`] type and [`exit`].
+
+[`terminating_signal`]: https://docs.rs/rustix/1/rustix/process/struct.WaitStatus.html#method.terminating_signal
+[`rustix::process::WaitStatus`]: https://docs.rs/rustix/1/rustix/process/struct.WaitStatus.html
+[`Signal`]: https://docs.rs/rustix/1/rustix/process/struct.Signal.html
+[`exit`]: std::process::exit
+
+The `SLAVE` flag in [`rustix::mount::MountPropagationFlags`] is renamed to
+[`DOWNSTREAM`].
+
+[`rustix::mount::MountPropagationFlags`]: https://docs.rs/rustix/1/rustix/mount/struct.MountPropagationFlags.html
+[`DOWNSTREAM`]: https://docs.rs/rustix/1/rustix/mount/struct.MountPropagationFlags.html#associatedconstant.DOWNSTREAM
+
+The "cc" and "libc-extra-traits" features are removed. The "cc" feature hasn't
+had any effect for several major releases. If you need the traits provided by
+"libc-extra-traits", you should instead depend on libc directly and enable its
+"extra_traits" feature.
+
+`rustix::net::Shutdown::ReadWrite` is renamed to
+[`rustix::net::Shutdown::Both`] to [align with std].
+
+[`rustix::net::Shutdown::Both`]: https://docs.rs/rustix/1/rustix/net/enum.Shutdown.html#variant.Both
+[align with std]: https://doc.rust-lang.org/stable/std/net/enum.Shutdown.html#variant.Both
+
+The `rustix::io_uring::io_uring_register_files_skip` function is replaced with
+a [`IORING_REGISTER_FILES_SKIP`] constant, similar to the [`rustix::fs::CWD`]
+constant.
+
+[`IORING_REGISTER_FILES_SKIP`]: https://docs.rs/rustix/1/rustix/io_uring/constant.IORING_REGISTER_FILES_SKIP.html
+[`rustix::fs::CWD`]: https://docs.rs/rustix/1/rustix/fs/constant.CWD.html
+
+[`rustix::io_uring::io_uring_register`] now has a [`IoringRegisterFlags`]
+argument, and `rustix::io_uring::io_uring_register_with` is removed.
+
+[`rustix::io_uring::io_uring_register`]: https://docs.rs/rustix/1/rustix/io_uring/fn.io_uring_register.html
+[`IoringRegisterFlags`]: https://docs.rs/rustix/1/rustix/io_uring/struct.IoringRegisterFlags.html
+
+Several structs in [`rustix::io_uring`] are now marked `#[non_exhaustive]`
+because they contain padding or reserved fields. Instead of constructing
+them with field values and `..Default::default()`, construct them with
+`Default::default()` and separately assign the fields.
+
+[`rustix::io_uring`]: https://docs.rs/rustix/1/rustix/io_uring/index.html
+
+[`rustix::process::Resource`], [`rustix::thread::MembarrierCommand`], and
+[`rustix::thread::Capability`] are now marked `#[non_exhaustive]` to ease
+migration in case new constants are defined in the future.
+
+[`rustix::process::Resource`]: https://docs.rs/rustix/1/rustix/process/enum.Resource.html
+[`rustix::thread::MembarrierCommand`]: https://docs.rs/rustix/1/rustix/thread/enum.MembarrierCommand.html
+[`rustix::thread::Capability`]: https://docs.rs/rustix/1/rustix/thread/enum.Capability.html
+
+`rustix::process::WaitidOptions` and `rustix::process::WaitidStatus` are
+renamed to
+[`rustix::process::WaitIdOptions`] and [`rustix::process::WaitIdStatus`] (note
+the capitalization), for consistency with [`rustix::process::WaitId`].
+
+[`rustix::process::WaitIdOptions`]: https://docs.rs/rustix/1/rustix/process/struct.WaitIdOptions.html
+[`rustix::process::WaitIdStatus`]: https://docs.rs/rustix/1/rustix/process/struct.WaitIdStatus.html
+[`rustix::process::WaitId`]: https://docs.rs/rustix/1/rustix/process/enum.WaitId.html
+
+The offsets in [`rustix::fs::SeekFrom::Hole`] and
+[`rustix::fs::SeekFrom::Data`] are changed from `i64` to `u64`, to
+[align with std], since they represent absolute offsets.
+
+[`rustix::fs::SeekFrom::Hole`]: https://docs.rs/rustix/1/rustix/fs/enum.SeekFrom.html#variant.Hole
+[`rustix::fs::SeekFrom::Data`]: https://docs.rs/rustix/1/rustix/fs/enum.SeekFrom.html#variant.Data
+[align with std]: https://doc.rust-lang.org/stable/std/io/enum.SeekFrom.html#variant.Start
+
+Functions in [`rustix::net::sockopt`] are renamed to remove the `get_` prefix,
+to [align with Rust conventions].
+
+[`rustix::net::sockopt`]: https://docs.rs/rustix/1/rustix/net/sockopt/index.html
+[align with Rust conventions]: https://rust-lang.github.io/api-guidelines/naming.html#getter-names-follow-rust-convention-c-getter
+
+`rustix::process::sched_*` and `rustix::process::membarrier_*` are moved from
+[`rustix::process`] to [`rustix::thread`], as they operate on the current
+thread rather than the current process.
+
+[`rustix::process`]: https://docs.rs/rustix/1/rustix/process/index.html
+[`rustix::thread`]: https://docs.rs/rustix/1/rustix/thread/index.html
+
+The `udata` in [`rustix::event::kqueue::Event`] is changed from `isize` to
+`*mut c_void` to better propagate pointer provenance. To use arbitrary integer
+values, convert using the [`without_provenance_mut`] and the [`.addr()`]
+functions.
+
+[`rustix::event::kqueue::Event`]: https://docs.rs/rustix/1/x86_64-unknown-freebsd/rustix/event/kqueue/struct.Event.html
+[`without_provenance_mut`]: https://doc.rust-lang.org/stable/std/ptr/fn.without_provenance_mut.html
+[`.addr()`]: https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.addr
+
+`rustix::mount::mount_recursive_bind` is renamed to
+[`rustix::mount::mount_bind_recursive`]. See [this comment] for details.
+
+[`rustix::mount::mount_bind_recursive`]: https://docs.rs/rustix/1/rustix/mount/fn.mount_bind_recursive.html
+[this comment]: https://github.com/bytecodealliance/rustix/pull/763#issuecomment-1662756184
+
+The `rustix::procfs` is removed. This functionality is now available in the
+[rustix-linux-procfs crate].
+
+[rustix-linux-procfs crate]: https://crates.io/crates/rustix-linux-procfs
+
+`rustix::net::RecvMsgReturn` is renamed to [`rustix::net::RecvMsg`].
+
+[`rustix::net::RecvMsg`]: https://docs.rs/rustix/1/rustix/net/struct.RecvMsg.html
+
+The `flags` field of [`rustix::net::RecvMsg`] changed type from [`RecvFlags`]
+to a new [`ReturnFlags`], since it supports a different set of flags.
+
+[`rustix::net::RecvMsg`]: https://docs.rs/rustix/1/rustix/net/struct.RecvMsg.html
+[`RecvFlags`]: https://docs.rs/rustix/1/rustix/net/struct.RecvFlags.html
+[`ReturnFlags`]: https://docs.rs/rustix/1/rustix/net/struct.ReturnFlags.html
+
+[`rustix::event::poll`]'s and [`rustix::event::epoll`]'s `timeout` argument
+changed from a `c_int` where `-1` means no timeout and non-negative numbers
+mean a timeout in milliseconds to an `Option<&Timespec>`. The [`Timespec`]'s
+fields are `tv_sec` which holds seconds and `tv_nsec` which holds nanoseconds.
+
+[`rustix::event::poll`]: https://docs.rs/rustix/1/rustix/event/fn.poll.html
+[`rustix::event::epoll`]: https://docs.rs/rustix/1/rustix/event/epoll/index.html
+[`Timespec`]: https://docs.rs/rustix/1/rustix/time/struct.Timespec.html
+
+The timeout argument in [`rustix::thread::futex::wait`],
+[`rustix::thread::futex::lock_pi`], [`rustix::thread::futex::wait_bitset`],
+[`rustix::thread::futex::wait_requeue_pi`], and
+[`rustix::thread::futex::lock_pi2`] changed from `Option<Timespec>` to
+`Option<&Timespec>`, for consistency with the rest of rustix's API, and for
+low-level efficiency, as it means the implementation doesn't need to make a
+copy of the `Timespec` to take its address. An easy way to convert an
+`Option<Timespec>` to an `Option<&Timespec> is to use [`Option::as_ref`].
+
+[`rustix::thread::futex::wait`]: https://docs.rs/rustix/1/rustix/thread/futex/fn.wait.html
+[`rustix::thread::futex::lock_pi`]: https://docs.rs/rustix/1/rustix/thread/futex/fn.lock_pi.html
+[`rustix::thread::futex::wait_bitset`]: https://docs.rs/rustix/1/rustix/thread/futex/fn.wait_bitset.html
+[`rustix::thread::futex::wait_requeue_pi`]: https://docs.rs/rustix/1/rustix/thread/futex/fn.wait_requeue_pi.html
+[`rustix::thread::futex::lock_pi2`]: https://docs.rs/rustix/1/rustix/thread/futex/fn.lock_pi2.html
+[`Option::as_ref`]: https://doc.rust-lang.org/stable/std/option/enum.Option.html#method.as_ref
+
+Functions in [`rustix::event::port`] are renamed to remove the redundant
+`port_*` prefix.
+
+[`rustix::event::port`]: https://docs.rs/rustix/1/x86_64-unknown-illumos/rustix/event/port/index.html
+
+`rustix::fs::inotify::InotifyEvent` is renamed to
+[`rustix::fs::inotify::Event`] to remove the redundant prefix.
+
+[`rustix::fs::inotify::Event`]: https://docs.rs/rustix/1/rustix/fs/inotify/struct.Event.html
+
+`rustix::fs::StatExt` is removed, and the timestamp fields `st_atime`,
+`st_mtime`, and `st_ctime` of [`rustix::fs::Stat`] may now be accessed
+directly. They are now signed instead of unsigned, so that they can represent
+times before the epoch.
+
+[`rustix::fs::Stat`]: https://docs.rs/rustix/1/rustix/fs/struct.Stat.html
+
+`rustix::io::is_read_write` is removed, as it's higher-level functionality that
+can be implemented in terms of lower-level rustix calls.
+
+[`rustix::net::recv`] and [`rustix::net::recvfrom`] now include
+the number of received bytes in their return types, as this number may differ
+from the number of bytes written to the buffer when
+[`rustix::net::RecvFlags::TRUNC`] is used.
+
+[`rustix::net::recv`]: https://docs.rs/rustix/1/rustix/net/fn.recv.html
+[`rustix::net::recvfrom`]: https://docs.rs/rustix/1/rustix/net/fn.recvfrom.html
+[`rustix::net::RecvFlags::TRUNC`]: https://docs.rs/rustix/1/rustix/net/struct.RecvFlags.html#associatedconstant.TRUNC
+
+[`rustix::process::Signal`] constants are now upper-cased; for example,
+`Signal::Int` is now named [`Signal::INT`]. Also, `Signal` is no longer
+directly convertible to `i32`; use [`Signal::as_raw`] instead.
+
+[`rustix::process::Signal`]: https://docs.rs/rustix/1/rustix/process/struct.Signal.html
+[`Signal::INT`]: https://docs.rs/rustix/1/rustix/process/struct.Signal.html#variant.Int
+[`Signal::as_raw`]: https://docs.rs/rustix/1/rustix/process/struct.Signal.html#method.as_raw
+
+`Signal::from_raw` is renamed to [`Signal::from_named_raw`].
+
+[`Signal::from_named_raw`]: https://docs.rs/rustix/1/rustix/process/struct.Signal.html#method.from_named_raw
+
+The associated constant `rustix::ioctl::Ioctl::OPCODE` is now replaced with an
+associated method [`rustix::ioctl::Ioctl::opcode`], to support ioctls where the
+opcode is computed rather than a constant.
+
+[`rustix::ioctl::Ioctl::opcode`]: https://docs.rs/rustix/1/rustix/ioctl/trait.Ioctl.html#tymethod.opcode
+
+The `ifindex` argument in
+[`rustix::net::sockopt::set_ip_add_membership_with_ifindex`] and
+[`rustix::net::sockopt::set_ip_drop_membership_with_ifindex`]
+changed from `i32` to `u32`.
+
+[`rustix::net::sockopt::set_ip_add_membership_with_ifindex`]: https://docs.rs/rustix/1/rustix/net/sockopt/fn.set_ip_add_membership_with_ifindex.html
+[`rustix::net::sockopt::set_ip_drop_membership_with_ifindex`]: https://docs.rs/rustix/1/rustix/net/sockopt/fn.set_ip_drop_membership_with_ifindex.html
+
+The `list` argument in [`rustix::fs::listxattr`], [`rustix::fs::flistxattr`],
+and [`rustix::fs::llistxattr`] changed from `[c_char]`, which is `[i8]` on some
+architectures, to `[u8]`.
+
+[`rustix::fs::listxattr`]: https://docs.rs/rustix/1/rustix/fs/fn.listxattr.html
+[`rustix::fs::flistxattr`]: https://docs.rs/rustix/1/rustix/fs/fn.flistxattr.html
+[`rustix::fs::llistxattr`]: https://docs.rs/rustix/1/rustix/fs/fn.llistxattr.html
+
+On NetBSD, the nanoseconds fields of [`Stat`] have been renamed, for consistency
+with other platforms:
+
+| Old name | New Name |
+| -------------- | --------------- |
+| `st_atimensec` | `st_atime_nsec` |
+| `st_mtimensec` | `st_mtime_nsec` |
+| `st_ctimensec` | `st_ctime_nsec` |
+| `st_birthtimensec` | `st_birthtime_nsec` |
+
+[`Stat`]: https://docs.rs/rustix/1/x86_64-unknown-netbsd/rustix/fs/struct.Stat.html
+
+[`rustix::mount::mount`]'s `data` argument is now an `Option`, so it can now
+be used in place of `mount2`, and `mount2` is now removed.
+
+[`rustix::mount::mount`]: https://docs.rs/rustix/1/rustix/mount/fn.mount.html
+
+The [`rustix::net`] functions ending with `_v4`, `_v6`, `_unix` and `_xdp` have
+been merged into a single function that accepts any address type.
+
+Specifically, the following functions are removed:
+
+ * `bind_any`, `bind_unix`, `bind_v4`, `bind_v6`, `bind_xdp` in favor of
+ [`bind`],
+ * `connect_any`, `connect_unix`, `connect_v4`, `connect_v6` in favor of
+ [`connect`] (leaving address-less [`connect_unspec`]),
+ * `sendmsg_v4`, `sendmsg_v6`, `sendmsg_unix`, `sendmsg_xdp`, `sendmsg_any` in
+ favor of [`sendmsg_addr`] (leaving address-less [`sendmsg`]),
+ * `sendto_any`, `sendto_v4`, `sendto_v6`, `sendto_unix`, `sendto_xdp` in
+ favor of [`sendto`].
+
+[`rustix::net`]: https://docs.rs/rustix/1/rustix/net/index.html
+[`bind`]: https://docs.rs/rustix/1/rustix/net/fn.bind.html
+[`connect`]: https://docs.rs/rustix/1/rustix/net/fn.connect.html
+[`connect_unspec`]: https://docs.rs/rustix/1/rustix/net/fn.connect_unspec.html
+[`sendmsg_addr`]: https://docs.rs/rustix/1/rustix/net/fn.sendmsg_addr.html
+[`sendmsg`]: https://docs.rs/rustix/1/rustix/net/fn.sendmsg.html
+[`sendto`]: https://docs.rs/rustix/1/rustix/net/fn.sendto.html
+
+The `SocketAddrAny` enum has changed to a [`SocketAddrAny`] struct which can
+contain any kind of socket address. It can be converted to and from the more
+specific socket types using `From`/`Into`/`TryFrom`/`TryInto` conversions.
+
+[`SocketAddrAny`]: https://docs.rs/rustix/1/rustix/net/struct.SocketAddrAny.html
+
+The `len` parameter to [`rustix::fs::fadvise`] has changed from `u64` to
+`Option<NonZeroU64>`, to reflect that zero is a special case meaning the
+advice applies to the end of the file. To convert an arbitrary `u64` value to
+`Option<NonZeroU64>`, use `NonZeroU64::new`.
+
+[`rustix::fs::fadvise`]: https://docs.rs/rustix/1/rustix/fs/fn.fadvise.html
+
+[`rustix::io_uring::io_uring_enter`] no longer has `arg` and `size` arguments
+providing a raw `*mut c_void` and `usize` describing the argument value. To
+pass argumentts, there are now additional functions, `io_uring_enter_sigmask`,
+and `io_uring_enter_arg`, which take a [`KernelSigSet`] or an
+`io_uring_getevents_arg`, respectively. These are more ergonomic, and provide
+a better path to adding `IORING_ENTER_EXT_ARG_REG` support in the future.
+
+[`rustix::io_uring::io_uring_enter`]: https://docs.rs/rustix/1/rustix/io_uring/fn.io_uring_enter.html
+[`KernelSigSet`]: https://docs.rs/rustix/1/rustix/io_uring/struct.KernelSigSet.html
+
+The [`sigmask`] and [`ts`] fields of [`rustix::io_uring::getevents_arg`]
+changed from `u64` to [`rustix::io_uring::io_uring_ptr`], to better preserve
+pointer provenance.
+
+[`sigmask`]: https://docs.rs/rustix/1/rustix/io_uring/struct.io_uring_getevents_arg.html#structfield.sigmask
+[`ts`]: https://docs.rs/rustix/1/rustix/io_uring/struct.io_uring_getevents_arg.html#structfield.ts
+[`rustix::io_uring::getevents_arg`]: https://docs.rs/rustix/1/rustix/io_uring/struct.io_uring_getevents_arg.html
+[`rustix::io_uring::io_uring_ptr`]: https://docs.rs/rustix/1/rustix/io_uring/struct.io_uring_ptr.html
+
+The aliases for [`fcntl_dupfd_cloexec`], [`fcntl_getfd`], and [`fcntl_setfd`]
+in `rustix::fs` are removed; these functions are just available in
+[`rustix::io`] now.
+
+[`fcntl_dupfd_cloexec`]: https://docs.rs/rustix/1/rustix/io/fn.fcntl_dupfd_cloexec.html
+[`fcntl_getfd`]: https://docs.rs/rustix/1/rustix/io/fn.fcntl_getfd.html
+[`fcntl_setfd`]: https://docs.rs/rustix/1/rustix/io/fn.fcntl_setfd.html
+[`rustix::io`]: https://docs.rs/rustix/1/rustix/io/index.html
+
+[`SocketAddrXdp`] no longer has a shared UMEM field. A new
+[`SocketAddrXdpWithSharedUmem`] is added for the purpose of calling `bind` and
+passing it an XDP address with a shared UMEM fd. And `SockaddrXdpFlags` is
+renamed to [`SocketAddrXdpFlags`].
+
+[`SocketAddrXdp`]: https://docs.rs/rustix/1/rustix/net/xdp/struct.SocketAddrXdp.html
+[`SocketAddrXdpWithSharedUmem`]: https://docs.rs/rustix/1/rustix/net/xdp/struct.SocketAddrXdpWithSharedUmem.html
+[`SocketAddrXdpFlags`]: https://docs.rs/rustix/1/rustix/net/xdp/struct.SocketAddrXdpFlags.html
+
+[`rustix::io_uring::io_uring_setup`] is now unsafe, due its `io_uring_params`
+argument optionally containing a raw file descriptor.
+
+[`rustix::io_uring::io_uring_setup`]: https://docs.rs/rustix/1/rustix/io_uring/fn.io_uring_setup.html
+
+The buffer for [`SendAncillaryBuffer`] and [`RecvAncillaryBuffer`] is now
+a `[MaybeUninit<u8>]` instead of a `[u8]`.
+
+[`SendAncillaryBuffer`]: https://docs.rs/rustix/1/rustix/net/struct.SendAncillaryBuffer.html
+[`RecvAncillaryBuffer`]: https://docs.rs/rustix/1/rustix/net/struct.RecvAncillaryBuffer.html
+
+[`read`], [`pread`], [`recv`], [`recvfrom`], [`getrandom`], [`readlinkat_raw`],
+[`epoll::wait`], [`kevent`], [`port::getn`], [`getxattr`], [`lgetxattr`],
+[`fgetxattr`], [`listxattr`], [`llistxattr`], and [`flistxattr`] now use the
+new [`Buffer` trait].
+
+This replaces `read_uninit`, `pread_uninit`, `recv_uninit`, `recvfrom_uninit`,
+and `getrandom_uninit`, as the `Buffer` trait supports reading into
+uninitialized slices.
+
+`epoll::wait`, `kevent`, and `port::getn` previously took a `Vec` which they
+implicitly cleared before results were appended. When passing a `Vec` to
+`epoll::wait`, `kevent`, or `port::getn` using [`spare_capacity`], the `Vec` is
+not cleared first. Consider clearing the vector before calling `epoll::wait`,
+`kevent`, or `port::getn`, or consuming it using `.drain(..)` before reusing it.
+
+[`read`]: https://docs.rs/rustix/1/rustix/io/fn.read.html
+[`pread`]: https://docs.rs/rustix/1/rustix/io/fn.pread.html
+[`recv`]: https://docs.rs/rustix/1/rustix/net/fn.recv.html
+[`recvfrom`]: https://docs.rs/rustix/1/rustix/net/fn.recvfrom.html
+[`getrandom`]: https://docs.rs/rustix/1/rustix/rand/fn.getrandom.html
+[`readlinkat_raw`]: https://docs.rs/rustix/1/rustix/fs/fn.readlinkat_raw.html
+[`epoll::wait`]: https://docs.rs/rustix/1/rustix/event/epoll/fn.wait.html
+[`getxattr`]: https://docs.rs/rustix/1/rustix/fs/fn.getxattr.html
+[`lgetxattr`]: https://docs.rs/rustix/1/rustix/fs/fn.lgetxattr.html
+[`fgetxattr`]: https://docs.rs/rustix/1/rustix/fs/fn.fgetxattr.html
+[`listxattr`]: https://docs.rs/rustix/1/rustix/fs/fn.listxattr.html
+[`llistxattr`]: https://docs.rs/rustix/1/rustix/fs/fn.llistxattr.html
+[`flistxattr`]: https://docs.rs/rustix/1/rustix/fs/fn.flistxattr.html
+[`kevent`]: https://docs.rs/rustix/1/x86_64-unknown-freebsd/rustix/event/kqueue/fn.kevent.html
+[`port::getn`]: https://docs.rs/rustix/1/x86_64-unknown-illumos/rustix/event/port/fn.getn.html
+[`Buffer` trait]: https://docs.rs/rustix/1/rustix/buffer/trait.Buffer.html
+[`spare_capacity`]: https://docs.rs/rustix/1/rustix/buffer/fn.spare_capacity.html
+
+The [`rustix::ioctl::Opcode`] type has changed from a struct to a raw integer
+value, and the associated utilities are change to `const` functions. In place
+of `ReadOpcode`, `WriteOpcode`, `ReadWriteOpcode`, and `NoneOpcode`, use the
+`read`, `write`, `read_write`, and `none` const functions in the
+[`ioctl::opcode`] module. For example, in place of this:
+```rust
+ioctl::Setter::<ioctl::ReadOpcode<b'U', 15, c_uint>, c_uint>::new(interface)
+```
+use this:
+```rust
++ ioctl::Setter::<{ ioctl::opcode::read::<c_uint>(b'U', 15) }, c_uint>::new(interface)
+```
+.
+
+In place of `BadOpcode`, use the opcode value directly.
+
+[`rustix::ioctl::Opcode`]: https://docs.rs/rustix/1/rustix/ioctl/type.Opcode.html
+[`ioctl::opcode`]: https://docs.rs/rustix/1/rustix/ioctl/opcode/index.html
+
+[`rustix::event::port::getn`]'s `min_events` argument is now a `u32`, to
+reflect the type in the underlying system API.
+
+[`rustix::event::port::getn`]: https://docs.rs/rustix/1/x86_64-unknown-illumos/rustix/event/port/fn.getn.html
+
+All explicitly deprecated functions and types have been removed. Their
+deprecation messages will have identified alternatives.
diff --git a/vendor/rustix-1.0.8/CODE_OF_CONDUCT.md b/vendor/rustix-1.0.8/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..32ff028
--- /dev/null
+++ b/vendor/rustix-1.0.8/CODE_OF_CONDUCT.md
@@ -0,0 +1,49 @@
+# Contributor Covenant Code of Conduct
+
+*Note*: this Code of Conduct pertains to individuals' behavior. Please also see the [Organizational Code of Conduct][OCoC].
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the Bytecode Alliance CoC team at [[email protected]](mailto:[email protected]). The CoC team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The CoC team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the Bytecode Alliance's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
+
+[OCoC]: https://github.com/bytecodealliance/rustix/blob/main/ORG_CODE_OF_CONDUCT.md
+[homepage]: https://www.contributor-covenant.org
+[version]: https://www.contributor-covenant.org/version/1/4/
diff --git a/vendor/rustix-1.0.8/CONTRIBUTING.md b/vendor/rustix-1.0.8/CONTRIBUTING.md
new file mode 100644
index 0000000..8e9a64f
--- /dev/null
+++ b/vendor/rustix-1.0.8/CONTRIBUTING.md
@@ -0,0 +1,27 @@
+# Contributing to rustix
+
+Rustix is a [Bytecode Alliance] project. It follows the Bytecode Alliance's
+[Code of Conduct] and [Organizational Code of Conduct].
+
+## Testing
+
+To keep compile times low, most features in rustix's API are behind cargo
+features. A special feature, `all-apis` enables all APIs, which is useful
+for testing.
+
+```console
+cargo test --features=all-apis
+```
+
+And, rustix has two backends, linux_raw and libc, and only one is used in
+any given build. To test on Linux with the libc backend explicitly,
+additionally enable the `use-libc` feature:
+
+```console
+cargo test --features=all-apis,use-libc
+```
+
+Beyond that, rustix's CI tests many targets and configurations. Asking for
+help is always welcome, and it's especially encouraged when the issue is
+getting all the `cfg`s lined up to get everything compiling on all the
+configurations on CI.
diff --git a/vendor/rustix-1.0.8/COPYRIGHT b/vendor/rustix-1.0.8/COPYRIGHT
new file mode 100644
index 0000000..a841525
--- /dev/null
+++ b/vendor/rustix-1.0.8/COPYRIGHT
@@ -0,0 +1,29 @@
+Short version for non-lawyers:
+
+`rustix` is triple-licensed under Apache 2.0 with the LLVM Exception,
+Apache 2.0, and MIT terms.
+
+
+Longer version:
+
+Copyrights in the `rustix` project are retained by their contributors.
+No copyright assignment is required to contribute to the `rustix`
+project.
+
+Some files include code derived from Rust's `libstd`; see the comments in
+the code for details.
+
+Except as otherwise noted (below and/or in individual files), `rustix`
+is licensed under:
+
+ - the Apache License, Version 2.0, with the LLVM Exception
+ <LICENSE-Apache-2.0_WITH_LLVM-exception> or
+ <http://llvm.org/foundation/relicensing/LICENSE.txt>
+ - the Apache License, Version 2.0
+ <LICENSE-APACHE> or
+ <http://www.apache.org/licenses/LICENSE-2.0>,
+ - or the MIT license
+ <LICENSE-MIT> or
+ <http://opensource.org/licenses/MIT>,
+
+at your option.
diff --git a/vendor/rustix-1.0.8/Cargo.lock b/vendor/rustix-1.0.8/Cargo.lock
new file mode 100644
index 0000000..ceaa17d
--- /dev/null
+++ b/vendor/rustix-1.0.8/Cargo.lock
@@ -0,0 +1,1105 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "adler2"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anes"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967"
+dependencies = [
+ "compiler_builtins",
+ "rustc-std-workspace-core",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee"
+
+[[package]]
+name = "cast"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268"
+
+[[package]]
+name = "ciborium"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
+dependencies = [
+ "ciborium-io",
+ "ciborium-ll",
+ "serde",
+]
+
+[[package]]
+name = "ciborium-io"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
+
+[[package]]
+name = "ciborium-ll"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
+dependencies = [
+ "ciborium-io",
+ "half",
+]
+
+[[package]]
+name = "clap"
+version = "3.2.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
+dependencies = [
+ "bitflags 1.3.2",
+ "clap_lex",
+ "indexmap",
+ "textwrap",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+dependencies = [
+ "os_str_bytes",
+]
+
+[[package]]
+name = "compiler_builtins"
+version = "0.1.160"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6376049cfa92c0aa8b9ac95fae22184b981c658208d4ed8a1dc553cd83612895"
+
+[[package]]
+name = "crc32fast"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "criterion"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb"
+dependencies = [
+ "anes",
+ "atty",
+ "cast",
+ "ciborium",
+ "clap",
+ "criterion-plot",
+ "itertools",
+ "lazy_static",
+ "num-traits",
+ "oorandom",
+ "plotters",
+ "rayon",
+ "regex",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "tinytemplate",
+ "walkdir",
+]
+
+[[package]]
+name = "criterion-plot"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
+dependencies = [
+ "cast",
+ "itertools",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
+
+[[package]]
+name = "crunchy"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929"
+
+[[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if",
+ "hashbrown 0.14.5",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "either"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
+
+[[package]]
+name = "errno"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad"
+dependencies = [
+ "libc",
+ "windows-sys 0.60.2",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
+
+[[package]]
+name = "flate2"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "futures"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
+
+[[package]]
+name = "futures-sink"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
+
+[[package]]
+name = "futures-task"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
+
+[[package]]
+name = "futures-util"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "r-efi",
+ "wasi",
+]
+
+[[package]]
+name = "half"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+dependencies = [
+ "autocfg",
+ "hashbrown 0.12.3",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
+
+[[package]]
+name = "js-sys"
+version = "0.3.77"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f"
+dependencies = [
+ "once_cell",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
+
+[[package]]
+name = "libc"
+version = "0.2.174"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"
+dependencies = [
+ "compiler_builtins",
+ "rustc-std-workspace-core",
+]
+
+[[package]]
+name = "lock_api"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
+
+[[package]]
+name = "memchr"
+version = "2.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
+
+[[package]]
+name = "memoffset"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "miniz_oxide"
+version = "0.8.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
+dependencies = [
+ "adler2",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.21.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
+
+[[package]]
+name = "oorandom"
+version = "11.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "plotters"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747"
+dependencies = [
+ "num-traits",
+ "plotters-backend",
+ "plotters-svg",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "plotters-backend"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a"
+
+[[package]]
+name = "plotters-svg"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670"
+dependencies = [
+ "plotters-backend",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.95"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "r-efi"
+version = "5.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
+
+[[package]]
+name = "rayon"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.5.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6"
+dependencies = [
+ "bitflags 2.9.1",
+]
+
+[[package]]
+name = "regex"
+version = "1.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
+
+[[package]]
+name = "rustc-std-workspace-alloc"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d441c3b2ebf55cebf796bfdc265d67fa09db17b7bb6bd4be75c509e1e8fec3"
+
+[[package]]
+name = "rustc-std-workspace-core"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa9c45b374136f52f2d6311062c7146bff20fec063c3f5d46a410bd937746955"
+
+[[package]]
+name = "rustix"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266"
+dependencies = [
+ "bitflags 2.9.1",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "rustix"
+version = "1.0.8"
+dependencies = [
+ "bitflags 2.9.1",
+ "criterion",
+ "errno",
+ "flate2",
+ "libc",
+ "linux-raw-sys",
+ "memoffset",
+ "once_cell",
+ "rustc-std-workspace-alloc",
+ "rustc-std-workspace-core",
+ "serial_test",
+ "static_assertions",
+ "tempfile",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d"
+
+[[package]]
+name = "ryu"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "serde"
+version = "1.0.219"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.219"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.140"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373"
+dependencies = [
+ "itoa",
+ "memchr",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serial_test"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e56dd856803e253c8f298af3f4d7eb0ae5e23a737252cd90bb4f3b435033b2d"
+dependencies = [
+ "dashmap",
+ "futures",
+ "lazy_static",
+ "log",
+ "parking_lot",
+ "serial_test_derive",
+]
+
+[[package]]
+name = "serial_test_derive"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d"
+
+[[package]]
+name = "smallvec"
+version = "1.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "syn"
+version = "2.0.103"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4307e30089d6fd6aff212f2da3a1f9e32f3223b1f010fb09b7c95f90f3ca1e8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1"
+dependencies = [
+ "fastrand",
+ "getrandom",
+ "once_cell",
+ "rustix 1.0.7",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057"
+
+[[package]]
+name = "tinytemplate"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
+dependencies = [
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
+
+[[package]]
+name = "walkdir"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "wasi"
+version = "0.14.2+wasi-0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
+dependencies = [
+ "wit-bindgen-rt",
+]
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.100"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "rustversion",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.100"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6"
+dependencies = [
+ "bumpalo",
+ "log",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.100"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.100"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.100"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.77"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
+dependencies = [
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
+dependencies = [
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.60.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
+dependencies = [
+ "windows-targets 0.53.2",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.6",
+ "windows_aarch64_msvc 0.52.6",
+ "windows_i686_gnu 0.52.6",
+ "windows_i686_gnullvm 0.52.6",
+ "windows_i686_msvc 0.52.6",
+ "windows_x86_64_gnu 0.52.6",
+ "windows_x86_64_gnullvm 0.52.6",
+ "windows_x86_64_msvc 0.52.6",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.53.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef"
+dependencies = [
+ "windows_aarch64_gnullvm 0.53.0",
+ "windows_aarch64_msvc 0.53.0",
+ "windows_i686_gnu 0.53.0",
+ "windows_i686_gnullvm 0.53.0",
+ "windows_i686_msvc 0.53.0",
+ "windows_x86_64_gnu 0.53.0",
+ "windows_x86_64_gnullvm 0.53.0",
+ "windows_x86_64_msvc 0.53.0",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.53.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.53.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.53.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.53.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.53.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.53.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.53.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.53.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
+
+[[package]]
+name = "wit-bindgen-rt"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
+dependencies = [
+ "bitflags 2.9.1",
+]
diff --git a/vendor/rustix-1.0.8/Cargo.toml b/vendor/rustix-1.0.8/Cargo.toml
new file mode 100644
index 0000000..0ed08f5
--- /dev/null
+++ b/vendor/rustix-1.0.8/Cargo.toml
@@ -0,0 +1,284 @@
+# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
+#
+# When uploading crates to the registry Cargo will automatically
+# "normalize" Cargo.toml files for maximal compatibility
+# with all versions of Cargo and also rewrite `path` dependencies
+# to registry (e.g., crates.io) dependencies.
+#
+# If you are reading this file be aware that the original Cargo.toml
+# will likely look very different (and much more reasonable).
+# See Cargo.toml.orig for the original contents.
+
+[package]
+edition = "2021"
+rust-version = "1.63"
+name = "rustix"
+version = "1.0.8"
+authors = [
+ "Dan Gohman <[email protected]>",
+ "Jakub Konka <[email protected]>",
+]
+build = "build.rs"
+include = [
+ "src",
+ "build.rs",
+ "Cargo.toml",
+ "COPYRIGHT",
+ "LICENSE*",
+ "/*.md",
+ "benches",
+]
+autolib = false
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
+description = "Safe Rust bindings to POSIX/Unix/Linux/Winsock-like syscalls"
+documentation = "https://docs.rs/rustix"
+readme = "README.md"
+keywords = [
+ "api",
+ "file",
+ "network",
+ "safe",
+ "syscall",
+]
+categories = [
+ "os::unix-apis",
+ "date-and-time",
+ "filesystem",
+ "network-programming",
+]
+license = "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT"
+repository = "https://github.com/bytecodealliance/rustix"
+
+[package.metadata.docs.rs]
+features = ["all-apis"]
+targets = [
+ "x86_64-unknown-linux-gnu",
+ "i686-unknown-linux-gnu",
+ "x86_64-apple-darwin",
+ "x86_64-pc-windows-msvc",
+ "x86_64-unknown-freebsd",
+ "x86_64-unknown-openbsd",
+ "x86_64-unknown-netbsd",
+ "x86_64-unknown-dragonfly",
+ "x86_64-unknown-illumos",
+ "x86_64-unknown-redox",
+ "x86_64-unknown-haiku",
+ "wasm32-unknown-emscripten",
+ "wasm32-wasip1",
+]
+
+[features]
+all-apis = [
+ "event",
+ "fs",
+ "io_uring",
+ "mm",
+ "mount",
+ "net",
+ "param",
+ "pipe",
+ "process",
+ "pty",
+ "rand",
+ "runtime",
+ "shm",
+ "stdio",
+ "system",
+ "termios",
+ "thread",
+ "time",
+]
+alloc = []
+default = ["std"]
+event = []
+fs = []
+io_uring = [
+ "event",
+ "fs",
+ "net",
+ "thread",
+ "linux-raw-sys/io_uring",
+]
+linux_4_11 = []
+linux_5_1 = ["linux_4_11"]
+linux_5_11 = ["linux_5_1"]
+linux_latest = ["linux_5_11"]
+mm = []
+mount = []
+net = [
+ "linux-raw-sys/net",
+ "linux-raw-sys/netlink",
+ "linux-raw-sys/if_ether",
+ "linux-raw-sys/xdp",
+]
+param = []
+pipe = []
+process = ["linux-raw-sys/prctl"]
+pty = ["fs"]
+rand = []
+runtime = ["linux-raw-sys/prctl"]
+rustc-dep-of-std = [
+ "core",
+ "rustc-std-workspace-alloc",
+ "linux-raw-sys/rustc-dep-of-std",
+ "bitflags/rustc-dep-of-std",
+]
+shm = ["fs"]
+std = [
+ "bitflags/std",
+ "alloc",
+ "libc?/std",
+ "libc_errno?/std",
+]
+stdio = []
+system = ["linux-raw-sys/system"]
+termios = []
+thread = ["linux-raw-sys/prctl"]
+time = []
+try_close = []
+use-explicitly-provided-auxv = []
+use-libc = [
+ "libc_errno",
+ "libc",
+]
+use-libc-auxv = []
+
+[lib]
+name = "rustix"
+path = "src/lib.rs"
+
+[[bench]]
+name = "mod"
+path = "benches/mod.rs"
+harness = false
+
+[dependencies.bitflags]
+version = "2.4.0"
+default-features = false
+
+[dependencies.core]
+version = "1.0.0"
+optional = true
+package = "rustc-std-workspace-core"
+
+[dependencies.rustc-std-workspace-alloc]
+version = "1.0.0"
+optional = true
+
+[dev-dependencies.flate2]
+version = "1.0"
+
+[dev-dependencies.libc]
+version = "0.2.168"
+
+[dev-dependencies.libc_errno]
+version = "0.3.10"
+default-features = false
+package = "errno"
+
+[dev-dependencies.memoffset]
+version = "0.9.0"
+
+[dev-dependencies.serial_test]
+version = "2.0.0"
+
+[dev-dependencies.static_assertions]
+version = "1.1.0"
+
+[dev-dependencies.tempfile]
+version = "3.5.0"
+
+[target.'cfg(all(any(target_os = "android", target_os = "linux"), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_endian = "little", any(target_arch = "s390x", target_arch = "powerpc")), any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc"), all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "s390x"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))'.dependencies.linux-raw-sys]
+version = "0.9.2"
+features = [
+ "general",
+ "ioctl",
+ "no_std",
+]
+default-features = false
+
+[target.'cfg(all(criterion, not(any(target_os = "emscripten", target_os = "wasi"))))'.dev-dependencies.criterion]
+version = "0.4"
+
+[target.'cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_endian = "little", any(target_arch = "s390x", target_arch = "powerpc")), any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc"), all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "s390x"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))'.dependencies.libc]
+version = "0.2.168"
+optional = true
+default-features = false
+
+[target.'cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_endian = "little", any(target_arch = "s390x", target_arch = "powerpc")), any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc"), all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "s390x"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))'.dependencies.libc_errno]
+version = "0.3.10"
+optional = true
+default-features = false
+package = "errno"
+
+[target.'cfg(all(not(rustix_use_libc), not(miri), target_os = "linux", any(target_endian = "little", any(target_arch = "s390x", target_arch = "powerpc")), any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc"), all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "s390x"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64"))))'.dependencies.linux-raw-sys]
+version = "0.9.2"
+features = [
+ "general",
+ "errno",
+ "ioctl",
+ "no_std",
+ "elf",
+]
+default-features = false
+
+[target.'cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_endian = "little", any(target_arch = "s390x", target_arch = "powerpc")), any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc"), all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "s390x"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))'.dependencies.libc]
+version = "0.2.168"
+default-features = false
+
+[target.'cfg(all(not(windows), any(rustix_use_libc, miri, not(all(target_os = "linux", any(target_endian = "little", any(target_arch = "s390x", target_arch = "powerpc")), any(target_arch = "arm", all(target_arch = "aarch64", target_pointer_width = "64"), target_arch = "riscv64", all(rustix_use_experimental_asm, target_arch = "powerpc"), all(rustix_use_experimental_asm, target_arch = "powerpc64"), all(rustix_use_experimental_asm, target_arch = "s390x"), all(rustix_use_experimental_asm, target_arch = "mips"), all(rustix_use_experimental_asm, target_arch = "mips32r6"), all(rustix_use_experimental_asm, target_arch = "mips64"), all(rustix_use_experimental_asm, target_arch = "mips64r6"), target_arch = "x86", all(target_arch = "x86_64", target_pointer_width = "64")))))))'.dependencies.libc_errno]
+version = "0.3.10"
+default-features = false
+package = "errno"
+
+[target."cfg(windows)".dependencies.libc_errno]
+version = "0.3.10"
+default-features = false
+package = "errno"
+
+[target."cfg(windows)".dependencies.windows-sys]
+version = ">=0.52, <0.61"
+features = [
+ "Win32_Foundation",
+ "Win32_Networking_WinSock",
+]
+
+[target."cfg(windows)".dev-dependencies.once_cell]
+version = "1.20.3"
+
+[lints.rust.unexpected_cfgs]
+level = "warn"
+priority = 0
+check-cfg = [
+ "cfg(alloc_c_string)",
+ "cfg(alloc_ffi)",
+ "cfg(apple)",
+ "cfg(asm_experimental_arch)",
+ "cfg(bsd)",
+ "cfg(core_c_str)",
+ "cfg(core_ffi_c)",
+ "cfg(core_intrinsics)",
+ "cfg(criterion)",
+ "cfg(document_experimental_runtime_api)",
+ "cfg(error_in_core)",
+ "cfg(fix_y2038)",
+ "cfg(freebsdlike)",
+ "cfg(libc)",
+ "cfg(linux_kernel)",
+ "cfg(linux_like)",
+ "cfg(linux_raw)",
+ "cfg(netbsdlike)",
+ "cfg(rustc_attrs)",
+ "cfg(solarish)",
+ "cfg(staged_api)",
+ "cfg(static_assertions)",
+ "cfg(thumb_mode)",
+ "cfg(wasi)",
+ "cfg(wasi_ext)",
+ "cfg(wasip2)",
+ 'cfg(target_arch, values("xtensa"))',
+ 'cfg(target_os, values("cygwin"))',
+]
diff --git a/vendor/errno-0.3.8/LICENSE-APACHE b/vendor/rustix-1.0.8/LICENSE-APACHE
similarity index 100%
copy from vendor/errno-0.3.8/LICENSE-APACHE
copy to vendor/rustix-1.0.8/LICENSE-APACHE
diff --git a/vendor/rustix-1.0.8/LICENSE-Apache-2.0_WITH_LLVM-exception b/vendor/rustix-1.0.8/LICENSE-Apache-2.0_WITH_LLVM-exception
new file mode 100644
index 0000000..f9d8195
--- /dev/null
+++ b/vendor/rustix-1.0.8/LICENSE-Apache-2.0_WITH_LLVM-exception
@@ -0,0 +1,220 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+--- LLVM Exceptions to the Apache 2.0 License ----
+
+As an exception, if, as a result of your compiling your source code, portions
+of this Software are embedded into an Object form of such source code, you
+may redistribute such embedded portions in such Object form without complying
+with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
+
+In addition, if you combine or link compiled forms of this Software with
+software that is licensed under the GPLv2 ("Combined Software") and if a
+court of competent jurisdiction determines that the patent provision (Section
+3), the indemnity provision (Section 9) or other Section of the License
+conflicts with the conditions of the GPLv2, you may retroactively and
+prospectively choose to deem waived or otherwise exclude such Section(s) of
+the License, but only in their entirety and only with respect to the Combined
+Software.
+
diff --git a/vendor/rustix-1.0.8/LICENSE-MIT b/vendor/rustix-1.0.8/LICENSE-MIT
new file mode 100644
index 0000000..31aa793
--- /dev/null
+++ b/vendor/rustix-1.0.8/LICENSE-MIT
@@ -0,0 +1,23 @@
+Permission is hereby granted, free of charge, to any
+person obtaining a copy of this software and associated
+documentation files (the "Software"), to deal in the
+Software without restriction, including without
+limitation the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice
+shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
+TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
+SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
diff --git a/vendor/rustix-1.0.8/ORG_CODE_OF_CONDUCT.md b/vendor/rustix-1.0.8/ORG_CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..6f4fb3f
--- /dev/null
+++ b/vendor/rustix-1.0.8/ORG_CODE_OF_CONDUCT.md
@@ -0,0 +1,143 @@
+# Bytecode Alliance Organizational Code of Conduct (OCoC)
+
+*Note*: this Code of Conduct pertains to organizations' behavior. Please also see the [Individual Code of Conduct](CODE_OF_CONDUCT.md).
+
+## Preamble
+
+The Bytecode Alliance (BA) welcomes involvement from organizations,
+including commercial organizations. This document is an
+*organizational* code of conduct, intended particularly to provide
+guidance to commercial organizations. It is distinct from the
+[Individual Code of Conduct (ICoC)](CODE_OF_CONDUCT.md), and does not
+replace the ICoC. This OCoC applies to any group of people acting in
+concert as a BA member or as a participant in BA activities, whether
+or not that group is formally incorporated in some jurisdiction.
+
+The code of conduct described below is not a set of rigid rules, and
+we did not write it to encompass every conceivable scenario that might
+arise. For example, it is theoretically possible there would be times
+when asserting patents is in the best interest of the BA community as
+a whole. In such instances, consult with the BA, strive for
+consensus, and interpret these rules with an intent that is generous
+to the community the BA serves.
+
+While we may revise these guidelines from time to time based on
+real-world experience, overall they are based on a simple principle:
+
+*Bytecode Alliance members should observe the distinction between
+ public community functions and private functions — especially
+ commercial ones — and should ensure that the latter support, or at
+ least do not harm, the former.*
+
+## Guidelines
+
+ * **Do not cause confusion about Wasm standards or interoperability.**
+
+ Having an interoperable WebAssembly core is a high priority for
+ the BA, and members should strive to preserve that core. It is fine
+ to develop additional non-standard features or APIs, but they
+ should always be clearly distinguished from the core interoperable
+ Wasm.
+
+ Treat the WebAssembly name and any BA-associated names with
+ respect, and follow BA trademark and branding guidelines. If you
+ distribute a customized version of software originally produced by
+ the BA, or if you build a product or service using BA-derived
+ software, use names that clearly distinguish your work from the
+ original. (You should still provide proper attribution to the
+ original, of course, wherever such attribution would normally be
+ given.)
+
+ Further, do not use the WebAssembly name or BA-associated names in
+ other public namespaces in ways that could cause confusion, e.g.,
+ in company names, names of commercial service offerings, domain
+ names, publicly-visible social media accounts or online service
+ accounts, etc. It may sometimes be reasonable, however, to
+ register such a name in a new namespace and then immediately donate
+ control of that account to the BA, because that would help the project
+ maintain its identity.
+
+ For further guidance, see the BA Trademark and Branding Policy
+ [TODO: create policy, then insert link].
+
+ * **Do not restrict contributors.** If your company requires
+ employees or contractors to sign non-compete agreements, those
+ agreements must not prevent people from participating in the BA or
+ contributing to related projects.
+
+ This does not mean that all non-compete agreements are incompatible
+ with this code of conduct. For example, a company may restrict an
+ employee's ability to solicit the company's customers. However, an
+ agreement must not block any form of technical or social
+ participation in BA activities, including but not limited to the
+ implementation of particular features.
+
+ The accumulation of experience and expertise in individual persons,
+ who are ultimately free to direct their energy and attention as
+ they decide, is one of the most important drivers of progress in
+ open source projects. A company that limits this freedom may hinder
+ the success of the BA's efforts.
+
+ * **Do not use patents as offensive weapons.** If any BA participant
+ prevents the adoption or development of BA technologies by
+ asserting its patents, that undermines the purpose of the
+ coalition. The collaboration fostered by the BA cannot include
+ members who act to undermine its work.
+
+ * **Practice responsible disclosure** for security vulnerabilities.
+ Use designated, non-public reporting channels to disclose technical
+ vulnerabilities, and give the project a reasonable period to
+ respond, remediate, and patch. [TODO: optionally include the
+ security vulnerability reporting URL here.]
+
+ Vulnerability reporters may patch their company's own offerings, as
+ long as that patching does not significantly delay the reporting of
+ the vulnerability. Vulnerability information should never be used
+ for unilateral commercial advantage. Vendors may legitimately
+ compete on the speed and reliability with which they deploy
+ security fixes, but withholding vulnerability information damages
+ everyone in the long run by risking harm to the BA project's
+ reputation and to the security of all users.
+
+ * **Respect the letter and spirit of open source practice.** While
+ there is not space to list here all possible aspects of standard
+ open source practice, some examples will help show what we mean:
+
+ * Abide by all applicable open source license terms. Do not engage
+ in copyright violation or misattribution of any kind.
+
+ * Do not claim others' ideas or designs as your own.
+
+ * When others engage in publicly visible work (e.g., an upcoming
+ demo that is coordinated in a public issue tracker), do not
+ unilaterally announce early releases or early demonstrations of
+ that work ahead of their schedule in order to secure private
+ advantage (such as marketplace advantage) for yourself.
+
+ The BA reserves the right to determine what constitutes good open
+ source practices and to take action as it deems appropriate to
+ encourage, and if necessary enforce, such practices.
+
+## Enforcement
+
+Instances of organizational behavior in violation of the OCoC may
+be reported by contacting the Bytecode Alliance CoC team at
+[[email protected]](mailto:[email protected]). The
+CoC team will review and investigate all complaints, and will respond
+in a way that it deems appropriate to the circumstances. The CoC team
+is obligated to maintain confidentiality with regard to the reporter of
+an incident. Further details of specific enforcement policies may be
+posted separately.
+
+When the BA deems an organization in violation of this OCoC, the BA
+will, at its sole discretion, determine what action to take. The BA
+will decide what type, degree, and duration of corrective action is
+needed, if any, before a violating organization can be considered for
+membership (if it was not already a member) or can have its membership
+reinstated (if it was a member and the BA canceled its membership due
+to the violation).
+
+In practice, the BA's first approach will be to start a conversation,
+with punitive enforcement used only as a last resort. Violations
+often turn out to be unintentional and swiftly correctable with all
+parties acting in good faith.
diff --git a/vendor/rustix-1.0.8/README.md b/vendor/rustix-1.0.8/README.md
new file mode 100644
index 0000000..fa54bd6
--- /dev/null
+++ b/vendor/rustix-1.0.8/README.md
@@ -0,0 +1,208 @@
+<div align="center">
+ <h1><code>rustix</code></h1>
+
+ <p>
+ <strong>Safe Rust bindings to POSIX/Unix/Linux/Winsock syscalls</strong>
+ </p>
+
+ <strong>A <a href="https://bytecodealliance.org/">Bytecode Alliance</a> project</strong>
+
+ <p>
+ <a href="https://github.com/bytecodealliance/rustix/actions?query=workflow%3ACI"><img src="https://github.com/bytecodealliance/rustix/workflows/CI/badge.svg" alt="Github Actions CI Status" /></a>
+ <a href="https://bytecodealliance.zulipchat.com/#narrow/stream/206238-general"><img src="https://img.shields.io/badge/zulip-join_chat-brightgreen.svg" alt="zulip chat" /></a>
+ <a href="https://crates.io/crates/rustix"><img src="https://img.shields.io/crates/v/rustix.svg" alt="crates.io page" /></a>
+ <a href="https://docs.rs/rustix"><img src="https://docs.rs/rustix/badge.svg" alt="docs.rs docs" /></a>
+ </p>
+</div>
+
+`rustix` provides efficient memory-safe and [I/O-safe] wrappers to POSIX-like,
+Unix-like, Linux, and Winsock syscall-like APIs, with configurable backends. It
+uses Rust references, slices, and return values instead of raw pointers, and
+[I/O safety types] instead of raw file descriptors, providing memory safety,
+[I/O safety], and [provenance]. It uses `Result`s for reporting errors,
+[`bitflags`] instead of bare integer flags, an [`Arg`] trait with optimizations
+to efficiently accept any Rust string type, and several other efficient
+conveniences.
+
+`rustix` is low-level and, and while the `net` API supports [Windows Sockets 2]
+(Winsock), the rest of the APIs do not support Windows; for higher-level and
+more portable APIs built on this functionality, see the [`cap-std`], [`memfd`],
+[`timerfd`], and [`io-streams`] crates, for example.
+
+`rustix` currently has two backends available:
+
+ * linux_raw, which uses raw Linux system calls and vDSO calls, and is
+ supported on Linux on x86-64, x86, aarch64, riscv64gc, powerpc64le,
+ arm (v5 onwards), mipsel, and mips64el, with stable, nightly, and 1.63 Rust.
+ - By being implemented entirely in Rust, avoiding `libc`, `errno`, and pthread
+ cancellation, and employing some specialized optimizations, most functions
+ compile down to very efficient code, which can often be fully inlined into
+ user code.
+ - Most functions in `linux_raw` preserve memory, I/O safety, and pointer
+ provenance all the way down to the syscalls.
+
+ * libc, which uses the [`libc`] crate which provides bindings to native `libc`
+ libraries on Unix-family platforms, and [`windows-sys`] for Winsock on
+ Windows, and is portable to many OS's.
+
+The linux_raw backend is enabled by default on platforms which support it. To
+enable the libc backend instead, either enable the "use-libc" cargo feature, or
+set the `RUSTFLAGS` environment variable to `--cfg=rustix_use_libc` when
+building.
+
+## Cargo features
+
+The modules [`rustix::io`], [`rustix::buffer`], [`rustix::fd`],
+[`rustix::ffi`], and [`rustix::ioctl`] are enabled by default. The rest of the
+API modules are conditional with cargo feature flags.
+
+| Name | Description |
+| ---------- | -------------------------------------------------------------- |
+| `event` | [`rustix::event`]—Polling and event operations. |
+| `fs` | [`rustix::fs`]—Filesystem operations. |
+| `io_uring` | [`rustix::io_uring`]—Linux io_uring. |
+| `mm` | [`rustix::mm`]—Memory map operations. |
+| `mount` | [`rustix::mount`]—Linux mount API. |
+| `net` | [`rustix::net`]—Network-related operations. |
+| `param` | [`rustix::param`]—Process parameters. |
+| `pipe` | [`rustix::pipe`]—Pipe operations. |
+| `process` | [`rustix::process`]—Process-associated operations. |
+| `pty` | [`rustix::pty`]—Pseudoterminal operations. |
+| `rand` | [`rustix::rand`]—Random-related operations. |
+| `shm` | [`rustix::shm`]—POSIX shared memory. |
+| `stdio` | [`rustix::stdio`]—Stdio-related operations. |
+| `system` | [`rustix::system`]—System-related operations. |
+| `termios` | [`rustix::termios`]—Terminal I/O stream operations. |
+| `thread` | [`rustix::thread`]—Thread-associated operations. |
+| `time` | [`rustix::time`]—Time-related operations. |
+| | |
+| `use-libc` | Enable the libc backend. |
+| | |
+| `linux_4_11` | Enable optimizations that assume Linux ≥ 4.11 |
+| `linux_5_1` | Enable optimizations that assume Linux ≥ 5.1 |
+| `linux_5_11` | Enable optimizations that assume Linux ≥ 5.11 |
+| `linux_latest` | Enable optimizations that assume the latest Linux release |
+| | |
+| `use-libc-auxv` | Use `getauxval` instead of `PR_GET_AUXV` or "/proc/self/auxv". |
+| | |
+| `std` | On by default; disable to activate `#![no_std]`. |
+| `alloc` | On by default; enables features that depend on [`alloc`]. |
+
+[`rustix::buffer`]: https://docs.rs/rustix/*/rustix/buffer/index.html
+[`rustix::event`]: https://docs.rs/rustix/*/rustix/event/index.html
+[`rustix::fs`]: https://docs.rs/rustix/*/rustix/fs/index.html
+[`rustix::io_uring`]: https://docs.rs/rustix/*/rustix/io_uring/index.html
+[`rustix::mm`]: https://docs.rs/rustix/*/rustix/mm/index.html
+[`rustix::mount`]: https://docs.rs/rustix/*/rustix/mount/index.html
+[`rustix::net`]: https://docs.rs/rustix/*/rustix/net/index.html
+[`rustix::param`]: https://docs.rs/rustix/*/rustix/param/index.html
+[`rustix::pipe`]: https://docs.rs/rustix/*/rustix/pipe/index.html
+[`rustix::process`]: https://docs.rs/rustix/*/rustix/process/index.html
+[`rustix::pty`]: https://docs.rs/rustix/*/rustix/pty/index.html
+[`rustix::rand`]: https://docs.rs/rustix/*/rustix/rand/index.html
+[`rustix::shm`]: https://docs.rs/rustix/*/rustix/shm/index.html
+[`rustix::stdio`]: https://docs.rs/rustix/*/rustix/stdio/index.html
+[`rustix::system`]: https://docs.rs/rustix/*/rustix/system/index.html
+[`rustix::termios`]: https://docs.rs/rustix/*/rustix/termios/index.html
+[`rustix::thread`]: https://docs.rs/rustix/*/rustix/thread/index.html
+[`rustix::time`]: https://docs.rs/rustix/*/rustix/time/index.html
+[`rustix::io`]: https://docs.rs/rustix/*/rustix/io/index.html
+[`rustix::fd`]: https://docs.rs/rustix/*/rustix/fd/index.html
+[`rustix::ffi`]: https://docs.rs/rustix/*/rustix/ffi/index.html
+[`rustix::ioctl`]: https://docs.rs/rustix/*/rustix/ffi/ioctl.html
+
+## 64-bit Large File Support (LFS) and Year 2038 (y2038) support
+
+`rustix` automatically uses 64-bit APIs when available, and avoids exposing
+32-bit APIs that would have the year-2038 problem or fail to support large
+files. For instance, `rustix::fstatvfs` calls `fstatvfs64`, and returns a
+struct that's 64-bit even on 32-bit platforms.
+
+## Similar crates
+
+`rustix` is similar to [`nix`], [`simple_libc`], [`unix`], [`nc`], [`uapi`],
+and [`rusl`]. `rustix` is architected for [I/O safety] with most APIs using
+[`OwnedFd`] and [`AsFd`] to manipulate file descriptors rather than `File` or
+even `c_int`, and supporting multiple backends so that it can use direct
+syscalls while still being usable on all platforms `libc` supports. Like `nix`,
+`rustix` has an optimized and flexible filename argument mechanism that allows
+users to use a variety of string types, including non-UTF-8 string types.
+
+[`relibc`] is a similar project which aims to be a full "libc", including
+C-compatible interfaces and higher-level C/POSIX standard-library
+functionality; `rustix` just aims to provide safe and idiomatic Rust interfaces
+to low-level syscalls. `relibc` also doesn't tend to support features not
+supported on Redox, such as `*at` functions like `openat`, which are important
+features for `rustix`.
+
+`rustix` has its own code for making direct syscalls, similar to the
+[`syscall`], [`sc`], and [`scall`] crates, using the Rust `asm!` macro.
+`rustix` can also use Linux's vDSO mechanism to optimize Linux `clock_gettime`
+on all architectures, and all Linux system calls on x86. And `rustix`'s
+syscalls report errors using an optimized `Errno` type.
+
+`rustix`'s `*at` functions are similar to the [`openat`] crate, but `rustix`
+provides them as free functions rather than associated functions of a `Dir`
+type. `rustix`'s `CWD` constant exposes the special `AT_FDCWD` value in a safe
+way, so users don't need to open `.` to get a current-directory handle.
+
+`rustix`'s `openat2` function is similar to the [`openat2`] crate, but uses I/O
+safety types rather than `RawFd`. `rustix` does not provide dynamic feature
+detection, so users must handle the [`NOSYS`] error themselves.
+
+`rustix`'s `termios` module is similar to the [`termios`] crate, but uses I/O
+safety types rather than `RawFd`, and the flags parameters to functions such as
+`tcsetattr` are `enum`s rather than bare integers. And, rustix calls its
+`tcgetattr` function `tcgetattr`, rather than `Termios::from_fd`.
+
+## Minimum Supported Rust Version (MSRV)
+
+This crate currently works on the version of [Rust on Debian stable], which is
+currently [Rust 1.63]. This policy may change in the future, in minor version
+releases, so users using a fixed version of Rust should pin to a specific
+version of this crate.
+
+## Minimum Linux Version
+
+On Linux platforms, rustix requires at least Linux 3.2. This is at most the
+oldest Linux version supported by:
+ - [any current Rust target], or
+ - [kernel.org] at the time of rustix's [MSRV] release.
+The specifics of this policy may change in the future, but we intend it to
+always reflect “very old” Linux versions.
+
+[MSRV]: #minimum-supported-rust-version-msrv
+[Rust 1.63]: https://blog.rust-lang.org/2022/08/11/Rust-1.63.0.html
+[any current Rust target]: https://doc.rust-lang.org/nightly/rustc/platform-support.html
+[kernel.org]: https://www.kernel.org/releases.html
+[Rust on Debian stable]: https://packages.debian.org/stable/rust/rustc
+[Windows Sockets 2]: https://learn.microsoft.com/en-us/windows/win32/winsock/windows-sockets-start-page-2
+[`nix`]: https://crates.io/crates/nix
+[`unix`]: https://crates.io/crates/unix
+[`nc`]: https://crates.io/crates/nc
+[`simple_libc`]: https://crates.io/crates/simple_libc
+[`uapi`]: https://crates.io/crates/uapi
+[`rusl`]: https://lib.rs/crates/rusl
+[`relibc`]: https://gitlab.redox-os.org/redox-os/relibc
+[`syscall`]: https://crates.io/crates/syscall
+[`sc`]: https://crates.io/crates/sc
+[`scall`]: https://crates.io/crates/scall
+[`openat`]: https://crates.io/crates/openat
+[`openat2`]: https://crates.io/crates/openat2
+[I/O safety types]: https://doc.rust-lang.org/stable/std/os/fd/index.html#structs
+[`termios`]: https://crates.io/crates/termios
+[`libc`]: https://crates.io/crates/libc
+[`windows-sys`]: https://crates.io/crates/windows-sys
+[`cap-std`]: https://crates.io/crates/cap-std
+[`memfd`]: https://crates.io/crates/memfd
+[`timerfd`]: https://crates.io/crates/timerfd
+[`io-streams`]: https://crates.io/crates/io-streams
+[`bitflags`]: https://crates.io/crates/bitflags
+[`Arg`]: https://docs.rs/rustix/*/rustix/path/trait.Arg.html
+[I/O-safe]: https://github.com/rust-lang/rfcs/blob/master/text/3128-io-safety.md
+[I/O safety]: https://github.com/rust-lang/rfcs/blob/master/text/3128-io-safety.md
+[provenance]: https://github.com/rust-lang/rust/issues/95228
+[`OwnedFd`]: https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html
+[`AsFd`]: https://doc.rust-lang.org/stable/std/os/fd/trait.AsFd.html
+[`NOSYS`]: https://docs.rs/rustix/*/rustix/io/struct.Errno.html#associatedconstant.NOSYS
+[`alloc`]: https://doc.rust-lang.org/alloc/alloc/index.html
diff --git a/vendor/rustix-1.0.8/SECURITY.md b/vendor/rustix-1.0.8/SECURITY.md
new file mode 100644
index 0000000..3513b9c
--- /dev/null
+++ b/vendor/rustix-1.0.8/SECURITY.md
@@ -0,0 +1,29 @@
+# Security Policy
+
+Building secure foundations for software development is at the core of what we do in the Bytecode Alliance. Contributions of external security researchers are a vital part of that.
+
+## Scope
+
+If you believe you've found a security issue in any website, service, or software owned or operated by the Bytecode Alliance, we encourage you to notify us.
+
+## How to Submit a Report
+
+To submit a vulnerability report to the Bytecode Alliance, please contact us at [[email protected]](mailto:[email protected]). Your submission will be reviewed and validated by a member of our security team.
+
+## Safe Harbor
+
+The Bytecode Alliance supports safe harbor for security researchers who:
+
+* Make a good faith effort to avoid privacy violations, destruction of data, and interruption or degradation of our services.
+* Only interact with accounts you own or with explicit permission of the account holder. If you do encounter Personally Identifiable Information (PII) contact us immediately, do not proceed with access, and immediately purge any local information.
+* Provide us with a reasonable amount of time to resolve vulnerabilities prior to any disclosure to the public or a third-party.
+
+We will consider activities conducted consistent with this policy to constitute "authorized" conduct and will not pursue civil action or initiate a complaint to law enforcement. We will help to the extent we can if legal action is initiated by a third party against you.
+
+Please submit a report to us before engaging in conduct that may be inconsistent with or unaddressed by this policy.
+
+## Preferences
+
+* Please provide detailed reports with reproducible steps and a clearly defined impact.
+* Submit one vulnerability per report.
+* Social engineering (e.g. phishing, vishing, smishing) is prohibited.
diff --git a/vendor/rustix-1.0.8/benches/mod.rs b/vendor/rustix-1.0.8/benches/mod.rs
new file mode 100644
index 0000000..9663539
--- /dev/null
+++ b/vendor/rustix-1.0.8/benches/mod.rs
@@ -0,0 +1,217 @@
+//! Benchmarks for rustix.
+//!
+//! To enable these benchmarks, add `--cfg=criterion` to RUSTFLAGS and enable
+//! the "fs", "time", and "process" cargo features.
+//!
+//! ```sh
+//! RUSTFLAGS=--cfg=criterion cargo bench --features=fs,time,process,stdio
+//! ```
+
+#[cfg(any(
+ not(criterion),
+ not(feature = "fs"),
+ not(feature = "process"),
+ not(feature = "time"),
+ not(feature = "stdio"),
+ windows,
+ target_os = "emscripten",
+ target_os = "redox",
+ target_os = "wasi",
+))]
+fn main() {
+ unimplemented!(
+ "Add --cfg=criterion to RUSTFLAGS and enable the \"fs\", \"time\", \"process\", and \
+ \"stdio\" cargo features."
+ )
+}
+
+#[cfg(not(any(
+ not(criterion),
+ not(feature = "fs"),
+ not(feature = "process"),
+ not(feature = "time"),
+ not(feature = "stdio"),
+ windows,
+ target_os = "emscripten",
+ target_os = "redox",
+ target_os = "wasi",
+)))]
+use criterion::{criterion_group, criterion_main};
+
+#[cfg(not(any(
+ not(criterion),
+ not(feature = "fs"),
+ not(feature = "process"),
+ not(feature = "time"),
+ not(feature = "stdio"),
+ windows,
+ target_os = "emscripten",
+ target_os = "redox",
+ target_os = "wasi",
+)))]
+mod suite {
+ use criterion::Criterion;
+
+ pub(super) fn simple_statat(c: &mut Criterion) {
+ use rustix::fs::{statat, AtFlags, CWD};
+
+ c.bench_function("simple statat", |b| {
+ b.iter(|| {
+ statat(CWD, "/", AtFlags::empty()).unwrap();
+ })
+ });
+ }
+
+ pub(super) fn simple_statat_libc(c: &mut Criterion) {
+ c.bench_function("simple statat libc", |b| {
+ b.iter(|| {
+ let mut s = std::mem::MaybeUninit::<libc::stat>::uninit();
+ unsafe {
+ assert_eq!(
+ libc::fstatat(
+ libc::AT_FDCWD,
+ std::ffi::CString::new("/").unwrap().as_c_str().as_ptr() as _,
+ s.as_mut_ptr(),
+ 0
+ ),
+ 0
+ );
+ }
+ })
+ });
+ }
+
+ pub(super) fn simple_statat_libc_cstr(c: &mut Criterion) {
+ c.bench_function("simple statat libc cstr", |b| {
+ b.iter(|| {
+ let mut s = std::mem::MaybeUninit::<libc::stat>::uninit();
+ unsafe {
+ assert_eq!(
+ libc::fstatat(
+ libc::AT_FDCWD,
+ rustix::cstr!("/").as_ptr() as _,
+ s.as_mut_ptr(),
+ 0
+ ),
+ 0
+ );
+ }
+ })
+ });
+ }
+
+ pub(super) fn simple_statat_cstr(c: &mut Criterion) {
+ use rustix::fs::{statat, AtFlags, CWD};
+
+ c.bench_function("simple statat cstr", |b| {
+ b.iter(|| {
+ statat(CWD, rustix::cstr!("/"), AtFlags::empty()).unwrap();
+ })
+ });
+ }
+
+ pub(super) fn simple_fstat(c: &mut Criterion) {
+ use rustix::fs::fstat;
+
+ c.bench_function("simple fstat", |b| {
+ b.iter(|| {
+ fstat(rustix::stdio::stdin()).unwrap();
+ })
+ });
+ }
+
+ pub(super) fn simple_fstat_libc(c: &mut Criterion) {
+ c.bench_function("simple fstat libc", |b| {
+ b.iter(|| {
+ let mut s = std::mem::MaybeUninit::<libc::stat>::uninit();
+ unsafe {
+ assert_eq!(libc::fstat(libc::STDIN_FILENO, s.as_mut_ptr()), 0);
+ }
+ })
+ });
+ }
+
+ #[cfg(not(target_os = "wasi"))]
+ pub(super) fn simple_clock_gettime(c: &mut Criterion) {
+ use rustix::time::{clock_gettime, ClockId};
+
+ c.bench_function("simple clock_gettime", |b| {
+ b.iter(|| {
+ let _ = clock_gettime(ClockId::Monotonic);
+ })
+ });
+ }
+
+ #[cfg(not(target_os = "wasi"))]
+ pub(super) fn simple_clock_gettime_libc(c: &mut Criterion) {
+ c.bench_function("simple clock_gettime libc", |b| {
+ b.iter(|| {
+ let mut s = std::mem::MaybeUninit::<libc::timespec>::uninit();
+ unsafe {
+ assert_eq!(
+ libc::clock_gettime(libc::CLOCK_MONOTONIC, s.as_mut_ptr()),
+ 0
+ );
+ let _ = s.assume_init();
+ }
+ })
+ });
+ }
+
+ #[cfg(not(target_os = "wasi"))]
+ pub(super) fn simple_getpid(c: &mut Criterion) {
+ use rustix::process::getpid;
+
+ c.bench_function("simple getpid", |b| {
+ b.iter(|| {
+ let _ = getpid();
+ })
+ });
+ }
+
+ #[cfg(not(target_os = "wasi"))]
+ pub(super) fn simple_getpid_libc(c: &mut Criterion) {
+ c.bench_function("simple getpid libc", |b| {
+ b.iter(|| unsafe {
+ let _ = libc::getpid();
+ })
+ });
+ }
+}
+
+#[cfg(not(any(
+ not(criterion),
+ not(feature = "fs"),
+ not(feature = "process"),
+ not(feature = "time"),
+ not(feature = "stdio"),
+ windows,
+ target_os = "emscripten",
+ target_os = "redox",
+ target_os = "wasi",
+)))]
+criterion_group!(
+ benches,
+ suite::simple_statat,
+ suite::simple_statat_libc,
+ suite::simple_statat_libc_cstr,
+ suite::simple_statat_cstr,
+ suite::simple_fstat,
+ suite::simple_fstat_libc,
+ suite::simple_clock_gettime,
+ suite::simple_clock_gettime_libc,
+ suite::simple_getpid,
+ suite::simple_getpid_libc
+);
+#[cfg(not(any(
+ not(criterion),
+ not(feature = "fs"),
+ not(feature = "process"),
+ not(feature = "time"),
+ not(feature = "stdio"),
+ windows,
+ target_os = "emscripten",
+ target_os = "redox",
+ target_os = "wasi",
+)))]
+criterion_main!(benches);
diff --git a/vendor/rustix-1.0.8/build.rs b/vendor/rustix-1.0.8/build.rs
new file mode 100644
index 0000000..3518418
--- /dev/null
+++ b/vendor/rustix-1.0.8/build.rs
@@ -0,0 +1,259 @@
+use std::env::var;
+use std::io::Write as _;
+
+/// The directory for inline asm.
+const ASM_PATH: &str = "src/backend/linux_raw/arch";
+
+fn main() {
+ // Don't rerun this on changes other than build.rs, as we only depend on
+ // the rustc version.
+ println!("cargo:rerun-if-changed=build.rs");
+
+ // Gather target information.
+ let arch = var("CARGO_CFG_TARGET_ARCH").unwrap();
+ let env = var("CARGO_CFG_TARGET_ENV").unwrap();
+ let abi = var("CARGO_CFG_TARGET_ABI");
+ let inline_asm_name = format!("{}/{}.rs", ASM_PATH, arch);
+ let inline_asm_name_present = std::fs::metadata(inline_asm_name).is_ok();
+ let os = var("CARGO_CFG_TARGET_OS").unwrap();
+ let pointer_width = var("CARGO_CFG_TARGET_POINTER_WIDTH").unwrap();
+ let endian = var("CARGO_CFG_TARGET_ENDIAN").unwrap();
+
+ // Check for special target variants.
+ let is_x32 = arch == "x86_64" && pointer_width == "32";
+ let is_arm64_ilp32 = arch == "aarch64" && pointer_width == "32";
+ let is_powerpc64be = arch == "powerpc64" && endian == "big";
+ let is_mipseb = (arch == "mips" || arch == "mips32r6") && endian == "big";
+ let is_mips64eb = arch.contains("mips64") && endian == "big";
+ let is_unsupported_abi = is_x32 || is_arm64_ilp32 || is_powerpc64be || is_mipseb || is_mips64eb;
+
+ // Check for `--features=use-libc`. This allows crate users to enable the
+ // libc backend.
+ let feature_use_libc = var("CARGO_FEATURE_USE_LIBC").is_ok();
+
+ // Check for `RUSTFLAGS=--cfg=rustix_use_libc`. This allows end users to
+ // enable the libc backend even if rustix is depended on transitively.
+ let cfg_use_libc = var("CARGO_CFG_RUSTIX_USE_LIBC").is_ok();
+
+ // Check for `--features=rustc-dep-of-std`.
+ let rustc_dep_of_std = var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok();
+
+ // Check for eg. `RUSTFLAGS=--cfg=rustix_use_experimental_features`. This
+ // is a rustc flag rather than a cargo feature flag because it's
+ // experimental and not something we want accidentally enabled via
+ // `--all-features`.
+ let rustix_use_experimental_features =
+ var("CARGO_CFG_RUSTIX_USE_EXPERIMENTAL_FEATURES").is_ok();
+
+ // Check for eg. `RUSTFLAGS=--cfg=rustix_use_experimental_asm`. This is a
+ // rustc flag rather than a cargo feature flag because it's experimental
+ // and not something we want accidentally enabled via `--all-features`.
+ let rustix_use_experimental_asm = var("CARGO_CFG_RUSTIX_USE_EXPERIMENTAL_ASM").is_ok();
+
+ // Miri doesn't support inline asm, and has builtin support for recognizing
+ // libc FFI calls, so if we're running under miri, use the libc backend.
+ let miri = var("CARGO_CFG_MIRI").is_ok();
+
+ // If experimental features are enabled, auto-detect and use available
+ // features.
+ if rustc_dep_of_std {
+ use_feature("rustc_attrs");
+ use_feature("core_intrinsics");
+ } else if rustix_use_experimental_features {
+ use_feature_or_nothing("rustc_attrs");
+ use_feature_or_nothing("core_intrinsics");
+ }
+
+ // Features needed only in no-std configurations.
+ #[cfg(not(feature = "std"))]
+ {
+ use_feature_or_nothing("core_c_str");
+ use_feature_or_nothing("core_ffi_c");
+ use_feature_or_nothing("alloc_c_string");
+ use_feature_or_nothing("alloc_ffi");
+ use_feature_or_nothing("error_in_core");
+ }
+
+ // Feature needed for testing.
+ if use_static_assertions() {
+ use_feature("static_assertions");
+ }
+
+ // WASI support can utilize wasi_ext if present.
+ if os == "wasi" {
+ use_feature_or_nothing("wasi_ext");
+ use_feature_or_nothing("wasip2");
+ }
+
+ // If the libc backend is requested, or if we're not on a platform for
+ // which we have linux_raw support, use the libc backend.
+ //
+ // For now Android uses the libc backend; in theory it could use the
+ // linux_raw backend, but to do that we'll need to figure out how to
+ // install the toolchain for it.
+ let libc = feature_use_libc
+ || cfg_use_libc
+ || os != "linux"
+ || !inline_asm_name_present
+ || is_unsupported_abi
+ || miri
+ || ((arch == "powerpc"
+ || arch == "powerpc64"
+ || arch == "s390x"
+ || arch.starts_with("mips"))
+ && !rustix_use_experimental_asm);
+ if libc {
+ // Use the libc backend.
+ use_feature("libc");
+ } else {
+ // Use the linux_raw backend.
+ use_feature("linux_raw");
+ if rustix_use_experimental_asm {
+ use_feature("asm_experimental_arch");
+ }
+ }
+
+ // Detect whether the compiler requires us to use thumb mode on ARM.
+ if arch == "arm" && use_thumb_mode() {
+ use_feature("thumb_mode");
+ }
+
+ // Rust's libc crate groups some OS's together which have similar APIs;
+ // create similarly-named features to make `cfg` tests more concise.
+ let freebsdlike = os == "freebsd" || os == "dragonfly";
+ if freebsdlike {
+ use_feature("freebsdlike");
+ }
+ let netbsdlike = os == "openbsd" || os == "netbsd";
+ if netbsdlike {
+ use_feature("netbsdlike");
+ }
+ let apple = os == "macos" || os == "ios" || os == "tvos" || os == "visionos" || os == "watchos";
+ if apple {
+ use_feature("apple");
+ }
+ if os == "linux" || os == "l4re" || os == "android" || os == "emscripten" {
+ use_feature("linux_like");
+ }
+ if os == "solaris" || os == "illumos" {
+ use_feature("solarish");
+ }
+ if apple || freebsdlike || netbsdlike {
+ use_feature("bsd");
+ }
+
+ // Add some additional common target combinations.
+
+ // Android and "regular" Linux both use the Linux kernel.
+ if os == "android" || os == "linux" {
+ use_feature("linux_kernel");
+ }
+
+ // These platforms have a 32-bit `time_t`.
+ if libc
+ && (arch == "arm"
+ || arch == "powerpc"
+ || arch == "mips"
+ || arch == "sparc"
+ || arch == "x86"
+ || (arch == "aarch64" && os == "linux" && abi == Ok("ilp32".to_string())))
+ && (apple
+ || os == "android"
+ || (os == "freebsd" && arch == "x86")
+ || os == "haiku"
+ || env == "gnu"
+ || (env == "musl" && arch == "x86")
+ || (arch == "aarch64" && os == "linux" && abi == Ok("ilp32".to_string())))
+ {
+ use_feature("fix_y2038");
+ }
+
+ println!("cargo:rerun-if-env-changed=CARGO_CFG_RUSTIX_USE_EXPERIMENTAL_ASM");
+ println!("cargo:rerun-if-env-changed=CARGO_CFG_RUSTIX_USE_LIBC");
+
+ // Rerun this script if any of our features or configuration flags change,
+ // or if the toolchain we used for feature detection changes.
+ println!("cargo:rerun-if-env-changed=CARGO_FEATURE_USE_LIBC");
+ println!("cargo:rerun-if-env-changed=CARGO_FEATURE_RUSTC_DEP_OF_STD");
+ println!("cargo:rerun-if-env-changed=CARGO_CFG_MIRI");
+}
+
+fn use_static_assertions() -> bool {
+ // `offset_from` was made const in Rust 1.65.
+ can_compile("const unsafe fn foo(p: *const u8) -> isize { p.offset_from(p) }")
+}
+
+fn use_thumb_mode() -> bool {
+ // In thumb mode, r7 is reserved.
+ !can_compile("pub unsafe fn f() { core::arch::asm!(\"udf #16\", in(\"r7\") 0); }")
+}
+
+fn use_feature_or_nothing(feature: &str) {
+ if false && has_feature(feature) {
+ use_feature(feature);
+ }
+}
+
+fn use_feature(feature: &str) {
+ println!("cargo:rustc-cfg={}", feature);
+}
+
+/// Test whether the rustc at `var("RUSTC")` supports the given feature.
+fn has_feature(feature: &str) -> bool {
+ can_compile(format!(
+ "#![allow(stable_features)]\n#![feature({})]",
+ feature
+ ))
+}
+
+/// Test whether the rustc at `var("RUSTC")` can compile the given code.
+fn can_compile<T: AsRef<str>>(test: T) -> bool {
+ use std::process::Stdio;
+
+ let rustc = var("RUSTC").unwrap();
+ let target = var("TARGET").unwrap();
+
+ // Use `RUSTC_WRAPPER` if it's set, unless it's set to an empty string, as
+ // documented [here].
+ // [here]: https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-reads
+ let wrapper = var("RUSTC_WRAPPER")
+ .ok()
+ .and_then(|w| if w.is_empty() { None } else { Some(w) });
+
+ let mut cmd = if let Some(wrapper) = wrapper {
+ let mut cmd = std::process::Command::new(wrapper);
+ // The wrapper's first argument is supposed to be the path to rustc.
+ cmd.arg(rustc);
+ cmd
+ } else {
+ std::process::Command::new(rustc)
+ };
+
+ cmd.arg("--crate-type=rlib") // Don't require `main`.
+ .arg("--emit=metadata") // Do as little as possible but still parse.
+ .arg("--target")
+ .arg(target)
+ .arg("-o")
+ .arg(std::env::temp_dir().join("rustix_test_can_compile"))
+ .stdout(Stdio::null()); // We don't care about the output (only whether it builds or not)
+
+ // If Cargo wants to set RUSTFLAGS, use that.
+ if let Ok(rustflags) = var("CARGO_ENCODED_RUSTFLAGS") {
+ if !rustflags.is_empty() {
+ for arg in rustflags.split('\x1f') {
+ cmd.arg(arg);
+ }
+ }
+ }
+
+ let mut child = cmd
+ .arg("-") // Read from stdin.
+ .stdin(Stdio::piped()) // Stdin is a pipe.
+ .stderr(Stdio::null()) // Errors from feature detection aren't interesting and can be confusing.
+ .spawn()
+ .unwrap();
+
+ writeln!(child.stdin.take().unwrap(), "{}", test.as_ref()).unwrap();
+
+ child.wait().unwrap().success()
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/c.rs b/vendor/rustix-1.0.8/src/backend/libc/c.rs
new file mode 100644
index 0000000..2f737c2
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/c.rs
@@ -0,0 +1,533 @@
+//! Libc and supplemental types and constants.
+
+#![allow(unused_imports)]
+
+// Import everything from libc, but we'll add some stuff and override some
+// things below.
+pub(crate) use libc::*;
+
+/// `PROC_SUPER_MAGIC`—The magic number for the procfs filesystem.
+#[cfg(all(linux_kernel, target_env = "musl"))]
+pub(crate) const PROC_SUPER_MAGIC: u32 = 0x0000_9fa0;
+
+/// `NFS_SUPER_MAGIC`—The magic number for the NFS filesystem.
+#[cfg(all(linux_kernel, target_env = "musl"))]
+pub(crate) const NFS_SUPER_MAGIC: u32 = 0x0000_6969;
+
+#[cfg(feature = "process")]
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+pub(crate) const EXIT_SIGNALED_SIGABRT: c_int = 128 + SIGABRT as c_int;
+
+// TODO: Upstream these.
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_TSN: c_int = linux_raw_sys::if_ether::ETH_P_TSN as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_ERSPAN2: c_int = linux_raw_sys::if_ether::ETH_P_ERSPAN2 as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_ERSPAN: c_int = linux_raw_sys::if_ether::ETH_P_ERSPAN as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_PROFINET: c_int = linux_raw_sys::if_ether::ETH_P_PROFINET as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_REALTEK: c_int = linux_raw_sys::if_ether::ETH_P_REALTEK as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_ETHERCAT: c_int = linux_raw_sys::if_ether::ETH_P_ETHERCAT as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_PREAUTH: c_int = linux_raw_sys::if_ether::ETH_P_PREAUTH as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_LLDP: c_int = linux_raw_sys::if_ether::ETH_P_LLDP as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_MRP: c_int = linux_raw_sys::if_ether::ETH_P_MRP as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_NCSI: c_int = linux_raw_sys::if_ether::ETH_P_NCSI as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_CFM: c_int = linux_raw_sys::if_ether::ETH_P_CFM as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_IBOE: c_int = linux_raw_sys::if_ether::ETH_P_IBOE as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_HSR: c_int = linux_raw_sys::if_ether::ETH_P_HSR as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_NSH: c_int = linux_raw_sys::if_ether::ETH_P_NSH as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_DSA_8021Q: c_int = linux_raw_sys::if_ether::ETH_P_DSA_8021Q as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_DSA_A5PSW: c_int = linux_raw_sys::if_ether::ETH_P_DSA_A5PSW as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_IFE: c_int = linux_raw_sys::if_ether::ETH_P_IFE as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_CAN: c_int = linux_raw_sys::if_ether::ETH_P_CAN as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_CANXL: c_int = linux_raw_sys::if_ether::ETH_P_CANXL as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_XDSA: c_int = linux_raw_sys::if_ether::ETH_P_XDSA as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_MAP: c_int = linux_raw_sys::if_ether::ETH_P_MAP as _;
+#[cfg(all(linux_kernel, feature = "net"))]
+pub(crate) const ETH_P_MCTP: c_int = linux_raw_sys::if_ether::ETH_P_MCTP as _;
+
+#[cfg(all(
+ linux_kernel,
+ any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "sparc",
+ target_arch = "sparc64"
+ )
+))]
+pub(crate) const SIGEMT: c_int = linux_raw_sys::general::SIGEMT as _;
+
+// TODO: Upstream these.
+#[cfg(all(linux_kernel, feature = "termios"))]
+pub(crate) const IUCLC: tcflag_t = linux_raw_sys::general::IUCLC as _;
+#[cfg(all(linux_kernel, feature = "termios"))]
+pub(crate) const XCASE: tcflag_t = linux_raw_sys::general::XCASE as _;
+
+#[cfg(target_os = "aix")]
+pub(crate) const MSG_DONTWAIT: c_int = MSG_NONBLOCK;
+
+// `O_LARGEFILE` can be automatically set by the kernel on Linux:
+// <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/open.c?h=v6.13#n1423>
+// so libc implementations may leave it undefined or defined to zero.
+#[cfg(linux_kernel)]
+pub(crate) const O_LARGEFILE: c_int = linux_raw_sys::general::O_LARGEFILE as _;
+
+// Gated under `_LARGEFILE_SOURCE` but automatically set by the kernel.
+// <https://github.com/illumos/illumos-gate/blob/fb2cb638e5604b214d8ea8d4f01ad2e77b437c17/usr/src/ucbhead/sys/fcntl.h#L64>
+#[cfg(solarish)]
+pub(crate) const O_LARGEFILE: c_int = 0x2000;
+
+// On PowerPC, the regular `termios` has the `termios2` fields and there is no
+// `termios2`, so we define aliases.
+#[cfg(all(
+ linux_kernel,
+ feature = "termios",
+ any(target_arch = "powerpc", target_arch = "powerpc64")
+))]
+pub(crate) use {
+ termios as termios2, TCGETS as TCGETS2, TCSETS as TCSETS2, TCSETSF as TCSETSF2,
+ TCSETSW as TCSETSW2,
+};
+
+// And PowerPC doesn't define `CIBAUD`, but it does define `IBSHIFT`, so we can
+// compute `CIBAUD` ourselves.
+#[cfg(all(
+ linux_kernel,
+ feature = "termios",
+ any(target_arch = "powerpc", target_arch = "powerpc64")
+))]
+pub(crate) const CIBAUD: u32 = CBAUD << IBSHIFT;
+
+// Automatically enable “large file” support (LFS) features.
+
+#[cfg(target_os = "vxworks")]
+pub(super) use _Vx_ticks64_t as _Vx_ticks_t;
+#[cfg(linux_kernel)]
+pub(super) use fallocate64 as fallocate;
+#[cfg(not(any(target_arch = "aarch64", target_arch = "riscv64")))]
+#[cfg(any(linux_like, target_os = "aix"))]
+pub(super) use open64 as open;
+#[cfg(any(
+ linux_kernel,
+ target_os = "aix",
+ target_os = "hurd",
+ target_os = "l4re"
+))]
+pub(super) use posix_fallocate64 as posix_fallocate;
+#[cfg(any(all(linux_like, not(target_os = "android")), target_os = "aix"))]
+pub(super) use {blkcnt64_t as blkcnt_t, rlim64_t as rlim_t};
+// TODO: AIX has `stat64x`, `fstat64x`, `lstat64x`, and `stat64xat`; add them
+// to the upstream libc crate and implement rustix's `statat` etc. with them.
+#[cfg(target_os = "aix")]
+pub(super) use {
+ blksize64_t as blksize_t, fstat64 as fstat, fstatfs64 as fstatfs, fstatvfs64 as fstatvfs,
+ ftruncate64 as ftruncate, getrlimit64 as getrlimit, ino_t, lseek64 as lseek, mmap,
+ off64_t as off_t, openat, posix_fadvise64 as posix_fadvise, preadv, pwritev,
+ rlimit64 as rlimit, setrlimit64 as setrlimit, stat64at as fstatat, statfs64 as statfs,
+ statvfs64 as statvfs, RLIM_INFINITY,
+};
+#[cfg(any(linux_like, target_os = "hurd"))]
+pub(super) use {
+ fstat64 as fstat, fstatat64 as fstatat, fstatfs64 as fstatfs, fstatvfs64 as fstatvfs,
+ ftruncate64 as ftruncate, getrlimit64 as getrlimit, ino64_t as ino_t, lseek64 as lseek,
+ mmap64 as mmap, off64_t as off_t, openat64 as openat, posix_fadvise64 as posix_fadvise,
+ rlimit64 as rlimit, setrlimit64 as setrlimit, statfs64 as statfs, statvfs64 as statvfs,
+ RLIM64_INFINITY as RLIM_INFINITY,
+};
+#[cfg(apple)]
+pub(super) use {
+ host_info64_t as host_info_t, host_statistics64 as host_statistics,
+ vm_statistics64_t as vm_statistics_t,
+};
+#[cfg(not(all(
+ linux_kernel,
+ any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )
+)))]
+#[cfg(any(linux_like, target_os = "aix", target_os = "hurd"))]
+pub(super) use {lstat64 as lstat, stat64 as stat};
+#[cfg(any(
+ linux_kernel,
+ target_os = "aix",
+ target_os = "hurd",
+ target_os = "emscripten"
+))]
+pub(super) use {pread64 as pread, pwrite64 as pwrite};
+#[cfg(any(target_os = "linux", target_os = "hurd", target_os = "emscripten"))]
+pub(super) use {preadv64 as preadv, pwritev64 as pwritev};
+
+#[cfg(all(target_os = "linux", any(target_env = "gnu", target_env = "uclibc")))]
+pub(super) unsafe fn prlimit(
+ pid: pid_t,
+ resource: __rlimit_resource_t,
+ new_limit: *const rlimit64,
+ old_limit: *mut rlimit64,
+) -> c_int {
+ // `prlimit64` wasn't supported in glibc until 2.13.
+ weak_or_syscall! {
+ fn prlimit64(
+ pid: pid_t,
+ resource: __rlimit_resource_t,
+ new_limit: *const rlimit64,
+ old_limit: *mut rlimit64
+ ) via SYS_prlimit64 -> c_int
+ }
+
+ prlimit64(pid, resource, new_limit, old_limit)
+}
+
+#[cfg(all(target_os = "linux", target_env = "musl"))]
+pub(super) unsafe fn prlimit(
+ pid: pid_t,
+ resource: c_int,
+ new_limit: *const rlimit64,
+ old_limit: *mut rlimit64,
+) -> c_int {
+ weak_or_syscall! {
+ fn prlimit64(
+ pid: pid_t,
+ resource: c_int,
+ new_limit: *const rlimit64,
+ old_limit: *mut rlimit64
+ ) via SYS_prlimit64 -> c_int
+ }
+
+ prlimit64(pid, resource, new_limit, old_limit)
+}
+
+#[cfg(target_os = "android")]
+pub(super) unsafe fn prlimit(
+ pid: pid_t,
+ resource: c_int,
+ new_limit: *const rlimit64,
+ old_limit: *mut rlimit64,
+) -> c_int {
+ weak_or_syscall! {
+ fn prlimit64(
+ pid: pid_t,
+ resource: c_int,
+ new_limit: *const rlimit64,
+ old_limit: *mut rlimit64
+ ) via SYS_prlimit64 -> c_int
+ }
+
+ prlimit64(pid, resource, new_limit, old_limit)
+}
+
+#[cfg(target_os = "android")]
+mod readwrite_pv64 {
+ use super::*;
+
+ pub(in super::super) unsafe fn preadv64(
+ fd: c_int,
+ iov: *const iovec,
+ iovcnt: c_int,
+ offset: off64_t,
+ ) -> ssize_t {
+ // Older Android libc lacks `preadv64`, so use the `weak!` mechanism to
+ // test for it, and call back to `syscall`. We don't use
+ // `weak_or_syscall` here because we need to pass the 64-bit offset
+ // specially.
+ weak! {
+ fn preadv64(c_int, *const iovec, c_int, off64_t) -> ssize_t
+ }
+ if let Some(fun) = preadv64.get() {
+ fun(fd, iov, iovcnt, offset)
+ } else {
+ // Unlike the plain "p" functions, the "pv" functions pass their
+ // offset in an endian-independent way, and always in two
+ // registers.
+ syscall! {
+ fn preadv(
+ fd: c_int,
+ iov: *const iovec,
+ iovcnt: c_int,
+ offset_lo: usize,
+ offset_hi: usize
+ ) via SYS_preadv -> ssize_t
+ }
+ preadv(fd, iov, iovcnt, offset as usize, (offset >> 32) as usize)
+ }
+ }
+ pub(in super::super) unsafe fn pwritev64(
+ fd: c_int,
+ iov: *const iovec,
+ iovcnt: c_int,
+ offset: off64_t,
+ ) -> ssize_t {
+ // See the comments in `preadv64`.
+ weak! {
+ fn pwritev64(c_int, *const iovec, c_int, off64_t) -> ssize_t
+ }
+ if let Some(fun) = pwritev64.get() {
+ fun(fd, iov, iovcnt, offset)
+ } else {
+ // Unlike the plain "p" functions, the "pv" functions pass their
+ // offset in an endian-independent way, and always in two
+ // registers.
+ syscall! {
+ fn pwritev(
+ fd: c_int,
+ iov: *const iovec,
+ iovcnt: c_int,
+ offset_lo: usize,
+ offset_hi: usize
+ ) via SYS_pwritev -> ssize_t
+ }
+ pwritev(fd, iov, iovcnt, offset as usize, (offset >> 32) as usize)
+ }
+ }
+}
+#[cfg(target_os = "android")]
+pub(super) use readwrite_pv64::{preadv64 as preadv, pwritev64 as pwritev};
+
+// macOS added `preadv` and `pwritev` in version 11.0.
+#[cfg(apple)]
+mod readwrite_pv {
+ use super::*;
+ weakcall! {
+ pub(in super::super) fn preadv(
+ fd: c_int,
+ iov: *const iovec,
+ iovcnt: c_int,
+ offset: off_t
+ ) -> ssize_t
+ }
+ weakcall! {
+ pub(in super::super) fn pwritev(
+ fd: c_int,
+ iov: *const iovec,
+ iovcnt: c_int, offset: off_t
+ ) -> ssize_t
+ }
+}
+#[cfg(apple)]
+pub(super) use readwrite_pv::{preadv, pwritev};
+
+// glibc added `preadv64v2` and `pwritev64v2` in version 2.26.
+#[cfg(all(target_os = "linux", target_env = "gnu"))]
+mod readwrite_pv64v2 {
+ use super::*;
+
+ pub(in super::super) unsafe fn preadv64v2(
+ fd: c_int,
+ iov: *const iovec,
+ iovcnt: c_int,
+ offset: off64_t,
+ flags: c_int,
+ ) -> ssize_t {
+ // Older glibc lacks `preadv64v2`, so use the `weak!` mechanism to
+ // test for it, and call back to `syscall`. We don't use
+ // `weak_or_syscall` here because we need to pass the 64-bit offset
+ // specially.
+ weak! {
+ fn preadv64v2(c_int, *const iovec, c_int, off64_t, c_int) -> ssize_t
+ }
+ if let Some(fun) = preadv64v2.get() {
+ fun(fd, iov, iovcnt, offset, flags)
+ } else {
+ // Unlike the plain "p" functions, the "pv" functions pass their
+ // offset in an endian-independent way, and always in two
+ // registers.
+ syscall! {
+ fn preadv2(
+ fd: c_int,
+ iov: *const iovec,
+ iovcnt: c_int,
+ offset_lo: usize,
+ offset_hi: usize,
+ flags: c_int
+ ) via SYS_preadv2 -> ssize_t
+ }
+ preadv2(
+ fd,
+ iov,
+ iovcnt,
+ offset as usize,
+ (offset >> 32) as usize,
+ flags,
+ )
+ }
+ }
+ pub(in super::super) unsafe fn pwritev64v2(
+ fd: c_int,
+ iov: *const iovec,
+ iovcnt: c_int,
+ offset: off64_t,
+ flags: c_int,
+ ) -> ssize_t {
+ // See the comments in `preadv64v2`.
+ weak! {
+ fn pwritev64v2(c_int, *const iovec, c_int, off64_t, c_int) -> ssize_t
+ }
+ if let Some(fun) = pwritev64v2.get() {
+ fun(fd, iov, iovcnt, offset, flags)
+ } else {
+ // Unlike the plain "p" functions, the "pv" functions pass their
+ // offset in an endian-independent way, and always in two
+ // registers.
+ syscall! {
+ fn pwritev2(
+ fd: c_int,
+ iov: *const iovec,
+ iovec: c_int,
+ offset_lo: usize,
+ offset_hi: usize,
+ flags: c_int
+ ) via SYS_pwritev2 -> ssize_t
+ }
+ pwritev2(
+ fd,
+ iov,
+ iovcnt,
+ offset as usize,
+ (offset >> 32) as usize,
+ flags,
+ )
+ }
+ }
+}
+#[cfg(all(target_os = "linux", target_env = "gnu"))]
+pub(super) use readwrite_pv64v2::{preadv64v2 as preadv2, pwritev64v2 as pwritev2};
+
+// On non-glibc, assume we don't have `pwritev2`/`preadv2` in libc and use
+// `c::syscall` instead.
+#[cfg(any(
+ target_os = "android",
+ all(target_os = "linux", not(target_env = "gnu")),
+))]
+mod readwrite_pv64v2 {
+ use super::*;
+
+ pub(in super::super) unsafe fn preadv64v2(
+ fd: c_int,
+ iov: *const iovec,
+ iovcnt: c_int,
+ offset: off64_t,
+ flags: c_int,
+ ) -> ssize_t {
+ // Unlike the plain "p" functions, the "pv" functions pass their offset
+ // in an endian-independent way, and always in two registers.
+ syscall! {
+ fn preadv2(
+ fd: c_int,
+ iov: *const iovec,
+ iovcnt: c_int,
+ offset_lo: usize,
+ offset_hi: usize,
+ flags: c_int
+ ) via SYS_preadv2 -> ssize_t
+ }
+ preadv2(
+ fd,
+ iov,
+ iovcnt,
+ offset as usize,
+ (offset >> 32) as usize,
+ flags,
+ )
+ }
+ pub(in super::super) unsafe fn pwritev64v2(
+ fd: c_int,
+ iov: *const iovec,
+ iovcnt: c_int,
+ offset: off64_t,
+ flags: c_int,
+ ) -> ssize_t {
+ // Unlike the plain "p" functions, the "pv" functions pass their offset
+ // in an endian-independent way, and always in two registers.
+ syscall! {
+ fn pwritev2(
+ fd: c_int,
+ iov: *const iovec,
+ iovcnt: c_int,
+ offset_lo: usize,
+ offset_hi: usize,
+ flags: c_int
+ ) via SYS_pwritev2 -> ssize_t
+ }
+ pwritev2(
+ fd,
+ iov,
+ iovcnt,
+ offset as usize,
+ (offset >> 32) as usize,
+ flags,
+ )
+ }
+}
+#[cfg(any(
+ target_os = "android",
+ all(target_os = "linux", not(target_env = "gnu")),
+))]
+pub(super) use readwrite_pv64v2::{preadv64v2 as preadv2, pwritev64v2 as pwritev2};
+
+// Rust's libc crate lacks statx for Non-glibc targets.
+#[cfg(feature = "fs")]
+#[cfg(all(
+ linux_like,
+ not(any(target_os = "android", target_os = "emscripten", target_env = "gnu"))
+))]
+mod statx_flags {
+ pub(crate) use linux_raw_sys::general::{
+ STATX_ALL, STATX_ATIME, STATX_BASIC_STATS, STATX_BLOCKS, STATX_BTIME, STATX_CTIME,
+ STATX_DIOALIGN, STATX_GID, STATX_INO, STATX_MNT_ID, STATX_MODE, STATX_MTIME, STATX_NLINK,
+ STATX_SIZE, STATX_TYPE, STATX_UID,
+ };
+
+ pub(crate) use linux_raw_sys::general::{
+ STATX_ATTR_APPEND, STATX_ATTR_AUTOMOUNT, STATX_ATTR_COMPRESSED, STATX_ATTR_DAX,
+ STATX_ATTR_ENCRYPTED, STATX_ATTR_IMMUTABLE, STATX_ATTR_MOUNT_ROOT, STATX_ATTR_NODUMP,
+ STATX_ATTR_VERITY,
+ };
+}
+#[cfg(feature = "fs")]
+#[cfg(all(
+ linux_like,
+ not(any(target_os = "android", target_os = "emscripten", target_env = "gnu"))
+))]
+pub(crate) use statx_flags::*;
+
+#[cfg(feature = "fs")]
+#[cfg(target_os = "android")]
+pub(crate) use __fsid_t as fsid_t;
+
+#[cfg(feature = "mm")]
+#[cfg(target_os = "android")]
+pub(crate) const MAP_DROPPABLE: c_int = bitcast!(linux_raw_sys::general::MAP_DROPPABLE);
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ #[cfg(linux_kernel)]
+ fn test_flags() {
+ // libc may publicly define `O_LARGEFILE` to 0, but we want the real
+ // non-zero value.
+ assert_ne!(O_LARGEFILE, 0);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/conv.rs b/vendor/rustix-1.0.8/src/backend/libc/conv.rs
new file mode 100644
index 0000000..1cb1fc9
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/conv.rs
@@ -0,0 +1,188 @@
+//! Libc call arguments and return values are often things like `c_int`,
+//! `c_uint`, or libc-specific pointer types. This module provides functions
+//! for converting between rustix's types and libc types.
+
+use super::c;
+#[cfg(all(feature = "alloc", not(any(windows, target_os = "espidf"))))]
+use super::fd::IntoRawFd as _;
+use super::fd::{AsRawFd as _, BorrowedFd, FromRawFd as _, LibcFd, OwnedFd, RawFd};
+#[cfg(not(windows))]
+use crate::ffi::CStr;
+use crate::io;
+
+#[cfg(not(windows))]
+#[inline]
+pub(super) fn c_str(c: &CStr) -> *const c::c_char {
+ c.as_ptr().cast()
+}
+
+#[cfg(not(any(
+ windows,
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+pub(super) fn no_fd() -> LibcFd {
+ -1
+}
+
+#[inline]
+pub(super) fn borrowed_fd(fd: BorrowedFd<'_>) -> LibcFd {
+ fd.as_raw_fd() as LibcFd
+}
+
+#[cfg(all(
+ feature = "alloc",
+ not(any(windows, target_os = "espidf", target_os = "redox"))
+))]
+#[inline]
+pub(super) fn owned_fd(fd: OwnedFd) -> LibcFd {
+ fd.into_raw_fd() as LibcFd
+}
+
+#[inline]
+pub(super) fn ret(raw: c::c_int) -> io::Result<()> {
+ if raw == 0 {
+ Ok(())
+ } else {
+ Err(io::Errno::last_os_error())
+ }
+}
+
+#[cfg(apple)]
+#[inline]
+pub(super) fn nonnegative_ret(raw: c::c_int) -> io::Result<()> {
+ if raw >= 0 {
+ Ok(())
+ } else {
+ Err(io::Errno::last_os_error())
+ }
+}
+
+#[cfg(not(any(windows, target_os = "wasi")))]
+#[inline]
+pub(super) unsafe fn ret_infallible(raw: c::c_int) {
+ debug_assert_eq!(raw, 0, "unexpected error: {:?}", io::Errno::last_os_error());
+}
+
+#[inline]
+pub(super) fn ret_c_int(raw: c::c_int) -> io::Result<c::c_int> {
+ if raw == -1 {
+ Err(io::Errno::last_os_error())
+ } else {
+ Ok(raw)
+ }
+}
+
+#[cfg(any(
+ linux_kernel,
+ all(target_os = "illumos", feature = "event"),
+ all(target_os = "redox", feature = "event")
+))]
+#[inline]
+pub(super) fn ret_u32(raw: c::c_int) -> io::Result<u32> {
+ if raw == -1 {
+ Err(io::Errno::last_os_error())
+ } else {
+ Ok(raw as u32)
+ }
+}
+
+#[inline]
+pub(super) fn ret_usize(raw: c::ssize_t) -> io::Result<usize> {
+ if raw == -1 {
+ Err(io::Errno::last_os_error())
+ } else {
+ debug_assert!(raw >= 0);
+ Ok(raw as usize)
+ }
+}
+
+#[cfg(not(windows))]
+#[cfg(feature = "fs")]
+#[inline]
+pub(super) fn ret_off_t(raw: c::off_t) -> io::Result<c::off_t> {
+ if raw == -1 {
+ Err(io::Errno::last_os_error())
+ } else {
+ Ok(raw)
+ }
+}
+
+#[cfg(not(any(windows, target_os = "wasi")))]
+#[inline]
+pub(super) fn ret_pid_t(raw: c::pid_t) -> io::Result<c::pid_t> {
+ if raw == -1 {
+ Err(io::Errno::last_os_error())
+ } else {
+ Ok(raw)
+ }
+}
+
+/// Convert a `c_int` returned from a libc function to an `OwnedFd`, if valid.
+///
+/// # Safety
+///
+/// The caller must ensure that this is the return value of a libc function
+/// which returns an owned file descriptor.
+#[inline]
+pub(super) unsafe fn ret_owned_fd(raw: LibcFd) -> io::Result<OwnedFd> {
+ if raw == !0 {
+ Err(io::Errno::last_os_error())
+ } else {
+ Ok(OwnedFd::from_raw_fd(raw as RawFd))
+ }
+}
+
+#[cfg(not(any(windows, target_os = "wasi")))]
+#[inline]
+pub(super) fn ret_discarded_fd(raw: LibcFd) -> io::Result<()> {
+ if raw == !0 {
+ Err(io::Errno::last_os_error())
+ } else {
+ Ok(())
+ }
+}
+
+#[cfg(all(feature = "alloc", not(any(windows, target_os = "wasi"))))]
+#[inline]
+pub(super) fn ret_discarded_char_ptr(raw: *mut c::c_char) -> io::Result<()> {
+ if raw.is_null() {
+ Err(io::Errno::last_os_error())
+ } else {
+ Ok(())
+ }
+}
+
+/// Convert the buffer-length argument value of a `send` or `recv` call.
+#[cfg(not(any(windows, target_os = "wasi")))]
+#[inline]
+pub(super) fn send_recv_len(len: usize) -> usize {
+ len
+}
+
+/// Convert the buffer-length argument value of a `send` or `recv` call.
+#[cfg(windows)]
+#[inline]
+pub(super) fn send_recv_len(len: usize) -> i32 {
+ // On Windows, the length argument has type `i32`; saturate the length,
+ // since `send` and `recv` are allowed to send and recv less data than
+ // requested.
+ len.try_into().unwrap_or(i32::MAX)
+}
+
+/// Convert the return value of a `send` or `recv` call.
+#[cfg(not(any(windows, target_os = "wasi")))]
+#[inline]
+pub(super) fn ret_send_recv(len: isize) -> io::Result<usize> {
+ ret_usize(len)
+}
+
+/// Convert the return value of a `send` or `recv` call.
+#[cfg(windows)]
+#[inline]
+pub(super) fn ret_send_recv(len: i32) -> io::Result<usize> {
+ ret_usize(len as isize)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/event/epoll.rs b/vendor/rustix-1.0.8/src/backend/libc/event/epoll.rs
new file mode 100644
index 0000000..08f4bac
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/event/epoll.rs
@@ -0,0 +1,74 @@
+use crate::backend::c;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `EPOLL_*` for use with [`epoll::create`].
+ ///
+ /// [`epoll::create`]: crate::event::epoll::create
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct CreateFlags: u32 {
+ /// `EPOLL_CLOEXEC`
+ const CLOEXEC = bitcast!(c::EPOLL_CLOEXEC);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `EPOLL*` for use with [`epoll::add`].
+ ///
+ /// [`epoll::add`]: crate::event::epoll::add
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct EventFlags: u32 {
+ /// `EPOLLIN`
+ const IN = bitcast!(c::EPOLLIN);
+
+ /// `EPOLLOUT`
+ const OUT = bitcast!(c::EPOLLOUT);
+
+ /// `EPOLLPRI`
+ const PRI = bitcast!(c::EPOLLPRI);
+
+ /// `EPOLLERR`
+ const ERR = bitcast!(c::EPOLLERR);
+
+ /// `EPOLLHUP`
+ const HUP = bitcast!(c::EPOLLHUP);
+
+ /// `EPOLLRDNORM`
+ const RDNORM = bitcast!(c::EPOLLRDNORM);
+
+ /// `EPOLLRDBAND`
+ const RDBAND = bitcast!(c::EPOLLRDBAND);
+
+ /// `EPOLLWRNORM`
+ const WRNORM = bitcast!(c::EPOLLWRNORM);
+
+ /// `EPOLLWRBAND`
+ const WRBAND = bitcast!(c::EPOLLWRBAND);
+
+ /// `EPOLLMSG`
+ const MSG = bitcast!(c::EPOLLMSG);
+
+ /// `EPOLLRDHUP`
+ const RDHUP = bitcast!(c::EPOLLRDHUP);
+
+ /// `EPOLLET`
+ const ET = bitcast!(c::EPOLLET);
+
+ /// `EPOLLONESHOT`
+ const ONESHOT = bitcast!(c::EPOLLONESHOT);
+
+ /// `EPOLLWAKEUP`
+ const WAKEUP = bitcast!(c::EPOLLWAKEUP);
+
+ /// `EPOLLEXCLUSIVE`
+ const EXCLUSIVE = bitcast!(c::EPOLLEXCLUSIVE);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/event/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/event/mod.rs
new file mode 100644
index 0000000..ff826fc
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/event/mod.rs
@@ -0,0 +1,9 @@
+pub(crate) mod poll_fd;
+#[cfg(not(windows))]
+pub(crate) mod types;
+
+#[cfg_attr(windows, path = "windows_syscalls.rs")]
+pub(crate) mod syscalls;
+
+#[cfg(any(linux_kernel, target_os = "illumos", target_os = "redox"))]
+pub mod epoll;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/event/poll_fd.rs b/vendor/rustix-1.0.8/src/backend/libc/event/poll_fd.rs
new file mode 100644
index 0000000..fdaa6c6
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/event/poll_fd.rs
@@ -0,0 +1,143 @@
+use crate::backend::c;
+use crate::backend::conv::borrowed_fd;
+use crate::backend::fd::{AsFd, AsRawFd as _, BorrowedFd, LibcFd};
+#[cfg(windows)]
+use crate::backend::fd::{AsSocket, RawFd};
+use crate::ffi;
+use bitflags::bitflags;
+use core::fmt;
+use core::marker::PhantomData;
+
+bitflags! {
+ /// `POLL*` flags for use with [`poll`].
+ ///
+ /// [`poll`]: crate::event::poll
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct PollFlags: ffi::c_short {
+ /// `POLLIN`
+ const IN = c::POLLIN;
+ /// `POLLPRI`
+ #[cfg(not(target_os = "wasi"))]
+ const PRI = c::POLLPRI;
+ /// `POLLOUT`
+ const OUT = c::POLLOUT;
+ /// `POLLRDNORM`
+ const RDNORM = c::POLLRDNORM;
+ /// `POLLWRNORM`
+ #[cfg(not(target_os = "l4re"))]
+ const WRNORM = c::POLLWRNORM;
+ /// `POLLRDBAND`
+ #[cfg(not(any(target_os = "l4re", target_os = "wasi")))]
+ const RDBAND = c::POLLRDBAND;
+ /// `POLLWRBAND`
+ #[cfg(not(any(target_os = "l4re", target_os = "wasi")))]
+ const WRBAND = c::POLLWRBAND;
+ /// `POLLERR`
+ const ERR = c::POLLERR;
+ /// `POLLHUP`
+ const HUP = c::POLLHUP;
+ /// `POLLNVAL`
+ #[cfg(not(target_os = "espidf"))]
+ const NVAL = c::POLLNVAL;
+ /// `POLLRDHUP`
+ #[cfg(any(
+ target_os = "freebsd",
+ target_os = "illumos",
+ all(
+ linux_kernel,
+ not(any(target_arch = "sparc", target_arch = "sparc64"))
+ ),
+ ))]
+ const RDHUP = c::POLLRDHUP;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `struct pollfd`—File descriptor and flags for use with [`poll`].
+///
+/// [`poll`]: crate::event::poll
+#[doc(alias = "pollfd")]
+#[derive(Clone)]
+#[repr(transparent)]
+pub struct PollFd<'fd> {
+ pollfd: c::pollfd,
+ _phantom: PhantomData<BorrowedFd<'fd>>,
+}
+
+impl<'fd> fmt::Debug for PollFd<'fd> {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ f.debug_struct("PollFd")
+ .field("fd", &self.pollfd.fd)
+ .field("events", &self.pollfd.events)
+ .field("revents", &self.pollfd.revents)
+ .finish()
+ }
+}
+
+impl<'fd> PollFd<'fd> {
+ /// Constructs a new `PollFd` holding `fd` and `events`.
+ #[inline]
+ pub fn new<Fd: AsFd>(fd: &'fd Fd, events: PollFlags) -> Self {
+ Self::from_borrowed_fd(fd.as_fd(), events)
+ }
+
+ /// Sets the contained file descriptor to `fd`.
+ #[inline]
+ pub fn set_fd<Fd: AsFd>(&mut self, fd: &'fd Fd) {
+ self.pollfd.fd = fd.as_fd().as_raw_fd() as LibcFd;
+ }
+
+ /// Clears the ready events.
+ #[inline]
+ pub fn clear_revents(&mut self) {
+ self.pollfd.revents = 0;
+ }
+
+ /// Constructs a new `PollFd` holding `fd` and `events`.
+ ///
+ /// This is the same as `new`, but can be used to avoid borrowing the
+ /// `BorrowedFd`, which can be tricky in situations where the `BorrowedFd`
+ /// is a temporary.
+ #[inline]
+ pub fn from_borrowed_fd(fd: BorrowedFd<'fd>, events: PollFlags) -> Self {
+ Self {
+ pollfd: c::pollfd {
+ fd: borrowed_fd(fd),
+ events: events.bits(),
+ revents: 0,
+ },
+ _phantom: PhantomData,
+ }
+ }
+
+ /// Returns the ready events.
+ #[inline]
+ pub fn revents(&self) -> PollFlags {
+ // Use `.unwrap()` here because in theory we know we know all the bits
+ // the OS might set here, but OS's have added extensions in the past.
+ PollFlags::from_bits(self.pollfd.revents).unwrap()
+ }
+}
+
+#[cfg(not(windows))]
+impl<'fd> AsFd for PollFd<'fd> {
+ #[inline]
+ fn as_fd(&self) -> BorrowedFd<'_> {
+ // SAFETY: Our constructors and `set_fd` require `pollfd.fd` to be
+ // valid for the `'fd` lifetime.
+ unsafe { BorrowedFd::borrow_raw(self.pollfd.fd) }
+ }
+}
+
+#[cfg(windows)]
+impl<'fd> AsSocket for PollFd<'fd> {
+ #[inline]
+ fn as_socket(&self) -> BorrowedFd<'_> {
+ // SAFETY: Our constructors and `set_fd` require `pollfd.fd` to be
+ // valid for the `'fd` lifetime.
+ unsafe { BorrowedFd::borrow_raw(self.pollfd.fd as RawFd) }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/event/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/event/syscalls.rs
new file mode 100644
index 0000000..3827a2f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/event/syscalls.rs
@@ -0,0 +1,631 @@
+//! libc syscalls supporting `rustix::event`.
+
+use crate::backend::c;
+#[cfg(any(linux_kernel, solarish, target_os = "redox"))]
+use crate::backend::conv::ret;
+use crate::backend::conv::ret_c_int;
+#[cfg(any(linux_kernel, target_os = "illumos", target_os = "redox"))]
+use crate::backend::conv::ret_u32;
+#[cfg(bsd)]
+use crate::event::kqueue::Event;
+#[cfg(solarish)]
+use crate::event::port::Event;
+#[cfg(any(
+ linux_kernel,
+ target_os = "freebsd",
+ target_os = "illumos",
+ target_os = "espidf"
+))]
+use crate::event::EventfdFlags;
+#[cfg(any(bsd, linux_kernel, target_os = "wasi"))]
+use crate::event::FdSetElement;
+use crate::event::{PollFd, Timespec};
+use crate::io;
+#[cfg(any(linux_kernel, target_os = "illumos", target_os = "redox"))]
+use crate::utils::as_ptr;
+#[cfg(solarish)]
+use core::mem::MaybeUninit;
+#[cfg(any(
+ bsd,
+ linux_kernel,
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "netbsd",
+ target_os = "wasi"
+))]
+use core::ptr::null;
+#[cfg(any(bsd, linux_kernel, solarish, target_os = "redox", target_os = "wasi"))]
+use core::ptr::null_mut;
+#[cfg(any(bsd, linux_kernel, solarish, target_os = "redox"))]
+use {crate::backend::conv::borrowed_fd, crate::fd::BorrowedFd};
+#[cfg(any(
+ bsd,
+ linux_kernel,
+ solarish,
+ target_os = "freebsd",
+ target_os = "illumos",
+ target_os = "espidf",
+ target_os = "redox"
+))]
+use {crate::backend::conv::ret_owned_fd, crate::fd::OwnedFd};
+
+#[cfg(any(
+ linux_kernel,
+ target_os = "freebsd",
+ target_os = "illumos",
+ target_os = "espidf"
+))]
+pub(crate) fn eventfd(initval: u32, flags: EventfdFlags) -> io::Result<OwnedFd> {
+ #[cfg(linux_kernel)]
+ unsafe {
+ syscall! {
+ fn eventfd2(
+ initval: c::c_uint,
+ flags: c::c_int
+ ) via SYS_eventfd2 -> c::c_int
+ }
+ ret_owned_fd(eventfd2(initval, bitflags_bits!(flags)))
+ }
+
+ // `eventfd` was added in FreeBSD 13, so it isn't available on FreeBSD 12.
+ #[cfg(target_os = "freebsd")]
+ unsafe {
+ weakcall! {
+ fn eventfd(
+ initval: c::c_uint,
+ flags: c::c_int
+ ) -> c::c_int
+ }
+ ret_owned_fd(eventfd(initval, bitflags_bits!(flags)))
+ }
+
+ #[cfg(any(target_os = "illumos", target_os = "espidf"))]
+ unsafe {
+ ret_owned_fd(c::eventfd(initval, bitflags_bits!(flags)))
+ }
+}
+
+#[cfg(bsd)]
+pub(crate) fn kqueue() -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(c::kqueue()) }
+}
+
+#[cfg(bsd)]
+pub(crate) unsafe fn kevent(
+ kq: BorrowedFd<'_>,
+ changelist: &[Event],
+ eventlist: (*mut Event, usize),
+ timeout: Option<&Timespec>,
+) -> io::Result<c::c_int> {
+ // If we don't have to fix y2038 on this platform, `Timespec` is the same
+ // as `c::timespec` and it's easy.
+ #[cfg(not(fix_y2038))]
+ let timeout = crate::timespec::option_as_libc_timespec_ptr(timeout);
+
+ // If we do have to fix y2038 on this platform, convert to `c::timespec`.
+ #[cfg(fix_y2038)]
+ let converted_timeout;
+ #[cfg(fix_y2038)]
+ let timeout = match timeout {
+ None => null(),
+ Some(timeout) => {
+ converted_timeout = c::timespec {
+ tv_sec: timeout.tv_sec.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: timeout.tv_nsec as _,
+ };
+ &converted_timeout
+ }
+ };
+
+ ret_c_int(c::kevent(
+ borrowed_fd(kq),
+ changelist.as_ptr().cast(),
+ changelist
+ .len()
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ eventlist.0.cast(),
+ eventlist.1.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ timeout,
+ ))
+}
+
+#[inline]
+pub(crate) fn poll(fds: &mut [PollFd<'_>], timeout: Option<&Timespec>) -> io::Result<usize> {
+ let nfds = fds
+ .len()
+ .try_into()
+ .map_err(|_convert_err| io::Errno::INVAL)?;
+
+ // If we have `ppoll`, it supports a `timespec` timeout, so use it.
+ #[cfg(any(
+ linux_kernel,
+ freebsdlike,
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "netbsd"
+ ))]
+ {
+ // If we don't have to fix y2038 on this platform, `Timespec` is
+ // the same as `c::timespec` and it's easy.
+ #[cfg(not(fix_y2038))]
+ let timeout = crate::timespec::option_as_libc_timespec_ptr(timeout);
+
+ // If we do have to fix y2038 on this platform, convert to
+ // `c::timespec`.
+ #[cfg(fix_y2038)]
+ let converted_timeout;
+ #[cfg(fix_y2038)]
+ let timeout = match timeout {
+ None => null(),
+ Some(timeout) => {
+ converted_timeout = c::timespec {
+ tv_sec: timeout.tv_sec.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: timeout.tv_nsec as _,
+ };
+ &converted_timeout
+ }
+ };
+
+ #[cfg(not(target_os = "netbsd"))]
+ {
+ ret_c_int(unsafe { c::ppoll(fds.as_mut_ptr().cast(), nfds, timeout, null()) })
+ .map(|nready| nready as usize)
+ }
+
+ // NetBSD 9.x lacks `ppoll`, so use a weak symbol and fall back to
+ // plain `poll` if needed.
+ #[cfg(target_os = "netbsd")]
+ {
+ weak! {
+ fn ppoll(
+ *mut c::pollfd,
+ c::nfds_t,
+ *const c::timespec,
+ *const c::sigset_t
+ ) -> c::c_int
+ }
+ if let Some(func) = ppoll.get() {
+ return ret_c_int(unsafe { func(fds.as_mut_ptr().cast(), nfds, timeout, null()) })
+ .map(|nready| nready as usize);
+ }
+ }
+ }
+
+ // If we don't have `ppoll`, convert the timeout to `c_int` and use `poll`.
+ #[cfg(not(any(
+ linux_kernel,
+ freebsdlike,
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "hurd"
+ )))]
+ {
+ let timeout = match timeout {
+ None => -1,
+ Some(timeout) => timeout.as_c_int_millis().ok_or(io::Errno::INVAL)?,
+ };
+ ret_c_int(unsafe { c::poll(fds.as_mut_ptr().cast(), nfds, timeout) })
+ .map(|nready| nready as usize)
+ }
+}
+
+#[cfg(any(bsd, linux_kernel))]
+pub(crate) unsafe fn select(
+ nfds: i32,
+ readfds: Option<&mut [FdSetElement]>,
+ writefds: Option<&mut [FdSetElement]>,
+ exceptfds: Option<&mut [FdSetElement]>,
+ timeout: Option<&Timespec>,
+) -> io::Result<i32> {
+ let len = crate::event::fd_set_num_elements_for_bitvector(nfds);
+
+ let readfds = match readfds {
+ Some(readfds) => {
+ assert!(readfds.len() >= len);
+ readfds.as_mut_ptr()
+ }
+ None => null_mut(),
+ };
+ let writefds = match writefds {
+ Some(writefds) => {
+ assert!(writefds.len() >= len);
+ writefds.as_mut_ptr()
+ }
+ None => null_mut(),
+ };
+ let exceptfds = match exceptfds {
+ Some(exceptfds) => {
+ assert!(exceptfds.len() >= len);
+ exceptfds.as_mut_ptr()
+ }
+ None => null_mut(),
+ };
+
+ let timeout_data;
+ let timeout_ptr = match timeout {
+ Some(timeout) => {
+ // Convert from `Timespec` to `c::timeval`.
+ timeout_data = c::timeval {
+ tv_sec: timeout.tv_sec.try_into().map_err(|_| io::Errno::INVAL)?,
+ tv_usec: ((timeout.tv_nsec + 999) / 1000) as _,
+ };
+ &timeout_data
+ }
+ None => null(),
+ };
+
+ // On Apple platforms, use the specially mangled `select` which doesn't
+ // have an `FD_SETSIZE` limitation.
+ #[cfg(apple)]
+ {
+ extern "C" {
+ #[link_name = "select$DARWIN_EXTSN$NOCANCEL"]
+ fn select(
+ nfds: c::c_int,
+ readfds: *mut FdSetElement,
+ writefds: *mut FdSetElement,
+ errorfds: *mut FdSetElement,
+ timeout: *const c::timeval,
+ ) -> c::c_int;
+ }
+
+ ret_c_int(select(nfds, readfds, writefds, exceptfds, timeout_ptr))
+ }
+
+ // Otherwise just use the normal `select`.
+ #[cfg(not(apple))]
+ {
+ ret_c_int(c::select(
+ nfds,
+ readfds.cast(),
+ writefds.cast(),
+ exceptfds.cast(),
+ timeout_ptr as *mut c::timeval,
+ ))
+ }
+}
+
+// WASI uses a count + array instead of a bitvector.
+#[cfg(target_os = "wasi")]
+pub(crate) unsafe fn select(
+ nfds: i32,
+ readfds: Option<&mut [FdSetElement]>,
+ writefds: Option<&mut [FdSetElement]>,
+ exceptfds: Option<&mut [FdSetElement]>,
+ timeout: Option<&Timespec>,
+) -> io::Result<i32> {
+ let len = crate::event::fd_set_num_elements_for_fd_array(nfds as usize);
+
+ let readfds = match readfds {
+ Some(readfds) => {
+ assert!(readfds.len() >= len);
+ readfds.as_mut_ptr()
+ }
+ None => null_mut(),
+ };
+ let writefds = match writefds {
+ Some(writefds) => {
+ assert!(writefds.len() >= len);
+ writefds.as_mut_ptr()
+ }
+ None => null_mut(),
+ };
+ let exceptfds = match exceptfds {
+ Some(exceptfds) => {
+ assert!(exceptfds.len() >= len);
+ exceptfds.as_mut_ptr()
+ }
+ None => null_mut(),
+ };
+
+ let timeout_data;
+ let timeout_ptr = match timeout {
+ Some(timeout) => {
+ // Convert from `Timespec` to `c::timeval`.
+ timeout_data = c::timeval {
+ tv_sec: timeout.tv_sec.try_into().map_err(|_| io::Errno::INVAL)?,
+ tv_usec: ((timeout.tv_nsec + 999) / 1000) as _,
+ };
+ &timeout_data
+ }
+ None => null(),
+ };
+
+ ret_c_int(c::select(
+ nfds,
+ readfds.cast(),
+ writefds.cast(),
+ exceptfds.cast(),
+ timeout_ptr as *mut c::timeval,
+ ))
+}
+
+#[cfg(solarish)]
+pub(crate) fn port_create() -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(c::port_create()) }
+}
+
+#[cfg(solarish)]
+pub(crate) unsafe fn port_associate(
+ port: BorrowedFd<'_>,
+ source: c::c_int,
+ object: c::uintptr_t,
+ events: c::c_int,
+ user: *mut c::c_void,
+) -> io::Result<()> {
+ ret(c::port_associate(
+ borrowed_fd(port),
+ source,
+ object,
+ events,
+ user,
+ ))
+}
+
+#[cfg(solarish)]
+pub(crate) unsafe fn port_dissociate(
+ port: BorrowedFd<'_>,
+ source: c::c_int,
+ object: c::uintptr_t,
+) -> io::Result<()> {
+ ret(c::port_dissociate(borrowed_fd(port), source, object))
+}
+
+#[cfg(solarish)]
+pub(crate) fn port_get(port: BorrowedFd<'_>, timeout: Option<&Timespec>) -> io::Result<Event> {
+ // If we don't have to fix y2038 on this platform, `Timespec` is
+ // the same as `c::timespec` and it's easy.
+ #[cfg(not(fix_y2038))]
+ let timeout = crate::timespec::option_as_libc_timespec_ptr(timeout);
+
+ // If we do have to fix y2038 on this platform, convert to
+ // `c::timespec`.
+ #[cfg(fix_y2038)]
+ let converted_timeout;
+ #[cfg(fix_y2038)]
+ let timeout = match timeout {
+ None => null(),
+ Some(timeout) => {
+ converted_timeout = c::timespec {
+ tv_sec: timeout.tv_sec.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: timeout.tv_nsec as _,
+ };
+ &converted_timeout
+ }
+ };
+
+ let mut event = MaybeUninit::<c::port_event>::uninit();
+
+ // In Rust ≥ 1.65, the `as _` can be `.cast_mut()`.
+ unsafe {
+ ret(c::port_get(
+ borrowed_fd(port),
+ event.as_mut_ptr(),
+ timeout as _,
+ ))?;
+ }
+
+ // If we're done, initialize the event and return it.
+ Ok(Event(unsafe { event.assume_init() }))
+}
+
+#[cfg(solarish)]
+pub(crate) unsafe fn port_getn(
+ port: BorrowedFd<'_>,
+ events: (*mut Event, usize),
+ mut nget: u32,
+ timeout: Option<&Timespec>,
+) -> io::Result<usize> {
+ // If we don't have to fix y2038 on this platform, `Timespec` is
+ // the same as `c::timespec` and it's easy.
+ #[cfg(not(fix_y2038))]
+ let timeout = crate::timespec::option_as_libc_timespec_ptr(timeout);
+
+ // If we do have to fix y2038 on this platform, convert to
+ // `c::timespec`.
+ #[cfg(fix_y2038)]
+ let converted_timeout;
+ #[cfg(fix_y2038)]
+ let timeout = match timeout {
+ None => null(),
+ Some(timeout) => {
+ converted_timeout = c::timespec {
+ tv_sec: timeout.tv_sec.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: timeout.tv_nsec as _,
+ };
+ &converted_timeout
+ }
+ };
+
+ // `port_getn` special-cases a max value of 0 to be a query that returns
+ // the number of events, so bail out early if needed.
+ if events.1 == 0 {
+ return Ok(0);
+ }
+
+ // In Rust ≥ 1.65, the `as _` can be `.cast_mut()`.
+ ret(c::port_getn(
+ borrowed_fd(port),
+ events.0.cast(),
+ events.1.try_into().unwrap_or(u32::MAX),
+ &mut nget,
+ timeout as _,
+ ))?;
+
+ Ok(nget as usize)
+}
+
+#[cfg(solarish)]
+pub(crate) fn port_getn_query(port: BorrowedFd<'_>) -> io::Result<u32> {
+ let mut nget: u32 = 0;
+
+ // Pass a `max` of 0 to query the number of available events.
+ unsafe {
+ ret(c::port_getn(
+ borrowed_fd(port),
+ null_mut(),
+ 0,
+ &mut nget,
+ null_mut(),
+ ))?;
+ }
+
+ Ok(nget)
+}
+
+#[cfg(solarish)]
+pub(crate) fn port_send(
+ port: BorrowedFd<'_>,
+ events: c::c_int,
+ userdata: *mut c::c_void,
+) -> io::Result<()> {
+ unsafe { ret(c::port_send(borrowed_fd(port), events, userdata)) }
+}
+
+#[cfg(not(any(target_os = "redox", target_os = "wasi")))]
+pub(crate) fn pause() {
+ let r = unsafe { c::pause() };
+ let errno = libc_errno::errno().0;
+ debug_assert_eq!(r, -1);
+ debug_assert_eq!(errno, c::EINTR);
+}
+
+#[inline]
+#[cfg(any(linux_kernel, target_os = "illumos", target_os = "redox"))]
+pub(crate) fn epoll_create(flags: super::epoll::CreateFlags) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(c::epoll_create1(bitflags_bits!(flags))) }
+}
+
+#[inline]
+#[cfg(any(linux_kernel, target_os = "illumos", target_os = "redox"))]
+pub(crate) fn epoll_add(
+ epoll: BorrowedFd<'_>,
+ source: BorrowedFd<'_>,
+ event: &crate::event::epoll::Event,
+) -> io::Result<()> {
+ // We use our own `Event` struct instead of libc's because
+ // ours preserves pointer provenance instead of just using a `u64`,
+ // and we have tests elsewhere for layout equivalence.
+ unsafe {
+ ret(c::epoll_ctl(
+ borrowed_fd(epoll),
+ c::EPOLL_CTL_ADD,
+ borrowed_fd(source),
+ // The event is read-only even though libc has a non-const pointer.
+ as_ptr(event) as *mut c::epoll_event,
+ ))
+ }
+}
+
+#[inline]
+#[cfg(any(linux_kernel, target_os = "illumos", target_os = "redox"))]
+pub(crate) fn epoll_mod(
+ epoll: BorrowedFd<'_>,
+ source: BorrowedFd<'_>,
+ event: &crate::event::epoll::Event,
+) -> io::Result<()> {
+ unsafe {
+ ret(c::epoll_ctl(
+ borrowed_fd(epoll),
+ c::EPOLL_CTL_MOD,
+ borrowed_fd(source),
+ // The event is read-only even though libc has a non-const pointer.
+ as_ptr(event) as *mut c::epoll_event,
+ ))
+ }
+}
+
+#[inline]
+#[cfg(any(linux_kernel, target_os = "illumos", target_os = "redox"))]
+pub(crate) fn epoll_del(epoll: BorrowedFd<'_>, source: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe {
+ ret(c::epoll_ctl(
+ borrowed_fd(epoll),
+ c::EPOLL_CTL_DEL,
+ borrowed_fd(source),
+ null_mut(),
+ ))
+ }
+}
+
+#[inline]
+#[cfg(any(linux_kernel, target_os = "illumos", target_os = "redox"))]
+pub(crate) unsafe fn epoll_wait(
+ epoll: BorrowedFd<'_>,
+ events: (*mut crate::event::epoll::Event, usize),
+ timeout: Option<&Timespec>,
+) -> io::Result<usize> {
+ // If we're on Linux ≥ 5.11 and a libc that has an `epoll_pwait2`
+ // function, and it's y2038-safe, use it.
+ #[cfg(all(
+ linux_kernel,
+ feature = "linux_5_11",
+ target_env = "gnu",
+ not(fix_y2038)
+ ))]
+ {
+ weak! {
+ fn epoll_pwait2(
+ c::c_int,
+ *mut c::epoll_event,
+ c::c_int,
+ *const c::timespec,
+ *const c::sigset_t
+ ) -> c::c_int
+ }
+
+ if let Some(epoll_pwait2_func) = epoll_pwait2.get() {
+ return ret_u32(epoll_pwait2_func(
+ borrowed_fd(epoll),
+ events.0.cast::<c::epoll_event>(),
+ events.1.try_into().unwrap_or(i32::MAX),
+ crate::utils::option_as_ptr(timeout).cast(),
+ null(),
+ ))
+ .map(|i| i as usize);
+ }
+ }
+
+ // If we're on Linux ≥ 5.11, use `epoll_pwait2` via `libc::syscall`.
+ #[cfg(all(linux_kernel, feature = "linux_5_11"))]
+ {
+ syscall! {
+ fn epoll_pwait2(
+ epfd: c::c_int,
+ events: *mut c::epoll_event,
+ maxevents: c::c_int,
+ timeout: *const Timespec,
+ sigmask: *const c::sigset_t
+ ) via SYS_epoll_pwait2 -> c::c_int
+ }
+
+ ret_u32(epoll_pwait2(
+ borrowed_fd(epoll),
+ events.0.cast::<c::epoll_event>(),
+ events.1.try_into().unwrap_or(i32::MAX),
+ crate::utils::option_as_ptr(timeout).cast(),
+ null(),
+ ))
+ .map(|i| i as usize)
+ }
+
+ // Otherwise just use `epoll_wait`.
+ #[cfg(not(all(linux_kernel, feature = "linux_5_11")))]
+ {
+ let timeout = match timeout {
+ None => -1,
+ Some(timeout) => timeout.as_c_int_millis().ok_or(io::Errno::INVAL)?,
+ };
+
+ ret_u32(c::epoll_wait(
+ borrowed_fd(epoll),
+ events.0.cast::<c::epoll_event>(),
+ events.1.try_into().unwrap_or(i32::MAX),
+ timeout,
+ ))
+ .map(|i| i as usize)
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/event/types.rs b/vendor/rustix-1.0.8/src/backend/libc/event/types.rs
new file mode 100644
index 0000000..a04d7e6
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/event/types.rs
@@ -0,0 +1,37 @@
+#[cfg(any(linux_kernel, target_os = "freebsd", target_os = "illumos"))]
+use crate::backend::c;
+#[cfg(any(
+ linux_kernel,
+ target_os = "freebsd",
+ target_os = "illumos",
+ target_os = "espidf"
+))]
+use bitflags::bitflags;
+
+#[cfg(any(
+ linux_kernel,
+ target_os = "freebsd",
+ target_os = "illumos",
+ target_os = "espidf"
+))]
+bitflags! {
+ /// `EFD_*` flags for use with [`eventfd`].
+ ///
+ /// [`eventfd`]: crate::event::eventfd
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct EventfdFlags: u32 {
+ /// `EFD_CLOEXEC`
+ #[cfg(not(target_os = "espidf"))]
+ const CLOEXEC = bitcast!(c::EFD_CLOEXEC);
+ /// `EFD_NONBLOCK`
+ #[cfg(not(target_os = "espidf"))]
+ const NONBLOCK = bitcast!(c::EFD_NONBLOCK);
+ /// `EFD_SEMAPHORE`
+ #[cfg(not(target_os = "espidf"))]
+ const SEMAPHORE = bitcast!(c::EFD_SEMAPHORE);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/event/windows_syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/event/windows_syscalls.rs
new file mode 100644
index 0000000..05394f5
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/event/windows_syscalls.rs
@@ -0,0 +1,79 @@
+//! Windows system calls in the `event` module.
+
+use crate::backend::c;
+use crate::backend::conv::ret_c_int;
+use crate::event::{FdSetElement, PollFd, Timespec};
+use crate::io;
+
+pub(crate) fn poll(fds: &mut [PollFd<'_>], timeout: Option<&Timespec>) -> io::Result<usize> {
+ let nfds = fds
+ .len()
+ .try_into()
+ .map_err(|_convert_err| io::Errno::INVAL)?;
+
+ let timeout = match timeout {
+ None => -1,
+ Some(timeout) => timeout.as_c_int_millis().ok_or(io::Errno::INVAL)?,
+ };
+
+ ret_c_int(unsafe { c::poll(fds.as_mut_ptr().cast(), nfds, timeout) })
+ .map(|nready| nready as usize)
+}
+
+pub(crate) fn select(
+ nfds: i32,
+ readfds: Option<&mut [FdSetElement]>,
+ writefds: Option<&mut [FdSetElement]>,
+ exceptfds: Option<&mut [FdSetElement]>,
+ timeout: Option<&crate::timespec::Timespec>,
+) -> io::Result<i32> {
+ use core::ptr::{null, null_mut};
+
+ let readfds = match readfds {
+ Some(readfds) => {
+ assert!(readfds.len() >= readfds[0].0 as usize);
+ readfds.as_mut_ptr()
+ }
+ None => null_mut(),
+ };
+ let writefds = match writefds {
+ Some(writefds) => {
+ assert!(writefds.len() >= writefds[0].0 as usize);
+ writefds.as_mut_ptr()
+ }
+ None => null_mut(),
+ };
+ let exceptfds = match exceptfds {
+ Some(exceptfds) => {
+ assert!(exceptfds.len() >= exceptfds[0].0 as usize);
+ exceptfds.as_mut_ptr()
+ }
+ None => null_mut(),
+ };
+
+ let timeout_data;
+ let timeout_ptr = match timeout {
+ Some(timeout) => {
+ // Convert from `Timespec` to `TIMEVAL`.
+ timeout_data = c::TIMEVAL {
+ tv_sec: timeout
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OPNOTSUPP)?,
+ tv_usec: ((timeout.tv_nsec + 999) / 1000) as _,
+ };
+ &timeout_data
+ }
+ None => null(),
+ };
+
+ unsafe {
+ ret_c_int(c::select(
+ nfds,
+ readfds.cast(),
+ writefds.cast(),
+ exceptfds.cast(),
+ timeout_ptr,
+ ))
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/fs/dir.rs b/vendor/rustix-1.0.8/src/backend/libc/fs/dir.rs
new file mode 100644
index 0000000..cd7f232
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/fs/dir.rs
@@ -0,0 +1,497 @@
+#[cfg(not(any(
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "vita"
+)))]
+use super::types::FileType;
+use crate::backend::c;
+use crate::backend::conv::owned_fd;
+use crate::fd::{AsFd, BorrowedFd, OwnedFd};
+use crate::ffi::{CStr, CString};
+use crate::fs::{fcntl_getfl, openat, Mode, OFlags};
+#[cfg(not(target_os = "vita"))]
+use crate::fs::{fstat, Stat};
+#[cfg(not(any(
+ solarish,
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "netbsd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+use crate::fs::{fstatfs, StatFs};
+#[cfg(not(any(
+ solarish,
+ target_os = "haiku",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+use crate::fs::{fstatvfs, StatVfs};
+use crate::io;
+#[cfg(not(any(target_os = "fuchsia", target_os = "vita", target_os = "wasi")))]
+#[cfg(feature = "process")]
+use crate::process::fchdir;
+use alloc::borrow::ToOwned as _;
+#[cfg(not(any(linux_like, target_os = "hurd")))]
+use c::readdir as libc_readdir;
+#[cfg(any(linux_like, target_os = "hurd"))]
+use c::readdir64 as libc_readdir;
+use core::fmt;
+use core::ptr::NonNull;
+use libc_errno::{errno, set_errno, Errno};
+
+/// `DIR*`
+pub struct Dir {
+ /// The `libc` `DIR` pointer.
+ libc_dir: NonNull<c::DIR>,
+
+ /// Have we seen any errors in this iteration?
+ any_errors: bool,
+}
+
+impl Dir {
+ /// Take ownership of `fd` and construct a `Dir` that reads entries from
+ /// the given directory file descriptor.
+ #[inline]
+ pub fn new<Fd: Into<OwnedFd>>(fd: Fd) -> io::Result<Self> {
+ Self::_new(fd.into())
+ }
+
+ #[inline]
+ fn _new(fd: OwnedFd) -> io::Result<Self> {
+ let raw = owned_fd(fd);
+ unsafe {
+ let libc_dir = c::fdopendir(raw);
+
+ if let Some(libc_dir) = NonNull::new(libc_dir) {
+ Ok(Self {
+ libc_dir,
+ any_errors: false,
+ })
+ } else {
+ let err = io::Errno::last_os_error();
+ let _ = c::close(raw);
+ Err(err)
+ }
+ }
+ }
+
+ /// Borrow `fd` and construct a `Dir` that reads entries from the given
+ /// directory file descriptor.
+ #[inline]
+ pub fn read_from<Fd: AsFd>(fd: Fd) -> io::Result<Self> {
+ Self::_read_from(fd.as_fd())
+ }
+
+ #[inline]
+ #[allow(unused_mut)]
+ fn _read_from(fd: BorrowedFd<'_>) -> io::Result<Self> {
+ let mut any_errors = false;
+
+ // Given an arbitrary `OwnedFd`, it's impossible to know whether the
+ // user holds a `dup`'d copy which could continue to modify the
+ // file description state, which would cause Undefined Behavior after
+ // our call to `fdopendir`. To prevent this, we obtain an independent
+ // `OwnedFd`.
+ let flags = fcntl_getfl(fd)?;
+ let fd_for_dir = match openat(fd, cstr!("."), flags | OFlags::CLOEXEC, Mode::empty()) {
+ Ok(fd) => fd,
+ #[cfg(not(target_os = "wasi"))]
+ Err(io::Errno::NOENT) => {
+ // If "." doesn't exist, it means the directory was removed.
+ // We treat that as iterating through a directory with no
+ // entries.
+ any_errors = true;
+ crate::io::dup(fd)?
+ }
+ Err(err) => return Err(err),
+ };
+
+ let raw = owned_fd(fd_for_dir);
+ unsafe {
+ let libc_dir = c::fdopendir(raw);
+
+ if let Some(libc_dir) = NonNull::new(libc_dir) {
+ Ok(Self {
+ libc_dir,
+ any_errors,
+ })
+ } else {
+ let err = io::Errno::last_os_error();
+ let _ = c::close(raw);
+ Err(err)
+ }
+ }
+ }
+
+ /// `rewinddir(self)`
+ #[inline]
+ pub fn rewind(&mut self) {
+ self.any_errors = false;
+ unsafe { c::rewinddir(self.libc_dir.as_ptr()) }
+ }
+
+ /// `seekdir(self, offset)`
+ ///
+ /// This function is only available on 64-bit platforms because it's
+ /// implemented using [`libc::seekdir`] which only supports offsets that
+ /// fit in a `c_long`.
+ ///
+ /// [`libc::seekdir`]: https://docs.rs/libc/*/arm-unknown-linux-gnueabihf/libc/fn.seekdir.html
+ #[cfg(target_pointer_width = "64")]
+ #[cfg_attr(docsrs, doc(cfg(target_pointer_width = "64")))]
+ #[doc(alias = "seekdir")]
+ #[inline]
+ pub fn seek(&mut self, offset: i64) -> io::Result<()> {
+ self.any_errors = false;
+ unsafe { c::seekdir(self.libc_dir.as_ptr(), offset) }
+ Ok(())
+ }
+
+ /// `readdir(self)`, where `None` means the end of the directory.
+ pub fn read(&mut self) -> Option<io::Result<DirEntry>> {
+ // If we've seen errors, don't continue to try to read anything
+ // further.
+ if self.any_errors {
+ return None;
+ }
+
+ set_errno(Errno(0));
+ let dirent_ptr = unsafe { libc_readdir(self.libc_dir.as_ptr()) };
+ if dirent_ptr.is_null() {
+ let curr_errno = errno().0;
+ if curr_errno == 0 {
+ // We successfully reached the end of the stream.
+ None
+ } else {
+ // `errno` is unknown or non-zero, so an error occurred.
+ self.any_errors = true;
+ Some(Err(io::Errno(curr_errno)))
+ }
+ } else {
+ // We successfully read an entry.
+ unsafe {
+ let dirent = &*dirent_ptr;
+
+ // We have our own copy of OpenBSD's dirent; check that the
+ // layout minimally matches libc's.
+ #[cfg(target_os = "openbsd")]
+ check_dirent_layout(dirent);
+
+ let result = DirEntry {
+ #[cfg(not(any(
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "vita"
+ )))]
+ d_type: dirent.d_type,
+
+ #[cfg(not(any(freebsdlike, netbsdlike, target_os = "vita")))]
+ d_ino: dirent.d_ino,
+
+ #[cfg(any(
+ linux_like,
+ solarish,
+ target_os = "fuchsia",
+ target_os = "hermit",
+ target_os = "openbsd",
+ target_os = "redox"
+ ))]
+ d_off: dirent.d_off,
+
+ #[cfg(any(freebsdlike, netbsdlike))]
+ d_fileno: dirent.d_fileno,
+
+ name: CStr::from_ptr(dirent.d_name.as_ptr().cast()).to_owned(),
+ };
+
+ Some(Ok(result))
+ }
+ }
+ }
+
+ /// `fstat(self)`
+ #[cfg(not(any(target_os = "horizon", target_os = "vita")))]
+ #[inline]
+ pub fn stat(&self) -> io::Result<Stat> {
+ fstat(unsafe { BorrowedFd::borrow_raw(c::dirfd(self.libc_dir.as_ptr())) })
+ }
+
+ /// `fstatfs(self)`
+ #[cfg(not(any(
+ solarish,
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "netbsd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ #[inline]
+ pub fn statfs(&self) -> io::Result<StatFs> {
+ fstatfs(unsafe { BorrowedFd::borrow_raw(c::dirfd(self.libc_dir.as_ptr())) })
+ }
+
+ /// `fstatvfs(self)`
+ #[cfg(not(any(
+ solarish,
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+ )))]
+ #[inline]
+ pub fn statvfs(&self) -> io::Result<StatVfs> {
+ fstatvfs(unsafe { BorrowedFd::borrow_raw(c::dirfd(self.libc_dir.as_ptr())) })
+ }
+
+ /// `fchdir(self)`
+ #[cfg(feature = "process")]
+ #[cfg(not(any(
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+ )))]
+ #[cfg_attr(docsrs, doc(cfg(feature = "process")))]
+ #[inline]
+ pub fn chdir(&self) -> io::Result<()> {
+ fchdir(unsafe { BorrowedFd::borrow_raw(c::dirfd(self.libc_dir.as_ptr())) })
+ }
+}
+
+/// `Dir` is `Send` and `Sync`, because even though it contains internal
+/// state, all methods that modify the state require a `mut &self` and
+/// can therefore not be called concurrently. Calling them from different
+/// threads sequentially is fine.
+unsafe impl Send for Dir {}
+unsafe impl Sync for Dir {}
+
+impl Drop for Dir {
+ #[inline]
+ fn drop(&mut self) {
+ unsafe { c::closedir(self.libc_dir.as_ptr()) };
+ }
+}
+
+impl Iterator for Dir {
+ type Item = io::Result<DirEntry>;
+
+ #[inline]
+ fn next(&mut self) -> Option<Self::Item> {
+ Self::read(self)
+ }
+}
+
+impl fmt::Debug for Dir {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ let mut s = f.debug_struct("Dir");
+ #[cfg(not(any(target_os = "horizon", target_os = "vita")))]
+ s.field("fd", unsafe { &c::dirfd(self.libc_dir.as_ptr()) });
+ s.finish()
+ }
+}
+
+/// `struct dirent`
+#[derive(Debug)]
+pub struct DirEntry {
+ #[cfg(not(any(
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "vita"
+ )))]
+ d_type: u8,
+
+ #[cfg(not(any(freebsdlike, netbsdlike, target_os = "vita")))]
+ d_ino: c::ino_t,
+
+ #[cfg(any(freebsdlike, netbsdlike))]
+ d_fileno: c::ino_t,
+
+ name: CString,
+
+ #[cfg(any(
+ linux_like,
+ solarish,
+ target_os = "fuchsia",
+ target_os = "hermit",
+ target_os = "openbsd",
+ target_os = "redox"
+ ))]
+ d_off: c::off_t,
+}
+
+impl DirEntry {
+ /// Returns the file name of this directory entry.
+ #[inline]
+ pub fn file_name(&self) -> &CStr {
+ &self.name
+ }
+
+ /// Returns the “offset” of this directory entry. This is not a true
+ /// numerical offset but an opaque cookie that identifies a position in the
+ /// given stream.
+ #[cfg(any(
+ linux_like,
+ solarish,
+ target_os = "fuchsia",
+ target_os = "hermit",
+ target_os = "openbsd",
+ target_os = "redox"
+ ))]
+ #[inline]
+ pub fn offset(&self) -> i64 {
+ self.d_off as i64
+ }
+
+ /// Returns the type of this directory entry.
+ #[cfg(not(any(
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "vita"
+ )))]
+ #[inline]
+ pub fn file_type(&self) -> FileType {
+ FileType::from_dirent_d_type(self.d_type)
+ }
+
+ /// Return the inode number of this directory entry.
+ #[cfg(not(any(freebsdlike, netbsdlike, target_os = "vita")))]
+ #[inline]
+ pub fn ino(&self) -> u64 {
+ self.d_ino as u64
+ }
+
+ /// Return the inode number of this directory entry.
+ #[cfg(any(freebsdlike, netbsdlike))]
+ #[inline]
+ pub fn ino(&self) -> u64 {
+ #[allow(clippy::useless_conversion)]
+ self.d_fileno.into()
+ }
+}
+
+/// libc's OpenBSD `dirent` has a private field so we can't construct it
+/// directly, so we declare it ourselves to make all fields accessible.
+#[cfg(target_os = "openbsd")]
+#[repr(C)]
+#[derive(Debug)]
+struct libc_dirent {
+ d_fileno: c::ino_t,
+ d_off: c::off_t,
+ d_reclen: u16,
+ d_type: u8,
+ d_namlen: u8,
+ __d_padding: [u8; 4],
+ d_name: [c::c_char; 256],
+}
+
+/// We have our own copy of OpenBSD's dirent; check that the layout
+/// minimally matches libc's.
+#[cfg(target_os = "openbsd")]
+fn check_dirent_layout(dirent: &c::dirent) {
+ use crate::utils::as_ptr;
+
+ // Check that the basic layouts match.
+ #[cfg(test)]
+ {
+ assert_eq_size!(libc_dirent, c::dirent);
+ assert_eq_size!(libc_dirent, c::dirent);
+ }
+
+ // Check that the field offsets match.
+ assert_eq!(
+ {
+ let z = libc_dirent {
+ d_fileno: 0_u64,
+ d_off: 0_i64,
+ d_reclen: 0_u16,
+ d_type: 0_u8,
+ d_namlen: 0_u8,
+ __d_padding: [0_u8; 4],
+ d_name: [0 as c::c_char; 256],
+ };
+ let base = as_ptr(&z) as usize;
+ (
+ (as_ptr(&z.d_fileno) as usize) - base,
+ (as_ptr(&z.d_off) as usize) - base,
+ (as_ptr(&z.d_reclen) as usize) - base,
+ (as_ptr(&z.d_type) as usize) - base,
+ (as_ptr(&z.d_namlen) as usize) - base,
+ (as_ptr(&z.d_name) as usize) - base,
+ )
+ },
+ {
+ let z = dirent;
+ let base = as_ptr(z) as usize;
+ (
+ (as_ptr(&z.d_fileno) as usize) - base,
+ (as_ptr(&z.d_off) as usize) - base,
+ (as_ptr(&z.d_reclen) as usize) - base,
+ (as_ptr(&z.d_type) as usize) - base,
+ (as_ptr(&z.d_namlen) as usize) - base,
+ (as_ptr(&z.d_name) as usize) - base,
+ )
+ }
+ );
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn dir_iterator_handles_io_errors() {
+ // create a dir, keep the FD, then delete the dir
+ let tmp = tempfile::tempdir().unwrap();
+ let fd = crate::fs::openat(
+ crate::fs::CWD,
+ tmp.path(),
+ crate::fs::OFlags::RDONLY | crate::fs::OFlags::CLOEXEC,
+ crate::fs::Mode::empty(),
+ )
+ .unwrap();
+
+ let file_fd = crate::fs::openat(
+ &fd,
+ tmp.path().join("test.txt"),
+ crate::fs::OFlags::WRONLY | crate::fs::OFlags::CREATE,
+ crate::fs::Mode::RWXU,
+ )
+ .unwrap();
+
+ let mut dir = Dir::read_from(&fd).unwrap();
+
+ // Reach inside the `Dir` and replace its directory with a file, which
+ // will cause the subsequent `readdir` to fail.
+ unsafe {
+ let raw_fd = c::dirfd(dir.libc_dir.as_ptr());
+ let mut owned_fd: crate::fd::OwnedFd = crate::fd::FromRawFd::from_raw_fd(raw_fd);
+ crate::io::dup2(&file_fd, &mut owned_fd).unwrap();
+ core::mem::forget(owned_fd);
+ }
+
+ // FreeBSD and macOS seem to read some directory entries before we call
+ // `.next()`.
+ #[cfg(any(apple, freebsdlike))]
+ {
+ dir.rewind();
+ }
+
+ assert!(matches!(dir.next(), Some(Err(_))));
+ assert!(dir.next().is_none());
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/fs/inotify.rs b/vendor/rustix-1.0.8/src/backend/libc/fs/inotify.rs
new file mode 100644
index 0000000..89745fb
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/fs/inotify.rs
@@ -0,0 +1,124 @@
+//! inotify support for working with inotify objects.
+
+use crate::backend::c;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `IN_*` for use with [`inotify::init`].
+ ///
+ /// [`inotify::init`]: crate::fs::inotify::init
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct CreateFlags: u32 {
+ /// `IN_CLOEXEC`
+ const CLOEXEC = bitcast!(c::IN_CLOEXEC);
+ /// `IN_NONBLOCK`
+ const NONBLOCK = bitcast!(c::IN_NONBLOCK);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `IN*` for use with [`inotify::add_watch`].
+ ///
+ /// [`inotify::add_watch`]: crate::fs::inotify::add_watch
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct WatchFlags: u32 {
+ /// `IN_ACCESS`
+ const ACCESS = c::IN_ACCESS;
+ /// `IN_ATTRIB`
+ const ATTRIB = c::IN_ATTRIB;
+ /// `IN_CLOSE_NOWRITE`
+ const CLOSE_NOWRITE = c::IN_CLOSE_NOWRITE;
+ /// `IN_CLOSE_WRITE`
+ const CLOSE_WRITE = c::IN_CLOSE_WRITE;
+ /// `IN_CREATE`
+ const CREATE = c::IN_CREATE;
+ /// `IN_DELETE`
+ const DELETE = c::IN_DELETE;
+ /// `IN_DELETE_SELF`
+ const DELETE_SELF = c::IN_DELETE_SELF;
+ /// `IN_MODIFY`
+ const MODIFY = c::IN_MODIFY;
+ /// `IN_MOVE_SELF`
+ const MOVE_SELF = c::IN_MOVE_SELF;
+ /// `IN_MOVED_FROM`
+ const MOVED_FROM = c::IN_MOVED_FROM;
+ /// `IN_MOVED_TO`
+ const MOVED_TO = c::IN_MOVED_TO;
+ /// `IN_OPEN`
+ const OPEN = c::IN_OPEN;
+
+ /// `IN_CLOSE`
+ const CLOSE = c::IN_CLOSE;
+ /// `IN_MOVE`
+ const MOVE = c::IN_MOVE;
+ /// `IN_ALL_EVENTS`
+ const ALL_EVENTS = c::IN_ALL_EVENTS;
+
+ /// `IN_DONT_FOLLOW`
+ const DONT_FOLLOW = c::IN_DONT_FOLLOW;
+ /// `IN_EXCL_UNLINK`
+ const EXCL_UNLINK = 1;
+ /// `IN_MASK_ADD`
+ const MASK_ADD = 1;
+ /// `IN_MASK_CREATE`
+ const MASK_CREATE = 1;
+ /// `IN_ONESHOT`
+ const ONESHOT = c::IN_ONESHOT;
+ /// `IN_ONLYDIR`
+ const ONLYDIR = c::IN_ONLYDIR;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `IN*` for use with [`inotify::Reader`].
+ ///
+ /// [`inotify::Reader`]: crate::fs::inotify::Reader
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ReadFlags: u32 {
+ /// `IN_ACCESS`
+ const ACCESS = c::IN_ACCESS;
+ /// `IN_ATTRIB`
+ const ATTRIB = c::IN_ATTRIB;
+ /// `IN_CLOSE_NOWRITE`
+ const CLOSE_NOWRITE = c::IN_CLOSE_NOWRITE;
+ /// `IN_CLOSE_WRITE`
+ const CLOSE_WRITE = c::IN_CLOSE_WRITE;
+ /// `IN_CREATE`
+ const CREATE = c::IN_CREATE;
+ /// `IN_DELETE`
+ const DELETE = c::IN_DELETE;
+ /// `IN_DELETE_SELF`
+ const DELETE_SELF = c::IN_DELETE_SELF;
+ /// `IN_MODIFY`
+ const MODIFY = c::IN_MODIFY;
+ /// `IN_MOVE_SELF`
+ const MOVE_SELF = c::IN_MOVE_SELF;
+ /// `IN_MOVED_FROM`
+ const MOVED_FROM = c::IN_MOVED_FROM;
+ /// `IN_MOVED_TO`
+ const MOVED_TO = c::IN_MOVED_TO;
+ /// `IN_OPEN`
+ const OPEN = c::IN_OPEN;
+
+ /// `IN_IGNORED`
+ const IGNORED = c::IN_IGNORED;
+ /// `IN_ISDIR`
+ const ISDIR = c::IN_ISDIR;
+ /// `IN_Q_OVERFLOW`
+ const QUEUE_OVERFLOW = c::IN_Q_OVERFLOW;
+ /// `IN_UNMOUNT`
+ const UNMOUNT = c::IN_UNMOUNT;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/fs/makedev.rs b/vendor/rustix-1.0.8/src/backend/libc/fs/makedev.rs
new file mode 100644
index 0000000..a552118
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/fs/makedev.rs
@@ -0,0 +1,144 @@
+// TODO: Remove the unsafe blocks. libc 0.2.171 removed `unsafe` from several
+// of these functions. Eventually we should depend on that version and remove
+// the `unsafe` blocks in the code, but for now, disable that warning so that
+// we're compatible with older libc versions.
+#![allow(unused_unsafe)]
+
+#[cfg(not(all(target_os = "android", target_pointer_width = "32")))]
+use crate::backend::c;
+use crate::fs::Dev;
+
+#[cfg(not(any(
+ apple,
+ solarish,
+ target_os = "aix",
+ target_os = "android",
+ target_os = "emscripten",
+)))]
+#[inline]
+pub(crate) fn makedev(maj: u32, min: u32) -> Dev {
+ c::makedev(maj, min)
+}
+
+#[cfg(solarish)]
+pub(crate) fn makedev(maj: u32, min: u32) -> Dev {
+ // SAFETY: Solarish's `makedev` is marked unsafe but it isn't doing
+ // anything unsafe.
+ unsafe { c::makedev(maj, min) }
+}
+
+#[cfg(all(target_os = "android", not(target_pointer_width = "32")))]
+#[inline]
+pub(crate) fn makedev(maj: u32, min: u32) -> Dev {
+ c::makedev(maj, min)
+}
+
+#[cfg(all(target_os = "android", target_pointer_width = "32"))]
+#[inline]
+pub(crate) fn makedev(maj: u32, min: u32) -> Dev {
+ // 32-bit Android's `dev_t` is 32-bit, but its `st_dev` is 64-bit, so we do
+ // it ourselves.
+ ((u64::from(maj) & 0xffff_f000_u64) << 32)
+ | ((u64::from(maj) & 0x0000_0fff_u64) << 8)
+ | ((u64::from(min) & 0xffff_ff00_u64) << 12)
+ | (u64::from(min) & 0x0000_00ff_u64)
+}
+
+#[cfg(target_os = "emscripten")]
+#[inline]
+pub(crate) fn makedev(maj: u32, min: u32) -> Dev {
+ // Emscripten's `makedev` has a 32-bit return value.
+ Dev::from(c::makedev(maj, min))
+}
+
+#[cfg(apple)]
+#[inline]
+pub(crate) fn makedev(maj: u32, min: u32) -> Dev {
+ // Apple's `makedev` oddly has signed argument types and is `unsafe`.
+ unsafe { c::makedev(maj as i32, min as i32) }
+}
+
+#[cfg(target_os = "aix")]
+#[inline]
+pub(crate) fn makedev(maj: u32, min: u32) -> Dev {
+ // AIX's `makedev` oddly is `unsafe`.
+ unsafe { c::makedev(maj, min) }
+}
+
+#[cfg(not(any(
+ apple,
+ freebsdlike,
+ target_os = "android",
+ target_os = "emscripten",
+ target_os = "netbsd"
+)))]
+#[inline]
+pub(crate) fn major(dev: Dev) -> u32 {
+ unsafe { c::major(dev) }
+}
+
+#[cfg(any(
+ apple,
+ freebsdlike,
+ target_os = "netbsd",
+ all(target_os = "android", not(target_pointer_width = "32")),
+))]
+#[inline]
+pub(crate) fn major(dev: Dev) -> u32 {
+ // On some platforms `major` oddly has signed return types.
+ (unsafe { c::major(dev) }) as u32
+}
+
+#[cfg(all(target_os = "android", target_pointer_width = "32"))]
+#[inline]
+pub(crate) fn major(dev: Dev) -> u32 {
+ // 32-bit Android's `dev_t` is 32-bit, but its `st_dev` is 64-bit, so we do
+ // it ourselves.
+ (((dev >> 31 >> 1) & 0xffff_f000) | ((dev >> 8) & 0x0000_0fff)) as u32
+}
+
+#[cfg(target_os = "emscripten")]
+#[inline]
+pub(crate) fn major(dev: Dev) -> u32 {
+ // Emscripten's `major` has a 32-bit argument value.
+ unsafe { c::major(dev as u32) }
+}
+
+#[cfg(not(any(
+ apple,
+ freebsdlike,
+ target_os = "android",
+ target_os = "emscripten",
+ target_os = "netbsd"
+)))]
+#[inline]
+pub(crate) fn minor(dev: Dev) -> u32 {
+ unsafe { c::minor(dev) }
+}
+
+#[cfg(any(
+ apple,
+ freebsdlike,
+ target_os = "netbsd",
+ all(target_os = "android", not(target_pointer_width = "32"))
+))]
+#[inline]
+pub(crate) fn minor(dev: Dev) -> u32 {
+ // On some platforms, `minor` oddly has signed return types.
+ (unsafe { c::minor(dev) }) as u32
+}
+
+#[cfg(all(target_os = "android", target_pointer_width = "32"))]
+#[inline]
+pub(crate) fn minor(dev: Dev) -> u32 {
+ // 32-bit Android's `dev_t` is 32-bit, but its `st_dev` is 64-bit, so we do
+ // it ourselves.
+ (((dev >> 12) & 0xffff_ff00) | (dev & 0x0000_00ff)) as u32
+}
+
+#[cfg(target_os = "emscripten")]
+#[inline]
+pub(crate) fn minor(dev: Dev) -> u32 {
+ // Emscripten's `minor` has a 32-bit argument value.
+ unsafe { c::minor(dev as u32) }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/fs/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/fs/mod.rs
new file mode 100644
index 0000000..264b955
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/fs/mod.rs
@@ -0,0 +1,24 @@
+#[cfg(all(feature = "alloc", not(any(target_os = "espidf", target_os = "redox"))))]
+pub(crate) mod dir;
+#[cfg(linux_kernel)]
+pub mod inotify;
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+pub(crate) mod makedev;
+#[cfg(not(windows))]
+pub(crate) mod syscalls;
+pub(crate) mod types;
+
+// TODO: Fix linux-raw-sys to define ioctl codes for sparc.
+#[cfg(all(linux_kernel, any(target_arch = "sparc", target_arch = "sparc64")))]
+pub(crate) const EXT4_IOC_RESIZE_FS: crate::ioctl::Opcode = 0x8008_6610;
+
+#[cfg(all(linux_kernel, not(any(target_arch = "sparc", target_arch = "sparc64"))))]
+pub(crate) const EXT4_IOC_RESIZE_FS: crate::ioctl::Opcode =
+ linux_raw_sys::ioctl::EXT4_IOC_RESIZE_FS as crate::ioctl::Opcode;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/fs/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/fs/syscalls.rs
new file mode 100644
index 0000000..f2ac4f7
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/fs/syscalls.rs
@@ -0,0 +1,2721 @@
+//! libc syscalls supporting `rustix::fs`.
+
+use crate::backend::c;
+#[cfg(any(not(target_os = "redox"), feature = "alloc"))]
+use crate::backend::conv::ret_usize;
+use crate::backend::conv::{borrowed_fd, c_str, ret, ret_c_int, ret_off_t, ret_owned_fd};
+use crate::fd::{BorrowedFd, OwnedFd};
+#[allow(unused_imports)]
+use crate::ffi;
+use crate::ffi::CStr;
+#[cfg(all(apple, feature = "alloc"))]
+use crate::ffi::CString;
+#[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "vita")))]
+use crate::fs::Access;
+#[cfg(not(any(target_os = "espidf", target_os = "redox")))]
+use crate::fs::AtFlags;
+#[cfg(not(any(
+ netbsdlike,
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+)))]
+use crate::fs::FallocateFlags;
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+use crate::fs::FlockOperation;
+#[cfg(any(linux_kernel, target_os = "freebsd"))]
+use crate::fs::MemfdFlags;
+#[cfg(any(linux_kernel, apple))]
+use crate::fs::RenameFlags;
+#[cfg(any(linux_kernel, target_os = "freebsd", target_os = "fuchsia"))]
+use crate::fs::SealFlags;
+#[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "netbsd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+use crate::fs::StatFs;
+#[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+use crate::fs::Timestamps;
+#[cfg(not(any(
+ apple,
+ target_os = "espidf",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+use crate::fs::{Dev, FileType};
+use crate::fs::{Mode, OFlags, SeekFrom, Stat};
+#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "wasi")))]
+use crate::fs::{StatVfs, StatVfsMountFlags};
+use crate::io;
+#[cfg(all(target_env = "gnu", fix_y2038))]
+use crate::timespec::LibcTimespec;
+#[cfg(not(target_os = "wasi"))]
+use crate::ugid::{Gid, Uid};
+#[cfg(all(apple, feature = "alloc"))]
+use alloc::vec;
+use core::mem::MaybeUninit;
+#[cfg(apple)]
+use {
+ crate::backend::conv::nonnegative_ret,
+ crate::fs::{copyfile_state_t, CloneFlags, CopyfileFlags},
+};
+#[cfg(not(any(
+ apple,
+ netbsdlike,
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "solaris",
+ target_os = "vita",
+)))]
+use {crate::fs::Advice, core::num::NonZeroU64};
+#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
+use {crate::fs::XattrFlags, core::mem::size_of, core::ptr::null_mut};
+#[cfg(linux_kernel)]
+use {
+ crate::fs::{ResolveFlags, Statx, StatxFlags, CWD},
+ core::ptr::null,
+};
+
+#[cfg(all(target_env = "gnu", fix_y2038))]
+weak!(fn __utimensat64(c::c_int, *const ffi::c_char, *const LibcTimespec, c::c_int) -> c::c_int);
+#[cfg(all(target_env = "gnu", fix_y2038))]
+weak!(fn __futimens64(c::c_int, *const LibcTimespec) -> c::c_int);
+
+/// Use a direct syscall (via libc) for `open`.
+///
+/// This is only currently necessary as a workaround for old glibc; see below.
+#[cfg(all(unix, target_env = "gnu"))]
+fn open_via_syscall(path: &CStr, oflags: OFlags, mode: Mode) -> io::Result<OwnedFd> {
+ // Linux on aarch64, loongarch64 and riscv64 has no `open` syscall so use
+ // `openat`.
+ #[cfg(any(
+ target_arch = "aarch64",
+ target_arch = "riscv32",
+ target_arch = "riscv64",
+ target_arch = "csky",
+ target_arch = "loongarch64"
+ ))]
+ {
+ openat_via_syscall(CWD, path, oflags, mode)
+ }
+
+ // Use the `open` syscall.
+ #[cfg(not(any(
+ target_arch = "aarch64",
+ target_arch = "riscv32",
+ target_arch = "riscv64",
+ target_arch = "csky",
+ target_arch = "loongarch64"
+ )))]
+ unsafe {
+ syscall! {
+ fn open(
+ pathname: *const ffi::c_char,
+ oflags: c::c_int,
+ mode: c::mode_t
+ ) via SYS_open -> c::c_int
+ }
+
+ ret_owned_fd(open(
+ c_str(path),
+ bitflags_bits!(oflags),
+ bitflags_bits!(mode),
+ ))
+ }
+}
+
+pub(crate) fn open(path: &CStr, oflags: OFlags, mode: Mode) -> io::Result<OwnedFd> {
+ // Work around <https://sourceware.org/bugzilla/show_bug.cgi?id=17523>.
+ // glibc versions before 2.25 don't handle `O_TMPFILE` correctly.
+ #[cfg(all(
+ unix,
+ target_env = "gnu",
+ not(target_os = "hurd"),
+ not(target_os = "freebsd")
+ ))]
+ if oflags.contains(OFlags::TMPFILE) && crate::backend::if_glibc_is_less_than_2_25() {
+ return open_via_syscall(path, oflags, mode);
+ }
+
+ // On these platforms, `mode_t` is `u16` and can't be passed directly to a
+ // variadic function.
+ #[cfg(any(
+ apple,
+ freebsdlike,
+ all(target_os = "android", target_pointer_width = "32")
+ ))]
+ let mode: c::c_uint = mode.bits().into();
+
+ // Otherwise, cast to `mode_t` as that's what `open` is documented to take.
+ #[cfg(not(any(
+ apple,
+ freebsdlike,
+ all(target_os = "android", target_pointer_width = "32")
+ )))]
+ let mode: c::mode_t = mode.bits() as _;
+
+ unsafe { ret_owned_fd(c::open(c_str(path), bitflags_bits!(oflags), mode)) }
+}
+
+/// Use a direct syscall (via libc) for `openat`.
+///
+/// This is only currently necessary as a workaround for old glibc; see below.
+#[cfg(all(unix, target_env = "gnu", not(target_os = "hurd")))]
+fn openat_via_syscall(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ oflags: OFlags,
+ mode: Mode,
+) -> io::Result<OwnedFd> {
+ syscall! {
+ fn openat(
+ base_dirfd: c::c_int,
+ pathname: *const ffi::c_char,
+ oflags: c::c_int,
+ mode: c::mode_t
+ ) via SYS_openat -> c::c_int
+ }
+
+ unsafe {
+ ret_owned_fd(openat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ bitflags_bits!(oflags),
+ bitflags_bits!(mode),
+ ))
+ }
+}
+
+#[cfg(not(target_os = "redox"))]
+pub(crate) fn openat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ oflags: OFlags,
+ mode: Mode,
+) -> io::Result<OwnedFd> {
+ // Work around <https://sourceware.org/bugzilla/show_bug.cgi?id=17523>.
+ // glibc versions before 2.25 don't handle `O_TMPFILE` correctly.
+ #[cfg(all(
+ unix,
+ target_env = "gnu",
+ not(target_os = "hurd"),
+ not(target_os = "freebsd")
+ ))]
+ if oflags.contains(OFlags::TMPFILE) && crate::backend::if_glibc_is_less_than_2_25() {
+ return openat_via_syscall(dirfd, path, oflags, mode);
+ }
+
+ // On these platforms, `mode_t` is `u16` and can't be passed directly to a
+ // variadic function.
+ #[cfg(any(
+ apple,
+ freebsdlike,
+ all(target_os = "android", target_pointer_width = "32")
+ ))]
+ let mode: c::c_uint = mode.bits().into();
+
+ // Otherwise, cast to `mode_t` as that's what `open` is documented to take.
+ #[cfg(not(any(
+ apple,
+ freebsdlike,
+ all(target_os = "android", target_pointer_width = "32")
+ )))]
+ let mode: c::mode_t = mode.bits() as _;
+
+ unsafe {
+ ret_owned_fd(c::openat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ bitflags_bits!(oflags),
+ mode,
+ ))
+ }
+}
+
+#[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "netbsd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+#[inline]
+pub(crate) fn statfs(filename: &CStr) -> io::Result<StatFs> {
+ unsafe {
+ let mut result = MaybeUninit::<StatFs>::uninit();
+ ret(c::statfs(c_str(filename), result.as_mut_ptr()))?;
+ Ok(result.assume_init())
+ }
+}
+
+#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "wasi")))]
+#[inline]
+pub(crate) fn statvfs(filename: &CStr) -> io::Result<StatVfs> {
+ unsafe {
+ let mut result = MaybeUninit::<c::statvfs>::uninit();
+ ret(c::statvfs(c_str(filename), result.as_mut_ptr()))?;
+ Ok(libc_statvfs_to_statvfs(result.assume_init()))
+ }
+}
+
+#[cfg(feature = "alloc")]
+#[inline]
+pub(crate) fn readlink(path: &CStr, buf: &mut [u8]) -> io::Result<usize> {
+ unsafe { ret_usize(c::readlink(c_str(path), buf.as_mut_ptr().cast(), buf.len()) as isize) }
+}
+
+#[cfg(not(target_os = "redox"))]
+#[inline]
+pub(crate) unsafe fn readlinkat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ buf: (*mut u8, usize),
+) -> io::Result<usize> {
+ ret_usize(c::readlinkat(borrowed_fd(dirfd), c_str(path), buf.0.cast(), buf.1) as isize)
+}
+
+pub(crate) fn mkdir(path: &CStr, mode: Mode) -> io::Result<()> {
+ unsafe { ret(c::mkdir(c_str(path), mode.bits() as c::mode_t)) }
+}
+
+#[cfg(not(target_os = "redox"))]
+pub(crate) fn mkdirat(dirfd: BorrowedFd<'_>, path: &CStr, mode: Mode) -> io::Result<()> {
+ unsafe {
+ ret(c::mkdirat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ mode.bits() as c::mode_t,
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn getdents_uninit(
+ fd: BorrowedFd<'_>,
+ buf: &mut [MaybeUninit<u8>],
+) -> io::Result<usize> {
+ syscall! {
+ fn getdents64(
+ fd: c::c_int,
+ dirp: *mut c::c_void,
+ count: usize
+ ) via SYS_getdents64 -> c::ssize_t
+ }
+ unsafe {
+ ret_usize(getdents64(
+ borrowed_fd(fd),
+ buf.as_mut_ptr().cast::<c::c_void>(),
+ buf.len(),
+ ))
+ }
+}
+
+pub(crate) fn link(old_path: &CStr, new_path: &CStr) -> io::Result<()> {
+ unsafe { ret(c::link(c_str(old_path), c_str(new_path))) }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "redox")))]
+pub(crate) fn linkat(
+ old_dirfd: BorrowedFd<'_>,
+ old_path: &CStr,
+ new_dirfd: BorrowedFd<'_>,
+ new_path: &CStr,
+ flags: AtFlags,
+) -> io::Result<()> {
+ // macOS ≤ 10.9 lacks `linkat`.
+ #[cfg(target_os = "macos")]
+ unsafe {
+ weak! {
+ fn linkat(
+ c::c_int,
+ *const ffi::c_char,
+ c::c_int,
+ *const ffi::c_char,
+ c::c_int
+ ) -> c::c_int
+ }
+ // If we have `linkat`, use it.
+ if let Some(libc_linkat) = linkat.get() {
+ return ret(libc_linkat(
+ borrowed_fd(old_dirfd),
+ c_str(old_path),
+ borrowed_fd(new_dirfd),
+ c_str(new_path),
+ bitflags_bits!(flags),
+ ));
+ }
+ // Otherwise, see if we can emulate the `AT_FDCWD` case.
+ if borrowed_fd(old_dirfd) != c::AT_FDCWD || borrowed_fd(new_dirfd) != c::AT_FDCWD {
+ return Err(io::Errno::NOSYS);
+ }
+ if flags.intersects(!AtFlags::SYMLINK_FOLLOW) {
+ return Err(io::Errno::INVAL);
+ }
+ if !flags.is_empty() {
+ return Err(io::Errno::OPNOTSUPP);
+ }
+ ret(c::link(c_str(old_path), c_str(new_path)))
+ }
+
+ #[cfg(not(target_os = "macos"))]
+ unsafe {
+ ret(c::linkat(
+ borrowed_fd(old_dirfd),
+ c_str(old_path),
+ borrowed_fd(new_dirfd),
+ c_str(new_path),
+ bitflags_bits!(flags),
+ ))
+ }
+}
+
+pub(crate) fn rmdir(path: &CStr) -> io::Result<()> {
+ unsafe { ret(c::rmdir(c_str(path))) }
+}
+
+pub(crate) fn unlink(path: &CStr) -> io::Result<()> {
+ unsafe { ret(c::unlink(c_str(path))) }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "redox")))]
+pub(crate) fn unlinkat(dirfd: BorrowedFd<'_>, path: &CStr, flags: AtFlags) -> io::Result<()> {
+ // macOS ≤ 10.9 lacks `unlinkat`.
+ #[cfg(target_os = "macos")]
+ unsafe {
+ weak! {
+ fn unlinkat(
+ c::c_int,
+ *const ffi::c_char,
+ c::c_int
+ ) -> c::c_int
+ }
+ // If we have `unlinkat`, use it.
+ if let Some(libc_unlinkat) = unlinkat.get() {
+ return ret(libc_unlinkat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ bitflags_bits!(flags),
+ ));
+ }
+ // Otherwise, see if we can emulate the `AT_FDCWD` case.
+ if borrowed_fd(dirfd) != c::AT_FDCWD {
+ return Err(io::Errno::NOSYS);
+ }
+ if flags.intersects(!AtFlags::REMOVEDIR) {
+ return Err(io::Errno::INVAL);
+ }
+ if flags.contains(AtFlags::REMOVEDIR) {
+ ret(c::rmdir(c_str(path)))
+ } else {
+ ret(c::unlink(c_str(path)))
+ }
+ }
+
+ #[cfg(not(target_os = "macos"))]
+ unsafe {
+ ret(c::unlinkat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ bitflags_bits!(flags),
+ ))
+ }
+}
+
+pub(crate) fn rename(old_path: &CStr, new_path: &CStr) -> io::Result<()> {
+ unsafe { ret(c::rename(c_str(old_path), c_str(new_path))) }
+}
+
+#[cfg(not(target_os = "redox"))]
+pub(crate) fn renameat(
+ old_dirfd: BorrowedFd<'_>,
+ old_path: &CStr,
+ new_dirfd: BorrowedFd<'_>,
+ new_path: &CStr,
+) -> io::Result<()> {
+ // macOS ≤ 10.9 lacks `renameat`.
+ #[cfg(target_os = "macos")]
+ unsafe {
+ weak! {
+ fn renameat(
+ c::c_int,
+ *const ffi::c_char,
+ c::c_int,
+ *const ffi::c_char
+ ) -> c::c_int
+ }
+ // If we have `renameat`, use it.
+ if let Some(libc_renameat) = renameat.get() {
+ return ret(libc_renameat(
+ borrowed_fd(old_dirfd),
+ c_str(old_path),
+ borrowed_fd(new_dirfd),
+ c_str(new_path),
+ ));
+ }
+ // Otherwise, see if we can emulate the `AT_FDCWD` case.
+ if borrowed_fd(old_dirfd) != c::AT_FDCWD || borrowed_fd(new_dirfd) != c::AT_FDCWD {
+ return Err(io::Errno::NOSYS);
+ }
+ ret(c::rename(c_str(old_path), c_str(new_path)))
+ }
+
+ #[cfg(not(target_os = "macos"))]
+ unsafe {
+ ret(c::renameat(
+ borrowed_fd(old_dirfd),
+ c_str(old_path),
+ borrowed_fd(new_dirfd),
+ c_str(new_path),
+ ))
+ }
+}
+
+#[cfg(all(target_os = "linux", target_env = "gnu"))]
+pub(crate) fn renameat2(
+ old_dirfd: BorrowedFd<'_>,
+ old_path: &CStr,
+ new_dirfd: BorrowedFd<'_>,
+ new_path: &CStr,
+ flags: RenameFlags,
+) -> io::Result<()> {
+ // `renameat2` wasn't supported in glibc until 2.28.
+ weak_or_syscall! {
+ fn renameat2(
+ olddirfd: c::c_int,
+ oldpath: *const ffi::c_char,
+ newdirfd: c::c_int,
+ newpath: *const ffi::c_char,
+ flags: c::c_uint
+ ) via SYS_renameat2 -> c::c_int
+ }
+
+ unsafe {
+ ret(renameat2(
+ borrowed_fd(old_dirfd),
+ c_str(old_path),
+ borrowed_fd(new_dirfd),
+ c_str(new_path),
+ flags.bits(),
+ ))
+ }
+}
+
+#[cfg(any(
+ target_os = "android",
+ all(target_os = "linux", not(target_env = "gnu")),
+))]
+#[inline]
+pub(crate) fn renameat2(
+ old_dirfd: BorrowedFd<'_>,
+ old_path: &CStr,
+ new_dirfd: BorrowedFd<'_>,
+ new_path: &CStr,
+ flags: RenameFlags,
+) -> io::Result<()> {
+ // At present, `libc` only has `renameat2` defined for glibc. If we have
+ // no flags, we can use plain `renameat`, but otherwise we use `syscall!`.
+ // to call `renameat2` ourselves.
+ if flags.is_empty() {
+ renameat(old_dirfd, old_path, new_dirfd, new_path)
+ } else {
+ syscall! {
+ fn renameat2(
+ olddirfd: c::c_int,
+ oldpath: *const ffi::c_char,
+ newdirfd: c::c_int,
+ newpath: *const ffi::c_char,
+ flags: c::c_uint
+ ) via SYS_renameat2 -> c::c_int
+ }
+
+ unsafe {
+ ret(renameat2(
+ borrowed_fd(old_dirfd),
+ c_str(old_path),
+ borrowed_fd(new_dirfd),
+ c_str(new_path),
+ flags.bits(),
+ ))
+ }
+ }
+}
+
+#[cfg(apple)]
+pub(crate) fn renameat2(
+ old_dirfd: BorrowedFd<'_>,
+ old_path: &CStr,
+ new_dirfd: BorrowedFd<'_>,
+ new_path: &CStr,
+ flags: RenameFlags,
+) -> io::Result<()> {
+ unsafe {
+ // macOS < 10.12 lacks `renameatx_np`.
+ weak! {
+ fn renameatx_np(
+ c::c_int,
+ *const ffi::c_char,
+ c::c_int,
+ *const ffi::c_char,
+ c::c_uint
+ ) -> c::c_int
+ }
+ // If we have `renameatx_np`, use it.
+ if let Some(libc_renameatx_np) = renameatx_np.get() {
+ return ret(libc_renameatx_np(
+ borrowed_fd(old_dirfd),
+ c_str(old_path),
+ borrowed_fd(new_dirfd),
+ c_str(new_path),
+ flags.bits(),
+ ));
+ }
+ // Otherwise, see if we can use `rename`. There's no point in trying
+ // `renamex_np` because it was added in the same macOS release as
+ // `renameatx_np`.
+ if !flags.is_empty()
+ || borrowed_fd(old_dirfd) != c::AT_FDCWD
+ || borrowed_fd(new_dirfd) != c::AT_FDCWD
+ {
+ return Err(io::Errno::NOSYS);
+ }
+ ret(c::rename(c_str(old_path), c_str(new_path)))
+ }
+}
+
+pub(crate) fn symlink(old_path: &CStr, new_path: &CStr) -> io::Result<()> {
+ unsafe { ret(c::symlink(c_str(old_path), c_str(new_path))) }
+}
+
+#[cfg(not(target_os = "redox"))]
+pub(crate) fn symlinkat(
+ old_path: &CStr,
+ new_dirfd: BorrowedFd<'_>,
+ new_path: &CStr,
+) -> io::Result<()> {
+ unsafe {
+ ret(c::symlinkat(
+ c_str(old_path),
+ borrowed_fd(new_dirfd),
+ c_str(new_path),
+ ))
+ }
+}
+
+pub(crate) fn stat(path: &CStr) -> io::Result<Stat> {
+ // See the comments in `fstat` about using `crate::fs::statx` here.
+ #[cfg(all(
+ linux_kernel,
+ any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )
+ ))]
+ {
+ match crate::fs::statx(CWD, path, AtFlags::empty(), StatxFlags::BASIC_STATS) {
+ Ok(x) => statx_to_stat(x),
+ Err(io::Errno::NOSYS) => statat_old(CWD, path, AtFlags::empty()),
+ Err(err) => Err(err),
+ }
+ }
+
+ // Main version: libc is y2038 safe. Or, the platform is not y2038 safe and
+ // there's nothing practical we can do.
+ #[cfg(not(all(
+ linux_kernel,
+ any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )
+ )))]
+ unsafe {
+ #[cfg(test)]
+ assert_eq_size!(Stat, c::stat);
+
+ let mut stat = MaybeUninit::<Stat>::uninit();
+ ret(c::stat(c_str(path), stat.as_mut_ptr().cast()))?;
+ let stat = stat.assume_init();
+ #[cfg(apple)]
+ let stat = fix_negative_stat_nsecs(stat);
+ Ok(stat)
+ }
+}
+
+pub(crate) fn lstat(path: &CStr) -> io::Result<Stat> {
+ // See the comments in `fstat` about using `crate::fs::statx` here.
+ #[cfg(all(
+ linux_kernel,
+ any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )
+ ))]
+ {
+ match crate::fs::statx(
+ CWD,
+ path,
+ AtFlags::SYMLINK_NOFOLLOW,
+ StatxFlags::BASIC_STATS,
+ ) {
+ Ok(x) => statx_to_stat(x),
+ Err(io::Errno::NOSYS) => statat_old(CWD, path, AtFlags::SYMLINK_NOFOLLOW),
+ Err(err) => Err(err),
+ }
+ }
+
+ // Main version: libc is y2038 safe. Or, the platform is not y2038 safe and
+ // there's nothing practical we can do.
+ #[cfg(not(all(
+ linux_kernel,
+ any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )
+ )))]
+ unsafe {
+ #[cfg(test)]
+ assert_eq_size!(Stat, c::stat);
+
+ let mut stat = MaybeUninit::<Stat>::uninit();
+ ret(c::lstat(c_str(path), stat.as_mut_ptr().cast()))?;
+ let stat = stat.assume_init();
+ #[cfg(apple)]
+ let stat = fix_negative_stat_nsecs(stat);
+ Ok(stat)
+ }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "redox")))]
+pub(crate) fn statat(dirfd: BorrowedFd<'_>, path: &CStr, flags: AtFlags) -> io::Result<Stat> {
+ // See the comments in `fstat` about using `crate::fs::statx` here.
+ #[cfg(all(
+ linux_kernel,
+ any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )
+ ))]
+ {
+ match crate::fs::statx(dirfd, path, flags, StatxFlags::BASIC_STATS) {
+ Ok(x) => statx_to_stat(x),
+ Err(io::Errno::NOSYS) => statat_old(dirfd, path, flags),
+ Err(err) => Err(err),
+ }
+ }
+
+ // Main version: libc is y2038 safe. Or, the platform is not y2038 safe and
+ // there's nothing practical we can do.
+ #[cfg(not(all(
+ linux_kernel,
+ any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )
+ )))]
+ unsafe {
+ #[cfg(test)]
+ assert_eq_size!(Stat, c::stat);
+
+ let mut stat = MaybeUninit::<Stat>::uninit();
+ ret(c::fstatat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ stat.as_mut_ptr().cast(),
+ bitflags_bits!(flags),
+ ))?;
+ let stat = stat.assume_init();
+ #[cfg(apple)]
+ let stat = fix_negative_stat_nsecs(stat);
+ Ok(stat)
+ }
+}
+
+#[cfg(all(
+ linux_kernel,
+ any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )
+))]
+fn statat_old(dirfd: BorrowedFd<'_>, path: &CStr, flags: AtFlags) -> io::Result<Stat> {
+ unsafe {
+ let mut result = MaybeUninit::<c::stat64>::uninit();
+ ret(c::fstatat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ result.as_mut_ptr(),
+ bitflags_bits!(flags),
+ ))?;
+ stat64_to_stat(result.assume_init())
+ }
+}
+
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "emscripten",
+ target_os = "vita"
+)))]
+pub(crate) fn access(path: &CStr, access: Access) -> io::Result<()> {
+ unsafe { ret(c::access(c_str(path), access.bits())) }
+}
+
+#[cfg(not(any(
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+pub(crate) fn accessat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ access: Access,
+ flags: AtFlags,
+) -> io::Result<()> {
+ // macOS ≤ 10.9 lacks `faccessat`.
+ #[cfg(target_os = "macos")]
+ unsafe {
+ weak! {
+ fn faccessat(
+ c::c_int,
+ *const ffi::c_char,
+ c::c_int,
+ c::c_int
+ ) -> c::c_int
+ }
+ // If we have `faccessat`, use it.
+ if let Some(libc_faccessat) = faccessat.get() {
+ return ret(libc_faccessat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ bitflags_bits!(access),
+ bitflags_bits!(flags),
+ ));
+ }
+ // Otherwise, see if we can emulate the `AT_FDCWD` case.
+ if borrowed_fd(dirfd) != c::AT_FDCWD {
+ return Err(io::Errno::NOSYS);
+ }
+ if flags.intersects(!(AtFlags::EACCESS | AtFlags::SYMLINK_NOFOLLOW)) {
+ return Err(io::Errno::INVAL);
+ }
+ if !flags.is_empty() {
+ return Err(io::Errno::OPNOTSUPP);
+ }
+ ret(c::access(c_str(path), bitflags_bits!(access)))
+ }
+
+ #[cfg(not(target_os = "macos"))]
+ unsafe {
+ ret(c::faccessat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ bitflags_bits!(access),
+ bitflags_bits!(flags),
+ ))
+ }
+}
+
+#[cfg(target_os = "emscripten")]
+pub(crate) fn access(_path: &CStr, _access: Access) -> io::Result<()> {
+ Ok(())
+}
+
+#[cfg(target_os = "emscripten")]
+pub(crate) fn accessat(
+ _dirfd: BorrowedFd<'_>,
+ _path: &CStr,
+ _access: Access,
+ _flags: AtFlags,
+) -> io::Result<()> {
+ Ok(())
+}
+
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+pub(crate) fn utimensat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ times: &Timestamps,
+ flags: AtFlags,
+) -> io::Result<()> {
+ // Old 32-bit version: libc has `utimensat` but it is not y2038 safe by
+ // default. But there may be a `__utimensat64` we can use.
+ #[cfg(all(fix_y2038, not(apple)))]
+ {
+ #[cfg(target_env = "gnu")]
+ if let Some(libc_utimensat) = __utimensat64.get() {
+ let libc_times: [LibcTimespec; 2] =
+ [times.last_access.into(), times.last_modification.into()];
+
+ unsafe {
+ return ret(libc_utimensat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ libc_times.as_ptr(),
+ bitflags_bits!(flags),
+ ));
+ }
+ }
+
+ utimensat_old(dirfd, path, times, flags)
+ }
+
+ // Main version: libc is y2038 safe and has `utimensat`. Or, the platform
+ // is not y2038 safe and there's nothing practical we can do.
+ #[cfg(not(any(apple, fix_y2038)))]
+ unsafe {
+ use crate::utils::as_ptr;
+
+ ret(c::utimensat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ as_ptr(times).cast(),
+ bitflags_bits!(flags),
+ ))
+ }
+
+ // Apple version: `utimensat` was introduced in macOS 10.13.
+ #[cfg(apple)]
+ unsafe {
+ use crate::utils::as_ptr;
+
+ // ABI details
+ weak! {
+ fn utimensat(
+ c::c_int,
+ *const ffi::c_char,
+ *const c::timespec,
+ c::c_int
+ ) -> c::c_int
+ }
+ extern "C" {
+ fn setattrlist(
+ path: *const ffi::c_char,
+ attr_list: *const Attrlist,
+ attr_buf: *const c::c_void,
+ attr_buf_size: c::size_t,
+ options: c::c_ulong,
+ ) -> c::c_int;
+ }
+ const FSOPT_NOFOLLOW: c::c_ulong = 0x0000_0001;
+
+ // If we have `utimensat`, use it.
+ if let Some(have_utimensat) = utimensat.get() {
+ return ret(have_utimensat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ as_ptr(times).cast(),
+ bitflags_bits!(flags),
+ ));
+ }
+
+ // Convert `times`. We only need this in the child, but do it before
+ // calling `fork` because it might fail.
+ let (attrbuf_size, times, attrs) = times_to_attrlist(times)?;
+
+ // `setattrlistat` was introduced in 10.13 along with `utimensat`, so
+ // if we don't have `utimensat`, we don't have `setattrlistat` either.
+ // Emulate it using `fork`, and `fchdir` and [`setattrlist`].
+ //
+ // [`setattrlist`]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/setattrlist.2.html
+ match c::fork() {
+ -1 => Err(io::Errno::IO),
+ 0 => {
+ if c::fchdir(borrowed_fd(dirfd)) != 0 {
+ let code = match libc_errno::errno().0 {
+ c::EACCES => 2,
+ c::ENOTDIR => 3,
+ _ => 1,
+ };
+ c::_exit(code);
+ }
+
+ let mut flags_arg = 0;
+ if flags.contains(AtFlags::SYMLINK_NOFOLLOW) {
+ flags_arg |= FSOPT_NOFOLLOW;
+ }
+
+ if setattrlist(
+ c_str(path),
+ &attrs,
+ as_ptr(×).cast(),
+ attrbuf_size,
+ flags_arg,
+ ) != 0
+ {
+ // Translate expected `errno` codes into ad-hoc integer
+ // values suitable for exit statuses.
+ let code = match libc_errno::errno().0 {
+ c::EACCES => 2,
+ c::ENOTDIR => 3,
+ c::EPERM => 4,
+ c::EROFS => 5,
+ c::ELOOP => 6,
+ c::ENOENT => 7,
+ c::ENAMETOOLONG => 8,
+ c::EINVAL => 9,
+ c::ESRCH => 10,
+ c::ENOTSUP => 11,
+ _ => 1,
+ };
+ c::_exit(code);
+ }
+
+ c::_exit(0);
+ }
+ child_pid => {
+ let mut wstatus = 0;
+ let _ = ret_c_int(c::waitpid(child_pid, &mut wstatus, 0))?;
+ if c::WIFEXITED(wstatus) {
+ // Translate our ad-hoc exit statuses back to `errno`
+ // codes.
+ match c::WEXITSTATUS(wstatus) {
+ 0 => Ok(()),
+ 2 => Err(io::Errno::ACCESS),
+ 3 => Err(io::Errno::NOTDIR),
+ 4 => Err(io::Errno::PERM),
+ 5 => Err(io::Errno::ROFS),
+ 6 => Err(io::Errno::LOOP),
+ 7 => Err(io::Errno::NOENT),
+ 8 => Err(io::Errno::NAMETOOLONG),
+ 9 => Err(io::Errno::INVAL),
+ 10 => Err(io::Errno::SRCH),
+ 11 => Err(io::Errno::NOTSUP),
+ _ => Err(io::Errno::IO),
+ }
+ } else {
+ Err(io::Errno::IO)
+ }
+ }
+ }
+ }
+}
+
+#[cfg(all(fix_y2038, not(apple)))]
+fn utimensat_old(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ times: &Timestamps,
+ flags: AtFlags,
+) -> io::Result<()> {
+ let old_times = [
+ c::timespec {
+ tv_sec: times
+ .last_access
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: times
+ .last_access
+ .tv_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ },
+ c::timespec {
+ tv_sec: times
+ .last_modification
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: times
+ .last_modification
+ .tv_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ },
+ ];
+ unsafe {
+ ret(c::utimensat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ old_times.as_ptr(),
+ bitflags_bits!(flags),
+ ))
+ }
+}
+
+#[cfg(not(target_os = "wasi"))]
+pub(crate) fn chmod(path: &CStr, mode: Mode) -> io::Result<()> {
+ unsafe { ret(c::chmod(c_str(path), mode.bits() as c::mode_t)) }
+}
+
+#[cfg(not(any(
+ linux_kernel,
+ target_os = "espidf",
+ target_os = "redox",
+ target_os = "wasi"
+)))]
+pub(crate) fn chmodat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ mode: Mode,
+ flags: AtFlags,
+) -> io::Result<()> {
+ unsafe {
+ ret(c::fchmodat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ mode.bits() as c::mode_t,
+ bitflags_bits!(flags),
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn chmodat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ mode: Mode,
+ flags: AtFlags,
+) -> io::Result<()> {
+ // Linux's `fchmodat` does not have a flags argument.
+ //
+ // Use `c::syscall` rather than `c::fchmodat` because some libc
+ // implementations, such as musl, add extra logic to `fchmod` to emulate
+ // support for `AT_SYMLINK_NOFOLLOW`, which uses `/proc` outside our
+ // control.
+ syscall! {
+ fn fchmodat(
+ base_dirfd: c::c_int,
+ pathname: *const ffi::c_char,
+ mode: c::mode_t
+ ) via SYS_fchmodat -> c::c_int
+ }
+ if flags == AtFlags::SYMLINK_NOFOLLOW {
+ return Err(io::Errno::OPNOTSUPP);
+ }
+ if !flags.is_empty() {
+ return Err(io::Errno::INVAL);
+ }
+ unsafe {
+ ret(fchmodat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ mode.bits() as c::mode_t,
+ ))
+ }
+}
+
+#[cfg(apple)]
+pub(crate) fn fclonefileat(
+ srcfd: BorrowedFd<'_>,
+ dst_dirfd: BorrowedFd<'_>,
+ dst: &CStr,
+ flags: CloneFlags,
+) -> io::Result<()> {
+ syscall! {
+ fn fclonefileat(
+ srcfd: BorrowedFd<'_>,
+ dst_dirfd: BorrowedFd<'_>,
+ dst: *const ffi::c_char,
+ flags: c::c_int
+ ) via SYS_fclonefileat -> c::c_int
+ }
+
+ unsafe {
+ ret(fclonefileat(
+ srcfd,
+ dst_dirfd,
+ c_str(dst),
+ bitflags_bits!(flags),
+ ))
+ }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "redox", target_os = "wasi")))]
+pub(crate) fn chownat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ owner: Option<Uid>,
+ group: Option<Gid>,
+ flags: AtFlags,
+) -> io::Result<()> {
+ unsafe {
+ let (ow, gr) = crate::ugid::translate_fchown_args(owner, group);
+ ret(c::fchownat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ ow,
+ gr,
+ bitflags_bits!(flags),
+ ))
+ }
+}
+
+#[cfg(not(any(
+ apple,
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+pub(crate) fn mknodat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ file_type: FileType,
+ mode: Mode,
+ dev: Dev,
+) -> io::Result<()> {
+ unsafe {
+ ret(c::mknodat(
+ borrowed_fd(dirfd),
+ c_str(path),
+ (mode.bits() | file_type.as_raw_mode()) as c::mode_t,
+ dev.try_into().map_err(|_e| io::Errno::PERM)?,
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn copy_file_range(
+ fd_in: BorrowedFd<'_>,
+ off_in: Option<&mut u64>,
+ fd_out: BorrowedFd<'_>,
+ off_out: Option<&mut u64>,
+ len: usize,
+) -> io::Result<usize> {
+ syscall! {
+ fn copy_file_range(
+ fd_in: c::c_int,
+ off_in: *mut c::loff_t,
+ fd_out: c::c_int,
+ off_out: *mut c::loff_t,
+ len: usize,
+ flags: c::c_uint
+ ) via SYS_copy_file_range -> c::ssize_t
+ }
+
+ let mut off_in_val: c::loff_t = 0;
+ let mut off_out_val: c::loff_t = 0;
+ // Silently cast; we'll get `EINVAL` if the value is negative.
+ let off_in_ptr = if let Some(off_in) = &off_in {
+ off_in_val = **off_in as i64;
+ &mut off_in_val
+ } else {
+ null_mut()
+ };
+ let off_out_ptr = if let Some(off_out) = &off_out {
+ off_out_val = **off_out as i64;
+ &mut off_out_val
+ } else {
+ null_mut()
+ };
+ let copied = unsafe {
+ ret_usize(copy_file_range(
+ borrowed_fd(fd_in),
+ off_in_ptr,
+ borrowed_fd(fd_out),
+ off_out_ptr,
+ len,
+ 0, // no flags are defined yet
+ ))?
+ };
+ if let Some(off_in) = off_in {
+ *off_in = off_in_val as u64;
+ }
+ if let Some(off_out) = off_out {
+ *off_out = off_out_val as u64;
+ }
+ Ok(copied)
+}
+
+#[cfg(not(any(
+ apple,
+ netbsdlike,
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "solaris",
+ target_os = "vita",
+)))]
+pub(crate) fn fadvise(
+ fd: BorrowedFd<'_>,
+ offset: u64,
+ len: Option<NonZeroU64>,
+ advice: Advice,
+) -> io::Result<()> {
+ let offset = offset as i64;
+ let len = match len {
+ None => 0,
+ Some(len) => len.get() as i64,
+ };
+
+ // Our public API uses `u64` following the [Rust convention], but the
+ // underlying host APIs use a signed `off_t`. Converting these values may
+ // turn a very large value into a negative value.
+ //
+ // On FreeBSD, this could cause `posix_fadvise` to fail with
+ // `Errno::INVAL`. Because we don't expose the signed type in our API, we
+ // also avoid exposing this artifact of casting an unsigned value to the
+ // signed type. To do this, we use a no-op call in this case.
+ //
+ // [Rust convention]: std::io::SeekFrom::Start
+ #[cfg(target_os = "freebsd")]
+ if offset < 0 {
+ if len < 0 {
+ return Err(io::Errno::INVAL);
+ }
+
+ return fadvise_noop(fd);
+
+ #[cold]
+ fn fadvise_noop(fd: BorrowedFd<'_>) -> io::Result<()> {
+ // Use an `fcntl` to report `Errno::BADF` if needed, but otherwise
+ // do nothing.
+ fcntl_getfl(fd).map(|_| ())
+ }
+ }
+
+ // Similarly, on FreeBSD, if `offset + len` would overflow an `off_t` in a
+ // way that users using a `u64` interface wouldn't be aware of, reduce the
+ // length so that we only operate on the range that doesn't overflow.
+ #[cfg(target_os = "freebsd")]
+ let len = if len > 0 && offset.checked_add(len).is_none() {
+ i64::MAX - offset
+ } else {
+ len
+ };
+
+ let err = unsafe { c::posix_fadvise(borrowed_fd(fd), offset, len, advice as c::c_int) };
+
+ // `posix_fadvise` returns its error status rather than using `errno`.
+ if err == 0 {
+ Ok(())
+ } else {
+ Err(io::Errno(err))
+ }
+}
+
+pub(crate) fn fcntl_getfl(fd: BorrowedFd<'_>) -> io::Result<OFlags> {
+ let flags = unsafe { ret_c_int(c::fcntl(borrowed_fd(fd), c::F_GETFL))? };
+ Ok(OFlags::from_bits_retain(bitcast!(flags)))
+}
+
+pub(crate) fn fcntl_setfl(fd: BorrowedFd<'_>, flags: OFlags) -> io::Result<()> {
+ unsafe { ret(c::fcntl(borrowed_fd(fd), c::F_SETFL, flags.bits())) }
+}
+
+#[cfg(any(linux_kernel, target_os = "freebsd", target_os = "fuchsia"))]
+pub(crate) fn fcntl_get_seals(fd: BorrowedFd<'_>) -> io::Result<SealFlags> {
+ let flags = unsafe { ret_c_int(c::fcntl(borrowed_fd(fd), c::F_GET_SEALS))? };
+ Ok(SealFlags::from_bits_retain(bitcast!(flags)))
+}
+
+#[cfg(any(linux_kernel, target_os = "freebsd", target_os = "fuchsia"))]
+pub(crate) fn fcntl_add_seals(fd: BorrowedFd<'_>, seals: SealFlags) -> io::Result<()> {
+ unsafe { ret(c::fcntl(borrowed_fd(fd), c::F_ADD_SEALS, seals.bits())) }
+}
+
+#[cfg(not(any(
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+pub(crate) fn fcntl_lock(fd: BorrowedFd<'_>, operation: FlockOperation) -> io::Result<()> {
+ use c::{flock, F_RDLCK, F_SETLK, F_SETLKW, F_UNLCK, F_WRLCK, SEEK_SET};
+
+ let (cmd, l_type) = match operation {
+ FlockOperation::LockShared => (F_SETLKW, F_RDLCK),
+ FlockOperation::LockExclusive => (F_SETLKW, F_WRLCK),
+ FlockOperation::Unlock => (F_SETLKW, F_UNLCK),
+ FlockOperation::NonBlockingLockShared => (F_SETLK, F_RDLCK),
+ FlockOperation::NonBlockingLockExclusive => (F_SETLK, F_WRLCK),
+ FlockOperation::NonBlockingUnlock => (F_SETLK, F_UNLCK),
+ };
+
+ unsafe {
+ let mut lock: flock = core::mem::zeroed();
+ lock.l_type = l_type as _;
+
+ // When `l_len` is zero, this locks all the bytes from
+ // `l_whence`/`l_start` to the end of the file, even as the
+ // file grows dynamically.
+ lock.l_whence = SEEK_SET as _;
+ lock.l_start = 0;
+ lock.l_len = 0;
+
+ ret(c::fcntl(borrowed_fd(fd), cmd, &lock))
+ }
+}
+
+pub(crate) fn seek(fd: BorrowedFd<'_>, pos: SeekFrom) -> io::Result<u64> {
+ let (whence, offset) = match pos {
+ SeekFrom::Start(pos) => {
+ let pos: u64 = pos;
+ // Silently cast; we'll get `EINVAL` if the value is negative.
+ (c::SEEK_SET, pos as i64)
+ }
+ SeekFrom::End(offset) => (c::SEEK_END, offset),
+ SeekFrom::Current(offset) => (c::SEEK_CUR, offset),
+ #[cfg(any(apple, freebsdlike, linux_kernel, solarish))]
+ SeekFrom::Data(pos) => {
+ let pos: u64 = pos;
+ // Silently cast; we'll get `EINVAL` if the value is negative.
+ (c::SEEK_DATA, pos as i64)
+ }
+ #[cfg(any(apple, freebsdlike, linux_kernel, solarish))]
+ SeekFrom::Hole(pos) => {
+ let pos: u64 = pos;
+ // Silently cast; we'll get `EINVAL` if the value is negative.
+ (c::SEEK_HOLE, pos as i64)
+ }
+ };
+
+ // ESP-IDF and Vita don't support 64-bit offsets, for example.
+ let offset = offset.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+
+ let offset = unsafe { ret_off_t(c::lseek(borrowed_fd(fd), offset, whence))? };
+ Ok(offset as u64)
+}
+
+pub(crate) fn tell(fd: BorrowedFd<'_>) -> io::Result<u64> {
+ let offset = unsafe { ret_off_t(c::lseek(borrowed_fd(fd), 0, c::SEEK_CUR))? };
+ Ok(offset as u64)
+}
+
+#[cfg(not(any(linux_kernel, target_os = "wasi")))]
+pub(crate) fn fchmod(fd: BorrowedFd<'_>, mode: Mode) -> io::Result<()> {
+ unsafe { ret(c::fchmod(borrowed_fd(fd), bitflags_bits!(mode))) }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn fchmod(fd: BorrowedFd<'_>, mode: Mode) -> io::Result<()> {
+ // Use `c::syscall` rather than `c::fchmod` because some libc
+ // implementations, such as musl, add extra logic to `fchmod` to emulate
+ // support for `O_PATH`, which uses `/proc` outside our control and
+ // interferes with our own use of `O_PATH`.
+ syscall! {
+ fn fchmod(
+ fd: c::c_int,
+ mode: c::mode_t
+ ) via SYS_fchmod -> c::c_int
+ }
+ unsafe { ret(fchmod(borrowed_fd(fd), mode.bits() as c::mode_t)) }
+}
+
+#[cfg(not(target_os = "wasi"))]
+pub(crate) fn chown(path: &CStr, owner: Option<Uid>, group: Option<Gid>) -> io::Result<()> {
+ unsafe {
+ let (ow, gr) = crate::ugid::translate_fchown_args(owner, group);
+ ret(c::chown(c_str(path), ow, gr))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn fchown(fd: BorrowedFd<'_>, owner: Option<Uid>, group: Option<Gid>) -> io::Result<()> {
+ // Use `c::syscall` rather than `c::fchown` because some libc
+ // implementations, such as musl, add extra logic to `fchown` to emulate
+ // support for `O_PATH`, which uses `/proc` outside our control and
+ // interferes with our own use of `O_PATH`.
+ syscall! {
+ fn fchown(
+ fd: c::c_int,
+ owner: c::uid_t,
+ group: c::gid_t
+ ) via SYS_fchown -> c::c_int
+ }
+ unsafe {
+ let (ow, gr) = crate::ugid::translate_fchown_args(owner, group);
+ ret(fchown(borrowed_fd(fd), ow, gr))
+ }
+}
+
+#[cfg(not(any(linux_kernel, target_os = "wasi")))]
+pub(crate) fn fchown(fd: BorrowedFd<'_>, owner: Option<Uid>, group: Option<Gid>) -> io::Result<()> {
+ unsafe {
+ let (ow, gr) = crate::ugid::translate_fchown_args(owner, group);
+ ret(c::fchown(borrowed_fd(fd), ow, gr))
+ }
+}
+
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "solaris",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+pub(crate) fn flock(fd: BorrowedFd<'_>, operation: FlockOperation) -> io::Result<()> {
+ unsafe { ret(c::flock(borrowed_fd(fd), operation as c::c_int)) }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn syncfs(fd: BorrowedFd<'_>) -> io::Result<()> {
+ // Some versions of Android libc lack a `syncfs` function.
+ #[cfg(target_os = "android")]
+ syscall! {
+ fn syncfs(fd: c::c_int) via SYS_syncfs -> c::c_int
+ }
+
+ // `syncfs` was added to glibc in 2.20.
+ #[cfg(not(target_os = "android"))]
+ weak_or_syscall! {
+ fn syncfs(fd: c::c_int) via SYS_syncfs -> c::c_int
+ }
+
+ unsafe { ret(syncfs(borrowed_fd(fd))) }
+}
+
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+pub(crate) fn sync() {
+ unsafe { c::sync() }
+}
+
+pub(crate) fn fstat(fd: BorrowedFd<'_>) -> io::Result<Stat> {
+ // 32-bit and mips64 Linux: `struct stat64` is not y2038 compatible; use
+ // `statx`.
+ //
+ // And, some old platforms don't support `statx`, and some fail with a
+ // confusing error code, so we call `crate::fs::statx` to handle that. If
+ // `statx` isn't available, fall back to the buggy system call.
+ #[cfg(all(
+ linux_kernel,
+ any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )
+ ))]
+ {
+ match crate::fs::statx(fd, cstr!(""), AtFlags::EMPTY_PATH, StatxFlags::BASIC_STATS) {
+ Ok(x) => statx_to_stat(x),
+ Err(io::Errno::NOSYS) => fstat_old(fd),
+ Err(err) => Err(err),
+ }
+ }
+
+ // Main version: libc is y2038 safe. Or, the platform is not y2038 safe and
+ // there's nothing practical we can do.
+ #[cfg(not(all(
+ linux_kernel,
+ any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )
+ )))]
+ unsafe {
+ #[cfg(test)]
+ assert_eq_size!(Stat, c::stat);
+
+ let mut stat = MaybeUninit::<Stat>::uninit();
+ ret(c::fstat(borrowed_fd(fd), stat.as_mut_ptr().cast()))?;
+ let stat = stat.assume_init();
+ #[cfg(apple)]
+ let stat = fix_negative_stat_nsecs(stat);
+ Ok(stat)
+ }
+}
+
+#[cfg(all(
+ linux_kernel,
+ any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )
+))]
+fn fstat_old(fd: BorrowedFd<'_>) -> io::Result<Stat> {
+ unsafe {
+ let mut result = MaybeUninit::<c::stat64>::uninit();
+ ret(c::fstat(borrowed_fd(fd), result.as_mut_ptr()))?;
+ stat64_to_stat(result.assume_init())
+ }
+}
+
+#[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "netbsd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+pub(crate) fn fstatfs(fd: BorrowedFd<'_>) -> io::Result<StatFs> {
+ let mut statfs = MaybeUninit::<StatFs>::uninit();
+ unsafe {
+ ret(c::fstatfs(borrowed_fd(fd), statfs.as_mut_ptr()))?;
+ Ok(statfs.assume_init())
+ }
+}
+
+#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "wasi")))]
+pub(crate) fn fstatvfs(fd: BorrowedFd<'_>) -> io::Result<StatVfs> {
+ let mut statvfs = MaybeUninit::<c::statvfs>::uninit();
+ unsafe {
+ ret(c::fstatvfs(borrowed_fd(fd), statvfs.as_mut_ptr()))?;
+ Ok(libc_statvfs_to_statvfs(statvfs.assume_init()))
+ }
+}
+
+#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "wasi")))]
+fn libc_statvfs_to_statvfs(from: c::statvfs) -> StatVfs {
+ StatVfs {
+ f_bsize: from.f_bsize as u64,
+ f_frsize: from.f_frsize as u64,
+ f_blocks: from.f_blocks as u64,
+ f_bfree: from.f_bfree as u64,
+ f_bavail: from.f_bavail as u64,
+ f_files: from.f_files as u64,
+ f_ffree: from.f_ffree as u64,
+ f_favail: from.f_ffree as u64,
+ #[cfg(not(target_os = "aix"))]
+ f_fsid: from.f_fsid as u64,
+ #[cfg(target_os = "aix")]
+ f_fsid: ((from.f_fsid.val[0] as u64) << 32) | from.f_fsid.val[1],
+ f_flag: StatVfsMountFlags::from_bits_retain(from.f_flag as u64),
+ f_namemax: from.f_namemax as u64,
+ }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "vita")))]
+pub(crate) fn futimens(fd: BorrowedFd<'_>, times: &Timestamps) -> io::Result<()> {
+ // Old 32-bit version: libc has `futimens` but it is not y2038 safe by
+ // default. But there may be a `__futimens64` we can use.
+ #[cfg(all(fix_y2038, not(apple)))]
+ {
+ #[cfg(target_env = "gnu")]
+ if let Some(libc_futimens) = __futimens64.get() {
+ let libc_times: [LibcTimespec; 2] =
+ [times.last_access.into(), times.last_modification.into()];
+
+ unsafe {
+ return ret(libc_futimens(borrowed_fd(fd), libc_times.as_ptr()));
+ }
+ }
+
+ futimens_old(fd, times)
+ }
+
+ // Main version: libc is y2038 safe and has `futimens`. Or, the platform
+ // is not y2038 safe and there's nothing practical we can do.
+ #[cfg(not(any(apple, fix_y2038)))]
+ unsafe {
+ use crate::utils::as_ptr;
+
+ ret(c::futimens(borrowed_fd(fd), as_ptr(times).cast()))
+ }
+
+ // Apple version: `futimens` was introduced in macOS 10.13.
+ #[cfg(apple)]
+ unsafe {
+ use crate::utils::as_ptr;
+
+ // ABI details.
+ weak! {
+ fn futimens(c::c_int, *const c::timespec) -> c::c_int
+ }
+ extern "C" {
+ fn fsetattrlist(
+ fd: c::c_int,
+ attr_list: *const Attrlist,
+ attr_buf: *const c::c_void,
+ attr_buf_size: c::size_t,
+ options: c::c_ulong,
+ ) -> c::c_int;
+ }
+
+ // If we have `futimens`, use it.
+ if let Some(have_futimens) = futimens.get() {
+ return ret(have_futimens(borrowed_fd(fd), as_ptr(times).cast()));
+ }
+
+ // Otherwise use `fsetattrlist`.
+ let (attrbuf_size, times, attrs) = times_to_attrlist(times)?;
+
+ ret(fsetattrlist(
+ borrowed_fd(fd),
+ &attrs,
+ as_ptr(×).cast(),
+ attrbuf_size,
+ 0,
+ ))
+ }
+}
+
+#[cfg(all(fix_y2038, not(apple)))]
+fn futimens_old(fd: BorrowedFd<'_>, times: &Timestamps) -> io::Result<()> {
+ let old_times = [
+ c::timespec {
+ tv_sec: times
+ .last_access
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: times
+ .last_access
+ .tv_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ },
+ c::timespec {
+ tv_sec: times
+ .last_modification
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: times
+ .last_modification
+ .tv_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ },
+ ];
+
+ unsafe { ret(c::futimens(borrowed_fd(fd), old_times.as_ptr())) }
+}
+
+#[cfg(not(any(
+ apple,
+ netbsdlike,
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+)))]
+pub(crate) fn fallocate(
+ fd: BorrowedFd<'_>,
+ mode: FallocateFlags,
+ offset: u64,
+ len: u64,
+) -> io::Result<()> {
+ // Silently cast to `i64`; we'll get `EINVAL` if the value is negative.
+ let offset = offset as i64;
+ let len = len as i64;
+
+ // ESP-IDF and Vita don't support 64-bit offsets, for example.
+ let offset = offset.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+ let len = len.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+
+ #[cfg(any(linux_kernel, target_os = "fuchsia"))]
+ unsafe {
+ ret(c::fallocate(
+ borrowed_fd(fd),
+ bitflags_bits!(mode),
+ offset,
+ len,
+ ))
+ }
+
+ #[cfg(not(any(linux_kernel, target_os = "fuchsia")))]
+ {
+ assert!(mode.is_empty());
+ let err = unsafe { c::posix_fallocate(borrowed_fd(fd), offset, len) };
+
+ // `posix_fallocate` returns its error status rather than using
+ // `errno`.
+ if err == 0 {
+ Ok(())
+ } else {
+ Err(io::Errno(err))
+ }
+ }
+}
+
+#[cfg(apple)]
+pub(crate) fn fallocate(
+ fd: BorrowedFd<'_>,
+ mode: FallocateFlags,
+ offset: u64,
+ len: u64,
+) -> io::Result<()> {
+ let offset: i64 = offset.try_into().map_err(|_e| io::Errno::INVAL)?;
+ let len = len as i64;
+
+ assert!(mode.is_empty());
+
+ let new_len = offset.checked_add(len).ok_or(io::Errno::FBIG)?;
+ let mut store = c::fstore_t {
+ fst_flags: c::F_ALLOCATECONTIG,
+ fst_posmode: c::F_PEOFPOSMODE,
+ fst_offset: 0,
+ fst_length: new_len,
+ fst_bytesalloc: 0,
+ };
+ unsafe {
+ if c::fcntl(borrowed_fd(fd), c::F_PREALLOCATE, &store) == -1 {
+ // Unable to allocate contiguous disk space; attempt to allocate
+ // non-contiguously.
+ store.fst_flags = c::F_ALLOCATEALL;
+ let _ = ret_c_int(c::fcntl(borrowed_fd(fd), c::F_PREALLOCATE, &store))?;
+ }
+ ret(c::ftruncate(borrowed_fd(fd), new_len))
+ }
+}
+
+pub(crate) fn fsync(fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe { ret(c::fsync(borrowed_fd(fd))) }
+}
+
+#[cfg(not(any(
+ apple,
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+)))]
+pub(crate) fn fdatasync(fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe { ret(c::fdatasync(borrowed_fd(fd))) }
+}
+
+pub(crate) fn ftruncate(fd: BorrowedFd<'_>, length: u64) -> io::Result<()> {
+ let length = length.try_into().map_err(|_overflow_err| io::Errno::FBIG)?;
+ unsafe { ret(c::ftruncate(borrowed_fd(fd), length)) }
+}
+
+#[cfg(any(linux_kernel, target_os = "freebsd"))]
+pub(crate) fn memfd_create(name: &CStr, flags: MemfdFlags) -> io::Result<OwnedFd> {
+ #[cfg(target_os = "freebsd")]
+ weakcall! {
+ fn memfd_create(
+ name: *const ffi::c_char,
+ flags: c::c_uint
+ ) -> c::c_int
+ }
+
+ #[cfg(linux_kernel)]
+ weak_or_syscall! {
+ fn memfd_create(
+ name: *const ffi::c_char,
+ flags: c::c_uint
+ ) via SYS_memfd_create -> c::c_int
+ }
+
+ unsafe { ret_owned_fd(memfd_create(c_str(name), bitflags_bits!(flags))) }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn openat2(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ oflags: OFlags,
+ mode: Mode,
+ resolve: ResolveFlags,
+) -> io::Result<OwnedFd> {
+ use linux_raw_sys::general::open_how;
+
+ syscall! {
+ fn openat2(
+ base_dirfd: c::c_int,
+ pathname: *const ffi::c_char,
+ how: *mut open_how,
+ size: usize
+ ) via SYS_OPENAT2 -> c::c_int
+ }
+
+ let oflags = oflags.bits();
+ let mut open_how = open_how {
+ flags: u64::from(oflags),
+ mode: u64::from(mode.bits()),
+ resolve: resolve.bits(),
+ };
+
+ unsafe {
+ ret_owned_fd(openat2(
+ borrowed_fd(dirfd),
+ c_str(path),
+ &mut open_how,
+ size_of::<open_how>(),
+ ))
+ }
+}
+#[cfg(all(linux_kernel, target_pointer_width = "32"))]
+const SYS_OPENAT2: i32 = 437;
+#[cfg(all(linux_kernel, target_pointer_width = "64"))]
+const SYS_OPENAT2: i64 = 437;
+
+#[cfg(target_os = "linux")]
+pub(crate) fn sendfile(
+ out_fd: BorrowedFd<'_>,
+ in_fd: BorrowedFd<'_>,
+ offset: Option<&mut u64>,
+ count: usize,
+) -> io::Result<usize> {
+ unsafe {
+ ret_usize(c::sendfile64(
+ borrowed_fd(out_fd),
+ borrowed_fd(in_fd),
+ offset.map_or(null_mut(), crate::utils::as_mut_ptr).cast(),
+ count,
+ ))
+ }
+}
+
+/// Convert from a Linux `statx` value to rustix's `Stat`.
+#[cfg(all(linux_kernel, target_pointer_width = "32"))]
+fn statx_to_stat(x: crate::fs::Statx) -> io::Result<Stat> {
+ Ok(Stat {
+ st_dev: crate::fs::makedev(x.stx_dev_major, x.stx_dev_minor).into(),
+ st_mode: x.stx_mode.into(),
+ st_nlink: x.stx_nlink.into(),
+ st_uid: x.stx_uid.into(),
+ st_gid: x.stx_gid.into(),
+ st_rdev: crate::fs::makedev(x.stx_rdev_major, x.stx_rdev_minor).into(),
+ st_size: x.stx_size.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_blksize: x.stx_blksize.into(),
+ st_blocks: x.stx_blocks.into(),
+ st_atime: bitcast!(i64::from(x.stx_atime.tv_sec)),
+ st_atime_nsec: x.stx_atime.tv_nsec as _,
+ st_mtime: bitcast!(i64::from(x.stx_mtime.tv_sec)),
+ st_mtime_nsec: x.stx_mtime.tv_nsec as _,
+ st_ctime: bitcast!(i64::from(x.stx_ctime.tv_sec)),
+ st_ctime_nsec: x.stx_ctime.tv_nsec as _,
+ st_ino: x.stx_ino.into(),
+ })
+}
+
+/// Convert from a Linux `statx` value to rustix's `Stat`.
+///
+/// mips64' `struct stat64` in libc has private fields, and `stx_blocks`
+#[cfg(all(linux_kernel, any(target_arch = "mips64", target_arch = "mips64r6")))]
+fn statx_to_stat(x: crate::fs::Statx) -> io::Result<Stat> {
+ let mut result: Stat = unsafe { core::mem::zeroed() };
+
+ result.st_dev = crate::fs::makedev(x.stx_dev_major, x.stx_dev_minor);
+ result.st_mode = x.stx_mode.into();
+ result.st_nlink = x.stx_nlink.into();
+ result.st_uid = x.stx_uid.into();
+ result.st_gid = x.stx_gid.into();
+ result.st_rdev = crate::fs::makedev(x.stx_rdev_major, x.stx_rdev_minor);
+ result.st_size = x.stx_size.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+ result.st_blksize = x.stx_blksize.into();
+ result.st_blocks = x.stx_blocks.try_into().map_err(|_e| io::Errno::OVERFLOW)?;
+ result.st_atime = bitcast!(i64::from(x.stx_atime.tv_sec));
+ result.st_atime_nsec = x.stx_atime.tv_nsec as _;
+ result.st_mtime = bitcast!(i64::from(x.stx_mtime.tv_sec));
+ result.st_mtime_nsec = x.stx_mtime.tv_nsec as _;
+ result.st_ctime = bitcast!(i64::from(x.stx_ctime.tv_sec));
+ result.st_ctime_nsec = x.stx_ctime.tv_nsec as _;
+ result.st_ino = x.stx_ino.into();
+
+ Ok(result)
+}
+
+/// Convert from a Linux `stat64` value to rustix's `Stat`.
+#[cfg(all(linux_kernel, target_pointer_width = "32"))]
+fn stat64_to_stat(s64: c::stat64) -> io::Result<Stat> {
+ Ok(Stat {
+ st_dev: s64.st_dev.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_mode: s64.st_mode.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_nlink: s64.st_nlink.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_uid: s64.st_uid.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_gid: s64.st_gid.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_rdev: s64.st_rdev.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_size: s64.st_size.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_blksize: s64.st_blksize.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_blocks: s64.st_blocks.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_atime: i64::from(s64.st_atime),
+ st_atime_nsec: s64
+ .st_atime_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ st_mtime: i64::from(s64.st_mtime),
+ st_mtime_nsec: s64
+ .st_mtime_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ st_ctime: i64::from(s64.st_ctime),
+ st_ctime_nsec: s64
+ .st_ctime_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ st_ino: s64.st_ino.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ })
+}
+
+/// Convert from a Linux `stat64` value to rustix's `Stat`.
+///
+/// mips64' `struct stat64` in libc has private fields, and `st_blocks` has
+/// type `i64`.
+#[cfg(all(linux_kernel, any(target_arch = "mips64", target_arch = "mips64r6")))]
+fn stat64_to_stat(s64: c::stat64) -> io::Result<Stat> {
+ let mut result: Stat = unsafe { core::mem::zeroed() };
+
+ result.st_dev = s64.st_dev.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+ result.st_mode = s64.st_mode.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+ result.st_nlink = s64.st_nlink.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+ result.st_uid = s64.st_uid.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+ result.st_gid = s64.st_gid.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+ result.st_rdev = s64.st_rdev.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+ result.st_size = s64.st_size.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+ result.st_blksize = s64.st_blksize.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+ result.st_blocks = s64.st_blocks.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+ result.st_atime = i64::from(s64.st_atime) as _;
+ result.st_atime_nsec = s64
+ .st_atime_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?;
+ result.st_mtime = i64::from(s64.st_mtime) as _;
+ result.st_mtime_nsec = s64
+ .st_mtime_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?;
+ result.st_ctime = i64::from(s64.st_ctime) as _;
+ result.st_ctime_nsec = s64
+ .st_ctime_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?;
+ result.st_ino = s64.st_ino.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+
+ Ok(result)
+}
+
+#[cfg(linux_kernel)]
+#[allow(non_upper_case_globals)]
+mod sys {
+ use super::{c, ffi, BorrowedFd, Statx};
+
+ weak_or_syscall! {
+ pub(super) fn statx(
+ dirfd_: BorrowedFd<'_>,
+ path: *const ffi::c_char,
+ flags: c::c_int,
+ mask: c::c_uint,
+ buf: *mut Statx
+ ) via SYS_statx -> c::c_int
+ }
+}
+
+#[cfg(linux_kernel)]
+#[allow(non_upper_case_globals)]
+pub(crate) fn statx(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ flags: AtFlags,
+ mask: StatxFlags,
+) -> io::Result<Statx> {
+ // If a future Linux kernel adds more fields to `struct statx` and users
+ // passing flags unknown to rustix in `StatxFlags`, we could end up
+ // writing outside of the buffer. To prevent this possibility, we mask off
+ // any flags that we don't know about.
+ //
+ // This includes `STATX__RESERVED`, which has a value that we know, but
+ // which could take on arbitrary new meaning in the future. Linux currently
+ // rejects this flag with `EINVAL`, so we do the same.
+ //
+ // This doesn't rely on `STATX_ALL` because [it's deprecated] and already
+ // doesn't represent all the known flags.
+ //
+ // [it's deprecated]: https://patchwork.kernel.org/project/linux-fsdevel/patch/[email protected]/
+ #[cfg(not(any(target_os = "android", target_env = "musl")))]
+ const STATX__RESERVED: u32 = c::STATX__RESERVED as u32;
+ #[cfg(any(target_os = "android", target_env = "musl"))]
+ const STATX__RESERVED: u32 = linux_raw_sys::general::STATX__RESERVED;
+ if (mask.bits() & STATX__RESERVED) == STATX__RESERVED {
+ return Err(io::Errno::INVAL);
+ }
+ let mask = mask & StatxFlags::all();
+
+ let mut statx_buf = MaybeUninit::<Statx>::uninit();
+ unsafe {
+ ret(sys::statx(
+ dirfd,
+ c_str(path),
+ bitflags_bits!(flags),
+ mask.bits(),
+ statx_buf.as_mut_ptr(),
+ ))?;
+ Ok(statx_buf.assume_init())
+ }
+}
+
+#[cfg(all(linux_kernel, not(feature = "linux_4_11")))]
+#[inline]
+pub(crate) fn is_statx_available() -> bool {
+ unsafe {
+ // Call `statx` with null pointers so that if it fails for any reason
+ // other than `EFAULT`, we know it's not supported.
+ matches!(
+ ret(sys::statx(CWD, null(), 0, 0, null_mut())),
+ Err(io::Errno::FAULT)
+ )
+ }
+}
+
+#[cfg(apple)]
+pub(crate) unsafe fn fcopyfile(
+ from: BorrowedFd<'_>,
+ to: BorrowedFd<'_>,
+ state: copyfile_state_t,
+ flags: CopyfileFlags,
+) -> io::Result<()> {
+ extern "C" {
+ fn fcopyfile(
+ from: c::c_int,
+ to: c::c_int,
+ state: copyfile_state_t,
+ flags: c::c_uint,
+ ) -> c::c_int;
+ }
+
+ nonnegative_ret(fcopyfile(
+ borrowed_fd(from),
+ borrowed_fd(to),
+ state,
+ bitflags_bits!(flags),
+ ))
+}
+
+#[cfg(apple)]
+pub(crate) fn copyfile_state_alloc() -> io::Result<copyfile_state_t> {
+ extern "C" {
+ fn copyfile_state_alloc() -> copyfile_state_t;
+ }
+
+ let result = unsafe { copyfile_state_alloc() };
+ if result.0.is_null() {
+ Err(io::Errno::last_os_error())
+ } else {
+ Ok(result)
+ }
+}
+
+#[cfg(apple)]
+pub(crate) unsafe fn copyfile_state_free(state: copyfile_state_t) -> io::Result<()> {
+ extern "C" {
+ fn copyfile_state_free(state: copyfile_state_t) -> c::c_int;
+ }
+
+ nonnegative_ret(copyfile_state_free(state))
+}
+
+#[cfg(apple)]
+const COPYFILE_STATE_COPIED: u32 = 8;
+
+#[cfg(apple)]
+pub(crate) unsafe fn copyfile_state_get_copied(state: copyfile_state_t) -> io::Result<u64> {
+ let mut copied = MaybeUninit::<u64>::uninit();
+ copyfile_state_get(state, COPYFILE_STATE_COPIED, copied.as_mut_ptr().cast())?;
+ Ok(copied.assume_init())
+}
+
+#[cfg(apple)]
+pub(crate) unsafe fn copyfile_state_get(
+ state: copyfile_state_t,
+ flag: u32,
+ dst: *mut c::c_void,
+) -> io::Result<()> {
+ extern "C" {
+ fn copyfile_state_get(state: copyfile_state_t, flag: u32, dst: *mut c::c_void) -> c::c_int;
+ }
+
+ nonnegative_ret(copyfile_state_get(state, flag, dst))
+}
+
+#[cfg(all(apple, feature = "alloc"))]
+pub(crate) fn getpath(fd: BorrowedFd<'_>) -> io::Result<CString> {
+ // The use of `PATH_MAX` is generally not encouraged, but it
+ // is inevitable in this case because macOS defines `fcntl` with
+ // `F_GETPATH` in terms of `MAXPATHLEN`, and there are no
+ // alternatives. If a better method is invented, it should be used
+ // instead.
+ let mut buf = vec![0; c::PATH_MAX as usize];
+
+ // From the [macOS `fcntl` manual page]:
+ // `F_GETPATH` - Get the path of the file descriptor `Fildes`. The argument
+ // must be a buffer of size `MAXPATHLEN` or greater.
+ //
+ // [macOS `fcntl` manual page]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html
+ unsafe {
+ ret(c::fcntl(borrowed_fd(fd), c::F_GETPATH, buf.as_mut_ptr()))?;
+ }
+
+ let l = buf.iter().position(|&c| c == 0).unwrap();
+ buf.truncate(l);
+ buf.shrink_to_fit();
+
+ Ok(CString::new(buf).unwrap())
+}
+
+#[cfg(apple)]
+pub(crate) fn fcntl_rdadvise(fd: BorrowedFd<'_>, offset: u64, len: u64) -> io::Result<()> {
+ // From the [macOS `fcntl` manual page]:
+ // `F_RDADVISE` - Issue an advisory read async with no copy to user.
+ //
+ // The `F_RDADVISE` command operates on the following structure which holds
+ // information passed from the user to the system:
+ //
+ // ```c
+ // struct radvisory {
+ // off_t ra_offset; /* offset into the file */
+ // int ra_count; /* size of the read */
+ // };
+ // ```
+ //
+ // [macOS `fcntl` manual page]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html
+ let ra_offset = match offset.try_into() {
+ Ok(len) => len,
+ // If this conversion fails, the user is providing an offset outside
+ // any possible file extent, so just ignore it.
+ Err(_) => return Ok(()),
+ };
+ let ra_count = match len.try_into() {
+ Ok(len) => len,
+ // If this conversion fails, the user is providing a dubiously large
+ // hint which is unlikely to improve performance.
+ Err(_) => return Ok(()),
+ };
+ unsafe {
+ let radvisory = c::radvisory {
+ ra_offset,
+ ra_count,
+ };
+ ret(c::fcntl(borrowed_fd(fd), c::F_RDADVISE, &radvisory))
+ }
+}
+
+#[cfg(apple)]
+pub(crate) fn fcntl_fullfsync(fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe { ret(c::fcntl(borrowed_fd(fd), c::F_FULLFSYNC)) }
+}
+
+#[cfg(apple)]
+pub(crate) fn fcntl_nocache(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ unsafe { ret(c::fcntl(borrowed_fd(fd), c::F_NOCACHE, value as c::c_int)) }
+}
+
+#[cfg(apple)]
+pub(crate) fn fcntl_global_nocache(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ unsafe {
+ ret(c::fcntl(
+ borrowed_fd(fd),
+ c::F_GLOBAL_NOCACHE,
+ value as c::c_int,
+ ))
+ }
+}
+
+/// Convert `times` from a `futimens`/`utimensat` argument into `setattrlist`
+/// arguments.
+#[cfg(apple)]
+fn times_to_attrlist(times: &Timestamps) -> io::Result<(c::size_t, [c::timespec; 2], Attrlist)> {
+ // ABI details.
+ const ATTR_CMN_MODTIME: u32 = 0x0000_0400;
+ const ATTR_CMN_ACCTIME: u32 = 0x0000_1000;
+ const ATTR_BIT_MAP_COUNT: u16 = 5;
+
+ let mut times = times.clone();
+
+ // If we have any `UTIME_NOW` elements, replace them with the current time.
+ if times.last_access.tv_nsec == c::UTIME_NOW.into()
+ || times.last_modification.tv_nsec == c::UTIME_NOW.into()
+ {
+ let now = {
+ let mut tv = c::timeval {
+ tv_sec: 0,
+ tv_usec: 0,
+ };
+ unsafe {
+ let r = c::gettimeofday(&mut tv, null_mut());
+ assert_eq!(r, 0);
+ }
+ c::timespec {
+ tv_sec: tv.tv_sec,
+ tv_nsec: (tv.tv_usec * 1000) as _,
+ }
+ };
+ if times.last_access.tv_nsec == c::UTIME_NOW.into() {
+ times.last_access = crate::timespec::Timespec {
+ tv_sec: now.tv_sec.into(),
+ tv_nsec: now.tv_nsec as _,
+ };
+ }
+ if times.last_modification.tv_nsec == c::UTIME_NOW.into() {
+ times.last_modification = crate::timespec::Timespec {
+ tv_sec: now.tv_sec.into(),
+ tv_nsec: now.tv_nsec as _,
+ };
+ }
+ }
+
+ // Pack the return values following the rules for [`getattrlist`].
+ //
+ // [`getattrlist`]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/getattrlist.2.html
+ let mut times_size = 0;
+ let mut attrs = Attrlist {
+ bitmapcount: ATTR_BIT_MAP_COUNT,
+ reserved: 0,
+ commonattr: 0,
+ volattr: 0,
+ dirattr: 0,
+ fileattr: 0,
+ forkattr: 0,
+ };
+ let mut return_times = [c::timespec {
+ tv_sec: 0,
+ tv_nsec: 0,
+ }; 2];
+ let mut times_index = 0;
+ if times.last_modification.tv_nsec != c::UTIME_OMIT.into() {
+ attrs.commonattr |= ATTR_CMN_MODTIME;
+ return_times[times_index] = c::timespec {
+ tv_sec: times
+ .last_modification
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: times.last_modification.tv_nsec as _,
+ };
+ times_index += 1;
+ times_size += size_of::<c::timespec>();
+ }
+ if times.last_access.tv_nsec != c::UTIME_OMIT.into() {
+ attrs.commonattr |= ATTR_CMN_ACCTIME;
+ return_times[times_index] = c::timespec {
+ tv_sec: times
+ .last_access
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: times.last_access.tv_nsec as _,
+ };
+ times_size += size_of::<c::timespec>();
+ }
+
+ Ok((times_size, return_times, attrs))
+}
+
+/// Support type for `Attrlist`.
+#[cfg(apple)]
+type Attrgroup = u32;
+
+/// Attribute list for use with [`setattrlist`].
+#[cfg(apple)]
+#[repr(C)]
+struct Attrlist {
+ bitmapcount: u16,
+ reserved: u16,
+ commonattr: Attrgroup,
+ volattr: Attrgroup,
+ dirattr: Attrgroup,
+ fileattr: Attrgroup,
+ forkattr: Attrgroup,
+}
+
+#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
+pub(crate) unsafe fn getxattr(
+ path: &CStr,
+ name: &CStr,
+ value: (*mut u8, usize),
+) -> io::Result<usize> {
+ #[cfg(not(apple))]
+ {
+ ret_usize(c::getxattr(
+ path.as_ptr(),
+ name.as_ptr(),
+ value.0.cast::<c::c_void>(),
+ value.1,
+ ))
+ }
+
+ #[cfg(apple)]
+ {
+ // Passing an empty to slice to `getxattr` leads to `ERANGE` on macOS.
+ // Pass null instead.
+ let ptr = if value.1 == 0 {
+ core::ptr::null_mut()
+ } else {
+ value.0.cast::<c::c_void>()
+ };
+ ret_usize(c::getxattr(
+ path.as_ptr(),
+ name.as_ptr(),
+ ptr,
+ value.1,
+ 0,
+ 0,
+ ))
+ }
+}
+
+#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
+pub(crate) unsafe fn lgetxattr(
+ path: &CStr,
+ name: &CStr,
+ value: (*mut u8, usize),
+) -> io::Result<usize> {
+ #[cfg(not(apple))]
+ {
+ ret_usize(c::lgetxattr(
+ path.as_ptr(),
+ name.as_ptr(),
+ value.0.cast::<c::c_void>(),
+ value.1,
+ ))
+ }
+
+ #[cfg(apple)]
+ {
+ // Passing an empty to slice to `getxattr` leads to `ERANGE` on macOS.
+ // Pass null instead.
+ let ptr = if value.1 == 0 {
+ core::ptr::null_mut()
+ } else {
+ value.0.cast::<c::c_void>()
+ };
+
+ ret_usize(c::getxattr(
+ path.as_ptr(),
+ name.as_ptr(),
+ ptr,
+ value.1,
+ 0,
+ c::XATTR_NOFOLLOW,
+ ))
+ }
+}
+
+#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
+pub(crate) unsafe fn fgetxattr(
+ fd: BorrowedFd<'_>,
+ name: &CStr,
+ value: (*mut u8, usize),
+) -> io::Result<usize> {
+ #[cfg(not(apple))]
+ {
+ ret_usize(c::fgetxattr(
+ borrowed_fd(fd),
+ name.as_ptr(),
+ value.0.cast::<c::c_void>(),
+ value.1,
+ ))
+ }
+
+ #[cfg(apple)]
+ {
+ // Passing an empty to slice to `getxattr` leads to `ERANGE` on macOS.
+ // Pass null instead.
+ let ptr = if value.1 == 0 {
+ core::ptr::null_mut()
+ } else {
+ value.0.cast::<c::c_void>()
+ };
+ ret_usize(c::fgetxattr(
+ borrowed_fd(fd),
+ name.as_ptr(),
+ ptr,
+ value.1,
+ 0,
+ 0,
+ ))
+ }
+}
+
+#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
+pub(crate) fn setxattr(
+ path: &CStr,
+ name: &CStr,
+ value: &[u8],
+ flags: XattrFlags,
+) -> io::Result<()> {
+ #[cfg(not(apple))]
+ unsafe {
+ ret(c::setxattr(
+ path.as_ptr(),
+ name.as_ptr(),
+ value.as_ptr().cast::<c::c_void>(),
+ value.len(),
+ flags.bits() as i32,
+ ))
+ }
+
+ #[cfg(apple)]
+ unsafe {
+ ret(c::setxattr(
+ path.as_ptr(),
+ name.as_ptr(),
+ value.as_ptr().cast::<c::c_void>(),
+ value.len(),
+ 0,
+ flags.bits() as i32,
+ ))
+ }
+}
+
+#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
+pub(crate) fn lsetxattr(
+ path: &CStr,
+ name: &CStr,
+ value: &[u8],
+ flags: XattrFlags,
+) -> io::Result<()> {
+ #[cfg(not(apple))]
+ unsafe {
+ ret(c::lsetxattr(
+ path.as_ptr(),
+ name.as_ptr(),
+ value.as_ptr().cast::<c::c_void>(),
+ value.len(),
+ flags.bits() as i32,
+ ))
+ }
+
+ #[cfg(apple)]
+ unsafe {
+ ret(c::setxattr(
+ path.as_ptr(),
+ name.as_ptr(),
+ value.as_ptr().cast::<c::c_void>(),
+ value.len(),
+ 0,
+ flags.bits() as i32 | c::XATTR_NOFOLLOW,
+ ))
+ }
+}
+
+#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
+pub(crate) fn fsetxattr(
+ fd: BorrowedFd<'_>,
+ name: &CStr,
+ value: &[u8],
+ flags: XattrFlags,
+) -> io::Result<()> {
+ #[cfg(not(apple))]
+ unsafe {
+ ret(c::fsetxattr(
+ borrowed_fd(fd),
+ name.as_ptr(),
+ value.as_ptr().cast::<c::c_void>(),
+ value.len(),
+ flags.bits() as i32,
+ ))
+ }
+
+ #[cfg(apple)]
+ unsafe {
+ ret(c::fsetxattr(
+ borrowed_fd(fd),
+ name.as_ptr(),
+ value.as_ptr().cast::<c::c_void>(),
+ value.len(),
+ 0,
+ flags.bits() as i32,
+ ))
+ }
+}
+
+#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
+pub(crate) unsafe fn listxattr(path: &CStr, list: (*mut u8, usize)) -> io::Result<usize> {
+ #[cfg(not(apple))]
+ {
+ ret_usize(c::listxattr(
+ path.as_ptr(),
+ list.0.cast::<ffi::c_char>(),
+ list.1,
+ ))
+ }
+
+ #[cfg(apple)]
+ {
+ ret_usize(c::listxattr(
+ path.as_ptr(),
+ list.0.cast::<ffi::c_char>(),
+ list.1,
+ 0,
+ ))
+ }
+}
+
+#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
+pub(crate) unsafe fn llistxattr(path: &CStr, list: (*mut u8, usize)) -> io::Result<usize> {
+ #[cfg(not(apple))]
+ {
+ ret_usize(c::llistxattr(
+ path.as_ptr(),
+ list.0.cast::<ffi::c_char>(),
+ list.1,
+ ))
+ }
+
+ #[cfg(apple)]
+ {
+ ret_usize(c::listxattr(
+ path.as_ptr(),
+ list.0.cast::<ffi::c_char>(),
+ list.1,
+ c::XATTR_NOFOLLOW,
+ ))
+ }
+}
+
+#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
+pub(crate) unsafe fn flistxattr(fd: BorrowedFd<'_>, list: (*mut u8, usize)) -> io::Result<usize> {
+ let fd = borrowed_fd(fd);
+
+ #[cfg(not(apple))]
+ {
+ ret_usize(c::flistxattr(fd, list.0.cast::<ffi::c_char>(), list.1))
+ }
+
+ #[cfg(apple)]
+ {
+ ret_usize(c::flistxattr(fd, list.0.cast::<ffi::c_char>(), list.1, 0))
+ }
+}
+
+#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
+pub(crate) fn removexattr(path: &CStr, name: &CStr) -> io::Result<()> {
+ #[cfg(not(apple))]
+ unsafe {
+ ret(c::removexattr(path.as_ptr(), name.as_ptr()))
+ }
+
+ #[cfg(apple)]
+ unsafe {
+ ret(c::removexattr(path.as_ptr(), name.as_ptr(), 0))
+ }
+}
+
+#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
+pub(crate) fn lremovexattr(path: &CStr, name: &CStr) -> io::Result<()> {
+ #[cfg(not(apple))]
+ unsafe {
+ ret(c::lremovexattr(path.as_ptr(), name.as_ptr()))
+ }
+
+ #[cfg(apple)]
+ unsafe {
+ ret(c::removexattr(
+ path.as_ptr(),
+ name.as_ptr(),
+ c::XATTR_NOFOLLOW,
+ ))
+ }
+}
+
+#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
+pub(crate) fn fremovexattr(fd: BorrowedFd<'_>, name: &CStr) -> io::Result<()> {
+ let fd = borrowed_fd(fd);
+
+ #[cfg(not(apple))]
+ unsafe {
+ ret(c::fremovexattr(fd, name.as_ptr()))
+ }
+
+ #[cfg(apple)]
+ unsafe {
+ ret(c::fremovexattr(fd, name.as_ptr(), 0))
+ }
+}
+
+/// See [`crate::timespec::fix_negative_nsec`] for details.
+#[cfg(apple)]
+fn fix_negative_stat_nsecs(mut stat: Stat) -> Stat {
+ (stat.st_atime, stat.st_atime_nsec) =
+ crate::timespec::fix_negative_nsecs(stat.st_atime, stat.st_atime_nsec);
+ (stat.st_mtime, stat.st_mtime_nsec) =
+ crate::timespec::fix_negative_nsecs(stat.st_mtime, stat.st_mtime_nsec);
+ (stat.st_ctime, stat.st_ctime_nsec) =
+ crate::timespec::fix_negative_nsecs(stat.st_ctime, stat.st_ctime_nsec);
+ stat
+}
+
+#[inline]
+#[cfg(linux_kernel)]
+pub(crate) fn inotify_init1(flags: super::inotify::CreateFlags) -> io::Result<OwnedFd> {
+ // SAFETY: `inotify_init1` has no safety preconditions.
+ unsafe { ret_owned_fd(c::inotify_init1(bitflags_bits!(flags))) }
+}
+
+#[inline]
+#[cfg(linux_kernel)]
+pub(crate) fn inotify_add_watch(
+ inot: BorrowedFd<'_>,
+ path: &CStr,
+ flags: super::inotify::WatchFlags,
+) -> io::Result<i32> {
+ // SAFETY: The fd and path we are passing is guaranteed valid by the
+ // type system.
+ unsafe {
+ ret_c_int(c::inotify_add_watch(
+ borrowed_fd(inot),
+ c_str(path),
+ flags.bits(),
+ ))
+ }
+}
+
+#[inline]
+#[cfg(linux_kernel)]
+pub(crate) fn inotify_rm_watch(inot: BorrowedFd<'_>, wd: i32) -> io::Result<()> {
+ // Android's `inotify_rm_watch` takes `u32` despite that
+ // `inotify_add_watch` expects a `i32`.
+ #[cfg(target_os = "android")]
+ let wd = wd as u32;
+ // SAFETY: The fd is valid and closing an arbitrary wd is valid.
+ unsafe { ret(c::inotify_rm_watch(borrowed_fd(inot), wd)) }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_sizes() {
+ #[cfg(linux_kernel)]
+ assert_eq_size!(c::loff_t, u64);
+
+ // Assert that `Timestamps` has the expected layout. If we're not fixing
+ // y2038, libc's type should match ours. If we are, it's smaller.
+ #[cfg(not(fix_y2038))]
+ assert_eq_size!([c::timespec; 2], Timestamps);
+ #[cfg(fix_y2038)]
+ assert!(core::mem::size_of::<[c::timespec; 2]>() < core::mem::size_of::<Timestamps>());
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/fs/types.rs b/vendor/rustix-1.0.8/src/backend/libc/fs/types.rs
new file mode 100644
index 0000000..8f1f479
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/fs/types.rs
@@ -0,0 +1,1150 @@
+use crate::backend::c;
+use crate::ffi;
+use bitflags::bitflags;
+
+#[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "vita")))]
+bitflags! {
+ /// `*_OK` constants for use with [`accessat`].
+ ///
+ /// [`accessat`]: fn.accessat.html
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct Access: ffi::c_int {
+ /// `R_OK`
+ const READ_OK = c::R_OK;
+
+ /// `W_OK`
+ const WRITE_OK = c::W_OK;
+
+ /// `X_OK`
+ const EXEC_OK = c::X_OK;
+
+ /// `F_OK`
+ const EXISTS = c::F_OK;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "redox")))]
+bitflags! {
+ /// `AT_*` constants for use with [`openat`], [`statat`], and other `*at`
+ /// functions.
+ ///
+ /// [`openat`]: crate::fs::openat
+ /// [`statat`]: crate::fs::statat
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct AtFlags: u32 {
+ /// `AT_SYMLINK_NOFOLLOW`
+ const SYMLINK_NOFOLLOW = bitcast!(c::AT_SYMLINK_NOFOLLOW);
+
+ /// `AT_EACCESS`
+ #[cfg(not(target_os = "android"))]
+ const EACCESS = bitcast!(c::AT_EACCESS);
+
+ /// `AT_REMOVEDIR`
+ const REMOVEDIR = bitcast!(c::AT_REMOVEDIR);
+
+ /// `AT_SYMLINK_FOLLOW`
+ const SYMLINK_FOLLOW = bitcast!(c::AT_SYMLINK_FOLLOW);
+
+ /// `AT_NO_AUTOMOUNT`
+ #[cfg(any(linux_like, target_os = "fuchsia"))]
+ const NO_AUTOMOUNT = bitcast!(c::AT_NO_AUTOMOUNT);
+
+ /// `AT_EMPTY_PATH`
+ #[cfg(any(
+ linux_kernel,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ ))]
+ const EMPTY_PATH = bitcast!(c::AT_EMPTY_PATH);
+
+ /// `AT_RESOLVE_BENEATH`
+ #[cfg(target_os = "freebsd")]
+ const RESOLVE_BENEATH = bitcast!(c::AT_RESOLVE_BENEATH);
+
+ /// `AT_STATX_SYNC_AS_STAT`
+ #[cfg(all(target_os = "linux", target_env = "gnu"))]
+ const STATX_SYNC_AS_STAT = bitcast!(c::AT_STATX_SYNC_AS_STAT);
+
+ /// `AT_STATX_FORCE_SYNC`
+ #[cfg(all(target_os = "linux", target_env = "gnu"))]
+ const STATX_FORCE_SYNC = bitcast!(c::AT_STATX_FORCE_SYNC);
+
+ /// `AT_STATX_DONT_SYNC`
+ #[cfg(all(target_os = "linux", target_env = "gnu"))]
+ const STATX_DONT_SYNC = bitcast!(c::AT_STATX_DONT_SYNC);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(target_os = "horizon")]
+bitflags! {
+ /// `AT_*` constants for use with [`openat`], [`statat`], and other `*at`
+ /// functions.
+ ///
+ /// [`openat`]: crate::fs::openat
+ /// [`statat`]: crate::fs::statat
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct AtFlags: u32 {
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(not(target_os = "horizon"))]
+bitflags! {
+ /// `S_I*` constants for use with [`openat`], [`chmodat`], and [`fchmod`].
+ ///
+ /// [`openat`]: crate::fs::openat
+ /// [`chmodat`]: crate::fs::chmodat
+ /// [`fchmod`]: crate::fs::fchmod
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct Mode: RawMode {
+ /// `S_IRWXU`
+ #[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+ const RWXU = c::S_IRWXU as RawMode;
+
+ /// `S_IRUSR`
+ #[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+ const RUSR = c::S_IRUSR as RawMode;
+
+ /// `S_IWUSR`
+ #[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+ const WUSR = c::S_IWUSR as RawMode;
+
+ /// `S_IXUSR`
+ #[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+ const XUSR = c::S_IXUSR as RawMode;
+
+ /// `S_IRWXG`
+ #[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+ const RWXG = c::S_IRWXG as RawMode;
+
+ /// `S_IRGRP`
+ #[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+ const RGRP = c::S_IRGRP as RawMode;
+
+ /// `S_IWGRP`
+ #[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+ const WGRP = c::S_IWGRP as RawMode;
+
+ /// `S_IXGRP`
+ #[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+ const XGRP = c::S_IXGRP as RawMode;
+
+ /// `S_IRWXO`
+ #[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+ const RWXO = c::S_IRWXO as RawMode;
+
+ /// `S_IROTH`
+ #[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+ const ROTH = c::S_IROTH as RawMode;
+
+ /// `S_IWOTH`
+ #[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+ const WOTH = c::S_IWOTH as RawMode;
+
+ /// `S_IXOTH`
+ #[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+ const XOTH = c::S_IXOTH as RawMode;
+
+ /// `S_ISUID`
+ #[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+ const SUID = c::S_ISUID as RawMode;
+
+ /// `S_ISGID`
+ #[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+ const SGID = c::S_ISGID as RawMode;
+
+ /// `S_ISVTX`
+ #[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+ const SVTX = c::S_ISVTX as RawMode;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(target_os = "horizon")]
+bitflags! {
+ /// `S_I*` constants for use with [`openat`], [`chmodat`], and [`fchmod`].
+ ///
+ /// [`openat`]: crate::fs::openat
+ /// [`chmodat`]: crate::fs::chmodat
+ /// [`fchmod`]: crate::fs::fchmod
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct Mode: RawMode {
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(not(target_os = "espidf"))]
+impl Mode {
+ /// Construct a `Mode` from the mode bits of the `st_mode` field of a
+ /// `Mode`.
+ #[inline]
+ pub const fn from_raw_mode(st_mode: RawMode) -> Self {
+ Self::from_bits_truncate(st_mode & !c::S_IFMT as RawMode)
+ }
+
+ /// Construct an `st_mode` value from a `Mode`.
+ #[inline]
+ pub const fn as_raw_mode(self) -> RawMode {
+ self.bits()
+ }
+}
+
+#[cfg(not(target_os = "espidf"))]
+impl From<RawMode> for Mode {
+ /// Support conversions from raw mode values to `Mode`.
+ ///
+ /// ```
+ /// use rustix::fs::{Mode, RawMode};
+ /// assert_eq!(Mode::from(0o700), Mode::RWXU);
+ /// ```
+ #[inline]
+ fn from(st_mode: RawMode) -> Self {
+ Self::from_raw_mode(st_mode)
+ }
+}
+
+#[cfg(not(target_os = "espidf"))]
+impl From<Mode> for RawMode {
+ /// Support conversions from `Mode` to raw mode values.
+ ///
+ /// ```
+ /// use rustix::fs::{Mode, RawMode};
+ /// assert_eq!(RawMode::from(Mode::RWXU), 0o700);
+ /// ```
+ #[inline]
+ fn from(mode: Mode) -> Self {
+ mode.as_raw_mode()
+ }
+}
+
+bitflags! {
+ /// `O_*` constants for use with [`openat`].
+ ///
+ /// [`openat`]: crate::fs::openat
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct OFlags: u32 {
+ /// `O_ACCMODE`
+ const ACCMODE = bitcast!(c::O_ACCMODE);
+
+ /// Similar to `ACCMODE`, but just includes the read/write flags, and
+ /// no other flags.
+ ///
+ /// On some platforms, `PATH` may be included in `ACCMODE`, when
+ /// sometimes we really just want the read/write bits. Caution is
+ /// indicated, as the presence of `PATH` may mean that the read/write
+ /// bits don't have their usual meaning.
+ const RWMODE = bitcast!(c::O_RDONLY | c::O_WRONLY | c::O_RDWR);
+
+ /// `O_APPEND`
+ const APPEND = bitcast!(c::O_APPEND);
+
+ /// `O_CREAT`
+ #[doc(alias = "CREAT")]
+ const CREATE = bitcast!(c::O_CREAT);
+
+ /// `O_DIRECTORY`
+ #[cfg(not(any(target_os = "espidf", target_os = "horizon")))]
+ const DIRECTORY = bitcast!(c::O_DIRECTORY);
+
+ /// `O_DSYNC`
+ #[cfg(not(any(target_os = "dragonfly", target_os = "espidf", target_os = "horizon", target_os = "l4re", target_os = "redox", target_os = "vita")))]
+ const DSYNC = bitcast!(c::O_DSYNC);
+
+ /// `O_EXCL`
+ const EXCL = bitcast!(c::O_EXCL);
+
+ /// `O_FSYNC`
+ #[cfg(any(
+ bsd,
+ all(target_os = "linux", not(target_env = "musl")),
+ ))]
+ const FSYNC = bitcast!(c::O_FSYNC);
+
+ /// `O_NOFOLLOW`
+ #[cfg(not(any(target_os = "espidf", target_os = "horizon")))]
+ const NOFOLLOW = bitcast!(c::O_NOFOLLOW);
+
+ /// `O_NONBLOCK`
+ const NONBLOCK = bitcast!(c::O_NONBLOCK);
+
+ /// `O_RDONLY`
+ const RDONLY = bitcast!(c::O_RDONLY);
+
+ /// `O_WRONLY`
+ const WRONLY = bitcast!(c::O_WRONLY);
+
+ /// `O_RDWR`
+ ///
+ /// This is not equal to `RDONLY | WRONLY`. It's a distinct flag.
+ const RDWR = bitcast!(c::O_RDWR);
+
+ /// `O_NOCTTY`
+ #[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "l4re", target_os = "redox", target_os = "vita")))]
+ const NOCTTY = bitcast!(c::O_NOCTTY);
+
+ /// `O_RSYNC`
+ #[cfg(any(
+ linux_kernel,
+ netbsdlike,
+ solarish,
+ target_os = "emscripten",
+ target_os = "wasi",
+ ))]
+ const RSYNC = bitcast!(c::O_RSYNC);
+
+ /// `O_SYNC`
+ #[cfg(not(any(target_os = "l4re", target_os = "redox")))]
+ const SYNC = bitcast!(c::O_SYNC);
+
+ /// `O_TRUNC`
+ const TRUNC = bitcast!(c::O_TRUNC);
+
+ /// `O_PATH`
+ #[cfg(any(
+ linux_kernel,
+ target_os = "emscripten",
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "redox",
+ ))]
+ const PATH = bitcast!(c::O_PATH);
+
+ /// `O_CLOEXEC`
+ const CLOEXEC = bitcast!(c::O_CLOEXEC);
+
+ /// `O_TMPFILE`
+ #[cfg(any(
+ linux_kernel,
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ ))]
+ const TMPFILE = bitcast!(c::O_TMPFILE);
+
+ /// `O_NOATIME`
+ #[cfg(any(
+ linux_kernel,
+ target_os = "fuchsia",
+ ))]
+ const NOATIME = bitcast!(c::O_NOATIME);
+
+ /// `O_DIRECT`
+ #[cfg(any(
+ linux_kernel,
+ target_os = "emscripten",
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "netbsd",
+ ))]
+ const DIRECT = bitcast!(c::O_DIRECT);
+
+ /// `O_RESOLVE_BENEATH`
+ #[cfg(target_os = "freebsd")]
+ const RESOLVE_BENEATH = bitcast!(c::O_RESOLVE_BENEATH);
+
+ /// `O_EMPTY_PATH`
+ #[cfg(target_os = "freebsd")]
+ const EMPTY_PATH = bitcast!(c::O_EMPTY_PATH);
+
+ /// `O_LARGEFILE`
+ ///
+ /// Rustix and/or libc will automatically set this flag when
+ /// appropriate in the [`rustix::fs::open`] family of functions, so
+ /// typical users do not need to care about it. It may be reported in
+ /// the return of `fcntl_getfl`, though.
+ #[cfg(any(linux_kernel, solarish))]
+ const LARGEFILE = bitcast!(c::O_LARGEFILE);
+
+ /// `O_ASYNC`, `FASYNC`
+ ///
+ /// This flag can't be used with the [`rustix::fs::open`] family of
+ /// functions, use [`rustix::fs::fcntl_setfl`] instead.
+ #[cfg(not(any(
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "wasi",
+ target_os = "vita",
+ solarish
+ )))]
+ const ASYNC = bitcast!(c::O_ASYNC);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(apple)]
+bitflags! {
+ /// `CLONE_*` constants for use with [`fclonefileat`].
+ ///
+ /// [`fclonefileat`]: crate::fs::fclonefileat
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct CloneFlags: u32 {
+ /// `CLONE_NOFOLLOW`
+ const NOFOLLOW = 1;
+
+ /// `CLONE_NOOWNERCOPY`
+ const NOOWNERCOPY = 2;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(apple)]
+mod copyfile {
+ pub(super) const ACL: u32 = 1 << 0;
+ pub(super) const STAT: u32 = 1 << 1;
+ pub(super) const XATTR: u32 = 1 << 2;
+ pub(super) const DATA: u32 = 1 << 3;
+ pub(super) const SECURITY: u32 = STAT | ACL;
+ pub(super) const METADATA: u32 = SECURITY | XATTR;
+ pub(super) const ALL: u32 = METADATA | DATA;
+}
+
+#[cfg(apple)]
+bitflags! {
+ /// `COPYFILE_*` constants for use with [`fcopyfile`].
+ ///
+ /// [`fcopyfile`]: crate::fs::fcopyfile
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct CopyfileFlags: ffi::c_uint {
+ /// `COPYFILE_ACL`
+ const ACL = copyfile::ACL;
+
+ /// `COPYFILE_STAT`
+ const STAT = copyfile::STAT;
+
+ /// `COPYFILE_XATTR`
+ const XATTR = copyfile::XATTR;
+
+ /// `COPYFILE_DATA`
+ const DATA = copyfile::DATA;
+
+ /// `COPYFILE_SECURITY`
+ const SECURITY = copyfile::SECURITY;
+
+ /// `COPYFILE_METADATA`
+ const METADATA = copyfile::METADATA;
+
+ /// `COPYFILE_ALL`
+ const ALL = copyfile::ALL;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `RESOLVE_*` constants for use with [`openat2`].
+ ///
+ /// [`openat2`]: crate::fs::openat2
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ResolveFlags: u64 {
+ /// `RESOLVE_NO_XDEV`
+ const NO_XDEV = 0x01;
+
+ /// `RESOLVE_NO_MAGICLINKS`
+ const NO_MAGICLINKS = 0x02;
+
+ /// `RESOLVE_NO_SYMLINKS`
+ const NO_SYMLINKS = 0x04;
+
+ /// `RESOLVE_BENEATH`
+ const BENEATH = 0x08;
+
+ /// `RESOLVE_IN_ROOT`
+ const IN_ROOT = 0x10;
+
+ /// `RESOLVE_CACHED` (since Linux 5.12)
+ const CACHED = 0x20;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `RENAME_*` constants for use with [`renameat_with`].
+ ///
+ /// [`renameat_with`]: crate::fs::renameat_with
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct RenameFlags: ffi::c_uint {
+ /// `RENAME_EXCHANGE`
+ const EXCHANGE = bitcast!(c::RENAME_EXCHANGE);
+
+ /// `RENAME_NOREPLACE`
+ const NOREPLACE = bitcast!(c::RENAME_NOREPLACE);
+
+ /// `RENAME_WHITEOUT`
+ const WHITEOUT = bitcast!(c::RENAME_WHITEOUT);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(apple)]
+bitflags! {
+ /// `RENAME_*` constants for use with [`renameat_with`].
+ ///
+ /// [`renameat_with`]: crate::fs::renameat_with
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct RenameFlags: ffi::c_uint {
+ /// `RENAME_SWAP`
+ const EXCHANGE = bitcast!(c::RENAME_SWAP);
+
+ /// `RENAME_EXCL`
+ const NOREPLACE = bitcast!(c::RENAME_EXCL);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `S_IF*` constants for use with [`mknodat`] and [`Stat`]'s `st_mode` field.
+///
+/// [`mknodat`]: crate::fs::mknodat
+/// [`Stat`]: crate::fs::Stat
+#[derive(Clone, Copy, Debug, PartialEq, Eq)]
+pub enum FileType {
+ /// `S_IFREG`
+ RegularFile = c::S_IFREG as isize,
+
+ /// `S_IFDIR`
+ Directory = c::S_IFDIR as isize,
+
+ /// `S_IFLNK`
+ Symlink = c::S_IFLNK as isize,
+
+ /// `S_IFIFO`
+ #[cfg(not(target_os = "wasi"))] // TODO: Use WASI's `S_IFIFO`.
+ #[doc(alias = "IFO")]
+ Fifo = c::S_IFIFO as isize,
+
+ /// `S_IFSOCK`
+ #[cfg(not(target_os = "wasi"))] // TODO: Use WASI's `S_IFSOCK`.
+ Socket = c::S_IFSOCK as isize,
+
+ /// `S_IFCHR`
+ CharacterDevice = c::S_IFCHR as isize,
+
+ /// `S_IFBLK`
+ BlockDevice = c::S_IFBLK as isize,
+
+ /// An unknown filesystem object.
+ Unknown,
+}
+
+impl FileType {
+ /// Construct a `FileType` from the `S_IFMT` bits of the `st_mode` field of
+ /// a `Stat`.
+ #[inline]
+ pub const fn from_raw_mode(st_mode: RawMode) -> Self {
+ match (st_mode as c::mode_t) & c::S_IFMT {
+ c::S_IFREG => Self::RegularFile,
+ c::S_IFDIR => Self::Directory,
+ c::S_IFLNK => Self::Symlink,
+ #[cfg(not(target_os = "wasi"))] // TODO: Use WASI's `S_IFIFO`.
+ c::S_IFIFO => Self::Fifo,
+ #[cfg(not(target_os = "wasi"))] // TODO: Use WASI's `S_IFSOCK`.
+ c::S_IFSOCK => Self::Socket,
+ c::S_IFCHR => Self::CharacterDevice,
+ c::S_IFBLK => Self::BlockDevice,
+ _ => Self::Unknown,
+ }
+ }
+
+ /// Construct an `st_mode` value from a `FileType`.
+ #[inline]
+ pub const fn as_raw_mode(self) -> RawMode {
+ match self {
+ Self::RegularFile => c::S_IFREG as RawMode,
+ Self::Directory => c::S_IFDIR as RawMode,
+ Self::Symlink => c::S_IFLNK as RawMode,
+ #[cfg(not(target_os = "wasi"))] // TODO: Use WASI's `S_IFIFO`.
+ Self::Fifo => c::S_IFIFO as RawMode,
+ #[cfg(not(target_os = "wasi"))] // TODO: Use WASI's `S_IFSOCK`.
+ Self::Socket => c::S_IFSOCK as RawMode,
+ Self::CharacterDevice => c::S_IFCHR as RawMode,
+ Self::BlockDevice => c::S_IFBLK as RawMode,
+ Self::Unknown => c::S_IFMT as RawMode,
+ }
+ }
+
+ /// Construct a `FileType` from the `d_type` field of a `c::dirent`.
+ #[cfg(not(any(
+ solarish,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita"
+ )))]
+ #[inline]
+ pub(crate) const fn from_dirent_d_type(d_type: u8) -> Self {
+ match d_type {
+ c::DT_REG => Self::RegularFile,
+ c::DT_DIR => Self::Directory,
+ c::DT_LNK => Self::Symlink,
+ #[cfg(not(target_os = "wasi"))] // TODO: Use WASI's `DT_SOCK`.
+ c::DT_SOCK => Self::Socket,
+ #[cfg(not(target_os = "wasi"))] // TODO: Use WASI's `DT_FIFO`.
+ c::DT_FIFO => Self::Fifo,
+ c::DT_CHR => Self::CharacterDevice,
+ c::DT_BLK => Self::BlockDevice,
+ // c::DT_UNKNOWN |
+ _ => Self::Unknown,
+ }
+ }
+}
+
+/// `POSIX_FADV_*` constants for use with [`fadvise`].
+///
+/// [`fadvise`]: crate::fs::fadvise
+#[cfg(not(any(
+ apple,
+ netbsdlike,
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "haiku",
+ target_os = "redox",
+ target_os = "solaris",
+ target_os = "vita",
+)))]
+#[derive(Debug, Copy, Clone, Eq, PartialEq)]
+#[repr(u32)]
+pub enum Advice {
+ /// `POSIX_FADV_NORMAL`
+ Normal = c::POSIX_FADV_NORMAL as c::c_uint,
+
+ /// `POSIX_FADV_SEQUENTIAL`
+ Sequential = c::POSIX_FADV_SEQUENTIAL as c::c_uint,
+
+ /// `POSIX_FADV_RANDOM`
+ Random = c::POSIX_FADV_RANDOM as c::c_uint,
+
+ /// `POSIX_FADV_NOREUSE`
+ NoReuse = c::POSIX_FADV_NOREUSE as c::c_uint,
+
+ /// `POSIX_FADV_WILLNEED`
+ WillNeed = c::POSIX_FADV_WILLNEED as c::c_uint,
+
+ /// `POSIX_FADV_DONTNEED`
+ DontNeed = c::POSIX_FADV_DONTNEED as c::c_uint,
+}
+
+#[cfg(any(linux_kernel, target_os = "freebsd"))]
+bitflags! {
+ /// `MFD_*` constants for use with [`memfd_create`].
+ ///
+ /// [`memfd_create`]: crate::fs::memfd_create
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MemfdFlags: ffi::c_uint {
+ /// `MFD_CLOEXEC`
+ const CLOEXEC = c::MFD_CLOEXEC;
+
+ /// `MFD_ALLOW_SEALING`
+ const ALLOW_SEALING = c::MFD_ALLOW_SEALING;
+
+ /// `MFD_HUGETLB` (since Linux 4.14)
+ const HUGETLB = c::MFD_HUGETLB;
+
+ /// `MFD_NOEXEC_SEAL` (since Linux 6.3)
+ #[cfg(linux_kernel)]
+ const NOEXEC_SEAL = c::MFD_NOEXEC_SEAL;
+ /// `MFD_EXEC` (since Linux 6.3)
+ #[cfg(linux_kernel)]
+ const EXEC = c::MFD_EXEC;
+
+ /// `MFD_HUGE_64KB`
+ const HUGE_64KB = c::MFD_HUGE_64KB;
+ /// `MFD_HUGE_512JB`
+ const HUGE_512KB = c::MFD_HUGE_512KB;
+ /// `MFD_HUGE_1MB`
+ const HUGE_1MB = c::MFD_HUGE_1MB;
+ /// `MFD_HUGE_2MB`
+ const HUGE_2MB = c::MFD_HUGE_2MB;
+ /// `MFD_HUGE_8MB`
+ const HUGE_8MB = c::MFD_HUGE_8MB;
+ /// `MFD_HUGE_16MB`
+ const HUGE_16MB = c::MFD_HUGE_16MB;
+ /// `MFD_HUGE_32MB`
+ const HUGE_32MB = c::MFD_HUGE_32MB;
+ /// `MFD_HUGE_256MB`
+ const HUGE_256MB = c::MFD_HUGE_256MB;
+ /// `MFD_HUGE_512MB`
+ const HUGE_512MB = c::MFD_HUGE_512MB;
+ /// `MFD_HUGE_1GB`
+ const HUGE_1GB = c::MFD_HUGE_1GB;
+ /// `MFD_HUGE_2GB`
+ const HUGE_2GB = c::MFD_HUGE_2GB;
+ /// `MFD_HUGE_16GB`
+ const HUGE_16GB = c::MFD_HUGE_16GB;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(any(linux_kernel, target_os = "freebsd", target_os = "fuchsia"))]
+bitflags! {
+ /// `F_SEAL_*` constants for use with [`fcntl_add_seals`] and
+ /// [`fcntl_get_seals`].
+ ///
+ /// [`fcntl_add_seals`]: crate::fs::fcntl_add_seals
+ /// [`fcntl_get_seals`]: crate::fs::fcntl_get_seals
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct SealFlags: u32 {
+ /// `F_SEAL_SEAL`
+ const SEAL = bitcast!(c::F_SEAL_SEAL);
+ /// `F_SEAL_SHRINK`
+ const SHRINK = bitcast!(c::F_SEAL_SHRINK);
+ /// `F_SEAL_GROW`
+ const GROW = bitcast!(c::F_SEAL_GROW);
+ /// `F_SEAL_WRITE`
+ const WRITE = bitcast!(c::F_SEAL_WRITE);
+ /// `F_SEAL_FUTURE_WRITE` (since Linux 5.1)
+ #[cfg(linux_kernel)]
+ const FUTURE_WRITE = bitcast!(c::F_SEAL_FUTURE_WRITE);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(not(any(
+ netbsdlike,
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+bitflags! {
+ /// `FALLOC_FL_*` constants for use with [`fallocate`].
+ ///
+ /// [`fallocate`]: crate::fs::fallocate
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct FallocateFlags: u32 {
+ /// `FALLOC_FL_KEEP_SIZE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "wasi",
+ )))]
+ const KEEP_SIZE = bitcast!(c::FALLOC_FL_KEEP_SIZE);
+ /// `FALLOC_FL_PUNCH_HOLE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "wasi",
+ )))]
+ const PUNCH_HOLE = bitcast!(c::FALLOC_FL_PUNCH_HOLE);
+ /// `FALLOC_FL_NO_HIDE_STALE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "linux",
+ target_os = "wasi",
+ )))]
+ const NO_HIDE_STALE = bitcast!(c::FALLOC_FL_NO_HIDE_STALE);
+ /// `FALLOC_FL_COLLAPSE_RANGE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "emscripten",
+ target_os = "wasi",
+ )))]
+ const COLLAPSE_RANGE = bitcast!(c::FALLOC_FL_COLLAPSE_RANGE);
+ /// `FALLOC_FL_ZERO_RANGE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "emscripten",
+ target_os = "wasi",
+ )))]
+ const ZERO_RANGE = bitcast!(c::FALLOC_FL_ZERO_RANGE);
+ /// `FALLOC_FL_INSERT_RANGE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "emscripten",
+ target_os = "wasi",
+ )))]
+ const INSERT_RANGE = bitcast!(c::FALLOC_FL_INSERT_RANGE);
+ /// `FALLOC_FL_UNSHARE_RANGE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "emscripten",
+ target_os = "wasi",
+ )))]
+ const UNSHARE_RANGE = bitcast!(c::FALLOC_FL_UNSHARE_RANGE);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "wasi")))]
+bitflags! {
+ /// `ST_*` constants for use with [`StatVfs`].
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct StatVfsMountFlags: u64 {
+ /// `ST_MANDLOCK`
+ #[cfg(any(linux_kernel, target_os = "emscripten", target_os = "fuchsia"))]
+ const MANDLOCK = c::ST_MANDLOCK as u64;
+
+ /// `ST_NOATIME`
+ #[cfg(any(linux_kernel, target_os = "emscripten", target_os = "fuchsia"))]
+ const NOATIME = c::ST_NOATIME as u64;
+
+ /// `ST_NODEV`
+ #[cfg(any(
+ linux_kernel,
+ target_os = "aix",
+ target_os = "emscripten",
+ target_os = "fuchsia"
+ ))]
+ const NODEV = c::ST_NODEV as u64;
+
+ /// `ST_NODIRATIME`
+ #[cfg(any(linux_kernel, target_os = "emscripten", target_os = "fuchsia"))]
+ const NODIRATIME = c::ST_NODIRATIME as u64;
+
+ /// `ST_NOEXEC`
+ #[cfg(any(linux_kernel, target_os = "emscripten", target_os = "fuchsia"))]
+ const NOEXEC = c::ST_NOEXEC as u64;
+
+ /// `ST_NOSUID`
+ #[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "vita")))]
+ const NOSUID = c::ST_NOSUID as u64;
+
+ /// `ST_RDONLY`
+ #[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "vita")))]
+ const RDONLY = c::ST_RDONLY as u64;
+
+ /// `ST_RELATIME`
+ #[cfg(any(target_os = "android", all(target_os = "linux", target_env = "gnu")))]
+ const RELATIME = c::ST_RELATIME as u64;
+
+ /// `ST_SYNCHRONOUS`
+ #[cfg(any(linux_kernel, target_os = "emscripten", target_os = "fuchsia"))]
+ const SYNCHRONOUS = c::ST_SYNCHRONOUS as u64;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `LOCK_*` constants for use with [`flock`] and [`fcntl_lock`].
+///
+/// [`flock`]: crate::fs::flock
+/// [`fcntl_lock`]: crate::fs::fcntl_lock
+// Solaris doesn't support `flock` and doesn't define `LOCK_SH` etc., but we
+// reuse this `FlockOperation` enum for `fcntl_lock`, so on Solaris we use
+// our own made-up integer values.
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[derive(Clone, Copy, Debug, PartialEq, Eq)]
+#[repr(u32)]
+pub enum FlockOperation {
+ /// `LOCK_SH`
+ #[cfg(not(target_os = "solaris"))]
+ LockShared = bitcast!(c::LOCK_SH),
+ /// `LOCK_SH`
+ #[cfg(target_os = "solaris")]
+ LockShared = bitcast!(1),
+ /// `LOCK_EX`
+ #[cfg(not(target_os = "solaris"))]
+ LockExclusive = bitcast!(c::LOCK_EX),
+ /// `LOCK_EX`
+ #[cfg(target_os = "solaris")]
+ LockExclusive = bitcast!(2),
+ /// `LOCK_UN`
+ #[cfg(not(target_os = "solaris"))]
+ Unlock = bitcast!(c::LOCK_UN),
+ /// `LOCK_UN`
+ #[cfg(target_os = "solaris")]
+ Unlock = bitcast!(8),
+ /// `LOCK_SH | LOCK_NB`
+ #[cfg(not(target_os = "solaris"))]
+ NonBlockingLockShared = bitcast!(c::LOCK_SH | c::LOCK_NB),
+ /// `LOCK_SH | LOCK_NB`
+ #[cfg(target_os = "solaris")]
+ NonBlockingLockShared = bitcast!(1 | 4),
+ /// `LOCK_EX | LOCK_NB`
+ #[cfg(not(target_os = "solaris"))]
+ NonBlockingLockExclusive = bitcast!(c::LOCK_EX | c::LOCK_NB),
+ /// `LOCK_EX | LOCK_NB`
+ #[cfg(target_os = "solaris")]
+ NonBlockingLockExclusive = bitcast!(2 | 4),
+ /// `LOCK_UN | LOCK_NB`
+ #[cfg(not(target_os = "solaris"))]
+ NonBlockingUnlock = bitcast!(c::LOCK_UN | c::LOCK_NB),
+ /// `LOCK_UN | LOCK_NB`
+ #[cfg(target_os = "solaris")]
+ NonBlockingUnlock = bitcast!(8 | 4),
+}
+
+/// `struct stat` for use with [`statat`] and [`fstat`].
+///
+/// [`statat`]: crate::fs::statat
+/// [`fstat`]: crate::fs::fstat
+#[cfg(not(any(linux_like, target_os = "hurd", target_os = "netbsd")))]
+pub type Stat = c::stat;
+
+/// `struct stat` for use with [`statat`] and [`fstat`].
+///
+/// [`statat`]: crate::fs::statat
+/// [`fstat`]: crate::fs::fstat
+#[cfg(any(
+ all(linux_kernel, target_pointer_width = "64"),
+ target_os = "hurd",
+ target_os = "emscripten",
+ target_os = "l4re",
+))]
+pub type Stat = c::stat64;
+
+/// `struct stat` for use with [`statat`] and [`fstat`].
+///
+/// [`statat`]: crate::fs::statat
+/// [`fstat`]: crate::fs::fstat
+// On 32-bit, Linux's `struct stat64` has a 32-bit `st_mtime` and friends, so
+// we use our own struct, populated from `statx` where possible, to avoid the
+// y2038 bug.
+#[cfg(all(linux_kernel, target_pointer_width = "32"))]
+#[derive(Debug, Copy, Clone)]
+#[allow(missing_docs)]
+pub struct Stat {
+ pub st_dev: u64,
+ pub st_mode: u32,
+ pub st_nlink: u64,
+ pub st_uid: u32,
+ pub st_gid: u32,
+ pub st_rdev: u64,
+ pub st_size: i64,
+ pub st_blksize: u32,
+ pub st_blocks: u64,
+ pub st_atime: i64,
+ pub st_atime_nsec: u32,
+ pub st_mtime: i64,
+ pub st_mtime_nsec: u32,
+ pub st_ctime: i64,
+ pub st_ctime_nsec: u32,
+ pub st_ino: u64,
+}
+
+/// `struct stat` for use with [`statat`] and [`fstat`].
+///
+/// [`statat`]: crate::fs::statat
+/// [`fstat`]: crate::fs::fstat
+// NetBSD's `st_mtime_nsec` is named `st_mtimensec` so we declare our own
+// `Stat` so that we can be consistent with other platforms.
+#[cfg(target_os = "netbsd")]
+#[derive(Debug, Copy, Clone)]
+#[allow(missing_docs)]
+#[repr(C)]
+pub struct Stat {
+ pub st_dev: c::dev_t,
+ pub st_mode: c::mode_t,
+ pub st_ino: c::ino_t,
+ pub st_nlink: c::nlink_t,
+ pub st_uid: c::uid_t,
+ pub st_gid: c::gid_t,
+ pub st_rdev: c::dev_t,
+ pub st_atime: c::time_t,
+ pub st_atime_nsec: c::c_long,
+ pub st_mtime: c::time_t,
+ pub st_mtime_nsec: c::c_long,
+ pub st_ctime: c::time_t,
+ pub st_ctime_nsec: c::c_long,
+ pub st_birthtime: c::time_t,
+ pub st_birthtime_nsec: c::c_long,
+ pub st_size: c::off_t,
+ pub st_blocks: c::blkcnt_t,
+ pub st_blksize: c::blksize_t,
+ pub st_flags: u32,
+ pub st_gen: u32,
+ pub st_spare: [u32; 2],
+}
+
+/// `struct statfs` for use with [`statfs`] and [`fstatfs`].
+///
+/// [`statfs`]: crate::fs::statfs
+/// [`fstatfs`]: crate::fs::fstatfs
+#[cfg(not(any(
+ linux_like,
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "netbsd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+#[allow(clippy::module_name_repetitions)]
+pub type StatFs = c::statfs;
+
+/// `struct statfs` for use with [`statfs`] and [`fstatfs`].
+///
+/// [`statfs`]: crate::fs::statfs
+/// [`fstatfs`]: crate::fs::fstatfs
+#[cfg(linux_like)]
+pub type StatFs = c::statfs64;
+
+/// `fsid_t` for use with [`StatFs`].
+#[cfg(not(any(
+ solarish,
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+pub type Fsid = c::fsid_t;
+
+/// `struct statvfs` for use with [`statvfs`] and [`fstatvfs`].
+///
+/// [`statvfs`]: crate::fs::statvfs
+/// [`fstatvfs`]: crate::fs::fstatvfs
+#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "wasi")))]
+#[allow(missing_docs)]
+pub struct StatVfs {
+ pub f_bsize: u64,
+ pub f_frsize: u64,
+ pub f_blocks: u64,
+ pub f_bfree: u64,
+ pub f_bavail: u64,
+ pub f_files: u64,
+ pub f_ffree: u64,
+ pub f_favail: u64,
+ pub f_fsid: u64,
+ pub f_flag: StatVfsMountFlags,
+ pub f_namemax: u64,
+}
+
+/// `mode_t`
+#[cfg(not(all(target_os = "android", target_pointer_width = "32")))]
+pub type RawMode = c::mode_t;
+
+/// `mode_t`
+#[cfg(all(target_os = "android", target_pointer_width = "32"))]
+pub type RawMode = ffi::c_uint;
+
+/// `dev_t`
+#[cfg(not(all(target_os = "android", target_pointer_width = "32")))]
+pub type Dev = c::dev_t;
+
+/// `dev_t`
+#[cfg(all(target_os = "android", target_pointer_width = "32"))]
+pub type Dev = ffi::c_ulonglong;
+
+/// `__fsword_t`
+#[cfg(all(
+ target_os = "linux",
+ not(target_env = "musl"),
+ not(target_arch = "s390x"),
+))]
+pub type FsWord = c::__fsword_t;
+
+/// `__fsword_t`
+#[cfg(all(
+ any(target_os = "android", all(target_os = "linux", target_env = "musl")),
+ target_pointer_width = "32",
+))]
+pub type FsWord = u32;
+
+/// `__fsword_t`
+#[cfg(all(
+ any(target_os = "android", all(target_os = "linux", target_env = "musl")),
+ not(target_arch = "s390x"),
+ target_pointer_width = "64",
+))]
+pub type FsWord = u64;
+
+/// `__fsword_t`
+// s390x uses `u32` for `statfs` entries on glibc, even though `__fsword_t` is
+// `u64`.
+#[cfg(all(target_os = "linux", target_arch = "s390x", target_env = "gnu"))]
+pub type FsWord = u32;
+
+/// `__fsword_t`
+// s390x uses `u64` for `statfs` entries on musl.
+#[cfg(all(target_os = "linux", target_arch = "s390x", target_env = "musl"))]
+pub type FsWord = u64;
+
+/// `copyfile_state_t`—State for use with [`fcopyfile`].
+///
+/// [`fcopyfile`]: crate::fs::fcopyfile
+#[cfg(apple)]
+#[allow(non_camel_case_types)]
+#[repr(transparent)]
+#[derive(Copy, Clone)]
+pub struct copyfile_state_t(pub(crate) *mut c::c_void);
diff --git a/vendor/rustix-1.0.8/src/backend/libc/io/errno.rs b/vendor/rustix-1.0.8/src/backend/libc/io/errno.rs
new file mode 100644
index 0000000..81f0e48
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/io/errno.rs
@@ -0,0 +1,1114 @@
+//! The `rustix` `Errno` type.
+//!
+//! This type holds an OS error code, which conceptually corresponds to an
+//! `errno` value.
+
+use crate::backend::c;
+use libc_errno::errno;
+
+/// `errno`—An error code.
+///
+/// The error type for `rustix` APIs. This is similar to [`std::io::Error`],
+/// but only holds an OS error code, and no extra error value.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/errno.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/errno.3.html
+/// [Winsock]: https://learn.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?errno
+/// [NetBSD]: https://man.netbsd.org/errno.2
+/// [OpenBSD]: https://man.openbsd.org/errno.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=errno§ion=2
+/// [illumos]: https://illumos.org/man/3C/errno
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Error-Codes.html
+#[repr(transparent)]
+#[doc(alias = "errno")]
+#[derive(Eq, PartialEq, Hash, Copy, Clone)]
+pub struct Errno(pub(crate) c::c_int);
+
+impl Errno {
+ /// `EACCES`
+ #[doc(alias = "ACCES")]
+ pub const ACCESS: Self = Self(c::EACCES);
+ /// `EADDRINUSE`
+ pub const ADDRINUSE: Self = Self(c::EADDRINUSE);
+ /// `EADDRNOTAVAIL`
+ pub const ADDRNOTAVAIL: Self = Self(c::EADDRNOTAVAIL);
+ /// `EADV`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const ADV: Self = Self(c::EADV);
+ /// `EAFNOSUPPORT`
+ #[cfg(not(target_os = "l4re"))]
+ pub const AFNOSUPPORT: Self = Self(c::EAFNOSUPPORT);
+ /// `EAGAIN`
+ pub const AGAIN: Self = Self(c::EAGAIN);
+ /// `EALREADY`
+ #[cfg(not(target_os = "l4re"))]
+ pub const ALREADY: Self = Self(c::EALREADY);
+ /// `EAUTH`
+ #[cfg(bsd)]
+ pub const AUTH: Self = Self(c::EAUTH);
+ /// `EBADE`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const BADE: Self = Self(c::EBADE);
+ /// `EBADF`
+ pub const BADF: Self = Self(c::EBADF);
+ /// `EBADFD`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const BADFD: Self = Self(c::EBADFD);
+ /// `EBADMSG`
+ #[cfg(not(any(windows, target_os = "l4re")))]
+ pub const BADMSG: Self = Self(c::EBADMSG);
+ /// `EBADR`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const BADR: Self = Self(c::EBADR);
+ /// `EBADRPC`
+ #[cfg(bsd)]
+ pub const BADRPC: Self = Self(c::EBADRPC);
+ /// `EBADRQC`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const BADRQC: Self = Self(c::EBADRQC);
+ /// `EBADSLT`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const BADSLT: Self = Self(c::EBADSLT);
+ /// `EBFONT`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const BFONT: Self = Self(c::EBFONT);
+ /// `EBUSY`
+ #[cfg(not(windows))]
+ pub const BUSY: Self = Self(c::EBUSY);
+ /// `ECANCELED`
+ #[cfg(not(target_os = "l4re"))]
+ pub const CANCELED: Self = Self(c::ECANCELED);
+ /// `ECAPMODE`
+ #[cfg(target_os = "freebsd")]
+ pub const CAPMODE: Self = Self(c::ECAPMODE);
+ /// `ECHILD`
+ #[cfg(not(windows))]
+ pub const CHILD: Self = Self(c::ECHILD);
+ /// `ECHRNG`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi"
+ )))]
+ pub const CHRNG: Self = Self(c::ECHRNG);
+ /// `ECOMM`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const COMM: Self = Self(c::ECOMM);
+ /// `ECONNABORTED`
+ pub const CONNABORTED: Self = Self(c::ECONNABORTED);
+ /// `ECONNREFUSED`
+ pub const CONNREFUSED: Self = Self(c::ECONNREFUSED);
+ /// `ECONNRESET`
+ pub const CONNRESET: Self = Self(c::ECONNRESET);
+ /// `EDEADLK`
+ #[cfg(not(windows))]
+ pub const DEADLK: Self = Self(c::EDEADLK);
+ /// `EDEADLOCK`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "android",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const DEADLOCK: Self = Self(c::EDEADLOCK);
+ /// `EDESTADDRREQ`
+ #[cfg(not(target_os = "l4re"))]
+ pub const DESTADDRREQ: Self = Self(c::EDESTADDRREQ);
+ /// `EDISCON`
+ #[cfg(windows)]
+ pub const DISCON: Self = Self(c::EDISCON);
+ /// `EDOM`
+ #[cfg(not(windows))]
+ pub const DOM: Self = Self(c::EDOM);
+ /// `EDOOFUS`
+ #[cfg(freebsdlike)]
+ pub const DOOFUS: Self = Self(c::EDOOFUS);
+ /// `EDOTDOT`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "nto",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const DOTDOT: Self = Self(c::EDOTDOT);
+ /// `EDQUOT`
+ pub const DQUOT: Self = Self(c::EDQUOT);
+ /// `EEXIST`
+ #[cfg(not(windows))]
+ pub const EXIST: Self = Self(c::EEXIST);
+ /// `EFAULT`
+ pub const FAULT: Self = Self(c::EFAULT);
+ /// `EFBIG`
+ #[cfg(not(windows))]
+ pub const FBIG: Self = Self(c::EFBIG);
+ /// `EFTYPE`
+ #[cfg(any(bsd, target_env = "newlib"))]
+ pub const FTYPE: Self = Self(c::EFTYPE);
+ /// `EHOSTDOWN`
+ #[cfg(not(any(target_os = "l4re", target_os = "wasi")))]
+ pub const HOSTDOWN: Self = Self(c::EHOSTDOWN);
+ /// `EHOSTUNREACH`
+ pub const HOSTUNREACH: Self = Self(c::EHOSTUNREACH);
+ /// `EHWPOISON`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "android",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const HWPOISON: Self = Self(c::EHWPOISON);
+ /// `EIDRM`
+ #[cfg(not(any(windows, target_os = "l4re")))]
+ pub const IDRM: Self = Self(c::EIDRM);
+ /// `EILSEQ`
+ #[cfg(not(any(windows, target_os = "l4re")))]
+ pub const ILSEQ: Self = Self(c::EILSEQ);
+ /// `EINPROGRESS`
+ #[cfg(not(target_os = "l4re"))]
+ pub const INPROGRESS: Self = Self(c::EINPROGRESS);
+ /// `EINTR`
+ ///
+ /// For a convenient way to retry system calls that exit with `INTR`, use
+ /// [`retry_on_intr`].
+ ///
+ /// [`retry_on_intr`]: crate::io::retry_on_intr
+ pub const INTR: Self = Self(c::EINTR);
+ /// `EINVAL`
+ pub const INVAL: Self = Self(c::EINVAL);
+ /// `EINVALIDPROCTABLE`
+ #[cfg(windows)]
+ pub const INVALIDPROCTABLE: Self = Self(c::EINVALIDPROCTABLE);
+ /// `EINVALIDPROVIDER`
+ #[cfg(windows)]
+ pub const INVALIDPROVIDER: Self = Self(c::EINVALIDPROVIDER);
+ /// `EIO`
+ #[cfg(not(windows))]
+ pub const IO: Self = Self(c::EIO);
+ /// `EISCONN`
+ #[cfg(not(target_os = "l4re"))]
+ pub const ISCONN: Self = Self(c::EISCONN);
+ /// `EISDIR`
+ #[cfg(not(windows))]
+ pub const ISDIR: Self = Self(c::EISDIR);
+ /// `EISNAM`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "nto",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const ISNAM: Self = Self(c::EISNAM);
+ /// `EKEYEXPIRED`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "nto",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const KEYEXPIRED: Self = Self(c::EKEYEXPIRED);
+ /// `EKEYREJECTED`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "nto",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const KEYREJECTED: Self = Self(c::EKEYREJECTED);
+ /// `EKEYREVOKED`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "nto",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const KEYREVOKED: Self = Self(c::EKEYREVOKED);
+ /// `EL2HLT`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi"
+ )))]
+ pub const L2HLT: Self = Self(c::EL2HLT);
+ /// `EL2NSYNC`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi"
+ )))]
+ pub const L2NSYNC: Self = Self(c::EL2NSYNC);
+ /// `EL3HLT`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi"
+ )))]
+ pub const L3HLT: Self = Self(c::EL3HLT);
+ /// `EL3RST`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi"
+ )))]
+ pub const L3RST: Self = Self(c::EL3RST);
+ /// `ELIBACC`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const LIBACC: Self = Self(c::ELIBACC);
+ /// `ELIBBAD`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const LIBBAD: Self = Self(c::ELIBBAD);
+ /// `ELIBEXEC`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const LIBEXEC: Self = Self(c::ELIBEXEC);
+ /// `ELIBMAX`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const LIBMAX: Self = Self(c::ELIBMAX);
+ /// `ELIBSCN`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const LIBSCN: Self = Self(c::ELIBSCN);
+ /// `ELNRNG`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi"
+ )))]
+ pub const LNRNG: Self = Self(c::ELNRNG);
+ /// `ELOOP`
+ pub const LOOP: Self = Self(c::ELOOP);
+ /// `EMEDIUMTYPE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "nto",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const MEDIUMTYPE: Self = Self(c::EMEDIUMTYPE);
+ /// `EMFILE`
+ pub const MFILE: Self = Self(c::EMFILE);
+ /// `EMLINK`
+ #[cfg(not(windows))]
+ pub const MLINK: Self = Self(c::EMLINK);
+ /// `EMSGSIZE`
+ #[cfg(not(target_os = "l4re"))]
+ pub const MSGSIZE: Self = Self(c::EMSGSIZE);
+ /// `EMULTIHOP`
+ #[cfg(not(any(windows, target_os = "l4re", target_os = "openbsd")))]
+ pub const MULTIHOP: Self = Self(c::EMULTIHOP);
+ /// `ENAMETOOLONG`
+ pub const NAMETOOLONG: Self = Self(c::ENAMETOOLONG);
+ /// `ENAVAIL`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "nto",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const NAVAIL: Self = Self(c::ENAVAIL);
+ /// `ENEEDAUTH`
+ #[cfg(bsd)]
+ pub const NEEDAUTH: Self = Self(c::ENEEDAUTH);
+ /// `ENETDOWN`
+ pub const NETDOWN: Self = Self(c::ENETDOWN);
+ /// `ENETRESET`
+ #[cfg(not(target_os = "l4re"))]
+ pub const NETRESET: Self = Self(c::ENETRESET);
+ /// `ENETUNREACH`
+ pub const NETUNREACH: Self = Self(c::ENETUNREACH);
+ /// `ENFILE`
+ #[cfg(not(windows))]
+ pub const NFILE: Self = Self(c::ENFILE);
+ /// `ENOANO`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const NOANO: Self = Self(c::ENOANO);
+ /// `ENOATTR`
+ #[cfg(any(bsd, target_os = "haiku"))]
+ pub const NOATTR: Self = Self(c::ENOATTR);
+ /// `ENOBUFS`
+ #[cfg(not(target_os = "l4re"))]
+ pub const NOBUFS: Self = Self(c::ENOBUFS);
+ /// `ENOCSI`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi"
+ )))]
+ pub const NOCSI: Self = Self(c::ENOCSI);
+ /// `ENODATA`
+ #[cfg(not(any(
+ freebsdlike,
+ windows,
+ target_os = "haiku",
+ target_os = "openbsd",
+ target_os = "wasi",
+ )))]
+ pub const NODATA: Self = Self(c::ENODATA);
+ /// `ENODEV`
+ #[cfg(not(windows))]
+ pub const NODEV: Self = Self(c::ENODEV);
+ /// `ENOENT`
+ #[cfg(not(windows))]
+ pub const NOENT: Self = Self(c::ENOENT);
+ /// `ENOEXEC`
+ #[cfg(not(windows))]
+ pub const NOEXEC: Self = Self(c::ENOEXEC);
+ /// `ENOKEY`
+ #[cfg(not(any(
+ solarish,
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "nto",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const NOKEY: Self = Self(c::ENOKEY);
+ /// `ENOLCK`
+ #[cfg(not(any(windows, target_os = "l4re")))]
+ pub const NOLCK: Self = Self(c::ENOLCK);
+ /// `ENOLINK`
+ #[cfg(not(any(windows, target_os = "l4re", target_os = "openbsd")))]
+ pub const NOLINK: Self = Self(c::ENOLINK);
+ /// `ENOMEDIUM`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "nto",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const NOMEDIUM: Self = Self(c::ENOMEDIUM);
+ /// `ENOMEM`
+ #[cfg(not(windows))]
+ pub const NOMEM: Self = Self(c::ENOMEM);
+ /// `ENOMORE`
+ #[cfg(windows)]
+ pub const NOMORE: Self = Self(c::ENOMORE);
+ /// `ENOMSG`
+ #[cfg(not(any(windows, target_os = "l4re")))]
+ pub const NOMSG: Self = Self(c::ENOMSG);
+ /// `ENONET`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const NONET: Self = Self(c::ENONET);
+ /// `ENOPKG`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const NOPKG: Self = Self(c::ENOPKG);
+ /// `ENOPROTOOPT`
+ #[cfg(not(target_os = "l4re"))]
+ pub const NOPROTOOPT: Self = Self(c::ENOPROTOOPT);
+ /// `ENOSPC`
+ #[cfg(not(windows))]
+ pub const NOSPC: Self = Self(c::ENOSPC);
+ /// `ENOSR`
+ #[cfg(not(any(
+ freebsdlike,
+ windows,
+ target_os = "haiku",
+ target_os = "l4re",
+ target_os = "openbsd",
+ target_os = "wasi",
+ )))]
+ pub const NOSR: Self = Self(c::ENOSR);
+ /// `ENOSTR`
+ #[cfg(not(any(
+ freebsdlike,
+ windows,
+ target_os = "haiku",
+ target_os = "l4re",
+ target_os = "openbsd",
+ target_os = "wasi",
+ )))]
+ pub const NOSTR: Self = Self(c::ENOSTR);
+ /// `ENOSYS`
+ #[cfg(not(windows))]
+ pub const NOSYS: Self = Self(c::ENOSYS);
+ /// `ENOTBLK`
+ #[cfg(not(any(
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+ )))]
+ pub const NOTBLK: Self = Self(c::ENOTBLK);
+ /// `ENOTCAPABLE`
+ #[cfg(any(target_os = "freebsd", target_os = "wasi"))]
+ pub const NOTCAPABLE: Self = Self(c::ENOTCAPABLE);
+ /// `ENOTCONN`
+ pub const NOTCONN: Self = Self(c::ENOTCONN);
+ /// `ENOTDIR`
+ #[cfg(not(windows))]
+ pub const NOTDIR: Self = Self(c::ENOTDIR);
+ /// `ENOTEMPTY`
+ pub const NOTEMPTY: Self = Self(c::ENOTEMPTY);
+ /// `ENOTNAM`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "nto",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const NOTNAM: Self = Self(c::ENOTNAM);
+ /// `ENOTRECOVERABLE`
+ #[cfg(not(any(
+ freebsdlike,
+ netbsdlike,
+ windows,
+ target_os = "haiku",
+ target_os = "l4re"
+ )))]
+ pub const NOTRECOVERABLE: Self = Self(c::ENOTRECOVERABLE);
+ /// `ENOTSOCK`
+ #[cfg(not(target_os = "l4re"))]
+ pub const NOTSOCK: Self = Self(c::ENOTSOCK);
+ /// `ENOTSUP`
+ #[cfg(not(any(windows, target_os = "redox")))]
+ pub const NOTSUP: Self = Self(c::ENOTSUP);
+ /// `ENOTTY`
+ #[cfg(not(windows))]
+ pub const NOTTY: Self = Self(c::ENOTTY);
+ /// `ENOTUNIQ`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const NOTUNIQ: Self = Self(c::ENOTUNIQ);
+ /// `ENXIO`
+ #[cfg(not(windows))]
+ pub const NXIO: Self = Self(c::ENXIO);
+ /// `EOPNOTSUPP`
+ pub const OPNOTSUPP: Self = Self(c::EOPNOTSUPP);
+ /// `EOVERFLOW`
+ #[cfg(not(any(windows, target_os = "l4re")))]
+ pub const OVERFLOW: Self = Self(c::EOVERFLOW);
+ /// `EOWNERDEAD`
+ #[cfg(not(any(
+ freebsdlike,
+ netbsdlike,
+ windows,
+ target_os = "haiku",
+ target_os = "l4re"
+ )))]
+ pub const OWNERDEAD: Self = Self(c::EOWNERDEAD);
+ /// `EPERM`
+ #[cfg(not(windows))]
+ pub const PERM: Self = Self(c::EPERM);
+ /// `EPFNOSUPPORT`
+ #[cfg(not(any(target_os = "l4re", target_os = "wasi")))]
+ pub const PFNOSUPPORT: Self = Self(c::EPFNOSUPPORT);
+ /// `EPIPE`
+ #[cfg(not(windows))]
+ pub const PIPE: Self = Self(c::EPIPE);
+ /// `EPROCLIM`
+ #[cfg(bsd)]
+ pub const PROCLIM: Self = Self(c::EPROCLIM);
+ /// `EPROCUNAVAIL`
+ #[cfg(bsd)]
+ pub const PROCUNAVAIL: Self = Self(c::EPROCUNAVAIL);
+ /// `EPROGMISMATCH`
+ #[cfg(bsd)]
+ pub const PROGMISMATCH: Self = Self(c::EPROGMISMATCH);
+ /// `EPROGUNAVAIL`
+ #[cfg(bsd)]
+ pub const PROGUNAVAIL: Self = Self(c::EPROGUNAVAIL);
+ /// `EPROTO`
+ #[cfg(not(any(windows, target_os = "l4re")))]
+ pub const PROTO: Self = Self(c::EPROTO);
+ /// `EPROTONOSUPPORT`
+ #[cfg(not(target_os = "l4re"))]
+ pub const PROTONOSUPPORT: Self = Self(c::EPROTONOSUPPORT);
+ /// `EPROTOTYPE`
+ #[cfg(not(target_os = "l4re"))]
+ pub const PROTOTYPE: Self = Self(c::EPROTOTYPE);
+ /// `EPROVIDERFAILEDINIT`
+ #[cfg(windows)]
+ pub const PROVIDERFAILEDINIT: Self = Self(c::EPROVIDERFAILEDINIT);
+ /// `ERANGE`
+ #[cfg(not(windows))]
+ pub const RANGE: Self = Self(c::ERANGE);
+ /// `EREFUSED`
+ #[cfg(windows)]
+ pub const REFUSED: Self = Self(c::EREFUSED);
+ /// `EREMCHG`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const REMCHG: Self = Self(c::EREMCHG);
+ /// `EREMOTE`
+ #[cfg(not(any(
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi"
+ )))]
+ pub const REMOTE: Self = Self(c::EREMOTE);
+ /// `EREMOTEIO`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "nto",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const REMOTEIO: Self = Self(c::EREMOTEIO);
+ /// `ERESTART`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const RESTART: Self = Self(c::ERESTART);
+ /// `ERFKILL`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "android",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const RFKILL: Self = Self(c::ERFKILL);
+ /// `EROFS`
+ #[cfg(not(windows))]
+ pub const ROFS: Self = Self(c::EROFS);
+ /// `ERPCMISMATCH`
+ #[cfg(bsd)]
+ pub const RPCMISMATCH: Self = Self(c::ERPCMISMATCH);
+ /// `ESHUTDOWN`
+ #[cfg(not(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi"
+ )))]
+ pub const SHUTDOWN: Self = Self(c::ESHUTDOWN);
+ /// `ESOCKTNOSUPPORT`
+ #[cfg(not(any(
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi"
+ )))]
+ pub const SOCKTNOSUPPORT: Self = Self(c::ESOCKTNOSUPPORT);
+ /// `ESPIPE`
+ #[cfg(not(windows))]
+ pub const SPIPE: Self = Self(c::ESPIPE);
+ /// `ESRCH`
+ #[cfg(not(windows))]
+ pub const SRCH: Self = Self(c::ESRCH);
+ /// `ESRMNT`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const SRMNT: Self = Self(c::ESRMNT);
+ /// `ESTALE`
+ pub const STALE: Self = Self(c::ESTALE);
+ /// `ESTRPIPE`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const STRPIPE: Self = Self(c::ESTRPIPE);
+ /// `ETIME`
+ #[cfg(not(any(
+ freebsdlike,
+ windows,
+ target_os = "l4re",
+ target_os = "openbsd",
+ target_os = "wasi"
+ )))]
+ pub const TIME: Self = Self(c::ETIME);
+ /// `ETIMEDOUT`
+ pub const TIMEDOUT: Self = Self(c::ETIMEDOUT);
+ /// `E2BIG`
+ #[cfg(not(windows))]
+ #[doc(alias = "2BIG")]
+ pub const TOOBIG: Self = Self(c::E2BIG);
+ /// `ETOOMANYREFS`
+ #[cfg(not(any(target_os = "haiku", target_os = "l4re", target_os = "wasi")))]
+ pub const TOOMANYREFS: Self = Self(c::ETOOMANYREFS);
+ /// `ETXTBSY`
+ #[cfg(not(windows))]
+ pub const TXTBSY: Self = Self(c::ETXTBSY);
+ /// `EUCLEAN`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "nto",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const UCLEAN: Self = Self(c::EUCLEAN);
+ /// `EUNATCH`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi"
+ )))]
+ pub const UNATCH: Self = Self(c::EUNATCH);
+ /// `EUSERS`
+ #[cfg(not(any(
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi"
+ )))]
+ pub const USERS: Self = Self(c::EUSERS);
+ /// `EWOULDBLOCK`
+ pub const WOULDBLOCK: Self = Self(c::EWOULDBLOCK);
+ /// `EXDEV`
+ #[cfg(not(windows))]
+ pub const XDEV: Self = Self(c::EXDEV);
+ /// `EXFULL`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "l4re",
+ target_os = "vita",
+ target_os = "wasi",
+ )))]
+ pub const XFULL: Self = Self(c::EXFULL);
+}
+
+impl Errno {
+ /// Extract an `Errno` value from a `std::io::Error`.
+ ///
+ /// This isn't a `From` conversion because it's expected to be relatively
+ /// uncommon.
+ #[cfg(feature = "std")]
+ #[inline]
+ pub fn from_io_error(io_err: &std::io::Error) -> Option<Self> {
+ io_err
+ .raw_os_error()
+ .and_then(|raw| if raw != 0 { Some(Self(raw)) } else { None })
+ }
+
+ /// Extract the raw OS error number from this error.
+ #[inline]
+ pub const fn raw_os_error(self) -> i32 {
+ self.0
+ }
+
+ /// Construct an `Errno` from a raw OS error number.
+ #[inline]
+ pub const fn from_raw_os_error(raw: i32) -> Self {
+ Self(raw)
+ }
+
+ pub(crate) fn last_os_error() -> Self {
+ Self(errno().0)
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/io/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/io/mod.rs
new file mode 100644
index 0000000..4873885
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/io/mod.rs
@@ -0,0 +1,6 @@
+pub(crate) mod errno;
+#[cfg(not(windows))]
+pub(crate) mod types;
+
+#[cfg_attr(windows, path = "windows_syscalls.rs")]
+pub(crate) mod syscalls;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/io/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/io/syscalls.rs
new file mode 100644
index 0000000..f1231aa
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/io/syscalls.rs
@@ -0,0 +1,303 @@
+//! libc syscalls supporting `rustix::io`.
+
+use crate::backend::c;
+#[cfg(not(target_os = "wasi"))]
+use crate::backend::conv::ret_discarded_fd;
+use crate::backend::conv::{borrowed_fd, ret, ret_c_int, ret_owned_fd, ret_usize};
+use crate::fd::{AsFd as _, BorrowedFd, OwnedFd, RawFd};
+#[cfg(not(any(
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "nto",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+use crate::io::DupFlags;
+#[cfg(linux_kernel)]
+use crate::io::ReadWriteFlags;
+use crate::io::{self, FdFlags};
+use crate::ioctl::{IoctlOutput, Opcode};
+use core::cmp::min;
+#[cfg(not(any(target_os = "espidf", target_os = "horizon")))]
+use {
+ crate::backend::MAX_IOV,
+ crate::io::{IoSlice, IoSliceMut},
+};
+
+pub(crate) unsafe fn read(fd: BorrowedFd<'_>, buf: (*mut u8, usize)) -> io::Result<usize> {
+ ret_usize(c::read(
+ borrowed_fd(fd),
+ buf.0.cast(),
+ min(buf.1, READ_LIMIT),
+ ))
+}
+
+pub(crate) fn write(fd: BorrowedFd<'_>, buf: &[u8]) -> io::Result<usize> {
+ unsafe {
+ ret_usize(c::write(
+ borrowed_fd(fd),
+ buf.as_ptr().cast(),
+ min(buf.len(), READ_LIMIT),
+ ))
+ }
+}
+
+pub(crate) unsafe fn pread(
+ fd: BorrowedFd<'_>,
+ buf: (*mut u8, usize),
+ offset: u64,
+) -> io::Result<usize> {
+ let len = min(buf.1, READ_LIMIT);
+
+ // Silently cast; we'll get `EINVAL` if the value is negative.
+ let offset = offset as i64;
+
+ // ESP-IDF and Vita don't support 64-bit offsets, for example.
+ let offset = offset.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+
+ ret_usize(c::pread(borrowed_fd(fd), buf.0.cast(), len, offset))
+}
+
+pub(crate) fn pwrite(fd: BorrowedFd<'_>, buf: &[u8], offset: u64) -> io::Result<usize> {
+ let len = min(buf.len(), READ_LIMIT);
+
+ // Silently cast; we'll get `EINVAL` if the value is negative.
+ let offset = offset as i64;
+
+ // ESP-IDF and Vita don't support 64-bit offsets, for example.
+ let offset = offset.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+
+ unsafe { ret_usize(c::pwrite(borrowed_fd(fd), buf.as_ptr().cast(), len, offset)) }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "horizon")))]
+pub(crate) fn readv(fd: BorrowedFd<'_>, bufs: &mut [IoSliceMut<'_>]) -> io::Result<usize> {
+ unsafe {
+ ret_usize(c::readv(
+ borrowed_fd(fd),
+ bufs.as_ptr().cast::<c::iovec>(),
+ min(bufs.len(), MAX_IOV) as c::c_int,
+ ))
+ }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "horizon")))]
+pub(crate) fn writev(fd: BorrowedFd<'_>, bufs: &[IoSlice<'_>]) -> io::Result<usize> {
+ unsafe {
+ ret_usize(c::writev(
+ borrowed_fd(fd),
+ bufs.as_ptr().cast::<c::iovec>(),
+ min(bufs.len(), MAX_IOV) as c::c_int,
+ ))
+ }
+}
+
+#[cfg(not(any(
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "solaris",
+ target_os = "vita",
+)))]
+pub(crate) fn preadv(
+ fd: BorrowedFd<'_>,
+ bufs: &mut [IoSliceMut<'_>],
+ offset: u64,
+) -> io::Result<usize> {
+ // Silently cast; we'll get `EINVAL` if the value is negative.
+ let offset = offset as i64;
+
+ // ESP-IDF and Vita don't support 64-bit offsets, for example.
+ let offset = offset.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+
+ unsafe {
+ ret_usize(c::preadv(
+ borrowed_fd(fd),
+ bufs.as_ptr().cast::<c::iovec>(),
+ min(bufs.len(), MAX_IOV) as c::c_int,
+ offset,
+ ))
+ }
+}
+
+#[cfg(not(any(
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "solaris",
+ target_os = "vita",
+)))]
+pub(crate) fn pwritev(fd: BorrowedFd<'_>, bufs: &[IoSlice<'_>], offset: u64) -> io::Result<usize> {
+ // Silently cast; we'll get `EINVAL` if the value is negative.
+ let offset = offset as i64;
+
+ // ESP-IDF and Vita don't support 64-bit offsets, for example.
+ let offset = offset.try_into().map_err(|_| io::Errno::OVERFLOW)?;
+
+ unsafe {
+ ret_usize(c::pwritev(
+ borrowed_fd(fd),
+ bufs.as_ptr().cast::<c::iovec>(),
+ min(bufs.len(), MAX_IOV) as c::c_int,
+ offset,
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn preadv2(
+ fd: BorrowedFd<'_>,
+ bufs: &mut [IoSliceMut<'_>],
+ offset: u64,
+ flags: ReadWriteFlags,
+) -> io::Result<usize> {
+ // Silently cast; we'll get `EINVAL` if the value is negative.
+ let offset = offset as i64;
+ unsafe {
+ ret_usize(c::preadv2(
+ borrowed_fd(fd),
+ bufs.as_ptr().cast::<c::iovec>(),
+ min(bufs.len(), MAX_IOV) as c::c_int,
+ offset,
+ bitflags_bits!(flags),
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn pwritev2(
+ fd: BorrowedFd<'_>,
+ bufs: &[IoSlice<'_>],
+ offset: u64,
+ flags: ReadWriteFlags,
+) -> io::Result<usize> {
+ // Silently cast; we'll get `EINVAL` if the value is negative.
+ let offset = offset as i64;
+ unsafe {
+ ret_usize(c::pwritev2(
+ borrowed_fd(fd),
+ bufs.as_ptr().cast::<c::iovec>(),
+ min(bufs.len(), MAX_IOV) as c::c_int,
+ offset,
+ bitflags_bits!(flags),
+ ))
+ }
+}
+
+// These functions are derived from Rust's library/std/src/sys/unix/fd.rs at
+// revision 326ef470a8b379a180d6dc4bbef08990698a737a.
+
+// The maximum read limit on most POSIX-like systems is `SSIZE_MAX`, with the
+// manual page quoting that if the count of bytes to read is greater than
+// `SSIZE_MAX` the result is “unspecified”.
+//
+// On macOS, however, apparently the 64-bit libc is either buggy or
+// intentionally showing odd behavior by rejecting any read with a size larger
+// than or equal to `INT_MAX`. To handle both of these the read size is capped
+// on both platforms.
+#[cfg(target_os = "macos")]
+const READ_LIMIT: usize = c::c_int::MAX as usize - 1;
+#[cfg(not(target_os = "macos"))]
+const READ_LIMIT: usize = c::ssize_t::MAX as usize;
+
+pub(crate) unsafe fn close(raw_fd: RawFd) {
+ let _ = c::close(raw_fd as c::c_int);
+}
+
+#[cfg(feature = "try_close")]
+pub(crate) unsafe fn try_close(raw_fd: RawFd) -> io::Result<()> {
+ ret(c::close(raw_fd as c::c_int))
+}
+
+#[inline]
+pub(crate) unsafe fn ioctl(
+ fd: BorrowedFd<'_>,
+ request: Opcode,
+ arg: *mut c::c_void,
+) -> io::Result<IoctlOutput> {
+ ret_c_int(c::ioctl(borrowed_fd(fd), request, arg))
+}
+
+#[inline]
+pub(crate) unsafe fn ioctl_readonly(
+ fd: BorrowedFd<'_>,
+ request: Opcode,
+ arg: *mut c::c_void,
+) -> io::Result<IoctlOutput> {
+ ioctl(fd, request, arg)
+}
+
+pub(crate) fn fcntl_getfd(fd: BorrowedFd<'_>) -> io::Result<FdFlags> {
+ let flags = unsafe { ret_c_int(c::fcntl(borrowed_fd(fd), c::F_GETFD))? };
+ Ok(FdFlags::from_bits_retain(bitcast!(flags)))
+}
+
+pub(crate) fn fcntl_setfd(fd: BorrowedFd<'_>, flags: FdFlags) -> io::Result<()> {
+ unsafe { ret(c::fcntl(borrowed_fd(fd), c::F_SETFD, flags.bits())) }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+pub(crate) fn fcntl_dupfd_cloexec(fd: BorrowedFd<'_>, min: RawFd) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(c::fcntl(borrowed_fd(fd), c::F_DUPFD_CLOEXEC, min)) }
+}
+
+#[cfg(target_os = "espidf")]
+pub(crate) fn fcntl_dupfd(fd: BorrowedFd<'_>, min: RawFd) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(c::fcntl(borrowed_fd(fd), c::F_DUPFD, min)) }
+}
+
+#[cfg(not(target_os = "wasi"))]
+pub(crate) fn dup(fd: BorrowedFd<'_>) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(c::dup(borrowed_fd(fd))) }
+}
+
+#[allow(clippy::needless_pass_by_ref_mut)]
+#[cfg(not(target_os = "wasi"))]
+pub(crate) fn dup2(fd: BorrowedFd<'_>, new: &mut OwnedFd) -> io::Result<()> {
+ unsafe { ret_discarded_fd(c::dup2(borrowed_fd(fd), borrowed_fd(new.as_fd()))) }
+}
+
+#[allow(clippy::needless_pass_by_ref_mut)]
+#[cfg(not(any(
+ apple,
+ target_os = "aix",
+ target_os = "android",
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+pub(crate) fn dup3(fd: BorrowedFd<'_>, new: &mut OwnedFd, flags: DupFlags) -> io::Result<()> {
+ unsafe {
+ ret_discarded_fd(c::dup3(
+ borrowed_fd(fd),
+ borrowed_fd(new.as_fd()),
+ bitflags_bits!(flags),
+ ))
+ }
+}
+
+#[cfg(any(
+ apple,
+ target_os = "android",
+ target_os = "dragonfly",
+ target_os = "haiku",
+ target_os = "redox",
+))]
+pub(crate) fn dup3(fd: BorrowedFd<'_>, new: &mut OwnedFd, _flags: DupFlags) -> io::Result<()> {
+ // Android 5.0 has `dup3`, but libc doesn't have bindings. Emulate it
+ // using `dup2`. We don't need to worry about the difference between
+ // `dup2` and `dup3` when the file descriptors are equal because we
+ // have an `&mut OwnedFd` which means `fd` doesn't alias it.
+ dup2(fd, new)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/io/types.rs b/vendor/rustix-1.0.8/src/backend/libc/io/types.rs
new file mode 100644
index 0000000..510206f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/io/types.rs
@@ -0,0 +1,65 @@
+use crate::backend::c;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `FD_*` constants for use with [`fcntl_getfd`] and [`fcntl_setfd`].
+ ///
+ /// [`fcntl_getfd`]: crate::io::fcntl_getfd
+ /// [`fcntl_setfd`]: crate::io::fcntl_setfd
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct FdFlags: u32 {
+ /// `FD_CLOEXEC`
+ const CLOEXEC = bitcast!(c::FD_CLOEXEC);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `RWF_*` constants for use with [`preadv2`] and [`pwritev2`].
+ ///
+ /// [`preadv2`]: crate::io::preadv2
+ /// [`pwritev2`]: crate::io::pwritev
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ReadWriteFlags: u32 {
+ /// `RWF_DSYNC` (since Linux 4.7)
+ const DSYNC = linux_raw_sys::general::RWF_DSYNC;
+ /// `RWF_HIPRI` (since Linux 4.6)
+ const HIPRI = linux_raw_sys::general::RWF_HIPRI;
+ /// `RWF_SYNC` (since Linux 4.7)
+ const SYNC = linux_raw_sys::general::RWF_SYNC;
+ /// `RWF_NOWAIT` (since Linux 4.14)
+ const NOWAIT = linux_raw_sys::general::RWF_NOWAIT;
+ /// `RWF_APPEND` (since Linux 4.16)
+ const APPEND = linux_raw_sys::general::RWF_APPEND;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(not(target_os = "wasi"))]
+bitflags! {
+ /// `O_*` constants for use with [`dup2`].
+ ///
+ /// [`dup2`]: crate::io::dup2
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct DupFlags: u32 {
+ /// `O_CLOEXEC`
+ #[cfg(not(any(
+ apple,
+ target_os = "aix",
+ target_os = "android",
+ target_os = "redox",
+ )))] // Android 5.0 has dup3, but libc doesn't have bindings
+ const CLOEXEC = bitcast!(c::O_CLOEXEC);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/io/windows_syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/io/windows_syscalls.rs
new file mode 100644
index 0000000..0f953d7
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/io/windows_syscalls.rs
@@ -0,0 +1,58 @@
+//! Windows system calls in the `io` module.
+
+use crate::backend::c;
+#[cfg(feature = "try_close")]
+use crate::backend::conv::ret;
+use crate::backend::conv::{borrowed_fd, ret_c_int, ret_send_recv, send_recv_len};
+use crate::fd::{BorrowedFd, RawFd};
+use crate::io;
+use crate::ioctl::{IoctlOutput, Opcode};
+
+pub(crate) unsafe fn read(fd: BorrowedFd<'_>, buf: (*mut u8, usize)) -> io::Result<usize> {
+ // `read` on a socket is equivalent to `recv` with no flags.
+ ret_send_recv(c::recv(
+ borrowed_fd(fd),
+ buf.0.cast(),
+ send_recv_len(buf.1),
+ 0,
+ ))
+}
+
+pub(crate) fn write(fd: BorrowedFd<'_>, buf: &[u8]) -> io::Result<usize> {
+ // `write` on a socket is equivalent to `send` with no flags.
+ unsafe {
+ ret_send_recv(c::send(
+ borrowed_fd(fd),
+ buf.as_ptr().cast(),
+ send_recv_len(buf.len()),
+ 0,
+ ))
+ }
+}
+
+pub(crate) unsafe fn close(raw_fd: RawFd) {
+ let _ = c::closesocket(raw_fd as c::SOCKET);
+}
+
+#[cfg(feature = "try_close")]
+pub(crate) unsafe fn try_close(raw_fd: RawFd) -> io::Result<()> {
+ ret(c::closesocket(raw_fd as c::SOCKET))
+}
+
+#[inline]
+pub(crate) unsafe fn ioctl(
+ fd: BorrowedFd<'_>,
+ request: Opcode,
+ arg: *mut c::c_void,
+) -> io::Result<IoctlOutput> {
+ ret_c_int(c::ioctl(borrowed_fd(fd), request, arg.cast()))
+}
+
+#[inline]
+pub(crate) unsafe fn ioctl_readonly(
+ fd: BorrowedFd<'_>,
+ request: Opcode,
+ arg: *mut c::c_void,
+) -> io::Result<IoctlOutput> {
+ ioctl(fd, request, arg)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/io_uring/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/io_uring/mod.rs
new file mode 100644
index 0000000..ef944f0
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/io_uring/mod.rs
@@ -0,0 +1 @@
+pub(crate) mod syscalls;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/io_uring/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/io_uring/syscalls.rs
new file mode 100644
index 0000000..8bf1e98
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/io_uring/syscalls.rs
@@ -0,0 +1,94 @@
+//! libc syscalls supporting `rustix::io_uring`.
+
+use crate::backend::c;
+use crate::backend::conv::{borrowed_fd, ret_owned_fd, ret_u32};
+use crate::fd::{BorrowedFd, OwnedFd};
+use crate::io;
+use crate::io_uring::{io_uring_params, IoringEnterFlags, IoringRegisterFlags, IoringRegisterOp};
+
+#[inline]
+pub(crate) fn io_uring_setup(entries: u32, params: &mut io_uring_params) -> io::Result<OwnedFd> {
+ syscall! {
+ fn io_uring_setup(
+ entries: u32,
+ params: *mut io_uring_params
+ ) via SYS_io_uring_setup -> c::c_int
+ }
+ unsafe { ret_owned_fd(io_uring_setup(entries, params)) }
+}
+
+#[inline]
+pub(crate) unsafe fn io_uring_register(
+ fd: BorrowedFd<'_>,
+ opcode: IoringRegisterOp,
+ arg: *const c::c_void,
+ nr_args: u32,
+) -> io::Result<u32> {
+ syscall! {
+ fn io_uring_register(
+ fd: c::c_uint,
+ opcode: c::c_uint,
+ arg: *const c::c_void,
+ nr_args: c::c_uint
+ ) via SYS_io_uring_register -> c::c_int
+ }
+ ret_u32(io_uring_register(
+ borrowed_fd(fd) as _,
+ opcode as u32,
+ arg,
+ nr_args,
+ ))
+}
+
+#[inline]
+pub(crate) unsafe fn io_uring_register_with(
+ fd: BorrowedFd<'_>,
+ opcode: IoringRegisterOp,
+ flags: IoringRegisterFlags,
+ arg: *const c::c_void,
+ nr_args: u32,
+) -> io::Result<u32> {
+ syscall! {
+ fn io_uring_register(
+ fd: c::c_uint,
+ opcode: c::c_uint,
+ arg: *const c::c_void,
+ nr_args: c::c_uint
+ ) via SYS_io_uring_register -> c::c_int
+ }
+ ret_u32(io_uring_register(
+ borrowed_fd(fd) as _,
+ (opcode as u32) | bitflags_bits!(flags),
+ arg,
+ nr_args,
+ ))
+}
+
+#[inline]
+pub(crate) unsafe fn io_uring_enter(
+ fd: BorrowedFd<'_>,
+ to_submit: u32,
+ min_complete: u32,
+ flags: IoringEnterFlags,
+ arg: *const c::c_void,
+ size: usize,
+) -> io::Result<u32> {
+ syscall! {
+ fn io_uring_enter2(
+ fd: c::c_uint,
+ to_submit: c::c_uint,
+ min_complete: c::c_uint,
+ flags: c::c_uint,
+ arg: *const c::c_void,
+ size: usize
+ ) via SYS_io_uring_enter -> c::c_int
+ }
+ ret_u32(io_uring_enter2(
+ borrowed_fd(fd) as _,
+ to_submit,
+ min_complete,
+ bitflags_bits!(flags),
+ arg,
+ size,
+ ))
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/mm/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/mm/mod.rs
new file mode 100644
index 0000000..1e0181a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/mm/mod.rs
@@ -0,0 +1,2 @@
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/mm/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/mm/syscalls.rs
new file mode 100644
index 0000000..33bc9ca
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/mm/syscalls.rs
@@ -0,0 +1,244 @@
+//! libc syscalls supporting `rustix::mm`.
+
+#[cfg(not(target_os = "redox"))]
+use super::types::Advice;
+#[cfg(any(linux_kernel, freebsdlike, netbsdlike))]
+use super::types::MlockAllFlags;
+#[cfg(any(target_os = "emscripten", target_os = "linux"))]
+use super::types::MremapFlags;
+use super::types::{MapFlags, MprotectFlags, MsyncFlags, ProtFlags};
+#[cfg(linux_kernel)]
+use super::types::{MlockFlags, UserfaultfdFlags};
+use crate::backend::c;
+#[cfg(linux_kernel)]
+use crate::backend::conv::ret_owned_fd;
+use crate::backend::conv::{borrowed_fd, no_fd, ret};
+use crate::fd::BorrowedFd;
+#[cfg(linux_kernel)]
+use crate::fd::OwnedFd;
+use crate::io;
+
+#[cfg(not(target_os = "redox"))]
+pub(crate) fn madvise(addr: *mut c::c_void, len: usize, advice: Advice) -> io::Result<()> {
+ // On Linux platforms, `MADV_DONTNEED` has the same value as
+ // `POSIX_MADV_DONTNEED` but different behavior. We remap it to a different
+ // value, and check for it here.
+ #[cfg(target_os = "linux")]
+ if let Advice::LinuxDontNeed = advice {
+ return unsafe { ret(c::madvise(addr, len, c::MADV_DONTNEED)) };
+ }
+
+ #[cfg(not(target_os = "android"))]
+ {
+ let err = unsafe { c::posix_madvise(addr, len, advice as c::c_int) };
+
+ // `posix_madvise` returns its error status rather than using `errno`.
+ if err == 0 {
+ Ok(())
+ } else {
+ Err(io::Errno(err))
+ }
+ }
+
+ #[cfg(target_os = "android")]
+ {
+ if let Advice::DontNeed = advice {
+ // Do nothing. Linux's `MADV_DONTNEED` isn't the same as
+ // `POSIX_MADV_DONTNEED`, so just discard `MADV_DONTNEED`.
+ Ok(())
+ } else {
+ unsafe { ret(c::madvise(addr, len, advice as c::c_int)) }
+ }
+ }
+}
+
+pub(crate) unsafe fn msync(addr: *mut c::c_void, len: usize, flags: MsyncFlags) -> io::Result<()> {
+ let err = c::msync(addr, len, bitflags_bits!(flags));
+
+ // `msync` returns its error status rather than using `errno`.
+ if err == 0 {
+ Ok(())
+ } else {
+ Err(io::Errno(err))
+ }
+}
+
+/// # Safety
+///
+/// `mmap` is primarily unsafe due to the `addr` parameter, as anything working
+/// with memory pointed to by raw pointers is unsafe.
+pub(crate) unsafe fn mmap(
+ ptr: *mut c::c_void,
+ len: usize,
+ prot: ProtFlags,
+ flags: MapFlags,
+ fd: BorrowedFd<'_>,
+ offset: u64,
+) -> io::Result<*mut c::c_void> {
+ let res = c::mmap(
+ ptr,
+ len,
+ bitflags_bits!(prot),
+ bitflags_bits!(flags),
+ borrowed_fd(fd),
+ offset as i64,
+ );
+ if res == c::MAP_FAILED {
+ Err(io::Errno::last_os_error())
+ } else {
+ Ok(res)
+ }
+}
+
+/// # Safety
+///
+/// `mmap` is primarily unsafe due to the `addr` parameter, as anything working
+/// with memory pointed to by raw pointers is unsafe.
+pub(crate) unsafe fn mmap_anonymous(
+ ptr: *mut c::c_void,
+ len: usize,
+ prot: ProtFlags,
+ flags: MapFlags,
+) -> io::Result<*mut c::c_void> {
+ let res = c::mmap(
+ ptr,
+ len,
+ bitflags_bits!(prot),
+ bitflags_bits!(flags | MapFlags::from_bits_retain(bitcast!(c::MAP_ANONYMOUS))),
+ no_fd(),
+ 0,
+ );
+ if res == c::MAP_FAILED {
+ Err(io::Errno::last_os_error())
+ } else {
+ Ok(res)
+ }
+}
+
+pub(crate) unsafe fn mprotect(
+ ptr: *mut c::c_void,
+ len: usize,
+ flags: MprotectFlags,
+) -> io::Result<()> {
+ ret(c::mprotect(ptr, len, bitflags_bits!(flags)))
+}
+
+pub(crate) unsafe fn munmap(ptr: *mut c::c_void, len: usize) -> io::Result<()> {
+ ret(c::munmap(ptr, len))
+}
+
+/// # Safety
+///
+/// `mremap` is primarily unsafe due to the `old_address` parameter, as
+/// anything working with memory pointed to by raw pointers is unsafe.
+#[cfg(any(target_os = "emscripten", target_os = "linux"))]
+pub(crate) unsafe fn mremap(
+ old_address: *mut c::c_void,
+ old_size: usize,
+ new_size: usize,
+ flags: MremapFlags,
+) -> io::Result<*mut c::c_void> {
+ let res = c::mremap(old_address, old_size, new_size, bitflags_bits!(flags));
+ if res == c::MAP_FAILED {
+ Err(io::Errno::last_os_error())
+ } else {
+ Ok(res)
+ }
+}
+
+/// # Safety
+///
+/// `mremap_fixed` is primarily unsafe due to the `old_address` and
+/// `new_address` parameters, as anything working with memory pointed to by raw
+/// pointers is unsafe.
+#[cfg(any(target_os = "emscripten", target_os = "linux"))]
+pub(crate) unsafe fn mremap_fixed(
+ old_address: *mut c::c_void,
+ old_size: usize,
+ new_size: usize,
+ flags: MremapFlags,
+ new_address: *mut c::c_void,
+) -> io::Result<*mut c::c_void> {
+ let res = c::mremap(
+ old_address,
+ old_size,
+ new_size,
+ bitflags_bits!(flags | MremapFlags::from_bits_retain(bitcast!(c::MAP_FIXED))),
+ new_address,
+ );
+ if res == c::MAP_FAILED {
+ Err(io::Errno::last_os_error())
+ } else {
+ Ok(res)
+ }
+}
+
+/// # Safety
+///
+/// `mlock` operates on raw pointers and may round out to the nearest page
+/// boundaries.
+#[inline]
+pub(crate) unsafe fn mlock(addr: *mut c::c_void, length: usize) -> io::Result<()> {
+ ret(c::mlock(addr, length))
+}
+
+/// # Safety
+///
+/// `mlock_with` operates on raw pointers and may round out to the nearest page
+/// boundaries.
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) unsafe fn mlock_with(
+ addr: *mut c::c_void,
+ length: usize,
+ flags: MlockFlags,
+) -> io::Result<()> {
+ weak_or_syscall! {
+ fn mlock2(
+ addr: *const c::c_void,
+ len: c::size_t,
+ flags: c::c_int
+ ) via SYS_mlock2 -> c::c_int
+ }
+
+ ret(mlock2(addr, length, bitflags_bits!(flags)))
+}
+
+/// # Safety
+///
+/// `munlock` operates on raw pointers and may round out to the nearest page
+/// boundaries.
+#[inline]
+pub(crate) unsafe fn munlock(addr: *mut c::c_void, length: usize) -> io::Result<()> {
+ ret(c::munlock(addr, length))
+}
+
+#[cfg(linux_kernel)]
+pub(crate) unsafe fn userfaultfd(flags: UserfaultfdFlags) -> io::Result<OwnedFd> {
+ syscall! {
+ fn userfaultfd(
+ flags: c::c_int
+ ) via SYS_userfaultfd -> c::c_int
+ }
+ ret_owned_fd(userfaultfd(bitflags_bits!(flags)))
+}
+
+/// Locks all pages mapped into the address space of the calling process.
+///
+/// This includes the pages of the code, data, and stack segment, as well as
+/// shared libraries, user space kernel data, shared memory, and memory-mapped
+/// files. All mapped pages are guaranteed to be resident in RAM when the call
+/// returns successfully; the pages are guaranteed to stay in RAM until later
+/// unlocked.
+#[inline]
+#[cfg(any(linux_kernel, freebsdlike, netbsdlike))]
+pub(crate) fn mlockall(flags: MlockAllFlags) -> io::Result<()> {
+ unsafe { ret(c::mlockall(bitflags_bits!(flags))) }
+}
+
+/// Unlocks all pages mapped into the address space of the calling process.
+#[inline]
+#[cfg(any(linux_kernel, freebsdlike, netbsdlike))]
+pub(crate) fn munlockall() -> io::Result<()> {
+ unsafe { ret(c::munlockall()) }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/mm/types.rs b/vendor/rustix-1.0.8/src/backend/libc/mm/types.rs
new file mode 100644
index 0000000..0b99e3c
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/mm/types.rs
@@ -0,0 +1,506 @@
+use crate::backend::c;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `PROT_*` flags for use with [`mmap`].
+ ///
+ /// For `PROT_NONE`, use `ProtFlags::empty()`.
+ ///
+ /// [`mmap`]: crate::mm::mmap
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ProtFlags: u32 {
+ /// `PROT_READ`
+ const READ = bitcast!(c::PROT_READ);
+ /// `PROT_WRITE`
+ const WRITE = bitcast!(c::PROT_WRITE);
+ /// `PROT_EXEC`
+ const EXEC = bitcast!(c::PROT_EXEC);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `PROT_*` flags for use with [`mprotect`].
+ ///
+ /// For `PROT_NONE`, use `MprotectFlags::empty()`.
+ ///
+ /// [`mprotect`]: crate::mm::mprotect
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MprotectFlags: u32 {
+ /// `PROT_READ`
+ const READ = bitcast!(c::PROT_READ);
+ /// `PROT_WRITE`
+ const WRITE = bitcast!(c::PROT_WRITE);
+ /// `PROT_EXEC`
+ const EXEC = bitcast!(c::PROT_EXEC);
+ /// `PROT_GROWSUP`
+ #[cfg(linux_kernel)]
+ const GROWSUP = bitcast!(c::PROT_GROWSUP);
+ /// `PROT_GROWSDOWN`
+ #[cfg(linux_kernel)]
+ const GROWSDOWN = bitcast!(c::PROT_GROWSDOWN);
+ /// `PROT_SEM`
+ #[cfg(linux_kernel)]
+ const SEM = linux_raw_sys::general::PROT_SEM;
+ /// `PROT_BTI`
+ #[cfg(all(linux_kernel, target_arch = "aarch64"))]
+ const BTI = linux_raw_sys::general::PROT_BTI;
+ /// `PROT_MTE`
+ #[cfg(all(linux_kernel, target_arch = "aarch64"))]
+ const MTE = linux_raw_sys::general::PROT_MTE;
+ /// `PROT_SAO`
+ #[cfg(all(linux_kernel, any(target_arch = "powerpc", target_arch = "powerpc64")))]
+ const SAO = linux_raw_sys::general::PROT_SAO;
+ /// `PROT_ADI`
+ #[cfg(all(linux_kernel, any(target_arch = "sparc", target_arch = "sparc64")))]
+ const ADI = linux_raw_sys::general::PROT_ADI;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `MAP_*` flags for use with [`mmap`].
+ ///
+ /// For `MAP_ANONYMOUS` (aka `MAP_ANON`), see [`mmap_anonymous`].
+ ///
+ /// [`mmap`]: crate::mm::mmap
+ /// [`mmap_anonymous`]: crates::mm::mmap_anonymous
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MapFlags: u32 {
+ /// `MAP_SHARED`
+ const SHARED = bitcast!(c::MAP_SHARED);
+ /// `MAP_SHARED_VALIDATE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "android",
+ target_os = "cygwin",
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ )))]
+ const SHARED_VALIDATE = bitcast!(c::MAP_SHARED_VALIDATE);
+ /// `MAP_PRIVATE`
+ const PRIVATE = bitcast!(c::MAP_PRIVATE);
+ /// `MAP_DENYWRITE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ )))]
+ const DENYWRITE = bitcast!(c::MAP_DENYWRITE);
+ /// `MAP_FIXED`
+ const FIXED = bitcast!(c::MAP_FIXED);
+ /// `MAP_FIXED_NOREPLACE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "android",
+ target_os = "cygwin",
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ )))]
+ const FIXED_NOREPLACE = bitcast!(c::MAP_FIXED_NOREPLACE);
+ /// `MAP_GROWSDOWN`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ )))]
+ const GROWSDOWN = bitcast!(c::MAP_GROWSDOWN);
+ /// `MAP_HUGETLB`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ )))]
+ const HUGETLB = bitcast!(c::MAP_HUGETLB);
+ /// `MAP_HUGE_2MB`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "android",
+ target_os = "cygwin",
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ )))]
+ const HUGE_2MB = bitcast!(c::MAP_HUGE_2MB);
+ /// `MAP_HUGE_1GB`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "android",
+ target_os = "cygwin",
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ )))]
+ const HUGE_1GB = bitcast!(c::MAP_HUGE_1GB);
+ /// `MAP_LOCKED`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ )))]
+ const LOCKED = bitcast!(c::MAP_LOCKED);
+ /// `MAP_NOCORE`
+ #[cfg(freebsdlike)]
+ const NOCORE = bitcast!(c::MAP_NOCORE);
+ /// `MAP_NORESERVE`
+ #[cfg(not(any(
+ freebsdlike,
+ target_os = "aix",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ )))]
+ const NORESERVE = bitcast!(c::MAP_NORESERVE);
+ /// `MAP_NOSYNC`
+ #[cfg(freebsdlike)]
+ const NOSYNC = bitcast!(c::MAP_NOSYNC);
+ /// `MAP_POPULATE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ )))]
+ const POPULATE = bitcast!(c::MAP_POPULATE);
+ /// `MAP_STACK`
+ #[cfg(not(any(
+ apple,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "redox",
+ )))]
+ const STACK = bitcast!(c::MAP_STACK);
+ /// `MAP_PREFAULT_READ`
+ #[cfg(target_os = "freebsd")]
+ const PREFAULT_READ = bitcast!(c::MAP_PREFAULT_READ);
+ /// `MAP_SYNC`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "android",
+ target_os = "cygwin",
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ all(
+ linux_kernel,
+ any(target_arch = "mips", target_arch = "mips32r6", target_arch = "mips64", target_arch = "mips64r6"),
+ ),
+ )))]
+ const SYNC = bitcast!(c::MAP_SYNC);
+ /// `MAP_UNINITIALIZED`
+ #[cfg(any())]
+ const UNINITIALIZED = bitcast!(c::MAP_UNINITIALIZED);
+ /// `MAP_DROPPABLE`
+ #[cfg(linux_kernel)]
+ const DROPPABLE = bitcast!(c::MAP_DROPPABLE);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(any(target_os = "emscripten", target_os = "linux"))]
+bitflags! {
+ /// `MREMAP_*` flags for use with [`mremap`].
+ ///
+ /// For `MREMAP_FIXED`, see [`mremap_fixed`].
+ ///
+ /// [`mremap`]: crate::mm::mremap
+ /// [`mremap_fixed`]: crate::mm::mremap_fixed
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MremapFlags: u32 {
+ /// `MREMAP_MAYMOVE`
+ const MAYMOVE = bitcast!(c::MREMAP_MAYMOVE);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `MS_*` flags for use with [`msync`].
+ ///
+ /// [`msync`]: crate::mm::msync
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MsyncFlags: u32 {
+ /// `MS_SYNC`—Requests an update and waits for it to complete.
+ const SYNC = bitcast!(c::MS_SYNC);
+ /// `MS_ASYNC`—Specifies that an update be scheduled, but the call
+ /// returns immediately.
+ const ASYNC = bitcast!(c::MS_ASYNC);
+ /// `MS_INVALIDATE`—Asks to invalidate other mappings of the same
+ /// file (so that they can be updated with the fresh values just
+ /// written).
+ const INVALIDATE = bitcast!(c::MS_INVALIDATE);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `MLOCK_*` flags for use with [`mlock_with`].
+ ///
+ /// [`mlock_with`]: crate::mm::mlock_with
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MlockFlags: u32 {
+ /// `MLOCK_ONFAULT`
+ const ONFAULT = bitcast!(c::MLOCK_ONFAULT);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `POSIX_MADV_*` constants for use with [`madvise`].
+///
+/// [`madvise`]: crate::mm::madvise
+#[cfg(not(target_os = "redox"))]
+#[derive(Debug, Copy, Clone, Eq, PartialEq)]
+#[repr(u32)]
+#[non_exhaustive]
+pub enum Advice {
+ /// `POSIX_MADV_NORMAL`
+ #[cfg(not(any(target_os = "android", target_os = "haiku")))]
+ Normal = bitcast!(c::POSIX_MADV_NORMAL),
+
+ /// `POSIX_MADV_NORMAL`
+ #[cfg(any(target_os = "android", target_os = "haiku"))]
+ Normal = bitcast!(c::MADV_NORMAL),
+
+ /// `POSIX_MADV_SEQUENTIAL`
+ #[cfg(not(any(target_os = "android", target_os = "haiku")))]
+ Sequential = bitcast!(c::POSIX_MADV_SEQUENTIAL),
+
+ /// `POSIX_MADV_SEQUENTIAL`
+ #[cfg(any(target_os = "android", target_os = "haiku"))]
+ Sequential = bitcast!(c::MADV_SEQUENTIAL),
+
+ /// `POSIX_MADV_RANDOM`
+ #[cfg(not(any(target_os = "android", target_os = "haiku")))]
+ Random = bitcast!(c::POSIX_MADV_RANDOM),
+
+ /// `POSIX_MADV_RANDOM`
+ #[cfg(any(target_os = "android", target_os = "haiku"))]
+ Random = bitcast!(c::MADV_RANDOM),
+
+ /// `POSIX_MADV_WILLNEED`
+ #[cfg(not(any(target_os = "android", target_os = "haiku")))]
+ WillNeed = bitcast!(c::POSIX_MADV_WILLNEED),
+
+ /// `POSIX_MADV_WILLNEED`
+ #[cfg(any(target_os = "android", target_os = "haiku"))]
+ WillNeed = bitcast!(c::MADV_WILLNEED),
+
+ /// `POSIX_MADV_DONTNEED`
+ #[cfg(not(any(
+ target_os = "android",
+ target_os = "emscripten",
+ target_os = "haiku",
+ target_os = "hurd",
+ )))]
+ DontNeed = bitcast!(c::POSIX_MADV_DONTNEED),
+
+ /// `POSIX_MADV_DONTNEED`
+ #[cfg(any(target_os = "android", target_os = "haiku"))]
+ DontNeed = bitcast!(i32::MAX - 1),
+
+ /// `MADV_DONTNEED`
+ // `MADV_DONTNEED` has the same value as `POSIX_MADV_DONTNEED`. We don't
+ // have a separate `posix_madvise` from `madvise`, so we expose a special
+ // value which we special-case.
+ #[cfg(target_os = "linux")]
+ LinuxDontNeed = bitcast!(i32::MAX),
+
+ /// `MADV_DONTNEED`
+ #[cfg(target_os = "android")]
+ LinuxDontNeed = bitcast!(c::MADV_DONTNEED),
+ /// `MADV_FREE`
+ #[cfg(linux_kernel)]
+ LinuxFree = bitcast!(c::MADV_FREE),
+ /// `MADV_REMOVE`
+ #[cfg(linux_kernel)]
+ LinuxRemove = bitcast!(c::MADV_REMOVE),
+ /// `MADV_DONTFORK`
+ #[cfg(linux_kernel)]
+ LinuxDontFork = bitcast!(c::MADV_DONTFORK),
+ /// `MADV_DOFORK`
+ #[cfg(linux_kernel)]
+ LinuxDoFork = bitcast!(c::MADV_DOFORK),
+ /// `MADV_HWPOISON`
+ #[cfg(linux_kernel)]
+ LinuxHwPoison = bitcast!(c::MADV_HWPOISON),
+ /// `MADV_SOFT_OFFLINE`
+ #[cfg(all(
+ linux_kernel,
+ not(any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ ))
+ ))]
+ LinuxSoftOffline = bitcast!(c::MADV_SOFT_OFFLINE),
+ /// `MADV_MERGEABLE`
+ #[cfg(linux_kernel)]
+ LinuxMergeable = bitcast!(c::MADV_MERGEABLE),
+ /// `MADV_UNMERGEABLE`
+ #[cfg(linux_kernel)]
+ LinuxUnmergeable = bitcast!(c::MADV_UNMERGEABLE),
+ /// `MADV_HUGEPAGE`
+ #[cfg(linux_kernel)]
+ LinuxHugepage = bitcast!(c::MADV_HUGEPAGE),
+ /// `MADV_NOHUGEPAGE`
+ #[cfg(linux_kernel)]
+ LinuxNoHugepage = bitcast!(c::MADV_NOHUGEPAGE),
+ /// `MADV_DONTDUMP` (since Linux 3.4)
+ #[cfg(linux_kernel)]
+ LinuxDontDump = bitcast!(c::MADV_DONTDUMP),
+ /// `MADV_DODUMP` (since Linux 3.4)
+ #[cfg(linux_kernel)]
+ LinuxDoDump = bitcast!(c::MADV_DODUMP),
+ /// `MADV_WIPEONFORK` (since Linux 4.14)
+ #[cfg(linux_kernel)]
+ LinuxWipeOnFork = bitcast!(c::MADV_WIPEONFORK),
+ /// `MADV_KEEPONFORK` (since Linux 4.14)
+ #[cfg(linux_kernel)]
+ LinuxKeepOnFork = bitcast!(c::MADV_KEEPONFORK),
+ /// `MADV_COLD` (since Linux 5.4)
+ #[cfg(linux_kernel)]
+ LinuxCold = bitcast!(c::MADV_COLD),
+ /// `MADV_PAGEOUT` (since Linux 5.4)
+ #[cfg(linux_kernel)]
+ LinuxPageOut = bitcast!(c::MADV_PAGEOUT),
+ /// `MADV_POPULATE_READ` (since Linux 5.14)
+ #[cfg(linux_kernel)]
+ LinuxPopulateRead = bitcast!(c::MADV_POPULATE_READ),
+ /// `MADV_POPULATE_WRITE` (since Linux 5.14)
+ #[cfg(linux_kernel)]
+ LinuxPopulateWrite = bitcast!(c::MADV_POPULATE_WRITE),
+ /// `MADV_DONTNEED_LOCKED` (since Linux 5.18)
+ #[cfg(linux_kernel)]
+ LinuxDontneedLocked = bitcast!(c::MADV_DONTNEED_LOCKED),
+}
+
+#[cfg(target_os = "emscripten")]
+#[allow(non_upper_case_globals)]
+impl Advice {
+ /// `POSIX_MADV_DONTNEED`
+ pub const DontNeed: Self = Self::Normal;
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `O_*` flags for use with [`userfaultfd`].
+ ///
+ /// [`userfaultfd`]: crate::mm::userfaultfd
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct UserfaultfdFlags: u32 {
+ /// `O_CLOEXEC`
+ const CLOEXEC = bitcast!(c::O_CLOEXEC);
+ /// `O_NONBLOCK`
+ const NONBLOCK = bitcast!(c::O_NONBLOCK);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(any(linux_kernel, freebsdlike, netbsdlike))]
+bitflags! {
+ /// `MCL_*` flags for use with [`mlockall`].
+ ///
+ /// [`mlockall`]: crate::mm::mlockall
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MlockAllFlags: u32 {
+ /// Used together with `MCL_CURRENT`, `MCL_FUTURE`, or both. Mark all
+ /// current (with `MCL_CURRENT`) or future (with `MCL_FUTURE`) mappings
+ /// to lock pages when they are faulted in. When used with
+ /// `MCL_CURRENT`, all present pages are locked, but `mlockall` will
+ /// not fault in non-present pages. When used with `MCL_FUTURE`, all
+ /// future mappings will be marked to lock pages when they are faulted
+ /// in, but they will not be populated by the lock when the mapping is
+ /// created. `MCL_ONFAULT` must be used with either `MCL_CURRENT` or
+ /// `MCL_FUTURE` or both.
+ #[cfg(linux_kernel)]
+ const ONFAULT = bitcast!(c::MCL_ONFAULT);
+ /// Lock all pages which will become mapped into the address space of
+ /// the process in the future. These could be, for instance, new pages
+ /// required by a growing heap and stack as well as new memory-mapped
+ /// files or shared memory regions.
+ const FUTURE = bitcast!(c::MCL_FUTURE);
+ /// Lock all pages which are currently mapped into the address space of
+ /// the process.
+ const CURRENT = bitcast!(c::MCL_CURRENT);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/mod.rs
new file mode 100644
index 0000000..ca8afbb
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/mod.rs
@@ -0,0 +1,220 @@
+//! The libc backend.
+//!
+//! On most platforms, this uses the `libc` crate to make system calls. On
+//! Windows, this uses the Winsock API in `windows-sys`, which can be adapted
+//! to have a very `libc`-like interface.
+
+// Every FFI call requires an unsafe block, and there are a lot of FFI
+// calls. For now, set this to allow for the libc backend.
+#![allow(clippy::undocumented_unsafe_blocks)]
+// Lots of libc types vary between platforms, so we often need a `.into()` on
+// one platform where it's redundant on another.
+#![allow(clippy::useless_conversion)]
+
+mod conv;
+
+#[cfg(windows)]
+pub(crate) mod fd {
+ // Re-export `AsSocket` etc. too, as users can't implement `AsFd` etc. on
+ // Windows due to them having blanket impls on Windows, so users must
+ // implement `AsSocket` etc.
+ pub use crate::maybe_polyfill::os::windows::io::{
+ AsRawSocket, AsSocket, BorrowedSocket as BorrowedFd, FromRawSocket, IntoRawSocket,
+ OwnedSocket as OwnedFd, RawSocket as RawFd,
+ };
+ pub(crate) use windows_sys::Win32::Networking::WinSock::SOCKET as LibcFd;
+
+ /// A version of [`AsRawFd`] for use with Winsock API.
+ ///
+ /// [`AsRawFd`]: https://doc.rust-lang.org/stable/std/os/fd/trait.AsRawFd.html
+ pub trait AsRawFd {
+ /// A version of [`as_raw_fd`] for use with Winsock API.
+ ///
+ /// [`as_raw_fd`]: https://doc.rust-lang.org/stable/std/os/fd/trait.AsRawFd.html#tymethod.as_raw_fd
+ fn as_raw_fd(&self) -> RawFd;
+ }
+ impl<T: AsRawSocket> AsRawFd for T {
+ #[inline]
+ fn as_raw_fd(&self) -> RawFd {
+ self.as_raw_socket()
+ }
+ }
+
+ /// A version of [`IntoRawFd`] for use with Winsock API.
+ ///
+ /// [`IntoRawFd`]: https://doc.rust-lang.org/stable/std/os/fd/trait.IntoRawFd.html
+ pub trait IntoRawFd {
+ /// A version of [`into_raw_fd`] for use with Winsock API.
+ ///
+ /// [`into_raw_fd`]: https://doc.rust-lang.org/stable/std/os/fd/trait.IntoRawFd.html#tymethod.into_raw_fd
+ fn into_raw_fd(self) -> RawFd;
+ }
+ impl<T: IntoRawSocket> IntoRawFd for T {
+ #[inline]
+ fn into_raw_fd(self) -> RawFd {
+ self.into_raw_socket()
+ }
+ }
+
+ /// A version of [`FromRawFd`] for use with Winsock API.
+ ///
+ /// [`FromRawFd`]: https://doc.rust-lang.org/stable/std/os/fd/trait.FromRawFd.html
+ pub trait FromRawFd {
+ /// A version of [`from_raw_fd`] for use with Winsock API.
+ ///
+ /// # Safety
+ ///
+ /// See the [safety requirements] for [`from_raw_fd`].
+ ///
+ /// [`from_raw_fd`]: https://doc.rust-lang.org/stable/std/os/fd/trait.FromRawFd.html#tymethod.from_raw_fd
+ /// [safety requirements]: https://doc.rust-lang.org/stable/std/os/fd/trait.FromRawFd.html#safety
+ unsafe fn from_raw_fd(raw_fd: RawFd) -> Self;
+ }
+ impl<T: FromRawSocket> FromRawFd for T {
+ #[inline]
+ unsafe fn from_raw_fd(raw_fd: RawFd) -> Self {
+ Self::from_raw_socket(raw_fd)
+ }
+ }
+
+ /// A version of [`AsFd`] for use with Winsock API.
+ ///
+ /// [`AsFd`]: https://doc.rust-lang.org/stable/std/os/fd/trait.AsFd.html
+ pub trait AsFd {
+ /// An `as_fd` function for Winsock, where an `Fd` is a `Socket`.
+ fn as_fd(&self) -> BorrowedFd<'_>;
+ }
+ impl<T: AsSocket> AsFd for T {
+ #[inline]
+ fn as_fd(&self) -> BorrowedFd<'_> {
+ self.as_socket()
+ }
+ }
+}
+#[cfg(not(windows))]
+pub(crate) mod fd {
+ pub use crate::maybe_polyfill::os::fd::*;
+ #[allow(unused_imports)]
+ pub(crate) use RawFd as LibcFd;
+}
+
+// On Windows we emulate selected libc-compatible interfaces. On non-Windows,
+// we just use libc here, since this is the libc backend.
+#[cfg_attr(windows, path = "winsock_c.rs")]
+pub(crate) mod c;
+
+#[cfg(feature = "event")]
+pub(crate) mod event;
+#[cfg(not(windows))]
+#[cfg(feature = "fs")]
+pub(crate) mod fs;
+pub(crate) mod io;
+#[cfg(linux_kernel)]
+#[cfg(feature = "io_uring")]
+pub(crate) mod io_uring;
+#[cfg(not(any(
+ windows,
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[cfg(feature = "mm")]
+pub(crate) mod mm;
+#[cfg(linux_kernel)]
+#[cfg(feature = "mount")]
+pub(crate) mod mount;
+#[cfg(not(target_os = "wasi"))]
+#[cfg(feature = "net")]
+pub(crate) mod net;
+#[cfg(not(any(windows, target_os = "espidf")))]
+#[cfg(any(
+ feature = "param",
+ feature = "runtime",
+ feature = "time",
+ target_arch = "x86",
+))]
+pub(crate) mod param;
+#[cfg(not(windows))]
+#[cfg(feature = "pipe")]
+pub(crate) mod pipe;
+#[cfg(not(windows))]
+#[cfg(feature = "process")]
+pub(crate) mod process;
+#[cfg(not(windows))]
+#[cfg(not(target_os = "wasi"))]
+#[cfg(feature = "pty")]
+pub(crate) mod pty;
+#[cfg(not(windows))]
+#[cfg(feature = "rand")]
+pub(crate) mod rand;
+#[cfg(not(windows))]
+#[cfg(not(target_os = "wasi"))]
+#[cfg(feature = "system")]
+pub(crate) mod system;
+#[cfg(not(any(windows, target_os = "horizon", target_os = "vita")))]
+#[cfg(feature = "termios")]
+pub(crate) mod termios;
+#[cfg(not(windows))]
+#[cfg(feature = "thread")]
+pub(crate) mod thread;
+#[cfg(not(any(windows, target_os = "espidf")))]
+#[cfg(feature = "time")]
+pub(crate) mod time;
+
+/// If the host libc is glibc, return `true` if it is less than version 2.25.
+///
+/// To restate and clarify, this function returning true does not mean the libc
+/// is glibc just that if it is glibc, it is less than version 2.25.
+///
+/// For now, this function is only available on Linux, but if it ends up being
+/// used beyond that, this could be changed to e.g. `#[cfg(unix)]`.
+#[cfg(all(unix, target_env = "gnu"))]
+pub(crate) fn if_glibc_is_less_than_2_25() -> bool {
+ // This is also defined inside `weak_or_syscall!` in
+ // backend/libc/rand/syscalls.rs, but it's not convenient to re-export the
+ // weak symbol from that macro, so we duplicate it at a small cost here.
+ weak! { fn getrandom(*mut c::c_void, c::size_t, c::c_uint) -> c::ssize_t }
+
+ // glibc 2.25 has `getrandom`, which is how we satisfy the API contract of
+ // this function. But, there are likely other libc versions which have it.
+ getrandom.get().is_none()
+}
+
+// Private modules used by multiple public modules.
+#[cfg(any(feature = "process", feature = "runtime"))]
+#[cfg(not(any(windows, target_os = "wasi")))]
+pub(crate) mod pid;
+#[cfg(any(feature = "process", feature = "thread"))]
+#[cfg(linux_kernel)]
+pub(crate) mod prctl;
+#[cfg(not(any(
+ windows,
+ target_os = "android",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[cfg(feature = "shm")]
+pub(crate) mod shm;
+#[cfg(any(feature = "fs", feature = "thread", feature = "process"))]
+#[cfg(not(any(windows, target_os = "wasi")))]
+pub(crate) mod ugid;
+
+#[cfg(bsd)]
+const MAX_IOV: usize = c::IOV_MAX as usize;
+
+#[cfg(any(linux_kernel, target_os = "emscripten", target_os = "nto"))]
+const MAX_IOV: usize = c::UIO_MAXIOV as usize;
+
+#[cfg(not(any(
+ bsd,
+ linux_kernel,
+ windows,
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "nto",
+ target_os = "horizon",
+)))]
+const MAX_IOV: usize = 16; // The minimum value required by POSIX.
diff --git a/vendor/rustix-1.0.8/src/backend/libc/mount/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/mount/mod.rs
new file mode 100644
index 0000000..1e0181a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/mount/mod.rs
@@ -0,0 +1,2 @@
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/mount/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/mount/syscalls.rs
new file mode 100644
index 0000000..c5414bc
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/mount/syscalls.rs
@@ -0,0 +1,268 @@
+use crate::backend::c;
+use crate::backend::conv::{borrowed_fd, c_str, ret, ret_owned_fd};
+use crate::fd::{BorrowedFd, OwnedFd};
+use crate::ffi::CStr;
+use crate::io;
+use core::ptr::null;
+
+#[cfg(linux_kernel)]
+pub(crate) fn mount(
+ source: Option<&CStr>,
+ target: &CStr,
+ file_system_type: Option<&CStr>,
+ flags: super::types::MountFlagsArg,
+ data: Option<&CStr>,
+) -> io::Result<()> {
+ unsafe {
+ ret(c::mount(
+ source.map_or_else(null, CStr::as_ptr),
+ target.as_ptr(),
+ file_system_type.map_or_else(null, CStr::as_ptr),
+ flags.0,
+ data.map_or_else(null, CStr::as_ptr).cast(),
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn unmount(target: &CStr, flags: super::types::UnmountFlags) -> io::Result<()> {
+ unsafe { ret(c::umount2(target.as_ptr(), bitflags_bits!(flags))) }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn fsopen(fs_name: &CStr, flags: super::types::FsOpenFlags) -> io::Result<OwnedFd> {
+ syscall! {
+ fn fsopen(
+ fs_name: *const c::c_char,
+ flags: c::c_uint
+ ) via SYS_fsopen -> c::c_int
+ }
+ unsafe { ret_owned_fd(fsopen(c_str(fs_name), flags.bits())) }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn fsmount(
+ fs_fd: BorrowedFd<'_>,
+ flags: super::types::FsMountFlags,
+ attr_flags: super::types::MountAttrFlags,
+) -> io::Result<OwnedFd> {
+ syscall! {
+ fn fsmount(
+ fs_fd: c::c_int,
+ flags: c::c_uint,
+ attr_flags: c::c_uint
+ ) via SYS_fsmount -> c::c_int
+ }
+ unsafe { ret_owned_fd(fsmount(borrowed_fd(fs_fd), flags.bits(), attr_flags.bits())) }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn move_mount(
+ from_dfd: BorrowedFd<'_>,
+ from_pathname: &CStr,
+ to_dfd: BorrowedFd<'_>,
+ to_pathname: &CStr,
+ flags: super::types::MoveMountFlags,
+) -> io::Result<()> {
+ syscall! {
+ fn move_mount(
+ from_dfd: c::c_int,
+ from_pathname: *const c::c_char,
+ to_dfd: c::c_int,
+ to_pathname: *const c::c_char,
+ flags: c::c_uint
+ ) via SYS_move_mount -> c::c_int
+ }
+ unsafe {
+ ret(move_mount(
+ borrowed_fd(from_dfd),
+ c_str(from_pathname),
+ borrowed_fd(to_dfd),
+ c_str(to_pathname),
+ flags.bits(),
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn open_tree(
+ dfd: BorrowedFd<'_>,
+ filename: &CStr,
+ flags: super::types::OpenTreeFlags,
+) -> io::Result<OwnedFd> {
+ syscall! {
+ fn open_tree(
+ dfd: c::c_int,
+ filename: *const c::c_char,
+ flags: c::c_uint
+ ) via SYS_open_tree -> c::c_int
+ }
+
+ unsafe { ret_owned_fd(open_tree(borrowed_fd(dfd), c_str(filename), flags.bits())) }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn fspick(
+ dfd: BorrowedFd<'_>,
+ path: &CStr,
+ flags: super::types::FsPickFlags,
+) -> io::Result<OwnedFd> {
+ syscall! {
+ fn fspick(
+ dfd: c::c_int,
+ path: *const c::c_char,
+ flags: c::c_uint
+ ) via SYS_fspick -> c::c_int
+ }
+
+ unsafe { ret_owned_fd(fspick(borrowed_fd(dfd), c_str(path), flags.bits())) }
+}
+
+#[cfg(linux_kernel)]
+syscall! {
+ fn fsconfig(
+ fs_fd: c::c_int,
+ cmd: c::c_uint,
+ key: *const c::c_char,
+ val: *const c::c_char,
+ aux: c::c_int
+ ) via SYS_fsconfig -> c::c_int
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn fsconfig_set_flag(fs_fd: BorrowedFd<'_>, key: &CStr) -> io::Result<()> {
+ unsafe {
+ ret(fsconfig(
+ borrowed_fd(fs_fd),
+ super::types::FsConfigCmd::SetFlag as _,
+ c_str(key),
+ null(),
+ 0,
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn fsconfig_set_string(
+ fs_fd: BorrowedFd<'_>,
+ key: &CStr,
+ value: &CStr,
+) -> io::Result<()> {
+ unsafe {
+ ret(fsconfig(
+ borrowed_fd(fs_fd),
+ super::types::FsConfigCmd::SetString as _,
+ c_str(key),
+ c_str(value),
+ 0,
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn fsconfig_set_binary(
+ fs_fd: BorrowedFd<'_>,
+ key: &CStr,
+ value: &[u8],
+) -> io::Result<()> {
+ unsafe {
+ ret(fsconfig(
+ borrowed_fd(fs_fd),
+ super::types::FsConfigCmd::SetBinary as _,
+ c_str(key),
+ value.as_ptr().cast(),
+ value.len().try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn fsconfig_set_fd(
+ fs_fd: BorrowedFd<'_>,
+ key: &CStr,
+ fd: BorrowedFd<'_>,
+) -> io::Result<()> {
+ unsafe {
+ ret(fsconfig(
+ borrowed_fd(fs_fd),
+ super::types::FsConfigCmd::SetFd as _,
+ c_str(key),
+ null(),
+ borrowed_fd(fd),
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn fsconfig_set_path(
+ fs_fd: BorrowedFd<'_>,
+ key: &CStr,
+ path: &CStr,
+ fd: BorrowedFd<'_>,
+) -> io::Result<()> {
+ unsafe {
+ ret(fsconfig(
+ borrowed_fd(fs_fd),
+ super::types::FsConfigCmd::SetPath as _,
+ c_str(key),
+ c_str(path),
+ borrowed_fd(fd),
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn fsconfig_set_path_empty(
+ fs_fd: BorrowedFd<'_>,
+ key: &CStr,
+ fd: BorrowedFd<'_>,
+) -> io::Result<()> {
+ unsafe {
+ ret(fsconfig(
+ borrowed_fd(fs_fd),
+ super::types::FsConfigCmd::SetPathEmpty as _,
+ c_str(key),
+ c_str(cstr!("")),
+ borrowed_fd(fd),
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn fsconfig_create(fs_fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe {
+ ret(fsconfig(
+ borrowed_fd(fs_fd),
+ super::types::FsConfigCmd::Create as _,
+ null(),
+ null(),
+ 0,
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn fsconfig_reconfigure(fs_fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe {
+ ret(fsconfig(
+ borrowed_fd(fs_fd),
+ super::types::FsConfigCmd::Reconfigure as _,
+ null(),
+ null(),
+ 0,
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn fsconfig_create_excl(fs_fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe {
+ ret(fsconfig(
+ borrowed_fd(fs_fd),
+ super::types::FsConfigCmd::CreateExclusive as _,
+ null(),
+ null(),
+ 0,
+ ))
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/mount/types.rs b/vendor/rustix-1.0.8/src/backend/libc/mount/types.rs
new file mode 100644
index 0000000..9b88a75
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/mount/types.rs
@@ -0,0 +1,344 @@
+use crate::backend::c;
+use crate::ffi;
+use bitflags::bitflags;
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `MS_*` constants for use with [`mount`].
+ ///
+ /// [`mount`]: crate::mount::mount
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MountFlags: ffi::c_ulong {
+ /// `MS_BIND`
+ const BIND = c::MS_BIND;
+
+ /// `MS_DIRSYNC`
+ const DIRSYNC = c::MS_DIRSYNC;
+
+ /// `MS_LAZYTIME`
+ const LAZYTIME = c::MS_LAZYTIME;
+
+ /// `MS_MANDLOCK`
+ #[doc(alias = "MANDLOCK")]
+ const PERMIT_MANDATORY_FILE_LOCKING = c::MS_MANDLOCK;
+
+ /// `MS_NOATIME`
+ const NOATIME = c::MS_NOATIME;
+
+ /// `MS_NODEV`
+ const NODEV = c::MS_NODEV;
+
+ /// `MS_NODIRATIME`
+ const NODIRATIME = c::MS_NODIRATIME;
+
+ /// `MS_NOEXEC`
+ const NOEXEC = c::MS_NOEXEC;
+
+ /// `MS_NOSUID`
+ const NOSUID = c::MS_NOSUID;
+
+ /// `MS_RDONLY`
+ const RDONLY = c::MS_RDONLY;
+
+ /// `MS_REC`
+ const REC = c::MS_REC;
+
+ /// `MS_RELATIME`
+ const RELATIME = c::MS_RELATIME;
+
+ /// `MS_SILENT`
+ const SILENT = c::MS_SILENT;
+
+ /// `MS_STRICTATIME`
+ const STRICTATIME = c::MS_STRICTATIME;
+
+ /// `MS_SYNCHRONOUS`
+ const SYNCHRONOUS = c::MS_SYNCHRONOUS;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `MNT_*` constants for use with [`unmount`].
+ ///
+ /// [`unmount`]: crate::mount::unmount
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct UnmountFlags: u32 {
+ /// `MNT_FORCE`
+ const FORCE = bitcast!(c::MNT_FORCE);
+ /// `MNT_DETACH`
+ const DETACH = bitcast!(c::MNT_DETACH);
+ /// `MNT_EXPIRE`
+ const EXPIRE = bitcast!(c::MNT_EXPIRE);
+ /// `UMOUNT_NOFOLLOW`
+ const NOFOLLOW = bitcast!(c::UMOUNT_NOFOLLOW);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `FSOPEN_*` constants for use with [`fsopen`].
+ ///
+ /// [`fsopen`]: crate::mount::fsopen
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct FsOpenFlags: ffi::c_uint {
+ /// `FSOPEN_CLOEXEC`
+ const FSOPEN_CLOEXEC = 0x0000_0001;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `FSMOUNT_*` constants for use with [`fsmount`].
+ ///
+ /// [`fsmount`]: crate::mount::fsmount
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct FsMountFlags: ffi::c_uint {
+ /// `FSMOUNT_CLOEXEC`
+ const FSMOUNT_CLOEXEC = 0x0000_0001;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `FSCONFIG_*` constants for use with the `fsconfig` syscall.
+#[cfg(linux_kernel)]
+#[derive(Debug, Copy, Clone, Eq, PartialEq)]
+#[repr(u32)]
+pub(crate) enum FsConfigCmd {
+ /// `FSCONFIG_SET_FLAG`
+ SetFlag = 0,
+
+ /// `FSCONFIG_SET_STRING`
+ SetString = 1,
+
+ /// `FSCONFIG_SET_BINARY`
+ SetBinary = 2,
+
+ /// `FSCONFIG_SET_PATH`
+ SetPath = 3,
+
+ /// `FSCONFIG_SET_PATH_EMPTY`
+ SetPathEmpty = 4,
+
+ /// `FSCONFIG_SET_FD`
+ SetFd = 5,
+
+ /// `FSCONFIG_CMD_CREATE`
+ Create = 6,
+
+ /// `FSCONFIG_CMD_RECONFIGURE`
+ Reconfigure = 7,
+
+ /// `FSCONFIG_CMD_CREATE_EXCL` (since Linux 6.6)
+ CreateExclusive = 8,
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `MOUNT_ATTR_*` constants for use with [`fsmount`].
+ ///
+ /// [`fsmount`]: crate::mount::fsmount
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MountAttrFlags: ffi::c_uint {
+ /// `MOUNT_ATTR_RDONLY`
+ const MOUNT_ATTR_RDONLY = 0x0000_0001;
+
+ /// `MOUNT_ATTR_NOSUID`
+ const MOUNT_ATTR_NOSUID = 0x0000_0002;
+
+ /// `MOUNT_ATTR_NODEV`
+ const MOUNT_ATTR_NODEV = 0x0000_0004;
+
+ /// `MOUNT_ATTR_NOEXEC`
+ const MOUNT_ATTR_NOEXEC = 0x0000_0008;
+
+ /// `MOUNT_ATTR__ATIME`
+ const MOUNT_ATTR__ATIME = 0x0000_0070;
+
+ /// `MOUNT_ATTR_RELATIME`
+ const MOUNT_ATTR_RELATIME = 0x0000_0000;
+
+ /// `MOUNT_ATTR_NOATIME`
+ const MOUNT_ATTR_NOATIME = 0x0000_0010;
+
+ /// `MOUNT_ATTR_STRICTATIME`
+ const MOUNT_ATTR_STRICTATIME = 0x0000_0020;
+
+ /// `MOUNT_ATTR_NODIRATIME`
+ const MOUNT_ATTR_NODIRATIME = 0x0000_0080;
+
+ /// `MOUNT_ATTR_NOUSER`
+ const MOUNT_ATTR_IDMAP = 0x0010_0000;
+
+ /// `MOUNT_ATTR__ATIME_FLAGS`
+ const MOUNT_ATTR_NOSYMFOLLOW = 0x0020_0000;
+
+ /// `MOUNT_ATTR__ATIME_FLAGS`
+ const MOUNT_ATTR_SIZE_VER0 = 32;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `MOVE_MOUNT_*` constants for use with [`move_mount`].
+ ///
+ /// [`move_mount`]: crate::mount::move_mount
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MoveMountFlags: ffi::c_uint {
+ /// `MOVE_MOUNT_F_EMPTY_PATH`
+ const MOVE_MOUNT_F_SYMLINKS = 0x0000_0001;
+
+ /// `MOVE_MOUNT_F_AUTOMOUNTS`
+ const MOVE_MOUNT_F_AUTOMOUNTS = 0x0000_0002;
+
+ /// `MOVE_MOUNT_F_EMPTY_PATH`
+ const MOVE_MOUNT_F_EMPTY_PATH = 0x0000_0004;
+
+ /// `MOVE_MOUNT_T_SYMLINKS`
+ const MOVE_MOUNT_T_SYMLINKS = 0x0000_0010;
+
+ /// `MOVE_MOUNT_T_AUTOMOUNTS`
+ const MOVE_MOUNT_T_AUTOMOUNTS = 0x0000_0020;
+
+ /// `MOVE_MOUNT_T_EMPTY_PATH`
+ const MOVE_MOUNT_T_EMPTY_PATH = 0x0000_0040;
+
+ /// `MOVE_MOUNT__MASK`
+ const MOVE_MOUNT_SET_GROUP = 0x0000_0100;
+
+ /// `MOVE_MOUNT_BENEATH` (since Linux 6.5)
+ const MOVE_MOUNT_BENEATH = 0x0000_0200;
+
+ /// `MOVE_MOUNT__MASK`
+ const MOVE_MOUNT__MASK = 0x0000_0377;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `OPENTREE_*` constants for use with [`open_tree`].
+ ///
+ /// [`open_tree`]: crate::mount::open_tree
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct OpenTreeFlags: ffi::c_uint {
+ /// `OPENTREE_CLONE`
+ const OPEN_TREE_CLONE = 1;
+
+ /// `OPENTREE_CLOEXEC`
+ const OPEN_TREE_CLOEXEC = c::O_CLOEXEC as c::c_uint;
+
+ /// `AT_EMPTY_PATH`
+ const AT_EMPTY_PATH = c::AT_EMPTY_PATH as c::c_uint;
+
+ /// `AT_NO_AUTOMOUNT`
+ const AT_NO_AUTOMOUNT = c::AT_NO_AUTOMOUNT as c::c_uint;
+
+ /// `AT_RECURSIVE`
+ const AT_RECURSIVE = c::AT_RECURSIVE as c::c_uint;
+
+ /// `AT_SYMLINK_NOFOLLOW`
+ const AT_SYMLINK_NOFOLLOW = c::AT_SYMLINK_NOFOLLOW as c::c_uint;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `FSPICK_*` constants for use with [`fspick`].
+ ///
+ /// [`fspick`]: crate::mount::fspick
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct FsPickFlags: ffi::c_uint {
+ /// `FSPICK_CLOEXEC`
+ const FSPICK_CLOEXEC = 0x0000_0001;
+
+ /// `FSPICK_SYMLINK_NOFOLLOW`
+ const FSPICK_SYMLINK_NOFOLLOW = 0x0000_0002;
+
+ /// `FSPICK_NO_AUTOMOUNT`
+ const FSPICK_NO_AUTOMOUNT = 0x0000_0004;
+
+ /// `FSPICK_EMPTY_PATH`
+ const FSPICK_EMPTY_PATH = 0x0000_0008;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `MS_*` constants for use with [`mount_change`].
+ ///
+ /// [`mount_change`]: crate::mount::mount_change
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MountPropagationFlags: ffi::c_ulong {
+ /// `MS_SILENT`
+ const SILENT = c::MS_SILENT;
+ /// `MS_SHARED`
+ const SHARED = c::MS_SHARED;
+ /// `MS_PRIVATE`
+ const PRIVATE = c::MS_PRIVATE;
+ /// Mark a mount as a downstream of its current peer group.
+ ///
+ /// Mount and unmount events propagate from the upstream peer group
+ /// into the downstream.
+ ///
+ /// In Linux documentation, this flag is named `MS_SLAVE`, and the
+ /// concepts of “upstream” and “downstream” are called
+ /// “master” and “slave”.
+ #[doc(alias = "SLAVE")]
+ const DOWNSTREAM = c::MS_SLAVE;
+ /// `MS_UNBINDABLE`
+ const UNBINDABLE = c::MS_UNBINDABLE;
+ /// `MS_REC`
+ const REC = c::MS_REC;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub(crate) struct InternalMountFlags: c::c_ulong {
+ const REMOUNT = c::MS_REMOUNT;
+ const MOVE = c::MS_MOVE;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) struct MountFlagsArg(pub(crate) c::c_ulong);
diff --git a/vendor/rustix-1.0.8/src/backend/libc/net/addr.rs b/vendor/rustix-1.0.8/src/backend/libc/net/addr.rs
new file mode 100644
index 0000000..1699ffa
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/net/addr.rs
@@ -0,0 +1,390 @@
+//! Socket address utilities.
+
+use crate::backend::c;
+use crate::net::AddressFamily;
+#[cfg(unix)]
+use {
+ crate::ffi::CStr,
+ crate::io,
+ crate::net::addr::SocketAddrLen,
+ crate::path,
+ core::cmp::Ordering,
+ core::fmt,
+ core::hash::{Hash, Hasher},
+ core::slice,
+};
+#[cfg(all(unix, feature = "alloc"))]
+use {crate::ffi::CString, alloc::borrow::Cow, alloc::vec::Vec};
+
+/// `struct sockaddr_un`
+#[cfg(unix)]
+#[derive(Clone)]
+#[doc(alias = "sockaddr_un")]
+pub struct SocketAddrUnix {
+ pub(crate) unix: c::sockaddr_un,
+ #[cfg(not(any(bsd, target_os = "haiku")))]
+ len: c::socklen_t,
+}
+
+#[cfg(unix)]
+impl SocketAddrUnix {
+ /// Construct a new Unix-domain address from a filesystem path.
+ #[inline]
+ pub fn new<P: path::Arg>(path: P) -> io::Result<Self> {
+ path.into_with_c_str(Self::_new)
+ }
+
+ #[inline]
+ fn _new(path: &CStr) -> io::Result<Self> {
+ let mut unix = Self::init();
+ let mut bytes = path.to_bytes_with_nul();
+ if bytes.len() > unix.sun_path.len() {
+ bytes = path.to_bytes(); // without NUL
+ if bytes.len() > unix.sun_path.len() {
+ return Err(io::Errno::NAMETOOLONG);
+ }
+ }
+ for (i, b) in bytes.iter().enumerate() {
+ unix.sun_path[i] = *b as c::c_char;
+ }
+
+ #[cfg(any(bsd, target_os = "haiku"))]
+ {
+ unix.sun_len = (offsetof_sun_path() + bytes.len()).try_into().unwrap();
+ }
+
+ Ok(Self {
+ unix,
+ #[cfg(not(any(bsd, target_os = "haiku")))]
+ len: (offsetof_sun_path() + bytes.len()).try_into().unwrap(),
+ })
+ }
+
+ /// Construct a new abstract Unix-domain address from a byte slice.
+ #[cfg(linux_kernel)]
+ #[inline]
+ pub fn new_abstract_name(name: &[u8]) -> io::Result<Self> {
+ let mut unix = Self::init();
+ if 1 + name.len() > unix.sun_path.len() {
+ return Err(io::Errno::NAMETOOLONG);
+ }
+ unix.sun_path[0] = 0;
+ for (i, b) in name.iter().enumerate() {
+ unix.sun_path[1 + i] = *b as c::c_char;
+ }
+ let len = offsetof_sun_path() + 1 + name.len();
+ let len = len.try_into().unwrap();
+ Ok(Self {
+ unix,
+ #[cfg(not(any(bsd, target_os = "haiku")))]
+ len,
+ })
+ }
+
+ /// Construct a new unnamed address.
+ ///
+ /// The kernel will assign an abstract Unix-domain address to the socket
+ /// when you call [`bind`][crate::net::bind]. You can inspect the assigned
+ /// name with [`getsockname`][crate::net::getsockname].
+ ///
+ /// # References
+ /// - [Linux]
+ ///
+ /// [Linux]: https://www.man7.org/linux/man-pages/man7/unix.7.html
+ #[cfg(linux_kernel)]
+ #[inline]
+ pub fn new_unnamed() -> Self {
+ Self {
+ unix: Self::init(),
+ #[cfg(not(any(bsd, target_os = "haiku")))]
+ len: offsetof_sun_path() as c::socklen_t,
+ }
+ }
+
+ const fn init() -> c::sockaddr_un {
+ c::sockaddr_un {
+ #[cfg(any(
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "hurd",
+ ))]
+ sun_len: 0,
+ #[cfg(target_os = "vita")]
+ ss_len: 0,
+ sun_family: c::AF_UNIX as _,
+ #[cfg(any(bsd, target_os = "horizon", target_os = "nto"))]
+ sun_path: [0; 104],
+ #[cfg(not(any(
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto"
+ )))]
+ sun_path: [0; 108],
+ #[cfg(target_os = "haiku")]
+ sun_path: [0; 126],
+ #[cfg(target_os = "aix")]
+ sun_path: [0; 1023],
+ }
+ }
+
+ /// For a filesystem path address, return the path.
+ #[inline]
+ #[cfg(feature = "alloc")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
+ pub fn path(&self) -> Option<Cow<'_, CStr>> {
+ let bytes = self.bytes()?;
+ if !bytes.is_empty() && bytes[0] != 0 {
+ if self.unix.sun_path.len() == bytes.len() {
+ // SAFETY: There are no NULs contained in bytes.
+ unsafe { Self::path_with_termination(bytes) }
+ } else {
+ // SAFETY: `from_bytes_with_nul_unchecked` since the string is
+ // NUL-terminated.
+ Some(unsafe { CStr::from_bytes_with_nul_unchecked(bytes) }.into())
+ }
+ } else {
+ None
+ }
+ }
+
+ /// If the `sun_path` field is not NUL-terminated, terminate it.
+ ///
+ /// SAFETY: The input `bytes` must not contain any NULs.
+ #[cfg(feature = "alloc")]
+ #[cold]
+ unsafe fn path_with_termination(bytes: &[u8]) -> Option<Cow<'_, CStr>> {
+ let mut owned = Vec::with_capacity(bytes.len() + 1);
+ owned.extend_from_slice(bytes);
+ owned.push(b'\0');
+ // SAFETY: `from_vec_with_nul_unchecked` since the string is
+ // NUL-terminated and `bytes` does not contain any NULs.
+ Some(Cow::Owned(
+ CString::from_vec_with_nul_unchecked(owned).into(),
+ ))
+ }
+
+ /// For a filesystem path address, return the path as a byte sequence,
+ /// excluding the NUL terminator.
+ #[inline]
+ pub fn path_bytes(&self) -> Option<&[u8]> {
+ let bytes = self.bytes()?;
+ if !bytes.is_empty() && bytes[0] != 0 {
+ if self.unix.sun_path.len() == self.len() - offsetof_sun_path() {
+ // There is no NUL terminator.
+ Some(bytes)
+ } else {
+ // Remove the NUL terminator.
+ Some(&bytes[..bytes.len() - 1])
+ }
+ } else {
+ None
+ }
+ }
+
+ /// For an abstract address, return the identifier.
+ #[cfg(linux_kernel)]
+ #[inline]
+ pub fn abstract_name(&self) -> Option<&[u8]> {
+ if let [0, bytes @ ..] = self.bytes()? {
+ Some(bytes)
+ } else {
+ None
+ }
+ }
+
+ /// `true` if the socket address is unnamed.
+ #[cfg(linux_kernel)]
+ #[inline]
+ pub fn is_unnamed(&self) -> bool {
+ self.bytes() == Some(&[])
+ }
+
+ #[inline]
+ pub(crate) fn addr_len(&self) -> SocketAddrLen {
+ #[cfg(not(any(bsd, target_os = "haiku")))]
+ {
+ bitcast!(self.len)
+ }
+ #[cfg(any(bsd, target_os = "haiku"))]
+ {
+ bitcast!(c::socklen_t::from(self.unix.sun_len))
+ }
+ }
+
+ #[inline]
+ pub(crate) fn len(&self) -> usize {
+ self.addr_len() as usize
+ }
+
+ #[inline]
+ fn bytes(&self) -> Option<&[u8]> {
+ let len = self.len();
+ if len != 0 {
+ let bytes = &self.unix.sun_path[..len - offsetof_sun_path()];
+ // SAFETY: `from_raw_parts` to convert from `&[c_char]` to `&[u8]`.
+ Some(unsafe { slice::from_raw_parts(bytes.as_ptr().cast(), bytes.len()) })
+ } else {
+ None
+ }
+ }
+}
+
+#[cfg(unix)]
+impl PartialEq for SocketAddrUnix {
+ #[inline]
+ fn eq(&self, other: &Self) -> bool {
+ let self_len = self.len() - offsetof_sun_path();
+ let other_len = other.len() - offsetof_sun_path();
+ self.unix.sun_path[..self_len].eq(&other.unix.sun_path[..other_len])
+ }
+}
+
+#[cfg(unix)]
+impl Eq for SocketAddrUnix {}
+
+#[cfg(unix)]
+impl PartialOrd for SocketAddrUnix {
+ #[inline]
+ fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
+ Some(self.cmp(other))
+ }
+}
+
+#[cfg(unix)]
+impl Ord for SocketAddrUnix {
+ #[inline]
+ fn cmp(&self, other: &Self) -> Ordering {
+ let self_len = self.len() - offsetof_sun_path();
+ let other_len = other.len() - offsetof_sun_path();
+ self.unix.sun_path[..self_len].cmp(&other.unix.sun_path[..other_len])
+ }
+}
+
+#[cfg(unix)]
+impl Hash for SocketAddrUnix {
+ #[inline]
+ fn hash<H: Hasher>(&self, state: &mut H) {
+ let self_len = self.len() - offsetof_sun_path();
+ self.unix.sun_path[..self_len].hash(state)
+ }
+}
+
+#[cfg(unix)]
+impl fmt::Debug for SocketAddrUnix {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ #[cfg(feature = "alloc")]
+ if let Some(path) = self.path() {
+ return path.fmt(f);
+ }
+ if let Some(bytes) = self.path_bytes() {
+ if let Ok(s) = core::str::from_utf8(bytes) {
+ return s.fmt(f);
+ }
+ return bytes.fmt(f);
+ }
+ #[cfg(linux_kernel)]
+ if let Some(name) = self.abstract_name() {
+ return name.fmt(f);
+ }
+ "(unnamed)".fmt(f)
+ }
+}
+
+/// `struct sockaddr_storage`
+///
+/// This type is guaranteed to be large enough to hold any encoded socket
+/// address.
+#[repr(transparent)]
+#[derive(Copy, Clone)]
+#[doc(alias = "sockaddr_storage")]
+pub struct SocketAddrStorage(c::sockaddr_storage);
+
+impl SocketAddrStorage {
+ /// Return a socket addr storage initialized to all zero bytes. The
+ /// `sa_family` is set to [`AddressFamily::UNSPEC`].
+ pub fn zeroed() -> Self {
+ assert_eq!(c::AF_UNSPEC, 0);
+ // SAFETY: `sockaddr_storage` is meant to be zero-initializable.
+ unsafe { core::mem::zeroed() }
+ }
+
+ /// Return the `sa_family` of this socket address.
+ pub fn family(&self) -> AddressFamily {
+ // SAFETY: `self.0` is a `sockaddr_storage` so it has enough space.
+ unsafe {
+ AddressFamily::from_raw(crate::backend::net::read_sockaddr::read_sa_family(
+ crate::utils::as_ptr(&self.0).cast::<c::sockaddr>(),
+ ))
+ }
+ }
+
+ /// Clear the `sa_family` of this socket address to
+ /// [`AddressFamily::UNSPEC`].
+ pub fn clear_family(&mut self) {
+ // SAFETY: `self.0` is a `sockaddr_storage` so it has enough space.
+ unsafe {
+ crate::backend::net::read_sockaddr::initialize_family_to_unspec(
+ crate::utils::as_mut_ptr(&mut self.0).cast::<c::sockaddr>(),
+ )
+ }
+ }
+}
+
+/// Return the offset of the `sun_path` field of `sockaddr_un`.
+#[cfg(not(windows))]
+#[inline]
+pub(crate) fn offsetof_sun_path() -> usize {
+ let z = c::sockaddr_un {
+ #[cfg(any(
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ ))]
+ sun_len: 0_u8,
+ #[cfg(target_os = "vita")]
+ ss_len: 0,
+ #[cfg(any(
+ bsd,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "vita"
+ ))]
+ sun_family: 0_u8,
+ #[cfg(not(any(
+ bsd,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "vita"
+ )))]
+ sun_family: 0_u16,
+ #[cfg(any(bsd, target_os = "horizon", target_os = "nto"))]
+ sun_path: [0; 104],
+ #[cfg(not(any(
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto"
+ )))]
+ sun_path: [0; 108],
+ #[cfg(target_os = "haiku")]
+ sun_path: [0; 126],
+ #[cfg(target_os = "aix")]
+ sun_path: [0; 1023],
+ };
+ (crate::utils::as_ptr(&z.sun_path) as usize) - (crate::utils::as_ptr(&z) as usize)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/net/ext.rs b/vendor/rustix-1.0.8/src/backend/libc/net/ext.rs
new file mode 100644
index 0000000..efd2b31
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/net/ext.rs
@@ -0,0 +1,137 @@
+use crate::backend::c;
+
+/// The windows `sockaddr_in6` type is a union with accessor functions which
+/// are not `const fn`. Define our own layout-compatible version so that we
+/// can transmute in and out of it.
+#[cfg(windows)]
+#[repr(C)]
+struct sockaddr_in6 {
+ sin6_family: u16,
+ sin6_port: u16,
+ sin6_flowinfo: u32,
+ sin6_addr: c::in6_addr,
+ sin6_scope_id: u32,
+}
+
+#[cfg(not(windows))]
+#[inline]
+pub(crate) const fn in_addr_s_addr(addr: c::in_addr) -> u32 {
+ addr.s_addr
+}
+
+#[cfg(windows)]
+#[inline]
+pub(crate) const fn in_addr_s_addr(addr: c::in_addr) -> u32 {
+ // This should be `*addr.S_un.S_addr()`, except that isn't a `const fn`.
+ unsafe { core::mem::transmute(addr) }
+}
+
+#[cfg(not(windows))]
+#[inline]
+pub(crate) const fn in_addr_new(s_addr: u32) -> c::in_addr {
+ c::in_addr { s_addr }
+}
+
+#[cfg(windows)]
+#[inline]
+pub(crate) const fn in_addr_new(s_addr: u32) -> c::in_addr {
+ unsafe { core::mem::transmute(s_addr) }
+}
+
+#[cfg(not(windows))]
+#[inline]
+pub(crate) const fn in6_addr_s6_addr(addr: c::in6_addr) -> [u8; 16] {
+ addr.s6_addr
+}
+
+#[cfg(windows)]
+#[inline]
+pub(crate) const fn in6_addr_s6_addr(addr: c::in6_addr) -> [u8; 16] {
+ unsafe { core::mem::transmute(addr) }
+}
+
+#[cfg(not(windows))]
+#[inline]
+pub(crate) const fn in6_addr_new(s6_addr: [u8; 16]) -> c::in6_addr {
+ c::in6_addr { s6_addr }
+}
+
+#[cfg(windows)]
+#[inline]
+pub(crate) const fn in6_addr_new(s6_addr: [u8; 16]) -> c::in6_addr {
+ unsafe { core::mem::transmute(s6_addr) }
+}
+
+#[cfg(not(windows))]
+#[inline]
+pub(crate) const fn sockaddr_in6_sin6_scope_id(addr: &c::sockaddr_in6) -> u32 {
+ addr.sin6_scope_id
+}
+
+#[cfg(windows)]
+#[inline]
+pub(crate) const fn sockaddr_in6_sin6_scope_id(addr: &c::sockaddr_in6) -> u32 {
+ let addr: &sockaddr_in6 = unsafe { core::mem::transmute(addr) };
+ addr.sin6_scope_id
+}
+
+#[cfg(not(windows))]
+#[inline]
+pub(crate) const fn sockaddr_in6_new(
+ #[cfg(any(
+ bsd,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "vita"
+ ))]
+ sin6_len: u8,
+ sin6_family: c::sa_family_t,
+ sin6_port: u16,
+ sin6_flowinfo: u32,
+ sin6_addr: c::in6_addr,
+ sin6_scope_id: u32,
+) -> c::sockaddr_in6 {
+ c::sockaddr_in6 {
+ #[cfg(any(
+ bsd,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "vita"
+ ))]
+ sin6_len,
+ sin6_family,
+ sin6_port,
+ sin6_flowinfo,
+ sin6_addr,
+ sin6_scope_id,
+ #[cfg(solarish)]
+ __sin6_src_id: 0,
+ #[cfg(target_os = "vita")]
+ sin6_vport: 0,
+ }
+}
+
+#[cfg(windows)]
+#[inline]
+pub(crate) const fn sockaddr_in6_new(
+ sin6_family: u16,
+ sin6_port: u16,
+ sin6_flowinfo: u32,
+ sin6_addr: c::in6_addr,
+ sin6_scope_id: u32,
+) -> c::sockaddr_in6 {
+ let addr = sockaddr_in6 {
+ sin6_family,
+ sin6_port,
+ sin6_flowinfo,
+ sin6_addr,
+ sin6_scope_id,
+ };
+ unsafe { core::mem::transmute(addr) }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/net/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/net/mod.rs
new file mode 100644
index 0000000..da7e1df
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/net/mod.rs
@@ -0,0 +1,17 @@
+pub(crate) mod addr;
+pub(crate) mod ext;
+#[cfg(not(any(
+ windows,
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+pub(crate) mod msghdr;
+#[cfg(linux_kernel)]
+pub(crate) mod netdevice;
+pub(crate) mod read_sockaddr;
+pub(crate) mod send_recv;
+pub(crate) mod sockopt;
+pub(crate) mod syscalls;
+pub(crate) mod write_sockaddr;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/net/msghdr.rs b/vendor/rustix-1.0.8/src/backend/libc/net/msghdr.rs
new file mode 100644
index 0000000..fe5471b
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/net/msghdr.rs
@@ -0,0 +1,188 @@
+//! Utilities for dealing with message headers.
+//!
+//! These take closures rather than returning a `c::msghdr` directly because
+//! the message headers may reference stack-local data.
+
+use crate::backend::c;
+
+use crate::io::{self, IoSlice, IoSliceMut};
+use crate::net::addr::SocketAddrArg;
+use crate::net::{RecvAncillaryBuffer, SendAncillaryBuffer, SocketAddrBuf};
+
+use core::mem::zeroed;
+
+/// Convert the value to the `msg_iovlen` field of a `msghdr` struct.
+#[cfg(all(
+ not(any(windows, target_os = "espidf", target_os = "wasi")),
+ any(
+ target_os = "android",
+ all(
+ target_os = "linux",
+ not(target_env = "musl"),
+ not(all(target_env = "uclibc", any(target_arch = "arm", target_arch = "mips")))
+ )
+ )
+))]
+#[inline]
+fn msg_iov_len(len: usize) -> c::size_t {
+ len
+}
+
+/// Convert the value to the `msg_iovlen` field of a `msghdr` struct.
+#[cfg(all(
+ not(any(
+ windows,
+ target_os = "espidf",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+ )),
+ not(any(
+ target_os = "android",
+ all(
+ target_os = "linux",
+ not(target_env = "musl"),
+ not(all(target_env = "uclibc", any(target_arch = "arm", target_arch = "mips")))
+ )
+ ))
+))]
+#[inline]
+fn msg_iov_len(len: usize) -> c::c_int {
+ len.try_into().unwrap_or(c::c_int::MAX)
+}
+
+/// Convert the value to a `socklen_t`.
+#[cfg(any(
+ bsd,
+ solarish,
+ target_env = "musl",
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+))]
+#[inline]
+fn msg_control_len(len: usize) -> c::socklen_t {
+ len.try_into().unwrap_or(c::socklen_t::MAX)
+}
+
+/// Convert the value to a `size_t`.
+#[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_env = "musl",
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+#[inline]
+fn msg_control_len(len: usize) -> c::size_t {
+ len
+}
+
+/// Create a message header intended to receive a datagram.
+///
+/// # Safety
+///
+/// If `f` dereferences the pointers in the `msghdr`, it must do so only within
+/// the bounds indicated by the associated lengths in the `msghdr`.
+///
+/// And, if `f` returns `Ok`, it must have updated the `msg_controllen` field
+/// of the `msghdr` to indicate how many bytes it initialized.
+pub(crate) unsafe fn with_recv_msghdr<R>(
+ name: &mut SocketAddrBuf,
+ iov: &mut [IoSliceMut<'_>],
+ control: &mut RecvAncillaryBuffer<'_>,
+ f: impl FnOnce(&mut c::msghdr) -> io::Result<R>,
+) -> io::Result<R> {
+ control.clear();
+
+ let mut msghdr = zero_msghdr();
+ msghdr.msg_name = name.storage.as_mut_ptr().cast();
+ msghdr.msg_namelen = name.len;
+ msghdr.msg_iov = iov.as_mut_ptr().cast();
+ msghdr.msg_iovlen = msg_iov_len(iov.len());
+ msghdr.msg_control = control.as_control_ptr().cast();
+ msghdr.msg_controllen = msg_control_len(control.control_len());
+
+ let res = f(&mut msghdr);
+
+ // Reset the control length.
+ if res.is_ok() {
+ // SAFETY: `f` returned `Ok`, so our safety condition requires `f` to
+ // have initialized `msg_controllen` bytes.
+ control.set_control_len(msghdr.msg_controllen as usize);
+ }
+
+ name.len = msghdr.msg_namelen;
+
+ res
+}
+
+/// Create a message header intended to send without an address.
+///
+/// The returned `msghdr` will contain raw pointers to the memory
+/// referenced by `iov` and `control`.
+pub(crate) fn noaddr_msghdr(
+ iov: &[IoSlice<'_>],
+ control: &mut SendAncillaryBuffer<'_, '_, '_>,
+) -> c::msghdr {
+ let mut h = zero_msghdr();
+ h.msg_iov = iov.as_ptr() as _;
+ h.msg_iovlen = msg_iov_len(iov.len());
+ h.msg_control = control.as_control_ptr().cast();
+ h.msg_controllen = msg_control_len(control.control_len());
+ h
+}
+
+/// Create a message header intended to send with the specified address.
+///
+/// This creates a `c::msghdr` and calls a function `f` on it. The `msghdr`'s
+/// raw pointers may point to temporaries, so this function should avoid
+/// storing the pointers anywhere that would outlive the function call.
+///
+/// # Safety
+///
+/// If `f` dereferences the pointers in the `msghdr`, it must do so only within
+/// the bounds indicated by the associated lengths in the `msghdr`.
+pub(crate) unsafe fn with_msghdr<R>(
+ addr: &impl SocketAddrArg,
+ iov: &[IoSlice<'_>],
+ control: &mut SendAncillaryBuffer<'_, '_, '_>,
+ f: impl FnOnce(&c::msghdr) -> R,
+) -> R {
+ addr.with_sockaddr(|addr_ptr, addr_len| {
+ let mut h = zero_msghdr();
+ h.msg_name = addr_ptr as *mut _;
+ h.msg_namelen = bitcast!(addr_len);
+ h.msg_iov = iov.as_ptr() as _;
+ h.msg_iovlen = msg_iov_len(iov.len());
+ h.msg_control = control.as_control_ptr().cast();
+ h.msg_controllen = msg_control_len(control.control_len());
+ // Pass a reference to the `c::msghdr` instead of passing it by value
+ // because it may contain pointers to temporary objects that won't
+ // live beyond the call to `with_sockaddr`.
+ f(&h)
+ })
+}
+
+/// Create a zero-initialized message header struct value.
+#[cfg(all(unix, not(target_os = "redox")))]
+pub(crate) fn zero_msghdr() -> c::msghdr {
+ // SAFETY: We can't initialize all the fields by value because on some
+ // platforms the `msghdr` struct in the libc crate contains private padding
+ // fields. But it is still a C type that's meant to be zero-initializable.
+ unsafe { zeroed() }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/net/netdevice.rs b/vendor/rustix-1.0.8/src/backend/libc/net/netdevice.rs
new file mode 100644
index 0000000..887f768
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/net/netdevice.rs
@@ -0,0 +1,55 @@
+//! Wrappers for netdevice ioctls.
+
+#![allow(unsafe_code)]
+
+#[cfg(feature = "alloc")]
+use crate::alloc::string::String;
+use crate::backend::c;
+use crate::backend::io::syscalls::ioctl;
+use crate::fd::BorrowedFd;
+use crate::io;
+#[cfg(feature = "alloc")]
+use c::SIOCGIFNAME;
+use c::{__c_anonymous_ifr_ifru, c_char, ifreq, IFNAMSIZ, SIOCGIFINDEX};
+
+pub(crate) fn name_to_index(fd: BorrowedFd<'_>, if_name: &str) -> io::Result<u32> {
+ let if_name_bytes = if_name.as_bytes();
+ if if_name_bytes.len() >= IFNAMSIZ as usize {
+ return Err(io::Errno::NODEV);
+ }
+
+ let mut ifreq = ifreq {
+ ifr_name: [0; 16],
+ ifr_ifru: __c_anonymous_ifr_ifru { ifru_ifindex: 0 },
+ };
+
+ let mut if_name_c_char_iter = if_name_bytes.iter().map(|byte| *byte as c_char);
+ ifreq.ifr_name[..if_name_bytes.len()].fill_with(|| if_name_c_char_iter.next().unwrap());
+
+ unsafe { ioctl(fd, SIOCGIFINDEX as _, &mut ifreq as *mut ifreq as _) }?;
+ let index = unsafe { ifreq.ifr_ifru.ifru_ifindex };
+ Ok(index as u32)
+}
+
+#[cfg(feature = "alloc")]
+pub(crate) fn index_to_name(fd: BorrowedFd<'_>, index: u32) -> io::Result<String> {
+ let mut ifreq = ifreq {
+ ifr_name: [0; 16],
+ ifr_ifru: __c_anonymous_ifr_ifru {
+ ifru_ifindex: index as _,
+ },
+ };
+
+ unsafe { ioctl(fd, SIOCGIFNAME as _, &mut ifreq as *mut ifreq as _) }?;
+
+ if let Some(nul_byte) = ifreq.ifr_name.iter().position(|char| *char == 0) {
+ let name: String = ifreq.ifr_name[..nul_byte]
+ .iter()
+ .map(|v| *v as u8 as char)
+ .collect();
+
+ Ok(name)
+ } else {
+ Err(io::Errno::INVAL)
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/net/read_sockaddr.rs b/vendor/rustix-1.0.8/src/backend/libc/net/read_sockaddr.rs
new file mode 100644
index 0000000..5f8c48e
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/net/read_sockaddr.rs
@@ -0,0 +1,264 @@
+//! The BSD sockets API requires us to read the `sa_family` field before we can
+//! interpret the rest of a `sockaddr` produced by the kernel.
+
+#[cfg(unix)]
+use super::addr::SocketAddrUnix;
+use super::ext::{in6_addr_s6_addr, in_addr_s_addr, sockaddr_in6_sin6_scope_id};
+use crate::backend::c;
+#[cfg(not(windows))]
+use crate::ffi::CStr;
+use crate::io::Errno;
+use crate::net::addr::SocketAddrLen;
+#[cfg(linux_kernel)]
+use crate::net::netlink::SocketAddrNetlink;
+#[cfg(target_os = "linux")]
+use crate::net::xdp::{SocketAddrXdp, SocketAddrXdpFlags};
+use crate::net::{AddressFamily, Ipv4Addr, Ipv6Addr, SocketAddrAny, SocketAddrV4, SocketAddrV6};
+use core::mem::size_of;
+
+// This must match the header of `sockaddr`.
+#[repr(C)]
+pub(crate) struct sockaddr_header {
+ #[cfg(any(
+ bsd,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "vita"
+ ))]
+ sa_len: u8,
+ #[cfg(any(
+ bsd,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "vita"
+ ))]
+ sa_family: u8,
+ #[cfg(not(any(
+ bsd,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "vita"
+ )))]
+ sa_family: u16,
+}
+
+/// Read the `sa_family` field from a socket address returned from the OS.
+///
+/// # Safety
+///
+/// `storage` must point to a valid socket address returned from the OS.
+#[inline]
+pub(crate) unsafe fn read_sa_family(storage: *const c::sockaddr) -> u16 {
+ // Assert that we know the layout of `sockaddr`.
+ let _ = c::sockaddr {
+ #[cfg(any(
+ bsd,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "vita"
+ ))]
+ sa_len: 0_u8,
+ #[cfg(any(
+ bsd,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "vita"
+ ))]
+ sa_family: 0_u8,
+ #[cfg(not(any(
+ bsd,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "vita"
+ )))]
+ sa_family: 0_u16,
+ #[cfg(not(any(target_os = "haiku", target_os = "horizon")))]
+ sa_data: [0; 14],
+ #[cfg(target_os = "horizon")]
+ sa_data: [0; 26],
+ #[cfg(target_os = "haiku")]
+ sa_data: [0; 30],
+ };
+
+ (*storage.cast::<sockaddr_header>()).sa_family.into()
+}
+
+/// Read the first byte of the `sun_path` field, assuming we have an `AF_UNIX`
+/// socket address.
+#[cfg(apple)]
+#[inline]
+unsafe fn read_sun_path0(storage: *const c::sockaddr) -> u8 {
+ // In `read_sa_family` we assert that we know the layout of `sockaddr`.
+ storage
+ .cast::<u8>()
+ .add(super::addr::offsetof_sun_path())
+ .read()
+}
+
+/// Check if a socket address returned from the OS is considered non-empty.
+///
+/// # Safety
+///
+/// `storage` must point to a least an initialized `sockaddr_header`.
+#[inline]
+pub(crate) unsafe fn sockaddr_nonempty(storage: *const c::sockaddr, len: SocketAddrLen) -> bool {
+ if len == 0 {
+ return false;
+ }
+
+ assert!(len as usize >= size_of::<c::sa_family_t>());
+ let family: c::c_int = read_sa_family(storage.cast::<c::sockaddr>()).into();
+ if family == c::AF_UNSPEC {
+ return false;
+ }
+
+ // On macOS, if we get an `AF_UNIX` with an empty path, treat it as an
+ // absent address.
+ #[cfg(apple)]
+ if family == c::AF_UNIX && read_sun_path0(storage) == 0 {
+ return false;
+ }
+
+ true
+}
+
+/// Set the `sa_family` field of a socket address to `AF_UNSPEC`, so that we
+/// can test for `AF_UNSPEC` to test whether it was stored to.
+///
+/// # Safety
+///
+/// `storage` must point to a least an initialized `sockaddr_header`.
+pub(crate) unsafe fn initialize_family_to_unspec(storage: *mut c::sockaddr) {
+ (*storage.cast::<sockaddr_header>()).sa_family = c::AF_UNSPEC as _;
+}
+
+#[inline]
+pub(crate) fn read_sockaddr_v4(addr: &SocketAddrAny) -> Result<SocketAddrV4, Errno> {
+ if addr.address_family() != AddressFamily::INET {
+ return Err(Errno::AFNOSUPPORT);
+ }
+ assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_in>());
+ let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_in>() };
+ Ok(SocketAddrV4::new(
+ Ipv4Addr::from(u32::from_be(in_addr_s_addr(decode.sin_addr))),
+ u16::from_be(decode.sin_port),
+ ))
+}
+
+#[inline]
+pub(crate) fn read_sockaddr_v6(addr: &SocketAddrAny) -> Result<SocketAddrV6, Errno> {
+ if addr.address_family() != AddressFamily::INET6 {
+ return Err(Errno::AFNOSUPPORT);
+ }
+ assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_in6>());
+ let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_in6>() };
+ Ok(SocketAddrV6::new(
+ Ipv6Addr::from(in6_addr_s6_addr(decode.sin6_addr)),
+ u16::from_be(decode.sin6_port),
+ u32::from_be(decode.sin6_flowinfo),
+ sockaddr_in6_sin6_scope_id(decode),
+ ))
+}
+
+#[cfg(unix)]
+#[inline]
+pub(crate) fn read_sockaddr_unix(addr: &SocketAddrAny) -> Result<SocketAddrUnix, Errno> {
+ if addr.address_family() != AddressFamily::UNIX {
+ return Err(Errno::AFNOSUPPORT);
+ }
+
+ let offsetof_sun_path = super::addr::offsetof_sun_path();
+ let len = addr.addr_len() as usize;
+
+ assert!(len >= offsetof_sun_path);
+
+ if len == offsetof_sun_path {
+ SocketAddrUnix::new(&[][..])
+ } else {
+ let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_un>() };
+
+ // On Linux check for Linux's [abstract namespace].
+ //
+ // [abstract namespace]: https://man7.org/linux/man-pages/man7/unix.7.html
+ #[cfg(linux_kernel)]
+ if decode.sun_path[0] == 0 {
+ let name = &decode.sun_path[1..len - offsetof_sun_path];
+ let name = unsafe { core::mem::transmute::<&[c::c_char], &[u8]>(name) };
+ return SocketAddrUnix::new_abstract_name(name);
+ }
+
+ // Otherwise we expect a NUL-terminated filesystem path.
+
+ // Trim off unused bytes from the end of `path_bytes`.
+ let path_bytes = if cfg!(any(solarish, target_os = "freebsd")) {
+ // FreeBSD and illumos sometimes set the length to longer
+ // than the length of the NUL-terminated string. Find the
+ // NUL and truncate the string accordingly.
+ &decode.sun_path[..decode
+ .sun_path
+ .iter()
+ .position(|b| *b == 0)
+ .ok_or(Errno::INVAL)?]
+ } else {
+ // Otherwise, use the provided length.
+ let provided_len = len - 1 - offsetof_sun_path;
+ if decode.sun_path[provided_len] != 0 {
+ return Err(Errno::INVAL);
+ }
+ debug_assert_eq!(
+ unsafe { CStr::from_ptr(decode.sun_path.as_ptr().cast()) }
+ .to_bytes()
+ .len(),
+ provided_len
+ );
+ &decode.sun_path[..provided_len]
+ };
+
+ SocketAddrUnix::new(unsafe { core::mem::transmute::<&[c::c_char], &[u8]>(path_bytes) })
+ }
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn read_sockaddr_xdp(addr: &SocketAddrAny) -> Result<SocketAddrXdp, Errno> {
+ if addr.address_family() != AddressFamily::XDP {
+ return Err(Errno::AFNOSUPPORT);
+ }
+ assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_xdp>());
+ let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_xdp>() };
+
+ // This ignores the `sxdp_shared_umem_fd` field, which is only expected to
+ // be significant in `bind` calls, and not returned from `acceptfrom` or
+ // `recvmsg` or similar.
+ Ok(SocketAddrXdp::new(
+ SocketAddrXdpFlags::from_bits_retain(decode.sxdp_flags),
+ u32::from_be(decode.sxdp_ifindex),
+ u32::from_be(decode.sxdp_queue_id),
+ ))
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn read_sockaddr_netlink(addr: &SocketAddrAny) -> Result<SocketAddrNetlink, Errno> {
+ if addr.address_family() != AddressFamily::NETLINK {
+ return Err(Errno::AFNOSUPPORT);
+ }
+ assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_nl>());
+ let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_nl>() };
+ Ok(SocketAddrNetlink::new(decode.nl_pid, decode.nl_groups))
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/net/send_recv.rs b/vendor/rustix-1.0.8/src/backend/libc/net/send_recv.rs
new file mode 100644
index 0000000..4b67f2c
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/net/send_recv.rs
@@ -0,0 +1,153 @@
+use crate::backend::c;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `MSG_*` flags for use with [`send`], [`sendto`], and related
+ /// functions.
+ ///
+ /// [`send`]: crate::net::send
+ /// [`sendto`]: crate::net::sendto
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct SendFlags: u32 {
+ /// `MSG_CONFIRM`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "nto",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ const CONFIRM = bitcast!(c::MSG_CONFIRM);
+ /// `MSG_DONTROUTE`
+ const DONTROUTE = bitcast!(c::MSG_DONTROUTE);
+ /// `MSG_DONTWAIT`
+ #[cfg(not(windows))]
+ const DONTWAIT = bitcast!(c::MSG_DONTWAIT);
+ /// `MSG_EOR`
+ #[cfg(not(any(windows, target_os = "horizon")))]
+ const EOR = bitcast!(c::MSG_EOR);
+ /// `MSG_MORE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ const MORE = bitcast!(c::MSG_MORE);
+ #[cfg(not(any(apple, windows, target_os = "redox", target_os = "vita")))]
+ /// `MSG_NOSIGNAL`
+ const NOSIGNAL = bitcast!(c::MSG_NOSIGNAL);
+ /// `MSG_OOB`
+ const OOB = bitcast!(c::MSG_OOB);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `MSG_*` flags for use with [`recv`], [`recvfrom`], and related
+ /// functions.
+ ///
+ /// [`recv`]: crate::net::recv
+ /// [`recvfrom`]: crate::net::recvfrom
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct RecvFlags: u32 {
+ /// `MSG_CMSG_CLOEXEC`
+ #[cfg(not(any(
+ apple,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ const CMSG_CLOEXEC = bitcast!(c::MSG_CMSG_CLOEXEC);
+ /// `MSG_DONTWAIT`
+ #[cfg(not(windows))]
+ const DONTWAIT = bitcast!(c::MSG_DONTWAIT);
+ /// `MSG_ERRQUEUE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ const ERRQUEUE = bitcast!(c::MSG_ERRQUEUE);
+ /// `MSG_OOB`
+ const OOB = bitcast!(c::MSG_OOB);
+ /// `MSG_PEEK`
+ const PEEK = bitcast!(c::MSG_PEEK);
+ /// `MSG_TRUNC`
+ // Apple, illumos, and NetBSD have `MSG_TRUNC` but it's not documented
+ // for use with `recv` and friends, and in practice appears to be
+ // ignored.
+ #[cfg(not(any(apple, solarish, target_os = "horizon", target_os = "netbsd")))]
+ const TRUNC = bitcast!(c::MSG_TRUNC);
+ /// `MSG_WAITALL`
+ const WAITALL = bitcast!(c::MSG_WAITALL);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `MSG_*` flags returned from [`recvmsg`], in the `flags` field of
+ /// [`RecvMsg`]
+ ///
+ /// [`recvmsg`]: crate::net::recvmsg
+ /// [`RecvMsg`]: crate::net::RecvMsg
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ReturnFlags: u32 {
+ /// `MSG_OOB`
+ const OOB = bitcast!(c::MSG_OOB);
+ /// `MSG_EOR`
+ #[cfg(not(any(windows, target_os = "horizon")))]
+ const EOR = bitcast!(c::MSG_EOR);
+ /// `MSG_TRUNC`
+ #[cfg(not(target_os = "horizon"))]
+ const TRUNC = bitcast!(c::MSG_TRUNC);
+ /// `MSG_CTRUNC`
+ #[cfg(not(target_os = "horizon"))]
+ const CTRUNC = bitcast!(c::MSG_CTRUNC);
+
+ /// `MSG_CMSG_CLOEXEC`
+ #[cfg(linux_kernel)]
+ const CMSG_CLOEXEC = bitcast!(c::MSG_CMSG_CLOEXEC);
+ /// `MSG_ERRQUEUE`
+ #[cfg(linux_kernel)]
+ const ERRQUEUE = bitcast!(c::MSG_ERRQUEUE);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/net/sockopt.rs b/vendor/rustix-1.0.8/src/backend/libc/net/sockopt.rs
new file mode 100644
index 0000000..3a89a9d
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/net/sockopt.rs
@@ -0,0 +1,1338 @@
+//! libc syscalls supporting `rustix::net::sockopt`.
+
+use super::ext::{in6_addr_new, in_addr_new};
+use crate::backend::c;
+use crate::backend::conv::{borrowed_fd, ret};
+use crate::fd::BorrowedFd;
+#[cfg(feature = "alloc")]
+#[cfg(any(
+ linux_like,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "illumos"
+))]
+use crate::ffi::CStr;
+use crate::io;
+use crate::net::sockopt::Timeout;
+#[cfg(target_os = "linux")]
+use crate::net::xdp::{XdpMmapOffsets, XdpOptionsFlags, XdpRingOffset, XdpStatistics, XdpUmemReg};
+#[cfg(not(any(
+ apple,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "dragonfly",
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "netbsd",
+ target_os = "nto",
+ target_os = "vita",
+)))]
+use crate::net::AddressFamily;
+#[cfg(any(
+ linux_kernel,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_env = "newlib"
+))]
+use crate::net::Protocol;
+#[cfg(any(
+ linux_kernel,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_env = "newlib"
+))]
+use crate::net::RawProtocol;
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+use crate::net::SocketAddrV4;
+use crate::net::{Ipv4Addr, Ipv6Addr, SocketType};
+#[cfg(linux_kernel)]
+use crate::net::{SocketAddrV6, UCred};
+use crate::utils::as_mut_ptr;
+#[cfg(feature = "alloc")]
+#[cfg(any(
+ linux_like,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "illumos"
+))]
+use alloc::borrow::ToOwned as _;
+#[cfg(feature = "alloc")]
+#[cfg(any(
+ linux_like,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "illumos"
+))]
+use alloc::string::String;
+#[cfg(apple)]
+use c::TCP_KEEPALIVE as TCP_KEEPIDLE;
+#[cfg(not(any(apple, target_os = "haiku", target_os = "nto", target_os = "openbsd")))]
+use c::TCP_KEEPIDLE;
+use core::mem::{size_of, MaybeUninit};
+use core::time::Duration;
+#[cfg(target_os = "linux")]
+use linux_raw_sys::xdp::{xdp_mmap_offsets, xdp_statistics, xdp_statistics_v1};
+
+#[inline]
+fn getsockopt<T: Copy>(fd: BorrowedFd<'_>, level: i32, optname: i32) -> io::Result<T> {
+ let mut optlen = size_of::<T>().try_into().unwrap();
+ debug_assert!(
+ optlen as usize >= size_of::<c::c_int>(),
+ "Socket APIs don't ever use `bool` directly"
+ );
+
+ let mut value = MaybeUninit::<T>::zeroed();
+ getsockopt_raw(fd, level, optname, &mut value, &mut optlen)?;
+
+ // On Windows at least, `getsockopt` has been observed writing 1
+ // byte on at least (`IPPROTO_TCP`, `TCP_NODELAY`), even though
+ // Windows' documentation says that should write a 4-byte `BOOL`.
+ // So, we initialize the memory to zeros above, and just assert
+ // that `getsockopt` doesn't write too many bytes here.
+ assert!(
+ optlen as usize <= size_of::<T>(),
+ "unexpected getsockopt size"
+ );
+
+ unsafe { Ok(value.assume_init()) }
+}
+
+#[inline]
+fn getsockopt_raw<T>(
+ fd: BorrowedFd<'_>,
+ level: i32,
+ optname: i32,
+ value: &mut MaybeUninit<T>,
+ optlen: &mut c::socklen_t,
+) -> io::Result<()> {
+ unsafe {
+ ret(c::getsockopt(
+ borrowed_fd(fd),
+ level,
+ optname,
+ as_mut_ptr(value).cast(),
+ optlen,
+ ))
+ }
+}
+
+#[inline]
+fn setsockopt<T: Copy>(fd: BorrowedFd<'_>, level: i32, optname: i32, value: T) -> io::Result<()> {
+ let optlen = size_of::<T>().try_into().unwrap();
+ debug_assert!(
+ optlen as usize >= size_of::<c::c_int>(),
+ "Socket APIs don't ever use `bool` directly"
+ );
+ setsockopt_raw(fd, level, optname, &value, optlen)
+}
+
+#[inline]
+fn setsockopt_raw<T>(
+ fd: BorrowedFd<'_>,
+ level: i32,
+ optname: i32,
+ ptr: *const T,
+ optlen: c::socklen_t,
+) -> io::Result<()> {
+ unsafe {
+ ret(c::setsockopt(
+ borrowed_fd(fd),
+ level,
+ optname,
+ ptr.cast(),
+ optlen,
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn socket_type(fd: BorrowedFd<'_>) -> io::Result<SocketType> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_TYPE)
+}
+
+#[inline]
+pub(crate) fn set_socket_reuseaddr(fd: BorrowedFd<'_>, reuseaddr: bool) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_REUSEADDR, from_bool(reuseaddr))
+}
+
+#[inline]
+pub(crate) fn socket_reuseaddr(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_REUSEADDR).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_socket_broadcast(fd: BorrowedFd<'_>, broadcast: bool) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_BROADCAST, from_bool(broadcast))
+}
+
+#[inline]
+pub(crate) fn socket_broadcast(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_BROADCAST).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_socket_linger(fd: BorrowedFd<'_>, linger: Option<Duration>) -> io::Result<()> {
+ // Convert `linger` to seconds, rounding up.
+ let l_linger = if let Some(linger) = linger {
+ duration_to_secs(linger)?
+ } else {
+ 0
+ };
+ let linger = c::linger {
+ l_onoff: linger.is_some().into(),
+ l_linger,
+ };
+ setsockopt(fd, c::SOL_SOCKET, c::SO_LINGER, linger)
+}
+
+#[inline]
+pub(crate) fn socket_linger(fd: BorrowedFd<'_>) -> io::Result<Option<Duration>> {
+ let linger: c::linger = getsockopt(fd, c::SOL_SOCKET, c::SO_LINGER)?;
+ Ok((linger.l_onoff != 0).then(|| Duration::from_secs(linger.l_linger as u64)))
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn set_socket_passcred(fd: BorrowedFd<'_>, passcred: bool) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_PASSCRED, from_bool(passcred))
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn socket_passcred(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_PASSCRED).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_socket_timeout(
+ fd: BorrowedFd<'_>,
+ id: Timeout,
+ timeout: Option<Duration>,
+) -> io::Result<()> {
+ let optname = match id {
+ Timeout::Recv => c::SO_RCVTIMEO,
+ Timeout::Send => c::SO_SNDTIMEO,
+ };
+
+ #[cfg(not(windows))]
+ let timeout = match timeout {
+ Some(timeout) => {
+ if timeout == Duration::ZERO {
+ return Err(io::Errno::INVAL);
+ }
+
+ // Rust's musl libc bindings deprecated `time_t` while they
+ // transition to 64-bit `time_t`. What we want here is just
+ // “whatever type `timeval`'s `tv_sec` is”, so we're ok using
+ // the deprecated type.
+ #[allow(deprecated)]
+ let tv_sec = timeout.as_secs().try_into().unwrap_or(c::time_t::MAX);
+
+ // `subsec_micros` rounds down, so we use `subsec_nanos` and
+ // manually round up.
+ let mut timeout = c::timeval {
+ tv_sec,
+ tv_usec: ((timeout.subsec_nanos() + 999) / 1000) as _,
+ };
+ if timeout.tv_sec == 0 && timeout.tv_usec == 0 {
+ timeout.tv_usec = 1;
+ }
+ timeout
+ }
+ None => c::timeval {
+ tv_sec: 0,
+ tv_usec: 0,
+ },
+ };
+
+ #[cfg(windows)]
+ let timeout: u32 = match timeout {
+ Some(timeout) => {
+ if timeout == Duration::ZERO {
+ return Err(io::Errno::INVAL);
+ }
+
+ // `as_millis` rounds down, so we use `as_nanos` and
+ // manually round up.
+ let mut timeout: u32 = ((timeout.as_nanos() + 999_999) / 1_000_000)
+ .try_into()
+ .map_err(|_convert_err| io::Errno::INVAL)?;
+ if timeout == 0 {
+ timeout = 1;
+ }
+ timeout
+ }
+ None => 0,
+ };
+
+ setsockopt(fd, c::SOL_SOCKET, optname, timeout)
+}
+
+#[inline]
+pub(crate) fn socket_timeout(fd: BorrowedFd<'_>, id: Timeout) -> io::Result<Option<Duration>> {
+ let optname = match id {
+ Timeout::Recv => c::SO_RCVTIMEO,
+ Timeout::Send => c::SO_SNDTIMEO,
+ };
+
+ #[cfg(not(windows))]
+ {
+ let timeout: c::timeval = getsockopt(fd, c::SOL_SOCKET, optname)?;
+ if timeout.tv_sec == 0 && timeout.tv_usec == 0 {
+ Ok(None)
+ } else {
+ Ok(Some(
+ Duration::from_secs(timeout.tv_sec as u64)
+ + Duration::from_micros(timeout.tv_usec as u64),
+ ))
+ }
+ }
+
+ #[cfg(windows)]
+ {
+ let timeout: u32 = getsockopt(fd, c::SOL_SOCKET, optname)?;
+ if timeout == 0 {
+ Ok(None)
+ } else {
+ Ok(Some(Duration::from_millis(timeout as u64)))
+ }
+ }
+}
+
+#[cfg(any(apple, freebsdlike, target_os = "netbsd"))]
+#[inline]
+pub(crate) fn socket_nosigpipe(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_NOSIGPIPE).map(to_bool)
+}
+
+#[cfg(any(apple, freebsdlike, target_os = "netbsd"))]
+#[inline]
+pub(crate) fn set_socket_nosigpipe(fd: BorrowedFd<'_>, val: bool) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_NOSIGPIPE, from_bool(val))
+}
+
+#[inline]
+pub(crate) fn socket_error(fd: BorrowedFd<'_>) -> io::Result<Result<(), io::Errno>> {
+ let err: c::c_int = getsockopt(fd, c::SOL_SOCKET, c::SO_ERROR)?;
+ Ok(if err == 0 {
+ Ok(())
+ } else {
+ Err(io::Errno::from_raw_os_error(err))
+ })
+}
+
+#[inline]
+pub(crate) fn set_socket_keepalive(fd: BorrowedFd<'_>, keepalive: bool) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_KEEPALIVE, from_bool(keepalive))
+}
+
+#[inline]
+pub(crate) fn socket_keepalive(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_KEEPALIVE).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_socket_recv_buffer_size(fd: BorrowedFd<'_>, size: usize) -> io::Result<()> {
+ let size: c::c_int = size.try_into().map_err(|_| io::Errno::INVAL)?;
+ setsockopt(fd, c::SOL_SOCKET, c::SO_RCVBUF, size)
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia", target_os = "redox"))]
+#[inline]
+pub(crate) fn set_socket_recv_buffer_size_force(fd: BorrowedFd<'_>, size: usize) -> io::Result<()> {
+ let size: c::c_int = size.try_into().map_err(|_| io::Errno::INVAL)?;
+ setsockopt(fd, c::SOL_SOCKET, c::SO_RCVBUFFORCE, size)
+}
+
+#[inline]
+pub(crate) fn socket_recv_buffer_size(fd: BorrowedFd<'_>) -> io::Result<usize> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_RCVBUF).map(|size: u32| size as usize)
+}
+
+#[inline]
+pub(crate) fn set_socket_send_buffer_size(fd: BorrowedFd<'_>, size: usize) -> io::Result<()> {
+ let size: c::c_int = size.try_into().map_err(|_| io::Errno::INVAL)?;
+ setsockopt(fd, c::SOL_SOCKET, c::SO_SNDBUF, size)
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia", target_os = "redox"))]
+#[inline]
+pub(crate) fn set_socket_send_buffer_size_force(fd: BorrowedFd<'_>, size: usize) -> io::Result<()> {
+ let size: c::c_int = size.try_into().map_err(|_| io::Errno::INVAL)?;
+ setsockopt(fd, c::SOL_SOCKET, c::SO_SNDBUFFORCE, size)
+}
+
+#[inline]
+pub(crate) fn socket_send_buffer_size(fd: BorrowedFd<'_>) -> io::Result<usize> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_SNDBUF).map(|size: u32| size as usize)
+}
+
+#[inline]
+#[cfg(not(any(
+ apple,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "dragonfly",
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "netbsd",
+ target_os = "nto",
+ target_os = "vita",
+)))]
+pub(crate) fn socket_domain(fd: BorrowedFd<'_>) -> io::Result<AddressFamily> {
+ let domain: c::c_int = getsockopt(fd, c::SOL_SOCKET, c::SO_DOMAIN)?;
+ Ok(AddressFamily(
+ domain.try_into().map_err(|_| io::Errno::OPNOTSUPP)?,
+ ))
+}
+
+#[inline]
+#[cfg(not(apple))] // Apple platforms declare the constant, but do not actually implement it.
+pub(crate) fn socket_acceptconn(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_ACCEPTCONN).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_socket_oobinline(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_OOBINLINE, from_bool(value))
+}
+
+#[inline]
+pub(crate) fn socket_oobinline(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_OOBINLINE).map(to_bool)
+}
+
+#[cfg(not(any(solarish, windows, target_os = "cygwin")))]
+#[inline]
+pub(crate) fn set_socket_reuseport(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_REUSEPORT, from_bool(value))
+}
+
+#[cfg(not(any(solarish, windows, target_os = "cygwin")))]
+#[inline]
+pub(crate) fn socket_reuseport(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_REUSEPORT).map(to_bool)
+}
+
+#[cfg(target_os = "freebsd")]
+#[inline]
+pub(crate) fn set_socket_reuseport_lb(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_REUSEPORT_LB, from_bool(value))
+}
+
+#[cfg(target_os = "freebsd")]
+#[inline]
+pub(crate) fn socket_reuseport_lb(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_REUSEPORT_LB).map(to_bool)
+}
+
+#[cfg(any(
+ linux_kernel,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_env = "newlib"
+))]
+#[inline]
+pub(crate) fn socket_protocol(fd: BorrowedFd<'_>) -> io::Result<Option<Protocol>> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_PROTOCOL)
+ .map(|raw| RawProtocol::new(raw).map(Protocol::from_raw))
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn socket_cookie(fd: BorrowedFd<'_>) -> io::Result<u64> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_COOKIE)
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn socket_incoming_cpu(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_INCOMING_CPU)
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn set_socket_incoming_cpu(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_INCOMING_CPU, value)
+}
+
+#[inline]
+pub(crate) fn set_ip_ttl(fd: BorrowedFd<'_>, ttl: u32) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IP, c::IP_TTL, ttl)
+}
+
+#[inline]
+pub(crate) fn ip_ttl(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_IP, c::IP_TTL)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_v6only(fd: BorrowedFd<'_>, only_v6: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IPV6, c::IPV6_V6ONLY, from_bool(only_v6))
+}
+
+#[inline]
+pub(crate) fn ipv6_v6only(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_IPV6, c::IPV6_V6ONLY).map(to_bool)
+}
+
+#[cfg(any(linux_kernel, target_os = "cygwin"))]
+#[inline]
+pub(crate) fn ip_mtu(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_IP, c::IP_MTU)
+}
+
+#[cfg(any(linux_kernel, target_os = "cygwin"))]
+#[inline]
+pub(crate) fn ipv6_mtu(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_IPV6, c::IPV6_MTU)
+}
+
+#[inline]
+pub(crate) fn set_ip_multicast_if(fd: BorrowedFd<'_>, value: &Ipv4Addr) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IP, c::IP_MULTICAST_IF, to_imr_addr(value))
+}
+
+#[inline]
+pub(crate) fn ip_multicast_if(fd: BorrowedFd<'_>) -> io::Result<Ipv4Addr> {
+ getsockopt(fd, c::IPPROTO_IP, c::IP_MULTICAST_IF).map(from_in_addr)
+}
+
+#[cfg(any(
+ apple,
+ freebsdlike,
+ linux_like,
+ target_os = "fuchsia",
+ target_os = "openbsd"
+))]
+#[inline]
+pub(crate) fn set_ip_multicast_if_with_ifindex(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv4Addr,
+ address: &Ipv4Addr,
+ ifindex: u32,
+) -> io::Result<()> {
+ let mreqn = to_ip_mreqn(multiaddr, address, ifindex as i32);
+ setsockopt(fd, c::IPPROTO_IP, c::IP_MULTICAST_IF, mreqn)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_multicast_if(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IPV6, c::IPV6_MULTICAST_IF, value as c::c_int)
+}
+
+#[inline]
+pub(crate) fn ipv6_multicast_if(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_IPV6, c::IPV6_MULTICAST_IF)
+}
+
+#[inline]
+pub(crate) fn set_ip_multicast_loop(fd: BorrowedFd<'_>, multicast_loop: bool) -> io::Result<()> {
+ setsockopt(
+ fd,
+ c::IPPROTO_IP,
+ c::IP_MULTICAST_LOOP,
+ from_bool(multicast_loop),
+ )
+}
+
+#[inline]
+pub(crate) fn ip_multicast_loop(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_IP, c::IP_MULTICAST_LOOP).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_ip_multicast_ttl(fd: BorrowedFd<'_>, multicast_ttl: u32) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IP, c::IP_MULTICAST_TTL, multicast_ttl)
+}
+
+#[inline]
+pub(crate) fn ip_multicast_ttl(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_IP, c::IP_MULTICAST_TTL)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_multicast_loop(fd: BorrowedFd<'_>, multicast_loop: bool) -> io::Result<()> {
+ setsockopt(
+ fd,
+ c::IPPROTO_IPV6,
+ c::IPV6_MULTICAST_LOOP,
+ from_bool(multicast_loop),
+ )
+}
+
+#[inline]
+pub(crate) fn ipv6_multicast_loop(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_IPV6, c::IPV6_MULTICAST_LOOP).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_multicast_hops(fd: BorrowedFd<'_>, multicast_hops: u32) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IP, c::IPV6_MULTICAST_HOPS, multicast_hops)
+}
+
+#[inline]
+pub(crate) fn ipv6_multicast_hops(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_IP, c::IPV6_MULTICAST_HOPS)
+}
+
+#[inline]
+pub(crate) fn set_ip_add_membership(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv4Addr,
+ interface: &Ipv4Addr,
+) -> io::Result<()> {
+ let mreq = to_ip_mreq(multiaddr, interface);
+ setsockopt(fd, c::IPPROTO_IP, c::IP_ADD_MEMBERSHIP, mreq)
+}
+
+#[cfg(any(
+ apple,
+ freebsdlike,
+ linux_like,
+ target_os = "fuchsia",
+ target_os = "openbsd"
+))]
+#[inline]
+pub(crate) fn set_ip_add_membership_with_ifindex(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv4Addr,
+ address: &Ipv4Addr,
+ ifindex: u32,
+) -> io::Result<()> {
+ let mreqn = to_ip_mreqn(multiaddr, address, ifindex as i32);
+ setsockopt(fd, c::IPPROTO_IP, c::IP_ADD_MEMBERSHIP, mreqn)
+}
+
+#[cfg(any(apple, freebsdlike, linux_like, solarish, target_os = "aix"))]
+#[inline]
+pub(crate) fn set_ip_add_source_membership(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv4Addr,
+ interface: &Ipv4Addr,
+ sourceaddr: &Ipv4Addr,
+) -> io::Result<()> {
+ let mreq_source = to_imr_source(multiaddr, interface, sourceaddr);
+ setsockopt(fd, c::IPPROTO_IP, c::IP_ADD_SOURCE_MEMBERSHIP, mreq_source)
+}
+
+#[cfg(any(apple, freebsdlike, linux_like, solarish, target_os = "aix"))]
+#[inline]
+pub(crate) fn set_ip_drop_source_membership(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv4Addr,
+ interface: &Ipv4Addr,
+ sourceaddr: &Ipv4Addr,
+) -> io::Result<()> {
+ let mreq_source = to_imr_source(multiaddr, interface, sourceaddr);
+ setsockopt(fd, c::IPPROTO_IP, c::IP_DROP_SOURCE_MEMBERSHIP, mreq_source)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_add_membership(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv6Addr,
+ interface: u32,
+) -> io::Result<()> {
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "haiku",
+ target_os = "l4re",
+ target_os = "nto"
+ )))]
+ use c::IPV6_ADD_MEMBERSHIP;
+ #[cfg(any(
+ bsd,
+ solarish,
+ target_os = "haiku",
+ target_os = "l4re",
+ target_os = "nto"
+ ))]
+ use c::IPV6_JOIN_GROUP as IPV6_ADD_MEMBERSHIP;
+
+ let mreq = to_ipv6mr(multiaddr, interface);
+ setsockopt(fd, c::IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, mreq)
+}
+
+#[inline]
+pub(crate) fn set_ip_drop_membership(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv4Addr,
+ interface: &Ipv4Addr,
+) -> io::Result<()> {
+ let mreq = to_ip_mreq(multiaddr, interface);
+ setsockopt(fd, c::IPPROTO_IP, c::IP_DROP_MEMBERSHIP, mreq)
+}
+
+#[cfg(any(
+ apple,
+ freebsdlike,
+ linux_like,
+ target_os = "fuchsia",
+ target_os = "openbsd"
+))]
+#[inline]
+pub(crate) fn set_ip_drop_membership_with_ifindex(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv4Addr,
+ address: &Ipv4Addr,
+ ifindex: u32,
+) -> io::Result<()> {
+ let mreqn = to_ip_mreqn(multiaddr, address, ifindex as i32);
+ setsockopt(fd, c::IPPROTO_IP, c::IP_DROP_MEMBERSHIP, mreqn)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_drop_membership(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv6Addr,
+ interface: u32,
+) -> io::Result<()> {
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "haiku",
+ target_os = "l4re",
+ target_os = "nto"
+ )))]
+ use c::IPV6_DROP_MEMBERSHIP;
+ #[cfg(any(
+ bsd,
+ solarish,
+ target_os = "haiku",
+ target_os = "l4re",
+ target_os = "nto"
+ ))]
+ use c::IPV6_LEAVE_GROUP as IPV6_DROP_MEMBERSHIP;
+
+ let mreq = to_ipv6mr(multiaddr, interface);
+ setsockopt(fd, c::IPPROTO_IPV6, IPV6_DROP_MEMBERSHIP, mreq)
+}
+
+#[inline]
+pub(crate) fn ipv6_unicast_hops(fd: BorrowedFd<'_>) -> io::Result<u8> {
+ getsockopt(fd, c::IPPROTO_IPV6, c::IPV6_UNICAST_HOPS).map(|hops: c::c_int| hops as u8)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_unicast_hops(fd: BorrowedFd<'_>, hops: Option<u8>) -> io::Result<()> {
+ let hops = match hops {
+ Some(hops) => hops as c::c_int,
+ None => -1,
+ };
+ setsockopt(fd, c::IPPROTO_IPV6, c::IPV6_UNICAST_HOPS, hops)
+}
+
+#[cfg(any(
+ bsd,
+ linux_like,
+ target_os = "aix",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "nto",
+ target_env = "newlib"
+))]
+#[inline]
+pub(crate) fn set_ip_tos(fd: BorrowedFd<'_>, value: u8) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IP, c::IP_TOS, i32::from(value))
+}
+
+#[cfg(any(
+ bsd,
+ linux_like,
+ target_os = "aix",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "nto",
+ target_env = "newlib"
+))]
+#[inline]
+pub(crate) fn ip_tos(fd: BorrowedFd<'_>) -> io::Result<u8> {
+ let value: i32 = getsockopt(fd, c::IPPROTO_IP, c::IP_TOS)?;
+ Ok(value as u8)
+}
+
+#[cfg(any(
+ apple,
+ linux_like,
+ target_os = "cygwin",
+ target_os = "freebsd",
+ target_os = "fuchsia",
+))]
+#[inline]
+pub(crate) fn set_ip_recvtos(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IP, c::IP_RECVTOS, from_bool(value))
+}
+
+#[cfg(any(
+ apple,
+ linux_like,
+ target_os = "cygwin",
+ target_os = "freebsd",
+ target_os = "fuchsia",
+))]
+#[inline]
+pub(crate) fn ip_recvtos(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_IP, c::IP_RECVTOS).map(to_bool)
+}
+
+#[cfg(any(
+ bsd,
+ linux_like,
+ target_os = "aix",
+ target_os = "fuchsia",
+ target_os = "nto"
+))]
+#[inline]
+pub(crate) fn set_ipv6_recvtclass(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IPV6, c::IPV6_RECVTCLASS, from_bool(value))
+}
+
+#[cfg(any(
+ bsd,
+ linux_like,
+ target_os = "aix",
+ target_os = "fuchsia",
+ target_os = "nto"
+))]
+#[inline]
+pub(crate) fn ipv6_recvtclass(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_IPV6, c::IPV6_RECVTCLASS).map(to_bool)
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[inline]
+pub(crate) fn set_ip_freebind(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IP, c::IP_FREEBIND, from_bool(value))
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[inline]
+pub(crate) fn ip_freebind(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_IP, c::IP_FREEBIND).map(to_bool)
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn set_ipv6_freebind(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IPV6, c::IPV6_FREEBIND, from_bool(value))
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn ipv6_freebind(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_IPV6, c::IPV6_FREEBIND).map(to_bool)
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[inline]
+pub(crate) fn ip_original_dst(fd: BorrowedFd<'_>) -> io::Result<SocketAddrV4> {
+ let level = c::IPPROTO_IP;
+ let optname = c::SO_ORIGINAL_DST;
+
+ let mut addr = crate::net::SocketAddrBuf::new();
+ getsockopt_raw(fd, level, optname, &mut addr.storage, &mut addr.len)?;
+ Ok(unsafe { addr.into_any() }.try_into().unwrap())
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn ipv6_original_dst(fd: BorrowedFd<'_>) -> io::Result<SocketAddrV6> {
+ let level = c::IPPROTO_IPV6;
+ let optname = c::IP6T_SO_ORIGINAL_DST;
+
+ let mut addr = crate::net::SocketAddrBuf::new();
+ getsockopt_raw(fd, level, optname, &mut addr.storage, &mut addr.len)?;
+ Ok(unsafe { addr.into_any() }.try_into().unwrap())
+}
+
+#[cfg(not(any(
+ solarish,
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+#[inline]
+pub(crate) fn set_ipv6_tclass(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IPV6, c::IPV6_TCLASS, value)
+}
+
+#[cfg(not(any(
+ solarish,
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+#[inline]
+pub(crate) fn ipv6_tclass(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_IPV6, c::IPV6_TCLASS)
+}
+
+#[inline]
+pub(crate) fn set_tcp_nodelay(fd: BorrowedFd<'_>, nodelay: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_TCP, c::TCP_NODELAY, from_bool(nodelay))
+}
+
+#[inline]
+pub(crate) fn tcp_nodelay(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_TCP, c::TCP_NODELAY).map(to_bool)
+}
+
+#[inline]
+#[cfg(not(any(
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "openbsd",
+ target_os = "redox"
+)))]
+pub(crate) fn set_tcp_keepcnt(fd: BorrowedFd<'_>, count: u32) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_TCP, c::TCP_KEEPCNT, count)
+}
+
+#[inline]
+#[cfg(not(any(
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "openbsd",
+ target_os = "redox"
+)))]
+pub(crate) fn tcp_keepcnt(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_TCP, c::TCP_KEEPCNT)
+}
+
+#[inline]
+#[cfg(not(any(target_os = "haiku", target_os = "nto", target_os = "openbsd")))]
+pub(crate) fn set_tcp_keepidle(fd: BorrowedFd<'_>, duration: Duration) -> io::Result<()> {
+ let secs: c::c_uint = duration_to_secs(duration)?;
+ setsockopt(fd, c::IPPROTO_TCP, TCP_KEEPIDLE, secs)
+}
+
+#[inline]
+#[cfg(not(any(target_os = "haiku", target_os = "nto", target_os = "openbsd")))]
+pub(crate) fn tcp_keepidle(fd: BorrowedFd<'_>) -> io::Result<Duration> {
+ let secs: c::c_uint = getsockopt(fd, c::IPPROTO_TCP, TCP_KEEPIDLE)?;
+ Ok(Duration::from_secs(secs as u64))
+}
+
+#[inline]
+#[cfg(not(any(
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "openbsd",
+ target_os = "redox"
+)))]
+pub(crate) fn set_tcp_keepintvl(fd: BorrowedFd<'_>, duration: Duration) -> io::Result<()> {
+ let secs: c::c_uint = duration_to_secs(duration)?;
+ setsockopt(fd, c::IPPROTO_TCP, c::TCP_KEEPINTVL, secs)
+}
+
+#[inline]
+#[cfg(not(any(
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "openbsd",
+ target_os = "redox"
+)))]
+pub(crate) fn tcp_keepintvl(fd: BorrowedFd<'_>) -> io::Result<Duration> {
+ let secs: c::c_uint = getsockopt(fd, c::IPPROTO_TCP, c::TCP_KEEPINTVL)?;
+ Ok(Duration::from_secs(secs as u64))
+}
+
+#[inline]
+#[cfg(any(linux_like, target_os = "fuchsia"))]
+pub(crate) fn set_tcp_user_timeout(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_TCP, c::TCP_USER_TIMEOUT, value)
+}
+
+#[inline]
+#[cfg(any(linux_like, target_os = "fuchsia"))]
+pub(crate) fn tcp_user_timeout(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_TCP, c::TCP_USER_TIMEOUT)
+}
+
+#[cfg(any(linux_like, target_os = "fuchsia"))]
+#[inline]
+pub(crate) fn set_tcp_quickack(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_TCP, c::TCP_QUICKACK, from_bool(value))
+}
+
+#[cfg(any(linux_like, target_os = "fuchsia"))]
+#[inline]
+pub(crate) fn tcp_quickack(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_TCP, c::TCP_QUICKACK).map(to_bool)
+}
+
+#[cfg(any(
+ linux_like,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "illumos"
+))]
+#[inline]
+pub(crate) fn set_tcp_congestion(fd: BorrowedFd<'_>, value: &str) -> io::Result<()> {
+ let level = c::IPPROTO_TCP;
+ let optname = c::TCP_CONGESTION;
+ let optlen = value.len().try_into().unwrap();
+ setsockopt_raw(fd, level, optname, value.as_ptr(), optlen)
+}
+
+#[cfg(feature = "alloc")]
+#[cfg(any(
+ linux_like,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "illumos"
+))]
+#[inline]
+pub(crate) fn tcp_congestion(fd: BorrowedFd<'_>) -> io::Result<String> {
+ const OPTLEN: c::socklen_t = 16;
+
+ let level = c::IPPROTO_TCP;
+ let optname = c::TCP_CONGESTION;
+ let mut value = MaybeUninit::<[MaybeUninit<u8>; OPTLEN as usize]>::uninit();
+ let mut optlen = OPTLEN;
+ getsockopt_raw(fd, level, optname, &mut value, &mut optlen)?;
+ unsafe {
+ let value = value.assume_init();
+ let slice: &[u8] = core::mem::transmute(&value[..optlen as usize]);
+ assert!(slice.contains(&b'\0'));
+ Ok(
+ core::str::from_utf8(CStr::from_ptr(slice.as_ptr().cast()).to_bytes())
+ .unwrap()
+ .to_owned(),
+ )
+ }
+}
+
+#[cfg(any(linux_like, target_os = "fuchsia"))]
+#[inline]
+pub(crate) fn set_tcp_thin_linear_timeouts(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(
+ fd,
+ c::IPPROTO_TCP,
+ c::TCP_THIN_LINEAR_TIMEOUTS,
+ from_bool(value),
+ )
+}
+
+#[cfg(any(linux_like, target_os = "fuchsia"))]
+#[inline]
+pub(crate) fn tcp_thin_linear_timeouts(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_TCP, c::TCP_THIN_LINEAR_TIMEOUTS).map(to_bool)
+}
+
+#[cfg(any(linux_like, solarish, target_os = "fuchsia"))]
+#[inline]
+pub(crate) fn set_tcp_cork(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_TCP, c::TCP_CORK, from_bool(value))
+}
+
+#[cfg(any(linux_like, solarish, target_os = "fuchsia"))]
+#[inline]
+pub(crate) fn tcp_cork(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_TCP, c::TCP_CORK).map(to_bool)
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn socket_peercred(fd: BorrowedFd<'_>) -> io::Result<UCred> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_PEERCRED)
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn set_xdp_umem_reg(fd: BorrowedFd<'_>, value: XdpUmemReg) -> io::Result<()> {
+ setsockopt(fd, c::SOL_XDP, c::XDP_UMEM_REG, value)
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn set_xdp_umem_fill_ring_size(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::SOL_XDP, c::XDP_UMEM_FILL_RING, value)
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn set_xdp_umem_completion_ring_size(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::SOL_XDP, c::XDP_UMEM_COMPLETION_RING, value)
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn set_xdp_tx_ring_size(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::SOL_XDP, c::XDP_TX_RING, value)
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn set_xdp_rx_ring_size(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::SOL_XDP, c::XDP_RX_RING, value)
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn xdp_mmap_offsets(fd: BorrowedFd<'_>) -> io::Result<XdpMmapOffsets> {
+ // The kernel will write `xdp_mmap_offsets` or `xdp_mmap_offsets_v1` to the
+ // supplied pointer, depending on the kernel version. Both structs only
+ // contain u64 values. By using the larger of both as the parameter, we can
+ // shuffle the values to the non-v1 version returned by
+ // `get_xdp_mmap_offsets` while keeping the return type unaffected by the
+ // kernel version. This works because C will layout all struct members one
+ // after the other.
+
+ let mut optlen = size_of::<xdp_mmap_offsets>().try_into().unwrap();
+ debug_assert!(
+ optlen as usize >= size_of::<c::c_int>(),
+ "Socket APIs don't ever use `bool` directly"
+ );
+ let mut value = MaybeUninit::<xdp_mmap_offsets>::zeroed();
+ getsockopt_raw(fd, c::SOL_XDP, c::XDP_MMAP_OFFSETS, &mut value, &mut optlen)?;
+
+ if optlen as usize == size_of::<c::xdp_mmap_offsets_v1>() {
+ // SAFETY: All members of xdp_mmap_offsets are `u64` and thus are
+ // correctly initialized by `MaybeUninit::<xdp_statistics>::zeroed()`.
+ let xpd_mmap_offsets = unsafe { value.assume_init() };
+ Ok(XdpMmapOffsets {
+ rx: XdpRingOffset {
+ producer: xpd_mmap_offsets.rx.producer,
+ consumer: xpd_mmap_offsets.rx.consumer,
+ desc: xpd_mmap_offsets.rx.desc,
+ flags: None,
+ },
+ tx: XdpRingOffset {
+ producer: xpd_mmap_offsets.rx.flags,
+ consumer: xpd_mmap_offsets.tx.producer,
+ desc: xpd_mmap_offsets.tx.consumer,
+ flags: None,
+ },
+ fr: XdpRingOffset {
+ producer: xpd_mmap_offsets.tx.desc,
+ consumer: xpd_mmap_offsets.tx.flags,
+ desc: xpd_mmap_offsets.fr.producer,
+ flags: None,
+ },
+ cr: XdpRingOffset {
+ producer: xpd_mmap_offsets.fr.consumer,
+ consumer: xpd_mmap_offsets.fr.desc,
+ desc: xpd_mmap_offsets.fr.flags,
+ flags: None,
+ },
+ })
+ } else {
+ assert_eq!(
+ optlen as usize,
+ size_of::<xdp_mmap_offsets>(),
+ "unexpected getsockopt size"
+ );
+ // SAFETY: All members of xdp_mmap_offsets are `u64` and thus are
+ // correctly initialized by `MaybeUninit::<xdp_statistics>::zeroed()`
+ let xpd_mmap_offsets = unsafe { value.assume_init() };
+ Ok(XdpMmapOffsets {
+ rx: XdpRingOffset {
+ producer: xpd_mmap_offsets.rx.producer,
+ consumer: xpd_mmap_offsets.rx.consumer,
+ desc: xpd_mmap_offsets.rx.desc,
+ flags: Some(xpd_mmap_offsets.rx.flags),
+ },
+ tx: XdpRingOffset {
+ producer: xpd_mmap_offsets.tx.producer,
+ consumer: xpd_mmap_offsets.tx.consumer,
+ desc: xpd_mmap_offsets.tx.desc,
+ flags: Some(xpd_mmap_offsets.tx.flags),
+ },
+ fr: XdpRingOffset {
+ producer: xpd_mmap_offsets.fr.producer,
+ consumer: xpd_mmap_offsets.fr.consumer,
+ desc: xpd_mmap_offsets.fr.desc,
+ flags: Some(xpd_mmap_offsets.fr.flags),
+ },
+ cr: XdpRingOffset {
+ producer: xpd_mmap_offsets.cr.producer,
+ consumer: xpd_mmap_offsets.cr.consumer,
+ desc: xpd_mmap_offsets.cr.desc,
+ flags: Some(xpd_mmap_offsets.cr.flags),
+ },
+ })
+ }
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn xdp_statistics(fd: BorrowedFd<'_>) -> io::Result<XdpStatistics> {
+ let mut optlen = size_of::<xdp_statistics>().try_into().unwrap();
+ debug_assert!(
+ optlen as usize >= size_of::<c::c_int>(),
+ "Socket APIs don't ever use `bool` directly"
+ );
+ let mut value = MaybeUninit::<xdp_statistics>::zeroed();
+ getsockopt_raw(fd, c::SOL_XDP, c::XDP_STATISTICS, &mut value, &mut optlen)?;
+
+ if optlen as usize == size_of::<xdp_statistics_v1>() {
+ // SAFETY: All members of xdp_statistics are `u64` and thus are
+ // correctly initialized by `MaybeUninit::<xdp_statistics>::zeroed()`.
+ let xdp_statistics = unsafe { value.assume_init() };
+ Ok(XdpStatistics {
+ rx_dropped: xdp_statistics.rx_dropped,
+ rx_invalid_descs: xdp_statistics.rx_dropped,
+ tx_invalid_descs: xdp_statistics.rx_dropped,
+ rx_ring_full: None,
+ rx_fill_ring_empty_descs: None,
+ tx_ring_empty_descs: None,
+ })
+ } else {
+ assert_eq!(
+ optlen as usize,
+ size_of::<xdp_statistics>(),
+ "unexpected getsockopt size"
+ );
+ // SAFETY: All members of xdp_statistics are `u64` and thus are
+ // correctly initialized by `MaybeUninit::<xdp_statistics>::zeroed()`.
+ let xdp_statistics = unsafe { value.assume_init() };
+ Ok(XdpStatistics {
+ rx_dropped: xdp_statistics.rx_dropped,
+ rx_invalid_descs: xdp_statistics.rx_invalid_descs,
+ tx_invalid_descs: xdp_statistics.tx_invalid_descs,
+ rx_ring_full: Some(xdp_statistics.rx_ring_full),
+ rx_fill_ring_empty_descs: Some(xdp_statistics.rx_fill_ring_empty_descs),
+ tx_ring_empty_descs: Some(xdp_statistics.tx_ring_empty_descs),
+ })
+ }
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn xdp_options(fd: BorrowedFd<'_>) -> io::Result<XdpOptionsFlags> {
+ getsockopt(fd, c::SOL_XDP, c::XDP_OPTIONS)
+}
+
+#[inline]
+fn to_ip_mreq(multiaddr: &Ipv4Addr, interface: &Ipv4Addr) -> c::ip_mreq {
+ c::ip_mreq {
+ imr_multiaddr: to_imr_addr(multiaddr),
+ imr_interface: to_imr_addr(interface),
+ }
+}
+
+#[cfg(not(windows))]
+#[inline]
+fn from_in_addr(in_addr: c::in_addr) -> Ipv4Addr {
+ Ipv4Addr::from(in_addr.s_addr.to_ne_bytes())
+}
+
+#[cfg(windows)]
+fn from_in_addr(in_addr: c::in_addr) -> Ipv4Addr {
+ Ipv4Addr::from(unsafe { in_addr.S_un.S_addr.to_ne_bytes() })
+}
+
+#[cfg(any(
+ apple,
+ freebsdlike,
+ linux_like,
+ target_os = "fuchsia",
+ target_os = "openbsd"
+))]
+#[inline]
+fn to_ip_mreqn(multiaddr: &Ipv4Addr, address: &Ipv4Addr, ifindex: i32) -> c::ip_mreqn {
+ c::ip_mreqn {
+ imr_multiaddr: to_imr_addr(multiaddr),
+ imr_address: to_imr_addr(address),
+ imr_ifindex: ifindex,
+ }
+}
+
+#[cfg(any(apple, freebsdlike, linux_like, solarish, target_os = "aix"))]
+#[inline]
+fn to_imr_source(
+ multiaddr: &Ipv4Addr,
+ interface: &Ipv4Addr,
+ sourceaddr: &Ipv4Addr,
+) -> c::ip_mreq_source {
+ c::ip_mreq_source {
+ imr_multiaddr: to_imr_addr(multiaddr),
+ imr_interface: to_imr_addr(interface),
+ imr_sourceaddr: to_imr_addr(sourceaddr),
+ }
+}
+
+#[inline]
+fn to_imr_addr(addr: &Ipv4Addr) -> c::in_addr {
+ in_addr_new(u32::from_ne_bytes(addr.octets()))
+}
+
+#[inline]
+fn to_ipv6mr(multiaddr: &Ipv6Addr, interface: u32) -> c::ipv6_mreq {
+ c::ipv6_mreq {
+ ipv6mr_multiaddr: to_ipv6mr_multiaddr(multiaddr),
+ ipv6mr_interface: to_ipv6mr_interface(interface),
+ }
+}
+
+#[inline]
+fn to_ipv6mr_multiaddr(multiaddr: &Ipv6Addr) -> c::in6_addr {
+ in6_addr_new(multiaddr.octets())
+}
+
+#[cfg(target_os = "android")]
+#[inline]
+fn to_ipv6mr_interface(interface: u32) -> c::c_int {
+ interface as c::c_int
+}
+
+#[cfg(not(target_os = "android"))]
+#[inline]
+fn to_ipv6mr_interface(interface: u32) -> c::c_uint {
+ interface as c::c_uint
+}
+
+// `getsockopt` and `setsockopt` represent boolean values as integers.
+//
+// On Windows, this should use `BOOL`, however windows-sys moved its `BOOL`
+// from `windows_sys::Win32::Foundation::BOOL` to `windows_sys::core::BOOL`
+// in windows-sys 0.60, and we'd prefer
+type RawSocketBool = c::c_int;
+
+// Wrap `RawSocketBool` in a newtype to discourage misuse.
+#[repr(transparent)]
+#[derive(Copy, Clone)]
+struct SocketBool(RawSocketBool);
+
+// Convert from a `bool` to a `SocketBool`.
+#[inline]
+fn from_bool(value: bool) -> SocketBool {
+ SocketBool(value.into())
+}
+
+// Convert from a `SocketBool` to a `bool`.
+#[inline]
+fn to_bool(value: SocketBool) -> bool {
+ value.0 != 0
+}
+
+/// Convert to seconds, rounding up if necessary.
+#[inline]
+fn duration_to_secs<T: TryFrom<u64>>(duration: Duration) -> io::Result<T> {
+ let mut secs = duration.as_secs();
+ if duration.subsec_nanos() != 0 {
+ secs = secs.checked_add(1).ok_or(io::Errno::INVAL)?;
+ }
+ T::try_from(secs).map_err(|_e| io::Errno::INVAL)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/net/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/net/syscalls.rs
new file mode 100644
index 0000000..aafea00
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/net/syscalls.rs
@@ -0,0 +1,438 @@
+//! libc syscalls supporting `rustix::net`.
+
+use super::read_sockaddr::initialize_family_to_unspec;
+use super::send_recv::{RecvFlags, SendFlags};
+use crate::backend::c;
+#[cfg(target_os = "linux")]
+use crate::backend::conv::ret_u32;
+use crate::backend::conv::{borrowed_fd, ret, ret_owned_fd, ret_send_recv, send_recv_len};
+use crate::fd::{BorrowedFd, OwnedFd};
+use crate::io;
+use crate::net::addr::SocketAddrArg;
+#[cfg(target_os = "linux")]
+use crate::net::MMsgHdr;
+use crate::net::{
+ AddressFamily, Protocol, Shutdown, SocketAddrAny, SocketAddrBuf, SocketFlags, SocketType,
+};
+use crate::utils::as_ptr;
+use core::mem::{size_of, MaybeUninit};
+use core::ptr::null_mut;
+#[cfg(not(any(
+ windows,
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+use {
+ super::msghdr::{noaddr_msghdr, with_msghdr, with_recv_msghdr},
+ super::send_recv::ReturnFlags,
+ crate::io::{IoSlice, IoSliceMut},
+ crate::net::{RecvAncillaryBuffer, RecvMsg, SendAncillaryBuffer},
+};
+
+pub(crate) unsafe fn recv(
+ fd: BorrowedFd<'_>,
+ buf: (*mut u8, usize),
+ flags: RecvFlags,
+) -> io::Result<usize> {
+ ret_send_recv(c::recv(
+ borrowed_fd(fd),
+ buf.0.cast(),
+ send_recv_len(buf.1),
+ bitflags_bits!(flags),
+ ))
+}
+
+pub(crate) fn send(fd: BorrowedFd<'_>, buf: &[u8], flags: SendFlags) -> io::Result<usize> {
+ unsafe {
+ ret_send_recv(c::send(
+ borrowed_fd(fd),
+ buf.as_ptr().cast(),
+ send_recv_len(buf.len()),
+ bitflags_bits!(flags),
+ ))
+ }
+}
+
+pub(crate) unsafe fn recvfrom(
+ fd: BorrowedFd<'_>,
+ buf: (*mut u8, usize),
+ flags: RecvFlags,
+) -> io::Result<(usize, Option<SocketAddrAny>)> {
+ let mut addr = SocketAddrBuf::new();
+
+ // `recvfrom` does not write to the storage if the socket is
+ // connection-oriented sockets, so we initialize the family field to
+ // `AF_UNSPEC` so that we can detect this case.
+ initialize_family_to_unspec(addr.storage.as_mut_ptr().cast::<c::sockaddr>());
+
+ let nread = ret_send_recv(c::recvfrom(
+ borrowed_fd(fd),
+ buf.0.cast(),
+ send_recv_len(buf.1),
+ bitflags_bits!(flags),
+ addr.storage.as_mut_ptr().cast::<c::sockaddr>(),
+ &mut addr.len,
+ ))?;
+
+ Ok((nread, addr.into_any_option()))
+}
+
+pub(crate) fn sendto(
+ fd: BorrowedFd<'_>,
+ buf: &[u8],
+ flags: SendFlags,
+ addr: &impl SocketAddrArg,
+) -> io::Result<usize> {
+ unsafe {
+ addr.with_sockaddr(|addr_ptr, addr_len| {
+ ret_send_recv(c::sendto(
+ borrowed_fd(fd),
+ buf.as_ptr().cast(),
+ send_recv_len(buf.len()),
+ bitflags_bits!(flags),
+ addr_ptr.cast(),
+ bitcast!(addr_len),
+ ))
+ })
+ }
+}
+
+pub(crate) fn socket(
+ domain: AddressFamily,
+ type_: SocketType,
+ protocol: Option<Protocol>,
+) -> io::Result<OwnedFd> {
+ let raw_protocol = match protocol {
+ Some(p) => p.0.get(),
+ None => 0,
+ };
+ unsafe {
+ ret_owned_fd(c::socket(
+ domain.0 as c::c_int,
+ type_.0 as c::c_int,
+ raw_protocol as c::c_int,
+ ))
+ }
+}
+
+pub(crate) fn socket_with(
+ domain: AddressFamily,
+ type_: SocketType,
+ flags: SocketFlags,
+ protocol: Option<Protocol>,
+) -> io::Result<OwnedFd> {
+ let raw_protocol = match protocol {
+ Some(p) => p.0.get(),
+ None => 0,
+ };
+ unsafe {
+ ret_owned_fd(c::socket(
+ domain.0 as c::c_int,
+ (type_.0 | flags.bits()) as c::c_int,
+ raw_protocol as c::c_int,
+ ))
+ }
+}
+
+pub(crate) fn bind(sockfd: BorrowedFd<'_>, addr: &impl SocketAddrArg) -> io::Result<()> {
+ unsafe {
+ addr.with_sockaddr(|addr_ptr, addr_len| {
+ ret(c::bind(
+ borrowed_fd(sockfd),
+ addr_ptr.cast(),
+ bitcast!(addr_len),
+ ))
+ })
+ }
+}
+
+pub(crate) fn connect(sockfd: BorrowedFd<'_>, addr: &impl SocketAddrArg) -> io::Result<()> {
+ unsafe {
+ addr.with_sockaddr(|addr_ptr, addr_len| {
+ ret(c::connect(
+ borrowed_fd(sockfd),
+ addr_ptr.cast(),
+ bitcast!(addr_len),
+ ))
+ })
+ }
+}
+
+pub(crate) fn connect_unspec(sockfd: BorrowedFd<'_>) -> io::Result<()> {
+ debug_assert_eq!(c::AF_UNSPEC, 0);
+ let addr = MaybeUninit::<c::sockaddr_storage>::zeroed();
+ unsafe {
+ ret(c::connect(
+ borrowed_fd(sockfd),
+ as_ptr(&addr).cast(),
+ size_of::<c::sockaddr_storage>() as c::socklen_t,
+ ))
+ }
+}
+
+pub(crate) fn listen(sockfd: BorrowedFd<'_>, backlog: c::c_int) -> io::Result<()> {
+ unsafe { ret(c::listen(borrowed_fd(sockfd), backlog)) }
+}
+
+pub(crate) fn accept(sockfd: BorrowedFd<'_>) -> io::Result<OwnedFd> {
+ unsafe {
+ let owned_fd = ret_owned_fd(c::accept(borrowed_fd(sockfd), null_mut(), null_mut()))?;
+ Ok(owned_fd)
+ }
+}
+
+#[cfg(not(any(
+ windows,
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+pub(crate) fn recvmsg(
+ sockfd: BorrowedFd<'_>,
+ iov: &mut [IoSliceMut<'_>],
+ control: &mut RecvAncillaryBuffer<'_>,
+ msg_flags: RecvFlags,
+) -> io::Result<RecvMsg> {
+ let mut addr = SocketAddrBuf::new();
+
+ // SAFETY: This passes the `msghdr` reference to the OS which reads the
+ // buffers only within the designated bounds.
+ let (bytes, flags) = unsafe {
+ with_recv_msghdr(&mut addr, iov, control, |msghdr| {
+ let bytes = ret_send_recv(c::recvmsg(
+ borrowed_fd(sockfd),
+ msghdr,
+ bitflags_bits!(msg_flags),
+ ))?;
+ Ok((bytes, msghdr.msg_flags))
+ })?
+ };
+
+ Ok(RecvMsg {
+ bytes,
+ address: unsafe { addr.into_any_option() },
+ flags: ReturnFlags::from_bits_retain(bitcast!(flags)),
+ })
+}
+
+#[cfg(not(any(
+ windows,
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+pub(crate) fn sendmsg(
+ sockfd: BorrowedFd<'_>,
+ iov: &[IoSlice<'_>],
+ control: &mut SendAncillaryBuffer<'_, '_, '_>,
+ msg_flags: SendFlags,
+) -> io::Result<usize> {
+ let msghdr = noaddr_msghdr(iov, control);
+ unsafe {
+ ret_send_recv(c::sendmsg(
+ borrowed_fd(sockfd),
+ &msghdr,
+ bitflags_bits!(msg_flags),
+ ))
+ }
+}
+
+#[cfg(not(any(
+ windows,
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+pub(crate) fn sendmsg_addr(
+ sockfd: BorrowedFd<'_>,
+ addr: &impl SocketAddrArg,
+ iov: &[IoSlice<'_>],
+ control: &mut SendAncillaryBuffer<'_, '_, '_>,
+ msg_flags: SendFlags,
+) -> io::Result<usize> {
+ // SAFETY: This passes the `msghdr` reference to the OS which reads the
+ // buffers only within the designated bounds.
+ unsafe {
+ with_msghdr(addr, iov, control, |msghdr| {
+ ret_send_recv(c::sendmsg(
+ borrowed_fd(sockfd),
+ msghdr,
+ bitflags_bits!(msg_flags),
+ ))
+ })
+ }
+}
+
+#[cfg(target_os = "linux")]
+pub(crate) fn sendmmsg(
+ sockfd: BorrowedFd<'_>,
+ msgs: &mut [MMsgHdr<'_>],
+ flags: SendFlags,
+) -> io::Result<usize> {
+ unsafe {
+ ret_u32(c::sendmmsg(
+ borrowed_fd(sockfd),
+ msgs.as_mut_ptr() as _,
+ msgs.len().try_into().unwrap_or(c::c_uint::MAX),
+ bitflags_bits!(flags),
+ ))
+ .map(|ret| ret as usize)
+ }
+}
+
+#[cfg(not(any(
+ apple,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+)))]
+pub(crate) fn accept_with(sockfd: BorrowedFd<'_>, flags: SocketFlags) -> io::Result<OwnedFd> {
+ unsafe {
+ let owned_fd = ret_owned_fd(c::accept4(
+ borrowed_fd(sockfd),
+ null_mut(),
+ null_mut(),
+ flags.bits() as c::c_int,
+ ))?;
+ Ok(owned_fd)
+ }
+}
+
+pub(crate) fn acceptfrom(sockfd: BorrowedFd<'_>) -> io::Result<(OwnedFd, Option<SocketAddrAny>)> {
+ unsafe {
+ let mut addr = SocketAddrBuf::new();
+ let owned_fd = ret_owned_fd(c::accept(
+ borrowed_fd(sockfd),
+ addr.storage.as_mut_ptr().cast::<c::sockaddr>(),
+ &mut addr.len,
+ ))?;
+ Ok((owned_fd, addr.into_any_option()))
+ }
+}
+
+#[cfg(not(any(
+ apple,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+)))]
+pub(crate) fn acceptfrom_with(
+ sockfd: BorrowedFd<'_>,
+ flags: SocketFlags,
+) -> io::Result<(OwnedFd, Option<SocketAddrAny>)> {
+ unsafe {
+ let mut addr = SocketAddrBuf::new();
+ let owned_fd = ret_owned_fd(c::accept4(
+ borrowed_fd(sockfd),
+ addr.storage.as_mut_ptr().cast::<c::sockaddr>(),
+ &mut addr.len,
+ flags.bits() as c::c_int,
+ ))?;
+ Ok((owned_fd, addr.into_any_option()))
+ }
+}
+
+/// Darwin lacks `accept4`, but does have `accept`. We define `SocketFlags` to
+/// have no flags, so we can discard it here.
+#[cfg(any(
+ apple,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+))]
+pub(crate) fn accept_with(sockfd: BorrowedFd<'_>, _flags: SocketFlags) -> io::Result<OwnedFd> {
+ accept(sockfd)
+}
+
+/// Darwin lacks `accept4`, but does have `accept`. We define `SocketFlags` to
+/// have no flags, so we can discard it here.
+#[cfg(any(
+ apple,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+))]
+pub(crate) fn acceptfrom_with(
+ sockfd: BorrowedFd<'_>,
+ _flags: SocketFlags,
+) -> io::Result<(OwnedFd, Option<SocketAddrAny>)> {
+ acceptfrom(sockfd)
+}
+
+pub(crate) fn shutdown(sockfd: BorrowedFd<'_>, how: Shutdown) -> io::Result<()> {
+ unsafe { ret(c::shutdown(borrowed_fd(sockfd), how as c::c_int)) }
+}
+
+pub(crate) fn getsockname(sockfd: BorrowedFd<'_>) -> io::Result<SocketAddrAny> {
+ unsafe {
+ let mut addr = SocketAddrBuf::new();
+ ret(c::getsockname(
+ borrowed_fd(sockfd),
+ addr.storage.as_mut_ptr().cast::<c::sockaddr>(),
+ &mut addr.len,
+ ))?;
+ Ok(addr.into_any())
+ }
+}
+
+pub(crate) fn getpeername(sockfd: BorrowedFd<'_>) -> io::Result<Option<SocketAddrAny>> {
+ unsafe {
+ let mut addr = SocketAddrBuf::new();
+ ret(c::getpeername(
+ borrowed_fd(sockfd),
+ addr.storage.as_mut_ptr().cast::<c::sockaddr>(),
+ &mut addr.len,
+ ))?;
+ Ok(addr.into_any_option())
+ }
+}
+
+#[cfg(not(windows))]
+pub(crate) fn socketpair(
+ domain: AddressFamily,
+ type_: SocketType,
+ flags: SocketFlags,
+ protocol: Option<Protocol>,
+) -> io::Result<(OwnedFd, OwnedFd)> {
+ let raw_protocol = match protocol {
+ Some(p) => p.0.get(),
+ None => 0,
+ };
+ unsafe {
+ let mut fds = MaybeUninit::<[OwnedFd; 2]>::uninit();
+ ret(c::socketpair(
+ c::c_int::from(domain.0),
+ (type_.0 | flags.bits()) as c::c_int,
+ raw_protocol as c::c_int,
+ fds.as_mut_ptr().cast::<c::c_int>(),
+ ))?;
+
+ let [fd0, fd1] = fds.assume_init();
+ Ok((fd0, fd1))
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/net/write_sockaddr.rs b/vendor/rustix-1.0.8/src/backend/libc/net/write_sockaddr.rs
new file mode 100644
index 0000000..08f0464
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/net/write_sockaddr.rs
@@ -0,0 +1,72 @@
+//! The BSD sockets API requires us to read the `sa_family` field before we can
+//! interpret the rest of a `sockaddr` produced by the kernel.
+
+use super::ext::{in6_addr_new, in_addr_new, sockaddr_in6_new};
+use crate::backend::c;
+use crate::net::{SocketAddrV4, SocketAddrV6};
+
+pub(crate) fn encode_sockaddr_v4(v4: &SocketAddrV4) -> c::sockaddr_in {
+ c::sockaddr_in {
+ #[cfg(any(
+ bsd,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "vita",
+ ))]
+ sin_len: core::mem::size_of::<c::sockaddr_in>() as _,
+ sin_family: c::AF_INET as _,
+ sin_port: u16::to_be(v4.port()),
+ sin_addr: in_addr_new(u32::from_ne_bytes(v4.ip().octets())),
+ #[cfg(not(any(target_os = "haiku", target_os = "vita")))]
+ sin_zero: [0; 8_usize],
+ #[cfg(target_os = "haiku")]
+ sin_zero: [0; 24_usize],
+ #[cfg(target_os = "vita")]
+ sin_zero: [0; 6_usize],
+ #[cfg(target_os = "vita")]
+ sin_vport: 0,
+ }
+}
+
+pub(crate) fn encode_sockaddr_v6(v6: &SocketAddrV6) -> c::sockaddr_in6 {
+ #[cfg(any(
+ bsd,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "vita"
+ ))]
+ {
+ sockaddr_in6_new(
+ core::mem::size_of::<c::sockaddr_in6>() as _,
+ c::AF_INET6 as _,
+ u16::to_be(v6.port()),
+ u32::to_be(v6.flowinfo()),
+ in6_addr_new(v6.ip().octets()),
+ v6.scope_id(),
+ )
+ }
+ #[cfg(not(any(
+ bsd,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "vita"
+ )))]
+ {
+ sockaddr_in6_new(
+ c::AF_INET6 as _,
+ u16::to_be(v6.port()),
+ u32::to_be(v6.flowinfo()),
+ in6_addr_new(v6.ip().octets()),
+ v6.scope_id(),
+ )
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/param/auxv.rs b/vendor/rustix-1.0.8/src/backend/libc/param/auxv.rs
new file mode 100644
index 0000000..6b6ea95
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/param/auxv.rs
@@ -0,0 +1,67 @@
+use crate::backend::c;
+#[cfg(any(
+ all(target_os = "android", target_pointer_width = "64"),
+ target_os = "linux",
+))]
+use crate::ffi::CStr;
+
+// `getauxval` wasn't supported in glibc until 2.16.
+#[cfg(any(
+ all(target_os = "android", target_pointer_width = "64"),
+ target_os = "linux",
+))]
+weak!(fn getauxval(c::c_ulong) -> *mut c::c_void);
+
+#[inline]
+pub(crate) fn page_size() -> usize {
+ unsafe { c::sysconf(c::_SC_PAGESIZE) as usize }
+}
+
+#[cfg(not(any(target_os = "horizon", target_os = "vita", target_os = "wasi")))]
+#[inline]
+pub(crate) fn clock_ticks_per_second() -> u64 {
+ unsafe { c::sysconf(c::_SC_CLK_TCK) as u64 }
+}
+
+#[cfg(any(
+ all(target_os = "android", target_pointer_width = "64"),
+ target_os = "linux",
+))]
+#[inline]
+pub(crate) fn linux_hwcap() -> (usize, usize) {
+ if let Some(libc_getauxval) = getauxval.get() {
+ unsafe {
+ let hwcap = libc_getauxval(c::AT_HWCAP) as usize;
+ let hwcap2 = libc_getauxval(c::AT_HWCAP2) as usize;
+ (hwcap, hwcap2)
+ }
+ } else {
+ (0, 0)
+ }
+}
+
+#[cfg(any(
+ all(target_os = "android", target_pointer_width = "64"),
+ target_os = "linux",
+))]
+#[inline]
+pub(crate) fn linux_minsigstksz() -> usize {
+ if let Some(libc_getauxval) = getauxval.get() {
+ unsafe { libc_getauxval(c::AT_MINSIGSTKSZ) as usize }
+ } else {
+ 0
+ }
+}
+
+#[cfg(any(
+ all(target_os = "android", target_pointer_width = "64"),
+ target_os = "linux",
+))]
+#[inline]
+pub(crate) fn linux_execfn() -> &'static CStr {
+ if let Some(libc_getauxval) = getauxval.get() {
+ unsafe { CStr::from_ptr(libc_getauxval(c::AT_EXECFN).cast()) }
+ } else {
+ cstr!("")
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/param/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/param/mod.rs
new file mode 100644
index 0000000..2cb2fe7
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/param/mod.rs
@@ -0,0 +1 @@
+pub(crate) mod auxv;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/pid/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/pid/mod.rs
new file mode 100644
index 0000000..ef944f0
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/pid/mod.rs
@@ -0,0 +1 @@
+pub(crate) mod syscalls;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/pid/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/pid/syscalls.rs
new file mode 100644
index 0000000..d0ed4bc
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/pid/syscalls.rs
@@ -0,0 +1,14 @@
+//! libc syscalls for PIDs
+
+use crate::backend::c;
+use crate::pid::Pid;
+
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+#[must_use]
+pub(crate) fn getpid() -> Pid {
+ unsafe {
+ let pid = c::getpid();
+ Pid::from_raw_unchecked(pid)
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/pipe/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/pipe/mod.rs
new file mode 100644
index 0000000..1e0181a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/pipe/mod.rs
@@ -0,0 +1,2 @@
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/pipe/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/pipe/syscalls.rs
new file mode 100644
index 0000000..fe52495
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/pipe/syscalls.rs
@@ -0,0 +1,126 @@
+use crate::backend::c;
+use crate::backend::conv::ret;
+use crate::fd::OwnedFd;
+use crate::io;
+#[cfg(not(any(
+ apple,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "wasi"
+)))]
+use crate::pipe::PipeFlags;
+use core::mem::MaybeUninit;
+#[cfg(linux_kernel)]
+use {
+ crate::backend::conv::{borrowed_fd, ret_c_int, ret_usize},
+ crate::backend::MAX_IOV,
+ crate::fd::BorrowedFd,
+ crate::pipe::{IoSliceRaw, SpliceFlags},
+ crate::utils::option_as_mut_ptr,
+ core::cmp::min,
+};
+
+#[cfg(not(target_os = "wasi"))]
+pub(crate) fn pipe() -> io::Result<(OwnedFd, OwnedFd)> {
+ unsafe {
+ let mut result = MaybeUninit::<[OwnedFd; 2]>::uninit();
+ ret(c::pipe(result.as_mut_ptr().cast::<i32>()))?;
+ let [p0, p1] = result.assume_init();
+ Ok((p0, p1))
+ }
+}
+
+#[cfg(not(any(
+ apple,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "wasi"
+)))]
+pub(crate) fn pipe_with(flags: PipeFlags) -> io::Result<(OwnedFd, OwnedFd)> {
+ unsafe {
+ let mut result = MaybeUninit::<[OwnedFd; 2]>::uninit();
+ ret(c::pipe2(
+ result.as_mut_ptr().cast::<i32>(),
+ bitflags_bits!(flags),
+ ))?;
+ let [p0, p1] = result.assume_init();
+ Ok((p0, p1))
+ }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn splice(
+ fd_in: BorrowedFd<'_>,
+ off_in: Option<&mut u64>,
+ fd_out: BorrowedFd<'_>,
+ off_out: Option<&mut u64>,
+ len: usize,
+ flags: SpliceFlags,
+) -> io::Result<usize> {
+ let off_in = option_as_mut_ptr(off_in).cast();
+ let off_out = option_as_mut_ptr(off_out).cast();
+
+ unsafe {
+ ret_usize(c::splice(
+ borrowed_fd(fd_in),
+ off_in,
+ borrowed_fd(fd_out),
+ off_out,
+ len,
+ flags.bits(),
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) unsafe fn vmsplice(
+ fd: BorrowedFd<'_>,
+ bufs: &[IoSliceRaw<'_>],
+ flags: SpliceFlags,
+) -> io::Result<usize> {
+ ret_usize(c::vmsplice(
+ borrowed_fd(fd),
+ bufs.as_ptr().cast::<c::iovec>(),
+ min(bufs.len(), MAX_IOV),
+ flags.bits(),
+ ))
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn tee(
+ fd_in: BorrowedFd<'_>,
+ fd_out: BorrowedFd<'_>,
+ len: usize,
+ flags: SpliceFlags,
+) -> io::Result<usize> {
+ unsafe {
+ ret_usize(c::tee(
+ borrowed_fd(fd_in),
+ borrowed_fd(fd_out),
+ len,
+ flags.bits(),
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn fcntl_getpipe_size(fd: BorrowedFd<'_>) -> io::Result<usize> {
+ unsafe { ret_c_int(c::fcntl(borrowed_fd(fd), c::F_GETPIPE_SZ)).map(|size| size as usize) }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn fcntl_setpipe_size(fd: BorrowedFd<'_>, size: usize) -> io::Result<usize> {
+ let size: c::c_int = size.try_into().map_err(|_| io::Errno::PERM)?;
+
+ unsafe { ret_c_int(c::fcntl(borrowed_fd(fd), c::F_SETPIPE_SZ, size)).map(|size| size as usize) }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/pipe/types.rs b/vendor/rustix-1.0.8/src/backend/libc/pipe/types.rs
new file mode 100644
index 0000000..db04a94
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/pipe/types.rs
@@ -0,0 +1,117 @@
+#[cfg(linux_kernel)]
+use crate::ffi;
+#[cfg(linux_kernel)]
+use core::marker::PhantomData;
+#[cfg(not(any(apple, target_os = "wasi")))]
+use {crate::backend::c, bitflags::bitflags};
+
+#[cfg(not(any(apple, target_os = "wasi")))]
+bitflags! {
+ /// `O_*` constants for use with [`pipe_with`].
+ ///
+ /// [`pipe_with`]: crate::pipe::pipe_with
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct PipeFlags: u32 {
+ /// `O_CLOEXEC`
+ const CLOEXEC = bitcast!(c::O_CLOEXEC);
+ /// `O_DIRECT`
+ #[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ const DIRECT = bitcast!(c::O_DIRECT);
+ /// `O_NONBLOCK`
+ const NONBLOCK = bitcast!(c::O_NONBLOCK);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `SPLICE_F_*` constants for use with [`splice`], [`vmsplice`], and
+ /// [`tee`].
+ ///
+ /// [`splice`]: crate::pipe::splice
+ /// [`vmsplice`]: crate::pipe::splice
+ /// [`tee`]: crate::pipe::tee
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct SpliceFlags: ffi::c_uint {
+ /// `SPLICE_F_MOVE`
+ const MOVE = c::SPLICE_F_MOVE;
+ /// `SPLICE_F_NONBLOCK`
+ const NONBLOCK = c::SPLICE_F_NONBLOCK;
+ /// `SPLICE_F_MORE`
+ const MORE = c::SPLICE_F_MORE;
+ /// `SPLICE_F_GIFT`
+ const GIFT = c::SPLICE_F_GIFT;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// A buffer type for use with [`vmsplice`].
+///
+/// It is guaranteed to be ABI compatible with the iovec type on Unix platforms
+/// and `WSABUF` on Windows. Unlike `IoSlice` and `IoSliceMut` it is
+/// semantically like a raw pointer, and therefore can be shared or mutated as
+/// needed.
+///
+/// [`vmsplice`]: crate::pipe::vmsplice
+#[cfg(linux_kernel)]
+#[repr(transparent)]
+pub struct IoSliceRaw<'a> {
+ _buf: c::iovec,
+ _lifetime: PhantomData<&'a ()>,
+}
+
+#[cfg(linux_kernel)]
+impl<'a> IoSliceRaw<'a> {
+ /// Creates a new `IoSlice` wrapping a byte slice.
+ pub fn from_slice(buf: &'a [u8]) -> Self {
+ IoSliceRaw {
+ _buf: c::iovec {
+ iov_base: (buf.as_ptr() as *mut u8).cast::<c::c_void>(),
+ iov_len: buf.len() as _,
+ },
+ _lifetime: PhantomData,
+ }
+ }
+
+ /// Creates a new `IoSlice` wrapping a mutable byte slice.
+ pub fn from_slice_mut(buf: &'a mut [u8]) -> Self {
+ IoSliceRaw {
+ _buf: c::iovec {
+ iov_base: buf.as_mut_ptr().cast::<c::c_void>(),
+ iov_len: buf.len() as _,
+ },
+ _lifetime: PhantomData,
+ }
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ #[allow(unused_imports)]
+ use super::*;
+
+ #[cfg(not(any(apple, target_os = "wasi")))]
+ #[test]
+ fn test_types() {
+ assert_eq_size!(PipeFlags, c::c_int);
+
+ #[cfg(linux_kernel)]
+ assert_eq_size!(SpliceFlags, c::c_int);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/prctl/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/prctl/mod.rs
new file mode 100644
index 0000000..ef944f0
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/prctl/mod.rs
@@ -0,0 +1 @@
+pub(crate) mod syscalls;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/prctl/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/prctl/syscalls.rs
new file mode 100644
index 0000000..451cecc
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/prctl/syscalls.rs
@@ -0,0 +1,14 @@
+use crate::backend::c;
+use crate::backend::conv::ret_c_int;
+use crate::io;
+
+#[inline]
+pub(crate) unsafe fn prctl(
+ option: c::c_int,
+ arg2: *mut c::c_void,
+ arg3: *mut c::c_void,
+ arg4: *mut c::c_void,
+ arg5: *mut c::c_void,
+) -> io::Result<c::c_int> {
+ ret_c_int(c::prctl(option, arg2, arg3, arg4, arg5))
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/process/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/process/mod.rs
new file mode 100644
index 0000000..a937d7f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/process/mod.rs
@@ -0,0 +1,5 @@
+#[cfg(not(windows))]
+pub(crate) mod syscalls;
+pub(crate) mod types;
+#[cfg(not(any(target_os = "espidf", target_os = "vita", target_os = "wasi")))]
+pub(crate) mod wait;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/process/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/process/syscalls.rs
new file mode 100644
index 0000000..3c67f2c
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/process/syscalls.rs
@@ -0,0 +1,704 @@
+//! libc syscalls supporting `rustix::process`.
+
+use crate::backend::c;
+#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))]
+use crate::backend::conv::borrowed_fd;
+#[cfg(any(target_os = "linux", feature = "fs"))]
+use crate::backend::conv::c_str;
+#[cfg(all(feature = "alloc", feature = "fs", not(target_os = "wasi")))]
+use crate::backend::conv::ret_discarded_char_ptr;
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+use crate::backend::conv::ret_infallible;
+#[cfg(not(target_os = "wasi"))]
+use crate::backend::conv::ret_pid_t;
+#[cfg(all(feature = "alloc", not(target_os = "wasi")))]
+use crate::backend::conv::ret_usize;
+use crate::backend::conv::{ret, ret_c_int};
+#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))]
+use crate::fd::BorrowedFd;
+#[cfg(target_os = "linux")]
+use crate::fd::{AsRawFd as _, OwnedFd, RawFd};
+#[cfg(any(target_os = "linux", feature = "fs"))]
+use crate::ffi::CStr;
+#[cfg(feature = "fs")]
+use crate::fs::Mode;
+use crate::io;
+#[cfg(not(any(
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+use crate::process::Flock;
+#[cfg(all(feature = "alloc", not(target_os = "wasi")))]
+use crate::process::Gid;
+#[cfg(not(target_os = "wasi"))]
+use crate::process::Pid;
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+use crate::process::Signal;
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+use crate::process::Uid;
+#[cfg(not(any(target_os = "espidf", target_os = "vita", target_os = "wasi")))]
+use crate::process::{RawPid, WaitOptions, WaitStatus};
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+use crate::process::{Resource, Rlimit};
+#[cfg(not(any(
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+use crate::process::{WaitId, WaitIdOptions, WaitIdStatus};
+use core::mem::MaybeUninit;
+#[cfg(target_os = "linux")]
+use {
+ super::super::conv::ret_owned_fd, crate::process::PidfdFlags, crate::process::PidfdGetfdFlags,
+};
+
+#[cfg(feature = "fs")]
+#[cfg(not(target_os = "wasi"))]
+pub(crate) fn chdir(path: &CStr) -> io::Result<()> {
+ unsafe { ret(c::chdir(c_str(path))) }
+}
+
+#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))]
+pub(crate) fn fchdir(dirfd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe { ret(c::fchdir(borrowed_fd(dirfd))) }
+}
+
+#[cfg(feature = "fs")]
+#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))]
+pub(crate) fn chroot(path: &CStr) -> io::Result<()> {
+ unsafe { ret(c::chroot(c_str(path))) }
+}
+
+#[cfg(all(feature = "alloc", feature = "fs"))]
+#[cfg(not(target_os = "wasi"))]
+pub(crate) fn getcwd(buf: &mut [MaybeUninit<u8>]) -> io::Result<()> {
+ unsafe { ret_discarded_char_ptr(c::getcwd(buf.as_mut_ptr().cast(), buf.len())) }
+}
+
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+#[must_use]
+pub(crate) fn getppid() -> Option<Pid> {
+ unsafe {
+ let pid: i32 = c::getppid();
+ Pid::from_raw(pid)
+ }
+}
+
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+pub(crate) fn getpgid(pid: Option<Pid>) -> io::Result<Pid> {
+ unsafe {
+ let pgid = ret_pid_t(c::getpgid(Pid::as_raw(pid) as _))?;
+ Ok(Pid::from_raw_unchecked(pgid))
+ }
+}
+
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+pub(crate) fn setpgid(pid: Option<Pid>, pgid: Option<Pid>) -> io::Result<()> {
+ unsafe { ret(c::setpgid(Pid::as_raw(pid) as _, Pid::as_raw(pgid) as _)) }
+}
+
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+#[must_use]
+pub(crate) fn getpgrp() -> Pid {
+ unsafe {
+ let pgid = c::getpgrp();
+ Pid::from_raw_unchecked(pgid)
+ }
+}
+
+#[cfg(not(target_os = "wasi"))]
+#[cfg(feature = "fs")]
+#[inline]
+pub(crate) fn umask(mask: Mode) -> Mode {
+ unsafe { Mode::from_bits_retain(c::umask(mask.bits() as c::mode_t).into()) }
+}
+
+#[cfg(not(any(target_os = "fuchsia", target_os = "vita", target_os = "wasi")))]
+#[inline]
+pub(crate) fn nice(inc: i32) -> io::Result<i32> {
+ libc_errno::set_errno(libc_errno::Errno(0));
+ let r = unsafe { c::nice(inc) };
+ if libc_errno::errno().0 != 0 {
+ ret_c_int(r)
+ } else {
+ Ok(r)
+ }
+}
+
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+pub(crate) fn getpriority_user(uid: Uid) -> io::Result<i32> {
+ libc_errno::set_errno(libc_errno::Errno(0));
+ let r = unsafe { c::getpriority(c::PRIO_USER, uid.as_raw() as _) };
+ if libc_errno::errno().0 != 0 {
+ ret_c_int(r)
+ } else {
+ Ok(r)
+ }
+}
+
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+pub(crate) fn getpriority_pgrp(pgid: Option<Pid>) -> io::Result<i32> {
+ libc_errno::set_errno(libc_errno::Errno(0));
+ let r = unsafe { c::getpriority(c::PRIO_PGRP, Pid::as_raw(pgid) as _) };
+ if libc_errno::errno().0 != 0 {
+ ret_c_int(r)
+ } else {
+ Ok(r)
+ }
+}
+
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+pub(crate) fn getpriority_process(pid: Option<Pid>) -> io::Result<i32> {
+ libc_errno::set_errno(libc_errno::Errno(0));
+ let r = unsafe { c::getpriority(c::PRIO_PROCESS, Pid::as_raw(pid) as _) };
+ if libc_errno::errno().0 != 0 {
+ ret_c_int(r)
+ } else {
+ Ok(r)
+ }
+}
+
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+pub(crate) fn setpriority_user(uid: Uid, priority: i32) -> io::Result<()> {
+ unsafe { ret(c::setpriority(c::PRIO_USER, uid.as_raw() as _, priority)) }
+}
+
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+pub(crate) fn setpriority_pgrp(pgid: Option<Pid>, priority: i32) -> io::Result<()> {
+ unsafe {
+ ret(c::setpriority(
+ c::PRIO_PGRP,
+ Pid::as_raw(pgid) as _,
+ priority,
+ ))
+ }
+}
+
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+pub(crate) fn setpriority_process(pid: Option<Pid>, priority: i32) -> io::Result<()> {
+ unsafe {
+ ret(c::setpriority(
+ c::PRIO_PROCESS,
+ Pid::as_raw(pid) as _,
+ priority,
+ ))
+ }
+}
+
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+pub(crate) fn getrlimit(limit: Resource) -> Rlimit {
+ let mut result = MaybeUninit::<c::rlimit>::uninit();
+ unsafe {
+ ret_infallible(c::getrlimit(limit as _, result.as_mut_ptr()));
+ rlimit_from_libc(result.assume_init())
+ }
+}
+
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+pub(crate) fn setrlimit(limit: Resource, new: Rlimit) -> io::Result<()> {
+ let lim = rlimit_to_libc(new)?;
+ unsafe { ret(c::setrlimit(limit as _, &lim)) }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn prlimit(pid: Option<Pid>, limit: Resource, new: Rlimit) -> io::Result<Rlimit> {
+ let lim = rlimit_to_libc(new)?;
+ let mut result = MaybeUninit::<c::rlimit>::uninit();
+ unsafe {
+ ret(c::prlimit(
+ Pid::as_raw(pid),
+ limit as _,
+ &lim,
+ result.as_mut_ptr(),
+ ))?;
+ Ok(rlimit_from_libc(result.assume_init()))
+ }
+}
+
+/// Convert a C `c::rlimit` to a Rust `Rlimit`.
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+fn rlimit_from_libc(lim: c::rlimit) -> Rlimit {
+ let current = if lim.rlim_cur == c::RLIM_INFINITY {
+ None
+ } else {
+ Some(lim.rlim_cur.try_into().unwrap())
+ };
+ let maximum = if lim.rlim_max == c::RLIM_INFINITY {
+ None
+ } else {
+ Some(lim.rlim_max.try_into().unwrap())
+ };
+ Rlimit { current, maximum }
+}
+
+/// Convert a Rust [`Rlimit`] to a C `c::rlimit`.
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+fn rlimit_to_libc(lim: Rlimit) -> io::Result<c::rlimit> {
+ let Rlimit { current, maximum } = lim;
+ let rlim_cur = match current {
+ Some(r) => r.try_into().map_err(|_e| io::Errno::INVAL)?,
+ None => c::RLIM_INFINITY as _,
+ };
+ let rlim_max = match maximum {
+ Some(r) => r.try_into().map_err(|_e| io::Errno::INVAL)?,
+ None => c::RLIM_INFINITY as _,
+ };
+ Ok(c::rlimit { rlim_cur, rlim_max })
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "vita", target_os = "wasi")))]
+#[inline]
+pub(crate) fn wait(waitopts: WaitOptions) -> io::Result<Option<(Pid, WaitStatus)>> {
+ _waitpid(!0, waitopts)
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "vita", target_os = "wasi")))]
+#[inline]
+pub(crate) fn waitpid(
+ pid: Option<Pid>,
+ waitopts: WaitOptions,
+) -> io::Result<Option<(Pid, WaitStatus)>> {
+ _waitpid(Pid::as_raw(pid), waitopts)
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "vita", target_os = "wasi")))]
+#[inline]
+pub(crate) fn waitpgid(pgid: Pid, waitopts: WaitOptions) -> io::Result<Option<(Pid, WaitStatus)>> {
+ _waitpid(-pgid.as_raw_nonzero().get(), waitopts)
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "vita", target_os = "wasi")))]
+#[inline]
+pub(crate) fn _waitpid(
+ pid: RawPid,
+ waitopts: WaitOptions,
+) -> io::Result<Option<(Pid, WaitStatus)>> {
+ unsafe {
+ let mut status: c::c_int = 0;
+ let pid = ret_c_int(c::waitpid(pid as _, &mut status, waitopts.bits() as _))?;
+ Ok(Pid::from_raw(pid).map(|pid| (pid, WaitStatus::new(status as _))))
+ }
+}
+
+#[cfg(not(any(
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+#[inline]
+pub(crate) fn waitid(id: WaitId<'_>, options: WaitIdOptions) -> io::Result<Option<WaitIdStatus>> {
+ // Get the id to wait on.
+ match id {
+ WaitId::All => _waitid_all(options),
+ WaitId::Pid(pid) => _waitid_pid(pid, options),
+ WaitId::Pgid(pgid) => _waitid_pgid(pgid, options),
+ #[cfg(target_os = "linux")]
+ WaitId::PidFd(fd) => _waitid_pidfd(fd, options),
+ #[cfg(not(target_os = "linux"))]
+ WaitId::__EatLifetime(_) => unreachable!(),
+ }
+}
+
+#[cfg(not(any(
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+#[inline]
+fn _waitid_all(options: WaitIdOptions) -> io::Result<Option<WaitIdStatus>> {
+ // `waitid` can return successfully without initializing the struct (no
+ // children found when using `WNOHANG`)
+ let mut status = MaybeUninit::<c::siginfo_t>::zeroed();
+ unsafe {
+ ret(c::waitid(
+ c::P_ALL,
+ 0,
+ status.as_mut_ptr(),
+ options.bits() as _,
+ ))?
+ };
+
+ Ok(unsafe { cvt_waitid_status(status) })
+}
+
+#[cfg(not(any(
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+#[inline]
+fn _waitid_pid(pid: Pid, options: WaitIdOptions) -> io::Result<Option<WaitIdStatus>> {
+ // `waitid` can return successfully without initializing the struct (no
+ // children found when using `WNOHANG`)
+ let mut status = MaybeUninit::<c::siginfo_t>::zeroed();
+ unsafe {
+ ret(c::waitid(
+ c::P_PID,
+ Pid::as_raw(Some(pid)) as _,
+ status.as_mut_ptr(),
+ options.bits() as _,
+ ))?
+ };
+
+ Ok(unsafe { cvt_waitid_status(status) })
+}
+
+#[cfg(not(any(
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+#[inline]
+fn _waitid_pgid(pgid: Option<Pid>, options: WaitIdOptions) -> io::Result<Option<WaitIdStatus>> {
+ // `waitid` can return successfully without initializing the struct (no
+ // children found when using `WNOHANG`)
+ let mut status = MaybeUninit::<c::siginfo_t>::zeroed();
+ unsafe {
+ ret(c::waitid(
+ c::P_PGID,
+ Pid::as_raw(pgid) as _,
+ status.as_mut_ptr(),
+ options.bits() as _,
+ ))?
+ };
+
+ Ok(unsafe { cvt_waitid_status(status) })
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+fn _waitid_pidfd(fd: BorrowedFd<'_>, options: WaitIdOptions) -> io::Result<Option<WaitIdStatus>> {
+ // `waitid` can return successfully without initializing the struct (no
+ // children found when using `WNOHANG`)
+ let mut status = MaybeUninit::<c::siginfo_t>::zeroed();
+ unsafe {
+ ret(c::waitid(
+ c::P_PIDFD,
+ fd.as_raw_fd() as _,
+ status.as_mut_ptr(),
+ options.bits() as _,
+ ))?
+ };
+
+ Ok(unsafe { cvt_waitid_status(status) })
+}
+
+/// Convert a `siginfo_t` to a `WaitIdStatus`.
+///
+/// # Safety
+///
+/// The caller must ensure that `status` is initialized and that `waitid`
+/// returned successfully.
+#[cfg(not(any(
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+#[inline]
+unsafe fn cvt_waitid_status(status: MaybeUninit<c::siginfo_t>) -> Option<WaitIdStatus> {
+ let status = status.assume_init();
+ // `si_pid` is supposedly the better way to check that the struct has been
+ // filled, e.g. the Linux manual page says about the `WNOHANG` case “zero
+ // out the si_pid field before the call and check for a nonzero value”.
+ // But e.g. NetBSD/OpenBSD don't have it exposed in the libc crate for now,
+ // and some platforms don't have it at all. For simplicity, always check
+ // `si_signo`. We have zero-initialized the whole struct, and all kernels
+ // should set `SIGCHLD` here.
+ if status.si_signo == 0 {
+ None
+ } else {
+ Some(WaitIdStatus(status))
+ }
+}
+
+#[cfg(not(any(target_os = "redox", target_os = "wasi")))]
+#[inline]
+pub(crate) fn getsid(pid: Option<Pid>) -> io::Result<Pid> {
+ unsafe {
+ let pid = ret_pid_t(c::getsid(Pid::as_raw(pid) as _))?;
+ Ok(Pid::from_raw_unchecked(pid))
+ }
+}
+
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+pub(crate) fn setsid() -> io::Result<Pid> {
+ unsafe {
+ let pid = ret_c_int(c::setsid())?;
+ Ok(Pid::from_raw_unchecked(pid))
+ }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+#[inline]
+pub(crate) fn kill_process(pid: Pid, sig: Signal) -> io::Result<()> {
+ unsafe { ret(c::kill(pid.as_raw_nonzero().get(), sig.as_raw())) }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+#[inline]
+pub(crate) fn kill_process_group(pid: Pid, sig: Signal) -> io::Result<()> {
+ unsafe {
+ ret(c::kill(
+ pid.as_raw_nonzero().get().wrapping_neg(),
+ sig.as_raw(),
+ ))
+ }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+#[inline]
+pub(crate) fn kill_current_process_group(sig: Signal) -> io::Result<()> {
+ unsafe { ret(c::kill(0, sig.as_raw())) }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+pub(crate) fn test_kill_process(pid: Pid) -> io::Result<()> {
+ unsafe { ret(c::kill(pid.as_raw_nonzero().get(), 0)) }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+#[inline]
+pub(crate) fn test_kill_process_group(pid: Pid) -> io::Result<()> {
+ unsafe { ret(c::kill(pid.as_raw_nonzero().get().wrapping_neg(), 0)) }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+#[inline]
+pub(crate) fn test_kill_current_process_group() -> io::Result<()> {
+ unsafe { ret(c::kill(0, 0)) }
+}
+
+#[cfg(freebsdlike)]
+#[inline]
+pub(crate) unsafe fn procctl(
+ idtype: c::idtype_t,
+ id: c::id_t,
+ option: c::c_int,
+ data: *mut c::c_void,
+) -> io::Result<()> {
+ ret(c::procctl(idtype, id, option, data))
+}
+
+#[cfg(target_os = "linux")]
+pub(crate) fn pidfd_open(pid: Pid, flags: PidfdFlags) -> io::Result<OwnedFd> {
+ syscall! {
+ fn pidfd_open(
+ pid: c::pid_t,
+ flags: c::c_uint
+ ) via SYS_pidfd_open -> c::c_int
+ }
+ unsafe {
+ ret_owned_fd(pidfd_open(
+ pid.as_raw_nonzero().get(),
+ bitflags_bits!(flags),
+ ))
+ }
+}
+
+#[cfg(target_os = "linux")]
+pub(crate) fn pidfd_send_signal(pidfd: BorrowedFd<'_>, sig: Signal) -> io::Result<()> {
+ syscall! {
+ fn pidfd_send_signal(
+ pid: c::pid_t,
+ sig: c::c_int,
+ info: *const c::siginfo_t,
+ flags: c::c_int
+ ) via SYS_pidfd_send_signal -> c::c_int
+ }
+ unsafe {
+ ret(pidfd_send_signal(
+ borrowed_fd(pidfd),
+ sig.as_raw(),
+ core::ptr::null(),
+ 0,
+ ))
+ }
+}
+
+#[cfg(target_os = "linux")]
+pub(crate) fn pidfd_getfd(
+ pidfd: BorrowedFd<'_>,
+ targetfd: RawFd,
+ flags: PidfdGetfdFlags,
+) -> io::Result<OwnedFd> {
+ syscall! {
+ fn pidfd_getfd(
+ pidfd: c::c_int,
+ targetfd: c::c_int,
+ flags: c::c_uint
+ ) via SYS_pidfd_getfd -> c::c_int
+ }
+ unsafe {
+ ret_owned_fd(pidfd_getfd(
+ borrowed_fd(pidfd),
+ targetfd,
+ bitflags_bits!(flags),
+ ))
+ }
+}
+
+#[cfg(target_os = "linux")]
+pub(crate) fn pivot_root(new_root: &CStr, put_old: &CStr) -> io::Result<()> {
+ syscall! {
+ fn pivot_root(
+ new_root: *const c::c_char,
+ put_old: *const c::c_char
+ ) via SYS_pivot_root -> c::c_int
+ }
+ unsafe { ret(pivot_root(c_str(new_root), c_str(put_old))) }
+}
+
+#[cfg(all(feature = "alloc", not(target_os = "wasi")))]
+pub(crate) fn getgroups(buf: &mut [Gid]) -> io::Result<usize> {
+ let len = buf.len().try_into().map_err(|_| io::Errno::NOMEM)?;
+
+ unsafe { ret_usize(c::getgroups(len, buf.as_mut_ptr().cast()) as isize) }
+}
+
+#[cfg(not(any(
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+pub(crate) fn fcntl_getlk(fd: BorrowedFd<'_>, lock: &Flock) -> io::Result<Option<Flock>> {
+ let mut curr_lock: c::flock = lock.as_raw();
+ unsafe { ret(c::fcntl(borrowed_fd(fd), c::F_GETLK, &mut curr_lock))? };
+
+ // If no blocking lock is found, `fcntl(GETLK, ..)` sets `l_type` to
+ // `F_UNLCK`.
+ if curr_lock.l_type == c::F_UNLCK as _ {
+ Ok(None)
+ } else {
+ Ok(Some(unsafe { Flock::from_raw_unchecked(curr_lock) }))
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/process/types.rs b/vendor/rustix-1.0.8/src/backend/libc/process/types.rs
new file mode 100644
index 0000000..4771dda
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/process/types.rs
@@ -0,0 +1,139 @@
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+use crate::backend::c;
+
+/// A resource value for use with [`getrlimit`], [`setrlimit`], and
+/// [`prlimit`].
+///
+/// [`getrlimit`]: crate::process::getrlimit
+/// [`setrlimit`]: crate::process::setrlimit
+/// [`prlimit`]: crate::process::prlimit
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[cfg_attr(not(target_os = "l4re"), repr(u32))]
+#[cfg_attr(target_os = "l4re", repr(u64))]
+#[non_exhaustive]
+pub enum Resource {
+ /// `RLIMIT_CPU`
+ Cpu = bitcast!(c::RLIMIT_CPU),
+ /// `RLIMIT_FSIZE`
+ Fsize = bitcast!(c::RLIMIT_FSIZE),
+ /// `RLIMIT_DATA`
+ Data = bitcast!(c::RLIMIT_DATA),
+ /// `RLIMIT_STACK`
+ Stack = bitcast!(c::RLIMIT_STACK),
+ /// `RLIMIT_CORE`
+ #[cfg(not(target_os = "haiku"))]
+ Core = bitcast!(c::RLIMIT_CORE),
+ /// `RLIMIT_RSS`
+ // "nto" has `RLIMIT_RSS`, but it has the same value as `RLIMIT_AS`.
+ #[cfg(not(any(
+ apple,
+ solarish,
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "nto",
+ )))]
+ Rss = bitcast!(c::RLIMIT_RSS),
+ /// `RLIMIT_NPROC`
+ #[cfg(not(any(solarish, target_os = "cygwin", target_os = "haiku")))]
+ Nproc = bitcast!(c::RLIMIT_NPROC),
+ /// `RLIMIT_NOFILE`
+ Nofile = bitcast!(c::RLIMIT_NOFILE),
+ /// `RLIMIT_MEMLOCK`
+ #[cfg(not(any(solarish, target_os = "aix", target_os = "cygwin", target_os = "haiku")))]
+ Memlock = bitcast!(c::RLIMIT_MEMLOCK),
+ /// `RLIMIT_AS`
+ #[cfg(not(target_os = "openbsd"))]
+ As = bitcast!(c::RLIMIT_AS),
+ /// `RLIMIT_LOCKS`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ )))]
+ Locks = bitcast!(c::RLIMIT_LOCKS),
+ /// `RLIMIT_SIGPENDING`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ )))]
+ Sigpending = bitcast!(c::RLIMIT_SIGPENDING),
+ /// `RLIMIT_MSGQUEUE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ )))]
+ Msgqueue = bitcast!(c::RLIMIT_MSGQUEUE),
+ /// `RLIMIT_NICE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ )))]
+ Nice = bitcast!(c::RLIMIT_NICE),
+ /// `RLIMIT_RTPRIO`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ )))]
+ Rtprio = bitcast!(c::RLIMIT_RTPRIO),
+ /// `RLIMIT_RTTIME`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "android",
+ target_os = "cygwin",
+ target_os = "emscripten",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ )))]
+ Rttime = bitcast!(c::RLIMIT_RTTIME),
+}
+
+#[cfg(apple)]
+#[allow(non_upper_case_globals)]
+impl Resource {
+ /// `RLIMIT_RSS`
+ pub const Rss: Self = Self::As;
+}
+
+#[cfg(freebsdlike)]
+pub type RawId = c::id_t;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/process/wait.rs b/vendor/rustix-1.0.8/src/backend/libc/process/wait.rs
new file mode 100644
index 0000000..9f9810d
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/process/wait.rs
@@ -0,0 +1,17 @@
+use crate::backend::c;
+
+pub(crate) use c::{
+ WEXITSTATUS, WIFCONTINUED, WIFEXITED, WIFSIGNALED, WIFSTOPPED, WNOHANG, WSTOPSIG, WTERMSIG,
+};
+
+#[cfg(not(target_os = "horizon"))]
+pub(crate) use c::{WCONTINUED, WUNTRACED};
+
+#[cfg(not(any(
+ target_os = "cygwin",
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "wasi",
+)))]
+pub(crate) use c::{WEXITED, WNOWAIT, WSTOPPED};
diff --git a/vendor/rustix-1.0.8/src/backend/libc/pty/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/pty/mod.rs
new file mode 100644
index 0000000..ef944f0
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/pty/mod.rs
@@ -0,0 +1 @@
+pub(crate) mod syscalls;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/pty/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/pty/syscalls.rs
new file mode 100644
index 0000000..8405cfd
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/pty/syscalls.rs
@@ -0,0 +1,118 @@
+//! libc syscalls supporting `rustix::pty`.
+
+use crate::backend::c;
+use crate::backend::conv::{borrowed_fd, ret};
+use crate::fd::BorrowedFd;
+use crate::io;
+#[cfg(all(
+ feature = "alloc",
+ any(
+ apple,
+ linux_like,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "illumos"
+ )
+))]
+use {
+ crate::ffi::{CStr, CString},
+ crate::path::SMALL_PATH_BUFFER_SIZE,
+ alloc::borrow::ToOwned as _,
+ alloc::vec::Vec,
+};
+
+#[cfg(not(linux_kernel))]
+use crate::{backend::conv::ret_owned_fd, fd::OwnedFd, pty::OpenptFlags};
+
+#[cfg(not(linux_kernel))]
+#[inline]
+pub(crate) fn openpt(flags: OpenptFlags) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(c::posix_openpt(flags.bits() as _)) }
+}
+
+#[cfg(all(
+ feature = "alloc",
+ any(
+ apple,
+ linux_like,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "illumos"
+ )
+))]
+#[inline]
+pub(crate) fn ptsname(fd: BorrowedFd<'_>, mut buffer: Vec<u8>) -> io::Result<CString> {
+ // This code would benefit from having a better way to read into
+ // uninitialized memory, but that requires `unsafe`.
+ buffer.clear();
+ buffer.reserve(SMALL_PATH_BUFFER_SIZE);
+ buffer.resize(buffer.capacity(), 0_u8);
+
+ loop {
+ // On platforms with `ptsname_r`, use it.
+ #[cfg(any(linux_like, target_os = "fuchsia", target_os = "illumos"))]
+ let r = unsafe { c::ptsname_r(borrowed_fd(fd), buffer.as_mut_ptr().cast(), buffer.len()) };
+
+ // FreeBSD 12 doesn't have `ptsname_r`.
+ #[cfg(target_os = "freebsd")]
+ let r = unsafe {
+ weak! {
+ fn ptsname_r(
+ c::c_int,
+ *mut c::c_char,
+ c::size_t
+ ) -> c::c_int
+ }
+ if let Some(func) = ptsname_r.get() {
+ func(borrowed_fd(fd), buffer.as_mut_ptr().cast(), buffer.len())
+ } else {
+ c::ENOSYS
+ }
+ };
+
+ // macOS 10.13.4 has `ptsname_r`; use it if we have it, otherwise fall
+ // back to calling the underlying ioctl directly.
+ #[cfg(apple)]
+ let r = unsafe {
+ weak! { fn ptsname_r(c::c_int, *mut c::c_char, c::size_t) -> c::c_int }
+
+ if let Some(libc_ptsname_r) = ptsname_r.get() {
+ libc_ptsname_r(borrowed_fd(fd), buffer.as_mut_ptr().cast(), buffer.len())
+ } else {
+ // The size declared in the `TIOCPTYGNAME` macro in
+ // sys/ttycom.h is 128.
+ let mut name: [u8; 128] = [0_u8; 128];
+ match c::ioctl(borrowed_fd(fd), c::TIOCPTYGNAME as _, &mut name) {
+ 0 => {
+ let len = CStr::from_ptr(name.as_ptr().cast()).to_bytes().len();
+ core::ptr::copy_nonoverlapping(name.as_ptr(), buffer.as_mut_ptr(), len + 1);
+ 0
+ }
+ _ => libc_errno::errno().0,
+ }
+ }
+ };
+
+ if r == 0 {
+ return Ok(unsafe { CStr::from_ptr(buffer.as_ptr().cast()).to_owned() });
+ }
+ if r != c::ERANGE {
+ return Err(io::Errno::from_raw_os_error(r));
+ }
+
+ // Use `Vec` reallocation strategy to grow capacity exponentially.
+ buffer.reserve(1);
+ buffer.resize(buffer.capacity(), 0_u8);
+ }
+}
+
+#[inline]
+pub(crate) fn unlockpt(fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe { ret(c::unlockpt(borrowed_fd(fd))) }
+}
+
+#[cfg(not(linux_kernel))]
+#[inline]
+pub(crate) fn grantpt(fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe { ret(c::grantpt(borrowed_fd(fd))) }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/rand/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/rand/mod.rs
new file mode 100644
index 0000000..1e0181a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/rand/mod.rs
@@ -0,0 +1,2 @@
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/rand/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/rand/syscalls.rs
new file mode 100644
index 0000000..ce17c6a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/rand/syscalls.rs
@@ -0,0 +1,14 @@
+//! libc syscalls supporting `rustix::rand`.
+
+#[cfg(linux_kernel)]
+use {crate::backend::c, crate::backend::conv::ret_usize, crate::io, crate::rand::GetRandomFlags};
+
+#[cfg(linux_kernel)]
+pub(crate) unsafe fn getrandom(buf: (*mut u8, usize), flags: GetRandomFlags) -> io::Result<usize> {
+ // `getrandom` wasn't supported in glibc until 2.25.
+ weak_or_syscall! {
+ fn getrandom(buf: *mut c::c_void, buflen: c::size_t, flags: c::c_uint) via SYS_getrandom -> c::ssize_t
+ }
+
+ ret_usize(getrandom(buf.0.cast(), buf.1, flags.bits()))
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/rand/types.rs b/vendor/rustix-1.0.8/src/backend/libc/rand/types.rs
new file mode 100644
index 0000000..46690b5
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/rand/types.rs
@@ -0,0 +1,24 @@
+#[cfg(linux_kernel)]
+use crate::backend::c;
+#[cfg(linux_kernel)]
+use bitflags::bitflags;
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `GRND_*` flags for use with [`getrandom`].
+ ///
+ /// [`getrandom`]: crate::rand::getrandom
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct GetRandomFlags: u32 {
+ /// `GRND_RANDOM`
+ const RANDOM = c::GRND_RANDOM;
+ /// `GRND_NONBLOCK`
+ const NONBLOCK = c::GRND_NONBLOCK;
+ /// `GRND_INSECURE`
+ const INSECURE = c::GRND_INSECURE;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/shm/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/shm/mod.rs
new file mode 100644
index 0000000..1e0181a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/shm/mod.rs
@@ -0,0 +1,2 @@
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/shm/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/shm/syscalls.rs
new file mode 100644
index 0000000..e5d61ac
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/shm/syscalls.rs
@@ -0,0 +1,24 @@
+use crate::ffi::CStr;
+
+use crate::backend::c;
+use crate::backend::conv::{c_str, ret, ret_owned_fd};
+use crate::fd::OwnedFd;
+use crate::fs::Mode;
+use crate::{io, shm};
+
+pub(crate) fn shm_open(name: &CStr, oflags: shm::OFlags, mode: Mode) -> io::Result<OwnedFd> {
+ // On this platforms, `mode_t` is `u16` and can't be passed directly to a
+ // variadic function.
+ #[cfg(apple)]
+ let mode: c::c_uint = mode.bits().into();
+
+ // Otherwise, cast to `mode_t` as that's what `open` is documented to take.
+ #[cfg(not(apple))]
+ let mode: c::mode_t = mode.bits() as _;
+
+ unsafe { ret_owned_fd(c::shm_open(c_str(name), bitflags_bits!(oflags), mode)) }
+}
+
+pub(crate) fn shm_unlink(name: &CStr) -> io::Result<()> {
+ unsafe { ret(c::shm_unlink(c_str(name))) }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/shm/types.rs b/vendor/rustix-1.0.8/src/backend/libc/shm/types.rs
new file mode 100644
index 0000000..59f19b3
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/shm/types.rs
@@ -0,0 +1,30 @@
+use crate::backend::c;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `O_*` constants for use with [`shm::open`].
+ ///
+ /// [`shm::open`]: crate:shm::open
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ShmOFlags: u32 {
+ /// `O_CREAT`
+ #[doc(alias = "CREAT")]
+ const CREATE = bitcast!(c::O_CREAT);
+
+ /// `O_EXCL`
+ const EXCL = bitcast!(c::O_EXCL);
+
+ /// `O_RDONLY`
+ const RDONLY = bitcast!(c::O_RDONLY);
+
+ /// `O_RDWR`
+ const RDWR = bitcast!(c::O_RDWR);
+
+ /// `O_TRUNC`
+ const TRUNC = bitcast!(c::O_TRUNC);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/system/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/system/mod.rs
new file mode 100644
index 0000000..bff7fd5
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/system/mod.rs
@@ -0,0 +1,3 @@
+#[cfg(not(windows))]
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/system/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/system/syscalls.rs
new file mode 100644
index 0000000..0e8a7b3
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/system/syscalls.rs
@@ -0,0 +1,162 @@
+//! libc syscalls supporting `rustix::process`.
+
+use super::types::RawUname;
+use crate::backend::c;
+#[cfg(not(target_os = "wasi"))]
+use crate::backend::conv::ret_infallible;
+#[cfg(target_os = "linux")]
+use crate::system::RebootCommand;
+use core::mem::MaybeUninit;
+#[cfg(linux_kernel)]
+use {
+ crate::backend::conv::c_str, crate::fd::BorrowedFd, crate::ffi::CStr, crate::system::Sysinfo,
+};
+#[cfg(not(any(
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+use {crate::backend::conv::ret, crate::io};
+
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+pub(crate) fn uname() -> RawUname {
+ let mut uname = MaybeUninit::<RawUname>::uninit();
+ unsafe {
+ let r = c::uname(uname.as_mut_ptr());
+
+ // On POSIX, `uname` is documented to return non-negative on success
+ // instead of the usual 0, though some specific systems do document
+ // that they always use zero allowing us to skip this check.
+ #[cfg(not(any(apple, freebsdlike, linux_like, target_os = "netbsd")))]
+ let r = core::cmp::min(r, 0);
+
+ ret_infallible(r);
+ uname.assume_init()
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn sysinfo() -> Sysinfo {
+ let mut info = MaybeUninit::<Sysinfo>::uninit();
+ unsafe {
+ ret_infallible(c::sysinfo(info.as_mut_ptr()));
+ info.assume_init()
+ }
+}
+
+#[cfg(not(any(
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+pub(crate) fn sethostname(name: &[u8]) -> io::Result<()> {
+ unsafe {
+ ret(c::sethostname(
+ name.as_ptr().cast(),
+ name.len().try_into().map_err(|_| io::Errno::INVAL)?,
+ ))
+ }
+}
+
+#[cfg(not(any(
+ target_os = "android",
+ target_os = "cygwin",
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "illumos",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "solaris",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+pub(crate) fn setdomainname(name: &[u8]) -> io::Result<()> {
+ unsafe {
+ ret(c::setdomainname(
+ name.as_ptr().cast(),
+ name.len().try_into().map_err(|_| io::Errno::INVAL)?,
+ ))
+ }
+}
+
+// <https://github.com/rust-lang/libc/pull/4212>
+#[cfg(target_os = "android")]
+pub(crate) fn setdomainname(name: &[u8]) -> io::Result<()> {
+ syscall! {
+ fn setdomainname(
+ name: *const c::c_char,
+ len: c::size_t
+ ) via SYS_setdomainname -> c::c_int
+ }
+
+ unsafe {
+ ret(setdomainname(
+ name.as_ptr().cast(),
+ name.len().try_into().map_err(|_| io::Errno::INVAL)?,
+ ))
+ }
+}
+
+#[cfg(target_os = "linux")]
+pub(crate) fn reboot(cmd: RebootCommand) -> io::Result<()> {
+ unsafe { ret(c::reboot(cmd as i32)) }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn init_module(image: &[u8], param_values: &CStr) -> io::Result<()> {
+ syscall! {
+ fn init_module(
+ module_image: *const c::c_void,
+ len: c::c_ulong,
+ param_values: *const c::c_char
+ ) via SYS_init_module -> c::c_int
+ }
+
+ unsafe {
+ ret(init_module(
+ image.as_ptr().cast(),
+ image.len() as _,
+ c_str(param_values),
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn finit_module(
+ fd: BorrowedFd<'_>,
+ param_values: &CStr,
+ flags: c::c_int,
+) -> io::Result<()> {
+ use crate::fd::AsRawFd as _;
+
+ syscall! {
+ fn finit_module(
+ fd: c::c_int,
+ param_values: *const c::c_char,
+ flags: c::c_int
+ ) via SYS_finit_module -> c::c_int
+ }
+
+ unsafe { ret(finit_module(fd.as_raw_fd(), c_str(param_values), flags)) }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn delete_module(name: &CStr, flags: c::c_int) -> io::Result<()> {
+ syscall! {
+ fn delete_module(
+ name: *const c::c_char,
+ flags: c::c_int
+ ) via SYS_delete_module -> c::c_int
+ }
+ unsafe { ret(delete_module(c_str(name), flags)) }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/system/types.rs b/vendor/rustix-1.0.8/src/backend/libc/system/types.rs
new file mode 100644
index 0000000..731e89b
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/system/types.rs
@@ -0,0 +1,8 @@
+use crate::backend::c;
+
+/// `sysinfo`
+#[cfg(linux_kernel)]
+pub type Sysinfo = c::sysinfo;
+
+#[cfg(not(target_os = "wasi"))]
+pub(crate) type RawUname = c::utsname;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/termios/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/termios/mod.rs
new file mode 100644
index 0000000..1e0181a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/termios/mod.rs
@@ -0,0 +1,2 @@
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/termios/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/termios/syscalls.rs
new file mode 100644
index 0000000..e27f0b2
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/termios/syscalls.rs
@@ -0,0 +1,518 @@
+//! libc syscalls supporting `rustix::termios`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend::syscalls` module documentation for details.
+
+use crate::backend::c;
+#[cfg(not(target_os = "wasi"))]
+use crate::backend::conv::ret_pid_t;
+use crate::backend::conv::{borrowed_fd, ret};
+use crate::fd::BorrowedFd;
+#[cfg(feature = "alloc")]
+#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))]
+use crate::ffi::CStr;
+#[cfg(any(
+ not(target_os = "espidf"),
+ not(any(target_os = "fuchsia", target_os = "wasi"))
+))]
+use core::mem::MaybeUninit;
+#[cfg(not(target_os = "wasi"))]
+use {crate::io, crate::pid::Pid};
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+use {
+ crate::termios::{Action, OptionalActions, QueueSelector, Termios, Winsize},
+ crate::utils::as_mut_ptr,
+};
+
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+pub(crate) fn tcgetattr(fd: BorrowedFd<'_>) -> io::Result<Termios> {
+ // On Linux, use `TCGETS2`, and fall back to `TCGETS` if needed.
+ #[cfg(linux_kernel)]
+ {
+ use crate::termios::{ControlModes, InputModes, LocalModes, OutputModes, SpecialCodes};
+
+ let mut termios2 = MaybeUninit::<c::termios2>::uninit();
+ let ptr = termios2.as_mut_ptr();
+
+ // SAFETY: This invokes the `TCGETS2` ioctl, which initializes the full
+ // `Termios` structure.
+ let termios2 = unsafe {
+ match ret(c::ioctl(borrowed_fd(fd), c::TCGETS2 as _, ptr)) {
+ Ok(()) => {}
+
+ // A `NOTTY` or `ACCESS` might mean the OS doesn't support
+ // `TCGETS2`, for example a seccomp environment or WSL that
+ // only knows about `TCGETS`. Fall back to the old `TCGETS`.
+ #[cfg(not(any(target_arch = "powerpc", target_arch = "powerpc64")))]
+ Err(io::Errno::NOTTY) | Err(io::Errno::ACCESS) => {
+ tcgetattr_fallback(fd, &mut termios2)?
+ }
+
+ Err(err) => return Err(err),
+ }
+
+ // Now all the fields are set.
+ termios2.assume_init()
+ };
+
+ // Convert from the Linux `termios2` to our `Termios`.
+ let mut result = Termios {
+ input_modes: InputModes::from_bits_retain(termios2.c_iflag),
+ output_modes: OutputModes::from_bits_retain(termios2.c_oflag),
+ control_modes: ControlModes::from_bits_retain(termios2.c_cflag),
+ local_modes: LocalModes::from_bits_retain(termios2.c_lflag),
+ line_discipline: termios2.c_line,
+ special_codes: SpecialCodes(Default::default()),
+
+ // On PowerPC musl targets, `c_ispeed`/`c_ospeed` are named
+ // `__c_ispeed`/`__c_ospeed`.
+ #[cfg(not(all(
+ target_env = "musl",
+ any(target_arch = "powerpc", target_arch = "powerpc64")
+ )))]
+ input_speed: termios2.c_ispeed,
+ #[cfg(not(all(
+ target_env = "musl",
+ any(target_arch = "powerpc", target_arch = "powerpc64")
+ )))]
+ output_speed: termios2.c_ospeed,
+ #[cfg(all(
+ target_env = "musl",
+ any(target_arch = "powerpc", target_arch = "powerpc64")
+ ))]
+ input_speed: termios2.__c_ispeed,
+ #[cfg(all(
+ target_env = "musl",
+ any(target_arch = "powerpc", target_arch = "powerpc64")
+ ))]
+ output_speed: termios2.__c_ospeed,
+ };
+
+ // Copy in the control codes, since libc's `c_cc` array may have a
+ // different length from the ioctl's.
+ let nccs = termios2.c_cc.len();
+ result.special_codes.0[..nccs].copy_from_slice(&termios2.c_cc);
+
+ Ok(result)
+ }
+
+ #[cfg(not(linux_kernel))]
+ unsafe {
+ let mut result = MaybeUninit::<Termios>::uninit();
+
+ // `result` is a `Termios` which starts with the same layout as
+ // `c::termios`, so we can cast the pointer.
+ ret(c::tcgetattr(borrowed_fd(fd), result.as_mut_ptr().cast()))?;
+
+ Ok(result.assume_init())
+ }
+}
+
+/// Implement `tcgetattr` using the old `TCGETS` ioctl.
+#[cfg(all(
+ linux_kernel,
+ not(any(target_arch = "powerpc", target_arch = "powerpc64"))
+))]
+#[cold]
+fn tcgetattr_fallback(
+ fd: BorrowedFd<'_>,
+ termios: &mut MaybeUninit<c::termios2>,
+) -> io::Result<()> {
+ use crate::termios::speed;
+ use core::ptr::{addr_of, addr_of_mut};
+
+ // SAFETY: This invokes the `TCGETS` ioctl, which, if it succeeds,
+ // initializes the `Termios` structure except for the `input_speed` and
+ // `output_speed` fields, which we manually initialize before forming a
+ // reference to the full `Termios`.
+ unsafe {
+ let ptr = termios.as_mut_ptr();
+
+ // Do the old `TCGETS` call, which doesn't initialize `input_speed` or
+ // `output_speed`.
+ ret(c::ioctl(borrowed_fd(fd), c::TCGETS as _, ptr))?;
+
+ // Read the `control_modes` field without forming a reference to the
+ // `Termios` because it isn't fully initialized yet.
+ let control_modes = addr_of!((*ptr).c_cflag).read();
+
+ // Infer `output_speed`.
+ let encoded_out = control_modes & c::CBAUD;
+ let output_speed = match speed::decode(encoded_out) {
+ Some(output_speed) => output_speed,
+ None => return Err(io::Errno::RANGE),
+ };
+ addr_of_mut!((*ptr).c_ospeed).write(output_speed);
+
+ // Infer `input_speed`. For input speeds, `B0` is special-cased to mean
+ // the input speed is the same as the output speed.
+ let encoded_in = (control_modes & c::CIBAUD) >> c::IBSHIFT;
+ let input_speed = if encoded_in == c::B0 {
+ output_speed
+ } else {
+ match speed::decode(encoded_in) {
+ Some(input_speed) => input_speed,
+ None => return Err(io::Errno::RANGE),
+ }
+ };
+ addr_of_mut!((*ptr).c_ispeed).write(input_speed);
+ }
+
+ Ok(())
+}
+
+#[cfg(not(target_os = "wasi"))]
+pub(crate) fn tcgetpgrp(fd: BorrowedFd<'_>) -> io::Result<Pid> {
+ unsafe {
+ let pid = ret_pid_t(c::tcgetpgrp(borrowed_fd(fd)))?;
+
+ // This doesn't appear to be documented, but on Linux, it appears
+ // `tcsetpgrp` can succeed and set the pid to 0 if we pass it a
+ // pseudo-terminal device fd. For now, translate it into `OPNOTSUPP`.
+ #[cfg(linux_kernel)]
+ if pid == 0 {
+ return Err(io::Errno::OPNOTSUPP);
+ }
+
+ Ok(Pid::from_raw_unchecked(pid))
+ }
+}
+
+#[cfg(not(target_os = "wasi"))]
+pub(crate) fn tcsetpgrp(fd: BorrowedFd<'_>, pid: Pid) -> io::Result<()> {
+ unsafe { ret(c::tcsetpgrp(borrowed_fd(fd), pid.as_raw_nonzero().get())) }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+pub(crate) fn tcsetattr(
+ fd: BorrowedFd<'_>,
+ optional_actions: OptionalActions,
+ termios: &Termios,
+) -> io::Result<()> {
+ // On Linux, use `TCSETS2`, and fall back to `TCSETS` if needed.
+ #[cfg(linux_kernel)]
+ {
+ use crate::termios::speed;
+
+ let output_speed = termios.output_speed();
+ let input_speed = termios.input_speed();
+
+ let mut termios2 = c::termios2 {
+ c_iflag: termios.input_modes.bits(),
+ c_oflag: termios.output_modes.bits(),
+ c_cflag: termios.control_modes.bits(),
+ c_lflag: termios.local_modes.bits(),
+ c_line: termios.line_discipline,
+ c_cc: Default::default(),
+
+ // On PowerPC musl targets, `c_ispeed`/`c_ospeed` are named
+ // `__c_ispeed`/`__c_ospeed`.
+ #[cfg(not(all(
+ target_env = "musl",
+ any(target_arch = "powerpc", target_arch = "powerpc64")
+ )))]
+ c_ispeed: input_speed,
+ #[cfg(not(all(
+ target_env = "musl",
+ any(target_arch = "powerpc", target_arch = "powerpc64")
+ )))]
+ c_ospeed: output_speed,
+ #[cfg(all(
+ target_env = "musl",
+ any(target_arch = "powerpc", target_arch = "powerpc64")
+ ))]
+ __c_ispeed: input_speed,
+ #[cfg(all(
+ target_env = "musl",
+ any(target_arch = "powerpc", target_arch = "powerpc64")
+ ))]
+ __c_ospeed: output_speed,
+ };
+
+ // Ensure that our input and output speeds are set, as `libc`
+ // routines don't always support setting these separately.
+ termios2.c_cflag &= !c::CBAUD;
+ termios2.c_cflag |= speed::encode(output_speed).unwrap_or(c::BOTHER);
+ termios2.c_cflag &= !c::CIBAUD;
+ termios2.c_cflag |= speed::encode(input_speed).unwrap_or(c::BOTHER) << c::IBSHIFT;
+
+ // Copy in the control codes, since libc's `c_cc` array may have a
+ // different length from the ioctl's.
+ let nccs = termios2.c_cc.len();
+ termios2
+ .c_cc
+ .copy_from_slice(&termios.special_codes.0[..nccs]);
+
+ // Translate from `optional_actions` into a `TCSETS2` ioctl request
+ // code. On MIPS, `optional_actions` has `TCSETS` added to it.
+ let request = c::TCSETS2 as c::c_ulong
+ + if cfg!(any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )) {
+ optional_actions as c::c_ulong - c::TCSETS as c::c_ulong
+ } else {
+ optional_actions as c::c_ulong
+ };
+
+ // SAFETY: This invokes the `TCSETS2` ioctl.
+ unsafe {
+ match ret(c::ioctl(borrowed_fd(fd), request as _, &termios2)) {
+ Ok(()) => Ok(()),
+
+ // Similar to `tcgetattr_fallback`, `NOTTY` or `ACCESS` might
+ // mean the OS doesn't support `TCSETS2`. Fall back to the old
+ // `TCSETS`.
+ #[cfg(not(any(target_arch = "powerpc", target_arch = "powerpc64")))]
+ Err(io::Errno::NOTTY) | Err(io::Errno::ACCESS) => {
+ tcsetattr_fallback(fd, optional_actions, &termios2)
+ }
+
+ Err(err) => Err(err),
+ }
+ }
+ }
+
+ #[cfg(not(linux_kernel))]
+ unsafe {
+ ret(c::tcsetattr(
+ borrowed_fd(fd),
+ optional_actions as _,
+ crate::utils::as_ptr(termios).cast(),
+ ))
+ }
+}
+
+/// Implement `tcsetattr` using the old `TCSETS` ioctl.
+#[cfg(all(
+ linux_kernel,
+ not(any(target_arch = "powerpc", target_arch = "powerpc64"))
+))]
+#[cold]
+fn tcsetattr_fallback(
+ fd: BorrowedFd<'_>,
+ optional_actions: OptionalActions,
+ termios2: &c::termios2,
+) -> io::Result<()> {
+ // `TCSETS` silently accepts `BOTHER` in `c_cflag` even though it doesn't
+ // read `c_ispeed`/`c_ospeed`, so detect this case and fail if needed.
+ let encoded_out = termios2.c_cflag & c::CBAUD;
+ let encoded_in = (termios2.c_cflag & c::CIBAUD) >> c::IBSHIFT;
+ if encoded_out == c::BOTHER || encoded_in == c::BOTHER {
+ return Err(io::Errno::RANGE);
+ }
+
+ // Translate from `optional_actions` into a `TCSETS` ioctl request code. On
+ // MIPS, `optional_actions` already has `TCSETS` added to it.
+ let request = if cfg!(any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )) {
+ optional_actions as c::c_ulong
+ } else {
+ optional_actions as c::c_ulong + c::TCSETS as c::c_ulong
+ };
+
+ // SAFETY: This invokes the `TCSETS` ioctl.
+ unsafe { ret(c::ioctl(borrowed_fd(fd), request as _, termios2)) }
+}
+
+#[cfg(not(target_os = "wasi"))]
+pub(crate) fn tcsendbreak(fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe { ret(c::tcsendbreak(borrowed_fd(fd), 0)) }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+pub(crate) fn tcdrain(fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe { ret(c::tcdrain(borrowed_fd(fd))) }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+pub(crate) fn tcflush(fd: BorrowedFd<'_>, queue_selector: QueueSelector) -> io::Result<()> {
+ unsafe { ret(c::tcflush(borrowed_fd(fd), queue_selector as _)) }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+pub(crate) fn tcflow(fd: BorrowedFd<'_>, action: Action) -> io::Result<()> {
+ unsafe { ret(c::tcflow(borrowed_fd(fd), action as _)) }
+}
+
+#[cfg(not(target_os = "wasi"))]
+pub(crate) fn tcgetsid(fd: BorrowedFd<'_>) -> io::Result<Pid> {
+ unsafe {
+ let pid = ret_pid_t(c::tcgetsid(borrowed_fd(fd)))?;
+ Ok(Pid::from_raw_unchecked(pid))
+ }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "wasi")))]
+pub(crate) fn tcsetwinsize(fd: BorrowedFd<'_>, winsize: Winsize) -> io::Result<()> {
+ unsafe { ret(c::ioctl(borrowed_fd(fd), c::TIOCSWINSZ, &winsize)) }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "wasi")))]
+pub(crate) fn tcgetwinsize(fd: BorrowedFd<'_>) -> io::Result<Winsize> {
+ unsafe {
+ let mut buf = MaybeUninit::<Winsize>::uninit();
+ ret(c::ioctl(
+ borrowed_fd(fd),
+ c::TIOCGWINSZ.into(),
+ buf.as_mut_ptr(),
+ ))?;
+ Ok(buf.assume_init())
+ }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "nto", target_os = "wasi")))]
+#[inline]
+pub(crate) fn set_speed(termios: &mut Termios, arbitrary_speed: u32) -> io::Result<()> {
+ #[cfg(bsd)]
+ let encoded_speed = arbitrary_speed;
+
+ #[cfg(not(bsd))]
+ let encoded_speed = match crate::termios::speed::encode(arbitrary_speed) {
+ Some(encoded_speed) => encoded_speed,
+ #[cfg(linux_kernel)]
+ None => c::BOTHER,
+ #[cfg(not(linux_kernel))]
+ None => return Err(io::Errno::INVAL),
+ };
+
+ #[cfg(not(linux_kernel))]
+ unsafe {
+ ret(c::cfsetspeed(
+ as_mut_ptr(termios).cast(),
+ encoded_speed.into(),
+ ))
+ }
+
+ // Linux libc implementations don't support arbitrary speeds, so we encode
+ // the speed manually.
+ #[cfg(linux_kernel)]
+ {
+ use crate::termios::ControlModes;
+
+ debug_assert_eq!(encoded_speed & !c::CBAUD, 0);
+
+ termios.control_modes -= ControlModes::from_bits_retain(c::CBAUD | c::CIBAUD);
+ termios.control_modes |=
+ ControlModes::from_bits_retain(encoded_speed | (encoded_speed << c::IBSHIFT));
+
+ termios.input_speed = arbitrary_speed;
+ termios.output_speed = arbitrary_speed;
+
+ Ok(())
+ }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+#[inline]
+pub(crate) fn set_output_speed(termios: &mut Termios, arbitrary_speed: u32) -> io::Result<()> {
+ #[cfg(bsd)]
+ let encoded_speed = arbitrary_speed;
+
+ #[cfg(not(bsd))]
+ let encoded_speed = match crate::termios::speed::encode(arbitrary_speed) {
+ Some(encoded_speed) => encoded_speed,
+ #[cfg(linux_kernel)]
+ None => c::BOTHER,
+ #[cfg(not(linux_kernel))]
+ None => return Err(io::Errno::INVAL),
+ };
+
+ #[cfg(not(linux_kernel))]
+ unsafe {
+ ret(c::cfsetospeed(
+ as_mut_ptr(termios).cast(),
+ encoded_speed.into(),
+ ))
+ }
+
+ // Linux libc implementations don't support arbitrary speeds or setting the
+ // input and output speeds separately, so we encode the speed manually.
+ #[cfg(linux_kernel)]
+ {
+ use crate::termios::ControlModes;
+
+ debug_assert_eq!(encoded_speed & !c::CBAUD, 0);
+
+ termios.control_modes -= ControlModes::from_bits_retain(c::CBAUD);
+ termios.control_modes |= ControlModes::from_bits_retain(encoded_speed);
+
+ termios.output_speed = arbitrary_speed;
+
+ Ok(())
+ }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+#[inline]
+pub(crate) fn set_input_speed(termios: &mut Termios, arbitrary_speed: u32) -> io::Result<()> {
+ #[cfg(bsd)]
+ let encoded_speed = arbitrary_speed;
+
+ #[cfg(not(bsd))]
+ let encoded_speed = match crate::termios::speed::encode(arbitrary_speed) {
+ Some(encoded_speed) => encoded_speed,
+ #[cfg(linux_kernel)]
+ None => c::BOTHER,
+ #[cfg(not(linux_kernel))]
+ None => return Err(io::Errno::INVAL),
+ };
+
+ #[cfg(not(linux_kernel))]
+ unsafe {
+ ret(c::cfsetispeed(
+ as_mut_ptr(termios).cast(),
+ encoded_speed.into(),
+ ))
+ }
+
+ // Linux libc implementations don't support arbitrary speeds or setting the
+ // input and output speeds separately, so we encode the speed manually.
+ #[cfg(linux_kernel)]
+ {
+ use crate::termios::ControlModes;
+
+ debug_assert_eq!(encoded_speed & !c::CBAUD, 0);
+
+ termios.control_modes -= ControlModes::from_bits_retain(c::CIBAUD);
+ termios.control_modes |= ControlModes::from_bits_retain(encoded_speed << c::IBSHIFT);
+
+ termios.input_speed = arbitrary_speed;
+
+ Ok(())
+ }
+}
+
+#[cfg(not(any(target_os = "espidf", target_os = "nto", target_os = "wasi")))]
+#[inline]
+pub(crate) fn cfmakeraw(termios: &mut Termios) {
+ unsafe { c::cfmakeraw(as_mut_ptr(termios).cast()) }
+}
+
+pub(crate) fn isatty(fd: BorrowedFd<'_>) -> bool {
+ // Use the return value of `isatty` alone. We don't check `errno` because
+ // we return `bool` rather than `io::Result<bool>`, because we assume
+ // `BorrowedFd` protects us from `EBADF`, and any other reasonably
+ // anticipated `errno` value would end up interpreted as “assume it's not a
+ // terminal” anyway.
+ unsafe { c::isatty(borrowed_fd(fd)) != 0 }
+}
+
+#[cfg(feature = "alloc")]
+#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))]
+pub(crate) fn ttyname(dirfd: BorrowedFd<'_>, buf: &mut [MaybeUninit<u8>]) -> io::Result<usize> {
+ unsafe {
+ // `ttyname_r` returns its error status rather than using `errno`.
+ match c::ttyname_r(borrowed_fd(dirfd), buf.as_mut_ptr().cast(), buf.len()) {
+ 0 => Ok(CStr::from_ptr(buf.as_ptr().cast()).to_bytes().len()),
+ err => Err(io::Errno::from_raw_os_error(err)),
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/termios/types.rs b/vendor/rustix-1.0.8/src/backend/libc/termios/types.rs
new file mode 100644
index 0000000..4b0d29f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/termios/types.rs
@@ -0,0 +1,17 @@
+//! Types for the `termios` module.
+
+#![allow(non_camel_case_types)]
+
+#[cfg(not(any(target_os = "espidf", target_os = "redox")))]
+use crate::ffi;
+
+// We don't want to use `tcflag_t` directly so we don't expose libc
+// publicly. Redox uses `u32`, apple uses `c_ulong`, everything else
+// seems to use `c_uint`.
+
+#[cfg(apple)]
+pub type tcflag_t = ffi::c_ulong;
+#[cfg(target_os = "redox")]
+pub type tcflag_t = u32;
+#[cfg(not(any(apple, target_os = "espidf", target_os = "redox", target_os = "wasi")))]
+pub type tcflag_t = ffi::c_uint;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/thread/cpu_set.rs b/vendor/rustix-1.0.8/src/backend/libc/thread/cpu_set.rs
new file mode 100644
index 0000000..30473b7
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/thread/cpu_set.rs
@@ -0,0 +1,68 @@
+//! Rust implementation of the `CPU_*` macro API.
+
+#![allow(non_snake_case)]
+
+use super::types::{RawCpuSet, CPU_SETSIZE};
+use crate::backend::c;
+
+#[inline]
+pub(crate) fn CPU_SET(cpu: usize, cpuset: &mut RawCpuSet) {
+ assert!(
+ cpu < CPU_SETSIZE,
+ "cpu out of bounds: the cpu max is {} but the cpu is {}",
+ CPU_SETSIZE,
+ cpu
+ );
+ unsafe { c::CPU_SET(cpu, cpuset) }
+}
+
+#[inline]
+pub(crate) fn CPU_ZERO(cpuset: &mut RawCpuSet) {
+ unsafe { c::CPU_ZERO(cpuset) }
+}
+
+#[inline]
+pub(crate) fn CPU_CLR(cpu: usize, cpuset: &mut RawCpuSet) {
+ assert!(
+ cpu < CPU_SETSIZE,
+ "cpu out of bounds: the cpu max is {} but the cpu is {}",
+ CPU_SETSIZE,
+ cpu
+ );
+ unsafe { c::CPU_CLR(cpu, cpuset) }
+}
+
+#[inline]
+pub(crate) fn CPU_ISSET(cpu: usize, cpuset: &RawCpuSet) -> bool {
+ assert!(
+ cpu < CPU_SETSIZE,
+ "cpu out of bounds: the cpu max is {} but the cpu is {}",
+ CPU_SETSIZE,
+ cpu
+ );
+ unsafe { c::CPU_ISSET(cpu, cpuset) }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn CPU_COUNT(cpuset: &RawCpuSet) -> u32 {
+ unsafe { c::CPU_COUNT(cpuset).try_into().unwrap() }
+}
+
+#[inline]
+pub(crate) fn CPU_EQUAL(this: &RawCpuSet, that: &RawCpuSet) -> bool {
+ #[cfg(any(linux_like, target_os = "fuchsia", target_os = "hurd"))]
+ unsafe {
+ c::CPU_EQUAL(this, that)
+ }
+
+ #[cfg(not(any(linux_like, target_os = "fuchsia", target_os = "hurd")))]
+ unsafe {
+ for i in 0..c::CPU_SETSIZE as usize {
+ if c::CPU_ISSET(i, this) != c::CPU_ISSET(i, that) {
+ return false;
+ }
+ }
+ true
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/thread/futex.rs b/vendor/rustix-1.0.8/src/backend/libc/thread/futex.rs
new file mode 100644
index 0000000..5e836a9
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/thread/futex.rs
@@ -0,0 +1,91 @@
+use crate::backend::c;
+
+bitflags::bitflags! {
+ /// `FUTEX_*` flags for use with the functions in [`futex`].
+ ///
+ /// [`futex`]: mod@crate::thread::futex
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct Flags: u32 {
+ /// `FUTEX_PRIVATE_FLAG`
+ const PRIVATE = bitcast!(c::FUTEX_PRIVATE_FLAG);
+ /// `FUTEX_CLOCK_REALTIME`
+ const CLOCK_REALTIME = bitcast!(c::FUTEX_CLOCK_REALTIME);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `FUTEX2_*` flags for use with the functions in [`Waitv`].
+ ///
+ /// Not to be confused with [`WaitvFlags`], which is passed as an argument
+ /// to the `waitv` function.
+ ///
+ /// [`Waitv`]: crate::thread::futex::Waitv
+ /// [`WaitvFlags`]: crate::thread::futex::WaitvFlags
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct WaitFlags: u32 {
+ /// `FUTEX_U8`
+ const SIZE_U8 = linux_raw_sys::general::FUTEX2_SIZE_U8;
+ /// `FUTEX_U16`
+ const SIZE_U16 = linux_raw_sys::general::FUTEX2_SIZE_U16;
+ /// `FUTEX_U32`
+ const SIZE_U32 = linux_raw_sys::general::FUTEX2_SIZE_U32;
+ /// `FUTEX_U64`
+ const SIZE_U64 = linux_raw_sys::general::FUTEX2_SIZE_U64;
+ /// `FUTEX_SIZE_MASK`
+ const SIZE_MASK = linux_raw_sys::general::FUTEX2_SIZE_MASK;
+
+ /// `FUTEX2_NUMA`
+ const NUMA = linux_raw_sys::general::FUTEX2_NUMA;
+
+ /// `FUTEX2_PRIVATE`
+ const PRIVATE = linux_raw_sys::general::FUTEX2_PRIVATE;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `FUTEX_*` operations for use with the futex syscall wrappers.
+#[derive(Debug, Copy, Clone, Eq, PartialEq)]
+#[repr(u32)]
+pub(crate) enum Operation {
+ /// `FUTEX_WAIT`
+ Wait = bitcast!(c::FUTEX_WAIT),
+ /// `FUTEX_WAKE`
+ Wake = bitcast!(c::FUTEX_WAKE),
+ /// `FUTEX_FD`
+ Fd = bitcast!(c::FUTEX_FD),
+ /// `FUTEX_REQUEUE`
+ Requeue = bitcast!(c::FUTEX_REQUEUE),
+ /// `FUTEX_CMP_REQUEUE`
+ CmpRequeue = bitcast!(c::FUTEX_CMP_REQUEUE),
+ /// `FUTEX_WAKE_OP`
+ WakeOp = bitcast!(c::FUTEX_WAKE_OP),
+ /// `FUTEX_LOCK_PI`
+ LockPi = bitcast!(c::FUTEX_LOCK_PI),
+ /// `FUTEX_UNLOCK_PI`
+ UnlockPi = bitcast!(c::FUTEX_UNLOCK_PI),
+ /// `FUTEX_TRYLOCK_PI`
+ TrylockPi = bitcast!(c::FUTEX_TRYLOCK_PI),
+ /// `FUTEX_WAIT_BITSET`
+ WaitBitset = bitcast!(c::FUTEX_WAIT_BITSET),
+ /// `FUTEX_WAKE_BITSET`
+ WakeBitset = bitcast!(c::FUTEX_WAKE_BITSET),
+ /// `FUTEX_WAIT_REQUEUE_PI`
+ WaitRequeuePi = bitcast!(c::FUTEX_WAIT_REQUEUE_PI),
+ /// `FUTEX_CMP_REQUEUE_PI`
+ CmpRequeuePi = bitcast!(c::FUTEX_CMP_REQUEUE_PI),
+ /// `FUTEX_LOCK_PI2`
+ LockPi2 = bitcast!(c::FUTEX_LOCK_PI2),
+}
+
+/// `FUTEX_WAITERS`
+pub const WAITERS: u32 = linux_raw_sys::general::FUTEX_WAITERS;
+
+/// `FUTEX_OWNER_DIED`
+pub const OWNER_DIED: u32 = linux_raw_sys::general::FUTEX_OWNER_DIED;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/thread/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/thread/mod.rs
new file mode 100644
index 0000000..ea2bfd7
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/thread/mod.rs
@@ -0,0 +1,7 @@
+#[cfg(any(freebsdlike, linux_kernel, target_os = "fuchsia"))]
+pub(crate) mod cpu_set;
+#[cfg(linux_kernel)]
+pub(crate) mod futex;
+#[cfg(not(windows))]
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/thread/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/thread/syscalls.rs
new file mode 100644
index 0000000..e799095
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/thread/syscalls.rs
@@ -0,0 +1,780 @@
+//! libc syscalls supporting `rustix::thread`.
+
+#[cfg(any(freebsdlike, linux_kernel, target_os = "fuchsia"))]
+use super::types::RawCpuSet;
+use crate::backend::c;
+use crate::backend::conv::ret;
+use crate::io;
+#[cfg(any(freebsdlike, linux_kernel, target_os = "fuchsia"))]
+use crate::pid::Pid;
+#[cfg(not(any(
+ apple,
+ freebsdlike,
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+use crate::thread::ClockId;
+#[cfg(linux_kernel)]
+use crate::thread::{Cpuid, MembarrierCommand, MembarrierQuery};
+#[cfg(not(target_os = "redox"))]
+use crate::thread::{NanosleepRelativeResult, Timespec};
+#[cfg(all(target_env = "gnu", fix_y2038))]
+use crate::timespec::LibcTimespec;
+#[cfg(not(fix_y2038))]
+use crate::timespec::{as_libc_timespec_mut_ptr, as_libc_timespec_ptr};
+#[cfg(linux_kernel)]
+use crate::utils::option_as_ptr;
+use core::mem::MaybeUninit;
+#[cfg(linux_kernel)]
+use core::sync::atomic::AtomicU32;
+#[cfg(linux_kernel)]
+use {
+ crate::backend::conv::{borrowed_fd, ret_c_int, ret_u32, ret_usize},
+ crate::fd::BorrowedFd,
+ crate::thread::futex,
+ crate::utils::as_mut_ptr,
+};
+
+#[cfg(all(target_env = "gnu", fix_y2038))]
+weak!(fn __clock_nanosleep_time64(c::clockid_t, c::c_int, *const LibcTimespec, *mut LibcTimespec) -> c::c_int);
+#[cfg(all(target_env = "gnu", fix_y2038))]
+weak!(fn __nanosleep64(*const LibcTimespec, *mut LibcTimespec) -> c::c_int);
+
+#[cfg(not(any(
+ apple,
+ target_os = "dragonfly",
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "freebsd", // FreeBSD 12 has clock_nanosleep, but libc targets FreeBSD 11.
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+#[inline]
+pub(crate) fn clock_nanosleep_relative(id: ClockId, request: &Timespec) -> NanosleepRelativeResult {
+ // Old 32-bit version: libc has `clock_nanosleep` but it is not y2038 safe
+ // by default. But there may be a `__clock_nanosleep_time64` we can use.
+ #[cfg(fix_y2038)]
+ {
+ #[cfg(target_env = "gnu")]
+ if let Some(libc_clock_nanosleep) = __clock_nanosleep_time64.get() {
+ let flags = 0;
+ let mut remain = MaybeUninit::<LibcTimespec>::uninit();
+
+ unsafe {
+ return match libc_clock_nanosleep(
+ id as c::clockid_t,
+ flags,
+ &request.clone().into(),
+ remain.as_mut_ptr(),
+ ) {
+ 0 => NanosleepRelativeResult::Ok,
+ err if err == io::Errno::INTR.0 => {
+ NanosleepRelativeResult::Interrupted(remain.assume_init().into())
+ }
+ err => NanosleepRelativeResult::Err(io::Errno(err)),
+ };
+ }
+ }
+
+ clock_nanosleep_relative_old(id, request)
+ }
+
+ // Main version: libc is y2038 safe and has `clock_nanosleep`.
+ #[cfg(not(fix_y2038))]
+ unsafe {
+ let flags = 0;
+ let mut remain = MaybeUninit::<Timespec>::uninit();
+
+ match c::clock_nanosleep(
+ id as c::clockid_t,
+ flags,
+ as_libc_timespec_ptr(request),
+ as_libc_timespec_mut_ptr(&mut remain),
+ ) {
+ 0 => NanosleepRelativeResult::Ok,
+ err if err == io::Errno::INTR.0 => {
+ NanosleepRelativeResult::Interrupted(remain.assume_init())
+ }
+ err => NanosleepRelativeResult::Err(io::Errno(err)),
+ }
+ }
+}
+
+#[cfg(all(
+ fix_y2038,
+ not(any(
+ apple,
+ target_os = "emscripten",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "vita"
+ ))
+))]
+fn clock_nanosleep_relative_old(
+ id: crate::clockid::ClockId,
+ request: &Timespec,
+) -> NanosleepRelativeResult {
+ let tv_sec = match request.tv_sec.try_into() {
+ Ok(tv_sec) => tv_sec,
+ Err(_) => return NanosleepRelativeResult::Err(io::Errno::OVERFLOW),
+ };
+ let tv_nsec = match request.tv_nsec.try_into() {
+ Ok(tv_nsec) => tv_nsec,
+ Err(_) => return NanosleepRelativeResult::Err(io::Errno::INVAL),
+ };
+ let old_request = c::timespec { tv_sec, tv_nsec };
+ let mut old_remain = MaybeUninit::<c::timespec>::uninit();
+ let flags = 0;
+
+ unsafe {
+ match c::clock_nanosleep(
+ id as c::clockid_t,
+ flags,
+ &old_request,
+ old_remain.as_mut_ptr(),
+ ) {
+ 0 => NanosleepRelativeResult::Ok,
+ err if err == io::Errno::INTR.0 => {
+ let old_remain = old_remain.assume_init();
+ let remain = Timespec {
+ tv_sec: old_remain.tv_sec.into(),
+ tv_nsec: old_remain.tv_nsec.into(),
+ };
+ NanosleepRelativeResult::Interrupted(remain)
+ }
+ err => NanosleepRelativeResult::Err(io::Errno(err)),
+ }
+ }
+}
+
+#[cfg(not(any(
+ apple,
+ target_os = "dragonfly",
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "freebsd", // FreeBSD 12 has clock_nanosleep, but libc targets FreeBSD 11.
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+#[inline]
+pub(crate) fn clock_nanosleep_absolute(id: ClockId, request: &Timespec) -> io::Result<()> {
+ // Old 32-bit version: libc has `clock_nanosleep` but it is not y2038 safe
+ // by default. But there may be a `__clock_nanosleep_time64` we can use.
+ #[cfg(fix_y2038)]
+ {
+ #[cfg(target_env = "gnu")]
+ if let Some(libc_clock_nanosleep) = __clock_nanosleep_time64.get() {
+ let flags = c::TIMER_ABSTIME;
+ unsafe {
+ return match libc_clock_nanosleep(
+ id as c::clockid_t,
+ flags,
+ &request.clone().into(),
+ core::ptr::null_mut(),
+ ) {
+ 0 => Ok(()),
+ err => Err(io::Errno(err)),
+ };
+ }
+ }
+
+ clock_nanosleep_absolute_old(id, request)
+ }
+
+ // Main version: libc is y2038 safe and has `clock_nanosleep`.
+ #[cfg(not(fix_y2038))]
+ {
+ let flags = c::TIMER_ABSTIME;
+
+ match unsafe {
+ c::clock_nanosleep(
+ id as c::clockid_t,
+ flags as _,
+ as_libc_timespec_ptr(request),
+ core::ptr::null_mut(),
+ )
+ } {
+ 0 => Ok(()),
+ err => Err(io::Errno(err)),
+ }
+ }
+}
+
+#[cfg(all(
+ fix_y2038,
+ not(any(
+ apple,
+ target_os = "emscripten",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "vita"
+ ))
+))]
+fn clock_nanosleep_absolute_old(id: crate::clockid::ClockId, request: &Timespec) -> io::Result<()> {
+ let flags = c::TIMER_ABSTIME;
+
+ let old_request = c::timespec {
+ tv_sec: request.tv_sec.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: request.tv_nsec.try_into().map_err(|_| io::Errno::INVAL)?,
+ };
+ match unsafe {
+ c::clock_nanosleep(
+ id as c::clockid_t,
+ flags,
+ &old_request,
+ core::ptr::null_mut(),
+ )
+ } {
+ 0 => Ok(()),
+ err => Err(io::Errno(err)),
+ }
+}
+
+#[cfg(not(target_os = "redox"))]
+#[inline]
+pub(crate) fn nanosleep(request: &Timespec) -> NanosleepRelativeResult {
+ // Old 32-bit version: libc has `nanosleep` but it is not y2038 safe by
+ // default. But there may be a `__nanosleep64` we can use.
+ #[cfg(fix_y2038)]
+ {
+ #[cfg(target_env = "gnu")]
+ if let Some(libc_nanosleep) = __nanosleep64.get() {
+ let mut remain = MaybeUninit::<LibcTimespec>::uninit();
+ unsafe {
+ return match ret(libc_nanosleep(&request.clone().into(), remain.as_mut_ptr())) {
+ Ok(()) => NanosleepRelativeResult::Ok,
+ Err(io::Errno::INTR) => {
+ NanosleepRelativeResult::Interrupted(remain.assume_init().into())
+ }
+ Err(err) => NanosleepRelativeResult::Err(err),
+ };
+ }
+ }
+
+ nanosleep_old(request)
+ }
+
+ // Main version: libc is y2038 safe and has `nanosleep`.
+ #[cfg(not(fix_y2038))]
+ unsafe {
+ let mut remain = MaybeUninit::<Timespec>::uninit();
+
+ match ret(c::nanosleep(
+ as_libc_timespec_ptr(request),
+ as_libc_timespec_mut_ptr(&mut remain),
+ )) {
+ Ok(()) => NanosleepRelativeResult::Ok,
+ Err(io::Errno::INTR) => NanosleepRelativeResult::Interrupted(remain.assume_init()),
+ Err(err) => NanosleepRelativeResult::Err(err),
+ }
+ }
+}
+
+#[cfg(fix_y2038)]
+fn nanosleep_old(request: &Timespec) -> NanosleepRelativeResult {
+ let tv_sec = match request.tv_sec.try_into() {
+ Ok(tv_sec) => tv_sec,
+ Err(_) => return NanosleepRelativeResult::Err(io::Errno::OVERFLOW),
+ };
+ let tv_nsec = match request.tv_nsec.try_into() {
+ Ok(tv_nsec) => tv_nsec,
+ Err(_) => return NanosleepRelativeResult::Err(io::Errno::INVAL),
+ };
+ let old_request = c::timespec { tv_sec, tv_nsec };
+ let mut old_remain = MaybeUninit::<c::timespec>::uninit();
+
+ unsafe {
+ match ret(c::nanosleep(&old_request, old_remain.as_mut_ptr())) {
+ Ok(()) => NanosleepRelativeResult::Ok,
+ Err(io::Errno::INTR) => {
+ let old_remain = old_remain.assume_init();
+ let remain = Timespec {
+ tv_sec: old_remain.tv_sec.into(),
+ tv_nsec: old_remain.tv_nsec.into(),
+ };
+ NanosleepRelativeResult::Interrupted(remain)
+ }
+ Err(err) => NanosleepRelativeResult::Err(err),
+ }
+ }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+#[must_use]
+pub(crate) fn gettid() -> Pid {
+ // `gettid` wasn't supported in glibc until 2.30, and musl until 1.2.2,
+ // so use `syscall`.
+ // <https://sourceware.org/bugzilla/show_bug.cgi?id=6399#c62>
+ weak_or_syscall! {
+ fn gettid() via SYS_gettid -> c::pid_t
+ }
+
+ unsafe {
+ let tid = gettid();
+ Pid::from_raw_unchecked(tid)
+ }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn setns(fd: BorrowedFd<'_>, nstype: c::c_int) -> io::Result<c::c_int> {
+ // `setns` wasn't supported in glibc until 2.14, and musl until 0.9.5,
+ // so use `syscall`.
+ weak_or_syscall! {
+ fn setns(fd: c::c_int, nstype: c::c_int) via SYS_setns -> c::c_int
+ }
+
+ unsafe { ret_c_int(setns(borrowed_fd(fd), nstype)) }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) unsafe fn unshare(flags: crate::thread::UnshareFlags) -> io::Result<()> {
+ ret(c::unshare(flags.bits() as i32))
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn capget(
+ header: &mut linux_raw_sys::general::__user_cap_header_struct,
+ data: &mut [MaybeUninit<linux_raw_sys::general::__user_cap_data_struct>],
+) -> io::Result<()> {
+ syscall! {
+ fn capget(
+ hdrp: *mut linux_raw_sys::general::__user_cap_header_struct,
+ data: *mut linux_raw_sys::general::__user_cap_data_struct
+ ) via SYS_capget -> c::c_int
+ }
+
+ unsafe {
+ ret(capget(
+ as_mut_ptr(header),
+ data.as_mut_ptr()
+ .cast::<linux_raw_sys::general::__user_cap_data_struct>(),
+ ))
+ }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn capset(
+ header: &mut linux_raw_sys::general::__user_cap_header_struct,
+ data: &[linux_raw_sys::general::__user_cap_data_struct],
+) -> io::Result<()> {
+ syscall! {
+ fn capset(
+ hdrp: *mut linux_raw_sys::general::__user_cap_header_struct,
+ data: *const linux_raw_sys::general::__user_cap_data_struct
+ ) via SYS_capset -> c::c_int
+ }
+
+ unsafe { ret(capset(as_mut_ptr(header), data.as_ptr())) }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn setuid_thread(uid: crate::ugid::Uid) -> io::Result<()> {
+ syscall! {
+ fn setuid(uid: c::uid_t) via SYS_setuid -> c::c_int
+ }
+
+ unsafe { ret(setuid(uid.as_raw())) }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn setresuid_thread(
+ ruid: crate::ugid::Uid,
+ euid: crate::ugid::Uid,
+ suid: crate::ugid::Uid,
+) -> io::Result<()> {
+ #[cfg(any(target_arch = "x86", target_arch = "arm", target_arch = "sparc"))]
+ const SYS: c::c_long = c::SYS_setresuid32 as c::c_long;
+ #[cfg(not(any(target_arch = "x86", target_arch = "arm", target_arch = "sparc")))]
+ const SYS: c::c_long = c::SYS_setresuid as c::c_long;
+
+ syscall! {
+ fn setresuid(ruid: c::uid_t, euid: c::uid_t, suid: c::uid_t) via SYS -> c::c_int
+ }
+
+ unsafe { ret(setresuid(ruid.as_raw(), euid.as_raw(), suid.as_raw())) }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn setgid_thread(gid: crate::ugid::Gid) -> io::Result<()> {
+ syscall! {
+ fn setgid(gid: c::gid_t) via SYS_setgid -> c::c_int
+ }
+
+ unsafe { ret(setgid(gid.as_raw())) }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn setresgid_thread(
+ rgid: crate::ugid::Gid,
+ egid: crate::ugid::Gid,
+ sgid: crate::ugid::Gid,
+) -> io::Result<()> {
+ #[cfg(any(target_arch = "x86", target_arch = "arm", target_arch = "sparc"))]
+ const SYS: c::c_long = c::SYS_setresgid32 as c::c_long;
+ #[cfg(not(any(target_arch = "x86", target_arch = "arm", target_arch = "sparc")))]
+ const SYS: c::c_long = c::SYS_setresgid as c::c_long;
+
+ syscall! {
+ fn setresgid(rgid: c::gid_t, egid: c::gid_t, sgid: c::gid_t) via SYS -> c::c_int
+ }
+
+ unsafe { ret(setresgid(rgid.as_raw(), egid.as_raw(), sgid.as_raw())) }
+}
+
+/// # Safety
+///
+/// The raw pointers must point to valid aligned memory.
+#[cfg(linux_kernel)]
+pub(crate) unsafe fn futex_val2(
+ uaddr: *const AtomicU32,
+ op: super::futex::Operation,
+ flags: futex::Flags,
+ val: u32,
+ val2: u32,
+ uaddr2: *const AtomicU32,
+ val3: u32,
+) -> io::Result<usize> {
+ // Pass `val2` in the least-significant bytes of the `timeout` argument.
+ // [“the kernel casts the timeout value first to unsigned long, then to
+ // uint32_t”], so we perform that exact conversion in reverse to create
+ // the pointer.
+ //
+ // [“the kernel casts the timeout value first to unsigned long, then to uint32_t”]: https://man7.org/linux/man-pages/man2/futex.2.html
+ let timeout = val2 as usize as *const Timespec;
+
+ #[cfg(all(
+ target_pointer_width = "32",
+ not(any(target_arch = "aarch64", target_arch = "x86_64"))
+ ))]
+ {
+ // TODO: Upstream this to the libc crate.
+ #[allow(non_upper_case_globals)]
+ const SYS_futex_time64: i32 = linux_raw_sys::general::__NR_futex_time64 as i32;
+
+ syscall! {
+ fn futex_time64(
+ uaddr: *const AtomicU32,
+ futex_op: c::c_int,
+ val: u32,
+ timeout: *const Timespec,
+ uaddr2: *const AtomicU32,
+ val3: u32
+ ) via SYS_futex_time64 -> c::ssize_t
+ }
+
+ ret_usize(futex_time64(
+ uaddr,
+ op as i32 | flags.bits() as i32,
+ val,
+ timeout,
+ uaddr2,
+ val3,
+ ))
+ }
+
+ #[cfg(any(
+ target_pointer_width = "64",
+ target_arch = "aarch64",
+ target_arch = "x86_64"
+ ))]
+ {
+ syscall! {
+ fn futex(
+ uaddr: *const AtomicU32,
+ futex_op: c::c_int,
+ val: u32,
+ timeout: *const Timespec,
+ uaddr2: *const AtomicU32,
+ val3: u32
+ ) via SYS_futex -> c::c_long
+ }
+
+ ret_usize(futex(
+ uaddr,
+ op as i32 | flags.bits() as i32,
+ val,
+ timeout.cast(),
+ uaddr2,
+ val3,
+ ) as isize)
+ }
+}
+
+/// # Safety
+///
+/// The raw pointers must point to valid aligned memory.
+#[cfg(linux_kernel)]
+pub(crate) unsafe fn futex_timeout(
+ uaddr: *const AtomicU32,
+ op: super::futex::Operation,
+ flags: futex::Flags,
+ val: u32,
+ timeout: Option<&Timespec>,
+ uaddr2: *const AtomicU32,
+ val3: u32,
+) -> io::Result<usize> {
+ #[cfg(all(
+ target_pointer_width = "32",
+ not(any(target_arch = "aarch64", target_arch = "x86_64"))
+ ))]
+ {
+ // TODO: Upstream this to the libc crate.
+ #[allow(non_upper_case_globals)]
+ const SYS_futex_time64: i32 = linux_raw_sys::general::__NR_futex_time64 as i32;
+
+ syscall! {
+ fn futex_time64(
+ uaddr: *const AtomicU32,
+ futex_op: c::c_int,
+ val: u32,
+ timeout: *const Timespec,
+ uaddr2: *const AtomicU32,
+ val3: u32
+ ) via SYS_futex_time64 -> c::ssize_t
+ }
+
+ ret_usize(futex_time64(
+ uaddr,
+ op as i32 | flags.bits() as i32,
+ val,
+ option_as_ptr(timeout),
+ uaddr2,
+ val3,
+ ))
+ .or_else(|err| {
+ // See the comments in `clock_gettime_via_syscall` about emulation.
+ if err == io::Errno::NOSYS {
+ futex_old_timespec(uaddr, op, flags, val, timeout, uaddr2, val3)
+ } else {
+ Err(err)
+ }
+ })
+ }
+
+ #[cfg(any(
+ target_pointer_width = "64",
+ target_arch = "aarch64",
+ target_arch = "x86_64"
+ ))]
+ {
+ syscall! {
+ fn futex(
+ uaddr: *const AtomicU32,
+ futex_op: c::c_int,
+ val: u32,
+ timeout: *const Timespec,
+ uaddr2: *const AtomicU32,
+ val3: u32
+ ) via SYS_futex -> c::c_long
+ }
+
+ ret_usize(futex(
+ uaddr,
+ op as i32 | flags.bits() as i32,
+ val,
+ option_as_ptr(timeout).cast(),
+ uaddr2,
+ val3,
+ ) as isize)
+ }
+}
+
+/// # Safety
+///
+/// The raw pointers must point to valid aligned memory.
+#[cfg(linux_kernel)]
+#[cfg(all(
+ target_pointer_width = "32",
+ not(any(target_arch = "aarch64", target_arch = "x86_64"))
+))]
+unsafe fn futex_old_timespec(
+ uaddr: *const AtomicU32,
+ op: super::futex::Operation,
+ flags: futex::Flags,
+ val: u32,
+ timeout: Option<&Timespec>,
+ uaddr2: *const AtomicU32,
+ val3: u32,
+) -> io::Result<usize> {
+ syscall! {
+ fn futex(
+ uaddr: *const AtomicU32,
+ futex_op: c::c_int,
+ val: u32,
+ timeout: *const linux_raw_sys::general::__kernel_old_timespec,
+ uaddr2: *const AtomicU32,
+ val3: u32
+ ) via SYS_futex -> c::c_long
+ }
+
+ let old_timeout = if let Some(timeout) = timeout {
+ Some(linux_raw_sys::general::__kernel_old_timespec {
+ tv_sec: timeout.tv_sec.try_into().map_err(|_| io::Errno::INVAL)?,
+ tv_nsec: timeout.tv_nsec.try_into().map_err(|_| io::Errno::INVAL)?,
+ })
+ } else {
+ None
+ };
+ ret_usize(futex(
+ uaddr,
+ op as i32 | flags.bits() as i32,
+ val,
+ option_as_ptr(old_timeout.as_ref()),
+ uaddr2,
+ val3,
+ ) as isize)
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn futex_waitv(
+ waiters: &[futex::Wait],
+ flags: futex::WaitvFlags,
+ timeout: Option<&Timespec>,
+ clockid: ClockId,
+) -> io::Result<usize> {
+ use futex::Wait as FutexWait;
+ use linux_raw_sys::general::__kernel_clockid_t as clockid_t;
+ syscall! {
+ fn futex_waitv(
+ waiters: *const FutexWait,
+ nr_futexes: c::c_uint,
+ flags: c::c_uint,
+ timeout: *const Timespec,
+ clockid: clockid_t
+ ) via SYS_futex_waitv -> c::c_int
+ }
+
+ let nr_futexes: c::c_uint = waiters.len().try_into().map_err(|_| io::Errno::INVAL)?;
+
+ unsafe {
+ ret_c_int(futex_waitv(
+ waiters.as_ptr(),
+ nr_futexes,
+ flags.bits(),
+ option_as_ptr(timeout).cast(),
+ clockid as _,
+ ))
+ .map(|n| n as usize)
+ }
+}
+
+#[cfg(linux_kernel)]
+#[inline]
+pub(crate) fn setgroups_thread(groups: &[crate::ugid::Gid]) -> io::Result<()> {
+ syscall! {
+ fn setgroups(size: c::size_t, list: *const c::gid_t) via SYS_setgroups -> c::c_int
+ }
+ ret(unsafe { setgroups(groups.len(), groups.as_ptr().cast()) })
+}
+
+#[cfg(any(linux_kernel, target_os = "dragonfly"))]
+#[inline]
+pub(crate) fn sched_getcpu() -> usize {
+ let r = unsafe { c::sched_getcpu() };
+ debug_assert!(r >= 0);
+ r as usize
+}
+
+#[cfg(any(freebsdlike, linux_kernel, target_os = "fuchsia"))]
+#[inline]
+pub(crate) fn sched_getaffinity(pid: Option<Pid>, cpuset: &mut RawCpuSet) -> io::Result<()> {
+ unsafe {
+ ret(c::sched_getaffinity(
+ Pid::as_raw(pid) as _,
+ core::mem::size_of::<RawCpuSet>(),
+ cpuset,
+ ))
+ }
+}
+
+#[cfg(any(freebsdlike, linux_kernel, target_os = "fuchsia"))]
+#[inline]
+pub(crate) fn sched_setaffinity(pid: Option<Pid>, cpuset: &RawCpuSet) -> io::Result<()> {
+ unsafe {
+ ret(c::sched_setaffinity(
+ Pid::as_raw(pid) as _,
+ core::mem::size_of::<RawCpuSet>(),
+ cpuset,
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn sched_yield() {
+ unsafe {
+ let _ = c::sched_yield();
+ }
+}
+
+// The `membarrier` syscall has a third argument, but it's only used when
+// the `flags` argument is `MEMBARRIER_CMD_FLAG_CPU`.
+#[cfg(linux_kernel)]
+syscall! {
+ fn membarrier_all(
+ cmd: c::c_int,
+ flags: c::c_uint
+ ) via SYS_membarrier -> c::c_int
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn membarrier_query() -> MembarrierQuery {
+ // glibc does not have a wrapper for `membarrier`; [the documentation]
+ // says to use `syscall`.
+ //
+ // [the documentation]: https://man7.org/linux/man-pages/man2/membarrier.2.html#NOTES
+ const MEMBARRIER_CMD_QUERY: u32 = 0;
+ unsafe {
+ match ret_u32(membarrier_all(MEMBARRIER_CMD_QUERY as i32, 0)) {
+ Ok(query) => MembarrierQuery::from_bits_retain(query),
+ Err(_) => MembarrierQuery::empty(),
+ }
+ }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn membarrier(cmd: MembarrierCommand) -> io::Result<()> {
+ unsafe { ret(membarrier_all(cmd as i32, 0)) }
+}
+
+#[cfg(linux_kernel)]
+pub(crate) fn membarrier_cpu(cmd: MembarrierCommand, cpu: Cpuid) -> io::Result<()> {
+ const MEMBARRIER_CMD_FLAG_CPU: u32 = 1;
+
+ syscall! {
+ fn membarrier_cpu(
+ cmd: c::c_int,
+ flags: c::c_uint,
+ cpu_id: c::c_int
+ ) via SYS_membarrier -> c::c_int
+ }
+
+ unsafe {
+ ret(membarrier_cpu(
+ cmd as i32,
+ MEMBARRIER_CMD_FLAG_CPU,
+ bitcast!(cpu.as_raw()),
+ ))
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/thread/types.rs b/vendor/rustix-1.0.8/src/backend/libc/thread/types.rs
new file mode 100644
index 0000000..105749e
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/thread/types.rs
@@ -0,0 +1,60 @@
+#[cfg(all(
+ any(freebsdlike, linux_kernel, target_os = "fuchsia"),
+ not(any(target_os = "espidf", target_os = "vita"))
+))]
+use crate::backend::c;
+
+/// A command for use with [`membarrier`] and [`membarrier_cpu`].
+///
+/// For `MEMBARRIER_CMD_QUERY`, see [`membarrier_query`].
+///
+/// [`membarrier`]: crate::thread::membarrier
+/// [`membarrier_cpu`]: crate::thread::membarrier_cpu
+/// [`membarrier_query`]: crate::thread::membarrier_query
+#[cfg(linux_kernel)]
+#[derive(Copy, Clone, Eq, PartialEq, Debug)]
+#[repr(u32)]
+#[non_exhaustive]
+pub enum MembarrierCommand {
+ /// `MEMBARRIER_CMD_GLOBAL`
+ #[doc(alias = "Shared")]
+ #[doc(alias = "MEMBARRIER_CMD_SHARED")]
+ Global = c::MEMBARRIER_CMD_GLOBAL as u32,
+ /// `MEMBARRIER_CMD_GLOBAL_EXPEDITED`
+ GlobalExpedited = c::MEMBARRIER_CMD_GLOBAL_EXPEDITED as u32,
+ /// `MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED`
+ RegisterGlobalExpedited = c::MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED as u32,
+ /// `MEMBARRIER_CMD_PRIVATE_EXPEDITED`
+ PrivateExpedited = c::MEMBARRIER_CMD_PRIVATE_EXPEDITED as u32,
+ /// `MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED`
+ RegisterPrivateExpedited = c::MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED as u32,
+ /// `MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE`
+ PrivateExpeditedSyncCore = c::MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE as u32,
+ /// `MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE`
+ RegisterPrivateExpeditedSyncCore =
+ c::MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE as u32,
+ /// `MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ` (since Linux 5.10)
+ PrivateExpeditedRseq = c::MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ as u32,
+ /// `MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ` (since Linux 5.10)
+ RegisterPrivateExpeditedRseq = c::MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ as u32,
+}
+
+/// A CPU identifier as a raw integer.
+#[cfg(linux_kernel)]
+pub type RawCpuid = u32;
+
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+pub(crate) type RawCpuSet = c::cpu_set_t;
+#[cfg(freebsdlike)]
+pub(crate) type RawCpuSet = c::cpuset_t;
+
+#[cfg(any(freebsdlike, linux_kernel, target_os = "fuchsia"))]
+#[inline]
+pub(crate) fn raw_cpu_set_new() -> RawCpuSet {
+ let mut set = unsafe { core::mem::zeroed() };
+ super::cpu_set::CPU_ZERO(&mut set);
+ set
+}
+
+#[cfg(any(freebsdlike, linux_kernel, target_os = "fuchsia"))]
+pub(crate) const CPU_SETSIZE: usize = c::CPU_SETSIZE as usize;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/time/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/time/mod.rs
new file mode 100644
index 0000000..bff7fd5
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/time/mod.rs
@@ -0,0 +1,3 @@
+#[cfg(not(windows))]
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/time/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/time/syscalls.rs
new file mode 100644
index 0000000..c17a9d2
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/time/syscalls.rs
@@ -0,0 +1,484 @@
+//! libc syscalls supporting `rustix::time`.
+
+use crate::backend::c;
+use crate::backend::conv::ret;
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[cfg(any(all(target_env = "gnu", fix_y2038), not(fix_y2038)))]
+use crate::backend::time::types::LibcItimerspec;
+#[cfg(not(target_os = "wasi"))]
+use crate::clockid::{ClockId, DynamicClockId};
+use crate::io;
+#[cfg(not(fix_y2038))]
+use crate::timespec::as_libc_timespec_mut_ptr;
+#[cfg(not(fix_y2038))]
+#[cfg(not(any(
+ target_os = "redox",
+ target_os = "wasi",
+ all(apple, not(target_os = "macos"))
+)))]
+use crate::timespec::as_libc_timespec_ptr;
+#[cfg(all(target_env = "gnu", fix_y2038))]
+use crate::timespec::LibcTimespec;
+use crate::timespec::Timespec;
+use core::mem::MaybeUninit;
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+use {
+ crate::backend::conv::{borrowed_fd, ret_owned_fd},
+ crate::fd::{BorrowedFd, OwnedFd},
+ crate::time::{Itimerspec, TimerfdClockId, TimerfdFlags, TimerfdTimerFlags},
+};
+
+#[cfg(all(target_env = "gnu", fix_y2038))]
+weak!(fn __clock_gettime64(c::clockid_t, *mut LibcTimespec) -> c::c_int);
+#[cfg(all(target_env = "gnu", fix_y2038))]
+weak!(fn __clock_settime64(c::clockid_t, *const LibcTimespec) -> c::c_int);
+#[cfg(all(target_env = "gnu", fix_y2038))]
+weak!(fn __clock_getres64(c::clockid_t, *mut LibcTimespec) -> c::c_int);
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[cfg(all(target_env = "gnu", fix_y2038))]
+weak!(fn __timerfd_gettime64(c::c_int, *mut LibcItimerspec) -> c::c_int);
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[cfg(all(target_env = "gnu", fix_y2038))]
+weak!(fn __timerfd_settime64(c::c_int, c::c_int, *const LibcItimerspec, *mut LibcItimerspec) -> c::c_int);
+
+#[cfg(not(any(target_os = "redox", target_os = "wasi")))]
+#[inline]
+#[must_use]
+pub(crate) fn clock_getres(id: ClockId) -> Timespec {
+ // Old 32-bit version: libc has `clock_getres` but it is not y2038 safe by
+ // default. But there may be a `__clock_getres64` we can use.
+ #[cfg(fix_y2038)]
+ {
+ #[cfg(target_env = "gnu")]
+ if let Some(libc_clock_getres) = __clock_getres64.get() {
+ let mut timespec = MaybeUninit::<LibcTimespec>::uninit();
+ unsafe {
+ ret(libc_clock_getres(id as c::clockid_t, timespec.as_mut_ptr())).unwrap();
+ return timespec.assume_init().into();
+ }
+ }
+
+ clock_getres_old(id)
+ }
+
+ // Main version: libc is y2038 safe and has `clock_getres`.
+ #[cfg(not(fix_y2038))]
+ unsafe {
+ let mut timespec = MaybeUninit::<Timespec>::uninit();
+ let _ = c::clock_getres(id as c::clockid_t, as_libc_timespec_mut_ptr(&mut timespec));
+ timespec.assume_init()
+ }
+}
+
+#[cfg(fix_y2038)]
+#[must_use]
+fn clock_getres_old(id: ClockId) -> Timespec {
+ let mut old_timespec = MaybeUninit::<c::timespec>::uninit();
+
+ let old_timespec = unsafe {
+ ret(c::clock_getres(
+ id as c::clockid_t,
+ old_timespec.as_mut_ptr(),
+ ))
+ .unwrap();
+ old_timespec.assume_init()
+ };
+
+ Timespec {
+ tv_sec: old_timespec.tv_sec.into(),
+ tv_nsec: old_timespec.tv_nsec.into(),
+ }
+}
+
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+#[must_use]
+pub(crate) fn clock_gettime(id: ClockId) -> Timespec {
+ // Old 32-bit version: libc has `clock_gettime` but it is not y2038 safe by
+ // default. But there may be a `__clock_gettime64` we can use.
+ #[cfg(fix_y2038)]
+ {
+ #[cfg(target_env = "gnu")]
+ if let Some(libc_clock_gettime) = __clock_gettime64.get() {
+ let mut timespec = MaybeUninit::<LibcTimespec>::uninit();
+ unsafe {
+ ret(libc_clock_gettime(
+ id as c::clockid_t,
+ timespec.as_mut_ptr(),
+ ))
+ .unwrap();
+ return timespec.assume_init().into();
+ }
+ }
+
+ clock_gettime_old(id)
+ }
+
+ // Use `.unwrap()` here because `clock_getres` can fail if the clock itself
+ // overflows a number of seconds, but if that happens, the monotonic clocks
+ // can't maintain their invariants, or the realtime clocks aren't properly
+ // configured.
+ #[cfg(not(fix_y2038))]
+ unsafe {
+ let mut timespec = MaybeUninit::<Timespec>::uninit();
+ ret(c::clock_gettime(
+ id as c::clockid_t,
+ as_libc_timespec_mut_ptr(&mut timespec),
+ ))
+ .unwrap();
+ let timespec = timespec.assume_init();
+ #[cfg(apple)]
+ let timespec = fix_negative_timespec_nsecs(timespec);
+ timespec
+ }
+}
+
+#[cfg(fix_y2038)]
+#[must_use]
+fn clock_gettime_old(id: ClockId) -> Timespec {
+ let mut old_timespec = MaybeUninit::<c::timespec>::uninit();
+
+ let old_timespec = unsafe {
+ ret(c::clock_gettime(
+ id as c::clockid_t,
+ old_timespec.as_mut_ptr(),
+ ))
+ .unwrap();
+ old_timespec.assume_init()
+ };
+
+ Timespec {
+ tv_sec: old_timespec.tv_sec.into(),
+ tv_nsec: old_timespec.tv_nsec.into(),
+ }
+}
+
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+pub(crate) fn clock_gettime_dynamic(id: DynamicClockId<'_>) -> io::Result<Timespec> {
+ let id: c::clockid_t = match id {
+ DynamicClockId::Known(id) => id as c::clockid_t,
+
+ #[cfg(linux_kernel)]
+ DynamicClockId::Dynamic(fd) => {
+ use crate::fd::AsRawFd as _;
+ const CLOCKFD: i32 = 3;
+ (!fd.as_raw_fd() << 3) | CLOCKFD
+ }
+
+ #[cfg(not(linux_kernel))]
+ DynamicClockId::Dynamic(_fd) => {
+ // Dynamic clocks are not supported on this platform.
+ return Err(io::Errno::INVAL);
+ }
+
+ #[cfg(linux_kernel)]
+ DynamicClockId::RealtimeAlarm => c::CLOCK_REALTIME_ALARM,
+
+ #[cfg(linux_kernel)]
+ DynamicClockId::Tai => c::CLOCK_TAI,
+
+ #[cfg(any(
+ linux_kernel,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "openbsd"
+ ))]
+ DynamicClockId::Boottime => c::CLOCK_BOOTTIME,
+
+ #[cfg(any(linux_kernel, target_os = "fuchsia"))]
+ DynamicClockId::BoottimeAlarm => c::CLOCK_BOOTTIME_ALARM,
+ };
+
+ // Old 32-bit version: libc has `clock_gettime` but it is not y2038
+ // safe by default. But there may be a `__clock_gettime64` we can use.
+ #[cfg(fix_y2038)]
+ {
+ #[cfg(target_env = "gnu")]
+ if let Some(libc_clock_gettime) = __clock_gettime64.get() {
+ let mut timespec = MaybeUninit::<LibcTimespec>::uninit();
+ unsafe {
+ ret(libc_clock_gettime(
+ id as c::clockid_t,
+ timespec.as_mut_ptr(),
+ ))?;
+
+ return Ok(timespec.assume_init().into());
+ }
+ }
+
+ clock_gettime_dynamic_old(id)
+ }
+
+ // Main version: libc is y2038 safe and has `clock_gettime`.
+ #[cfg(not(fix_y2038))]
+ unsafe {
+ let mut timespec = MaybeUninit::<Timespec>::uninit();
+
+ ret(c::clock_gettime(
+ id as c::clockid_t,
+ as_libc_timespec_mut_ptr(&mut timespec),
+ ))?;
+ let timespec = timespec.assume_init();
+ #[cfg(apple)]
+ let timespec = fix_negative_timespec_nsecs(timespec);
+ Ok(timespec)
+ }
+}
+
+#[cfg(fix_y2038)]
+#[inline]
+fn clock_gettime_dynamic_old(id: c::clockid_t) -> io::Result<Timespec> {
+ let mut old_timespec = MaybeUninit::<c::timespec>::uninit();
+
+ let old_timespec = unsafe {
+ ret(c::clock_gettime(
+ id as c::clockid_t,
+ old_timespec.as_mut_ptr(),
+ ))?;
+
+ old_timespec.assume_init()
+ };
+
+ Ok(Timespec {
+ tv_sec: old_timespec.tv_sec.into(),
+ tv_nsec: old_timespec.tv_nsec.into(),
+ })
+}
+
+#[cfg(not(any(
+ target_os = "redox",
+ target_os = "wasi",
+ all(apple, not(target_os = "macos"))
+)))]
+#[inline]
+pub(crate) fn clock_settime(id: ClockId, timespec: Timespec) -> io::Result<()> {
+ // Old 32-bit version: libc has `clock_gettime` but it is not y2038 safe by
+ // default. But there may be a `__clock_settime64` we can use.
+ #[cfg(fix_y2038)]
+ {
+ #[cfg(target_env = "gnu")]
+ if let Some(libc_clock_settime) = __clock_settime64.get() {
+ unsafe {
+ let mut new_timespec = core::mem::zeroed::<LibcTimespec>();
+ new_timespec.tv_sec = timespec.tv_sec;
+ new_timespec.tv_nsec = timespec.tv_nsec as _;
+ return ret(libc_clock_settime(id as c::clockid_t, &new_timespec));
+ }
+ }
+
+ clock_settime_old(id, timespec)
+ }
+
+ // Main version: libc is y2038 safe and has `clock_settime`.
+ #[cfg(not(fix_y2038))]
+ unsafe {
+ ret(c::clock_settime(
+ id as c::clockid_t,
+ as_libc_timespec_ptr(×pec),
+ ))
+ }
+}
+
+#[cfg(not(any(
+ target_os = "redox",
+ target_os = "wasi",
+ all(apple, not(target_os = "macos"))
+)))]
+#[cfg(fix_y2038)]
+fn clock_settime_old(id: ClockId, timespec: Timespec) -> io::Result<()> {
+ let old_timespec = c::timespec {
+ tv_sec: timespec
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: timespec.tv_nsec as _,
+ };
+
+ unsafe { ret(c::clock_settime(id as c::clockid_t, &old_timespec)) }
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+pub(crate) fn timerfd_create(id: TimerfdClockId, flags: TimerfdFlags) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(c::timerfd_create(id as c::clockid_t, bitflags_bits!(flags))) }
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+pub(crate) fn timerfd_settime(
+ fd: BorrowedFd<'_>,
+ flags: TimerfdTimerFlags,
+ new_value: &Itimerspec,
+) -> io::Result<Itimerspec> {
+ // Old 32-bit version: libc has `timerfd_settime` but it is not y2038 safe
+ // by default. But there may be a `__timerfd_settime64` we can use.
+ #[cfg(fix_y2038)]
+ {
+ #[cfg(target_env = "gnu")]
+ if let Some(libc_timerfd_settime) = __timerfd_settime64.get() {
+ let mut result = MaybeUninit::<LibcItimerspec>::uninit();
+ unsafe {
+ ret(libc_timerfd_settime(
+ borrowed_fd(fd),
+ bitflags_bits!(flags),
+ &new_value.clone().into(),
+ result.as_mut_ptr(),
+ ))?;
+ return Ok(result.assume_init().into());
+ }
+ }
+
+ timerfd_settime_old(fd, flags, new_value)
+ }
+
+ #[cfg(not(fix_y2038))]
+ unsafe {
+ use crate::backend::time::types::{as_libc_itimerspec_mut_ptr, as_libc_itimerspec_ptr};
+
+ let mut result = MaybeUninit::<LibcItimerspec>::uninit();
+ ret(c::timerfd_settime(
+ borrowed_fd(fd),
+ bitflags_bits!(flags),
+ as_libc_itimerspec_ptr(new_value),
+ as_libc_itimerspec_mut_ptr(&mut result),
+ ))?;
+ Ok(result.assume_init())
+ }
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[cfg(fix_y2038)]
+fn timerfd_settime_old(
+ fd: BorrowedFd<'_>,
+ flags: TimerfdTimerFlags,
+ new_value: &Itimerspec,
+) -> io::Result<Itimerspec> {
+ let mut old_result = MaybeUninit::<c::itimerspec>::uninit();
+
+ // Convert `new_value` to the old `itimerspec` format.
+ let old_new_value = c::itimerspec {
+ it_interval: c::timespec {
+ tv_sec: new_value
+ .it_interval
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: new_value
+ .it_interval
+ .tv_nsec
+ .try_into()
+ .map_err(|_| io::Errno::INVAL)?,
+ },
+ it_value: c::timespec {
+ tv_sec: new_value
+ .it_value
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: new_value
+ .it_value
+ .tv_nsec
+ .try_into()
+ .map_err(|_| io::Errno::INVAL)?,
+ },
+ };
+
+ let old_result = unsafe {
+ ret(c::timerfd_settime(
+ borrowed_fd(fd),
+ bitflags_bits!(flags),
+ &old_new_value,
+ old_result.as_mut_ptr(),
+ ))?;
+ old_result.assume_init()
+ };
+
+ Ok(Itimerspec {
+ it_interval: Timespec {
+ tv_sec: old_result
+ .it_interval
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: old_result.it_interval.tv_nsec as _,
+ },
+ it_value: Timespec {
+ tv_sec: old_result
+ .it_interval
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: old_result.it_interval.tv_nsec as _,
+ },
+ })
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+pub(crate) fn timerfd_gettime(fd: BorrowedFd<'_>) -> io::Result<Itimerspec> {
+ // Old 32-bit version: libc has `timerfd_gettime` but it is not y2038 safe
+ // by default. But there may be a `__timerfd_gettime64` we can use.
+ #[cfg(fix_y2038)]
+ {
+ #[cfg(target_env = "gnu")]
+ if let Some(libc_timerfd_gettime) = __timerfd_gettime64.get() {
+ let mut result = MaybeUninit::<LibcItimerspec>::uninit();
+ unsafe {
+ ret(libc_timerfd_gettime(borrowed_fd(fd), result.as_mut_ptr()))?;
+ return Ok(result.assume_init().into());
+ }
+ }
+
+ timerfd_gettime_old(fd)
+ }
+
+ #[cfg(not(fix_y2038))]
+ unsafe {
+ use crate::backend::time::types::as_libc_itimerspec_mut_ptr;
+
+ let mut result = MaybeUninit::<LibcItimerspec>::uninit();
+ ret(c::timerfd_gettime(
+ borrowed_fd(fd),
+ as_libc_itimerspec_mut_ptr(&mut result),
+ ))?;
+ Ok(result.assume_init())
+ }
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[cfg(fix_y2038)]
+fn timerfd_gettime_old(fd: BorrowedFd<'_>) -> io::Result<Itimerspec> {
+ let mut old_result = MaybeUninit::<c::itimerspec>::uninit();
+
+ let old_result = unsafe {
+ ret(c::timerfd_gettime(borrowed_fd(fd), old_result.as_mut_ptr()))?;
+ old_result.assume_init()
+ };
+
+ Ok(Itimerspec {
+ it_interval: Timespec {
+ tv_sec: old_result
+ .it_interval
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: old_result.it_interval.tv_nsec as _,
+ },
+ it_value: Timespec {
+ tv_sec: old_result
+ .it_interval
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: old_result.it_interval.tv_nsec as _,
+ },
+ })
+}
+
+/// See [`crate::timespec::fix_negative_nsecs`] for details.
+#[cfg(apple)]
+#[cfg(not(fix_y2038))]
+fn fix_negative_timespec_nsecs(mut ts: Timespec) -> Timespec {
+ let (sec, nsec) = crate::timespec::fix_negative_nsecs(ts.tv_sec as _, ts.tv_nsec as _);
+ ts.tv_sec = sec as _;
+ ts.tv_nsec = nsec as _;
+ ts
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/time/types.rs b/vendor/rustix-1.0.8/src/backend/libc/time/types.rs
new file mode 100644
index 0000000..0a7fd83
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/time/types.rs
@@ -0,0 +1,179 @@
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+use crate::backend::c;
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+use crate::time::Itimerspec;
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[cfg(fix_y2038)]
+use crate::timespec::LibcTimespec;
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+use bitflags::bitflags;
+
+/// On most platforms, `LibcItimerspec` is just `Itimerspec`.
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[cfg(not(fix_y2038))]
+pub(crate) type LibcItimerspec = Itimerspec;
+
+/// On 32-bit glibc platforms, `LibcTimespec` differs from `Timespec`, so we
+/// define our own struct, with bidirectional `From` impls.
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[cfg(fix_y2038)]
+#[repr(C)]
+#[derive(Debug, Clone)]
+pub(crate) struct LibcItimerspec {
+ pub it_interval: LibcTimespec,
+ pub it_value: LibcTimespec,
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[cfg(fix_y2038)]
+impl From<LibcItimerspec> for Itimerspec {
+ #[inline]
+ fn from(t: LibcItimerspec) -> Self {
+ Self {
+ it_interval: t.it_interval.into(),
+ it_value: t.it_value.into(),
+ }
+ }
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[cfg(fix_y2038)]
+impl From<Itimerspec> for LibcItimerspec {
+ #[inline]
+ fn from(t: Itimerspec) -> Self {
+ Self {
+ it_interval: t.it_interval.into(),
+ it_value: t.it_value.into(),
+ }
+ }
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[cfg(not(fix_y2038))]
+pub(crate) fn as_libc_itimerspec_ptr(itimerspec: &Itimerspec) -> *const c::itimerspec {
+ #[cfg(test)]
+ {
+ assert_eq_size!(Itimerspec, c::itimerspec);
+ }
+ crate::utils::as_ptr(itimerspec).cast::<c::itimerspec>()
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[cfg(not(fix_y2038))]
+pub(crate) fn as_libc_itimerspec_mut_ptr(
+ itimerspec: &mut core::mem::MaybeUninit<Itimerspec>,
+) -> *mut c::itimerspec {
+ #[cfg(test)]
+ {
+ assert_eq_size!(Itimerspec, c::itimerspec);
+ }
+ itimerspec.as_mut_ptr().cast::<c::itimerspec>()
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+bitflags! {
+ /// `TFD_*` flags for use with [`timerfd_create`].
+ ///
+ /// [`timerfd_create`]: crate::time::timerfd_create
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct TimerfdFlags: u32 {
+ /// `TFD_NONBLOCK`
+ #[doc(alias = "TFD_NONBLOCK")]
+ const NONBLOCK = bitcast!(c::TFD_NONBLOCK);
+
+ /// `TFD_CLOEXEC`
+ #[doc(alias = "TFD_CLOEXEC")]
+ const CLOEXEC = bitcast!(c::TFD_CLOEXEC);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+bitflags! {
+ /// `TFD_TIMER_*` flags for use with [`timerfd_settime`].
+ ///
+ /// [`timerfd_settime`]: crate::time::timerfd_settime
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct TimerfdTimerFlags: u32 {
+ /// `TFD_TIMER_ABSTIME`
+ #[doc(alias = "TFD_TIMER_ABSTIME")]
+ const ABSTIME = bitcast!(c::TFD_TIMER_ABSTIME);
+
+ /// `TFD_TIMER_CANCEL_ON_SET`
+ #[cfg(linux_kernel)]
+ #[doc(alias = "TFD_TIMER_CANCEL_ON_SET")]
+ const CANCEL_ON_SET = bitcast!(c::TFD_TIMER_CANCEL_ON_SET);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `CLOCK_*` constants for use with [`timerfd_create`].
+///
+/// [`timerfd_create`]: crate::time::timerfd_create
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
+#[repr(u32)]
+#[non_exhaustive]
+pub enum TimerfdClockId {
+ /// `CLOCK_REALTIME`—A clock that tells the “real” time.
+ ///
+ /// This is a clock that tells the amount of time elapsed since the Unix
+ /// epoch, 1970-01-01T00:00:00Z. The clock is externally settable, so it is
+ /// not monotonic. Successive reads may see decreasing times, so it isn't
+ /// reliable for measuring durations.
+ #[doc(alias = "CLOCK_REALTIME")]
+ Realtime = bitcast!(c::CLOCK_REALTIME),
+
+ /// `CLOCK_MONOTONIC`—A clock that tells an abstract time.
+ ///
+ /// Unlike `Realtime`, this clock is not based on a fixed known epoch, so
+ /// individual times aren't meaningful. However, since it isn't settable,
+ /// it is reliable for measuring durations.
+ ///
+ /// This clock does not advance while the system is suspended; see
+ /// `Boottime` for a clock that does.
+ #[doc(alias = "CLOCK_MONOTONIC")]
+ Monotonic = bitcast!(c::CLOCK_MONOTONIC),
+
+ /// `CLOCK_BOOTTIME`—Like `Monotonic`, but advances while suspended.
+ ///
+ /// This clock is similar to `Monotonic`, but does advance while the system
+ /// is suspended.
+ #[doc(alias = "CLOCK_BOOTTIME")]
+ Boottime = bitcast!(c::CLOCK_BOOTTIME),
+
+ /// `CLOCK_REALTIME_ALARM`—Like `Realtime`, but wakes a suspended system.
+ ///
+ /// This clock is like `Realtime`, but can wake up a suspended system.
+ ///
+ /// Use of this clock requires the `CAP_WAKE_ALARM` Linux capability.
+ #[doc(alias = "CLOCK_REALTIME_ALARM")]
+ RealtimeAlarm = bitcast!(c::CLOCK_REALTIME_ALARM),
+
+ /// `CLOCK_BOOTTIME_ALARM`—Like `Boottime`, but wakes a suspended system.
+ ///
+ /// This clock is like `Boottime`, but can wake up a suspended system.
+ ///
+ /// Use of this clock requires the `CAP_WAKE_ALARM` Linux capability.
+ #[doc(alias = "CLOCK_BOOTTIME_ALARM")]
+ BoottimeAlarm = bitcast!(c::CLOCK_BOOTTIME_ALARM),
+}
+
+#[cfg(test)]
+mod tests {
+ #[allow(unused_imports)]
+ use super::*;
+
+ #[cfg(any(linux_kernel, target_os = "fuchsia"))]
+ #[test]
+ fn test_types() {
+ assert_eq_size!(TimerfdFlags, c::c_int);
+ assert_eq_size!(TimerfdTimerFlags, c::c_int);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/ugid/mod.rs b/vendor/rustix-1.0.8/src/backend/libc/ugid/mod.rs
new file mode 100644
index 0000000..ef944f0
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/ugid/mod.rs
@@ -0,0 +1 @@
+pub(crate) mod syscalls;
diff --git a/vendor/rustix-1.0.8/src/backend/libc/ugid/syscalls.rs b/vendor/rustix-1.0.8/src/backend/libc/ugid/syscalls.rs
new file mode 100644
index 0000000..f191116
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/ugid/syscalls.rs
@@ -0,0 +1,42 @@
+use crate::backend::c;
+use crate::ugid::{Gid, RawGid, RawUid, Uid};
+
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+#[must_use]
+pub(crate) fn getuid() -> Uid {
+ unsafe {
+ let uid = c::getuid() as RawUid;
+ Uid::from_raw(uid)
+ }
+}
+
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+#[must_use]
+pub(crate) fn geteuid() -> Uid {
+ unsafe {
+ let uid = c::geteuid() as RawUid;
+ Uid::from_raw(uid)
+ }
+}
+
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+#[must_use]
+pub(crate) fn getgid() -> Gid {
+ unsafe {
+ let gid = c::getgid() as RawGid;
+ Gid::from_raw(gid)
+ }
+}
+
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+#[must_use]
+pub(crate) fn getegid() -> Gid {
+ unsafe {
+ let gid = c::getegid() as RawGid;
+ Gid::from_raw(gid)
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/libc/winsock_c.rs b/vendor/rustix-1.0.8/src/backend/libc/winsock_c.rs
new file mode 100644
index 0000000..c583e33
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/libc/winsock_c.rs
@@ -0,0 +1,67 @@
+//! Adapt the Winsock API to resemble a POSIX-style libc API.
+
+#![allow(unused_imports)]
+#![allow(non_camel_case_types)]
+#![allow(dead_code)]
+
+use windows_sys::Win32::Networking::WinSock;
+
+// Define the basic C types. With Rust 1.64, we can use these from `core::ffi`.
+pub(crate) type c_schar = i8;
+pub(crate) type c_uchar = u8;
+pub(crate) type c_short = i16;
+pub(crate) type c_ushort = u16;
+pub(crate) type c_int = i32;
+pub(crate) type c_uint = u32;
+pub(crate) type c_longlong = i64;
+pub(crate) type c_ulonglong = u64;
+pub(crate) type ssize_t = isize;
+pub(crate) type c_char = i8;
+pub(crate) type c_long = i32;
+pub(crate) type c_ulong = u32;
+pub(crate) use core::ffi::c_void;
+
+// windows-sys declares these constants as `u16`. For better compatibility with
+// Unix-family APIs, redeclare them as `i32`.
+pub(crate) const AF_INET: i32 = WinSock::AF_INET as _;
+pub(crate) const AF_INET6: i32 = WinSock::AF_INET6 as _;
+pub(crate) const AF_UNSPEC: i32 = WinSock::AF_UNSPEC as _;
+
+// Include the contents of `WinSock`, renaming as needed to match POSIX.
+//
+// Use `WSA_E_CANCELLED` for `ECANCELED` instead of `WSAECANCELLED`, because
+// `WSAECANCELLED` will be removed in the future.
+// <https://docs.microsoft.com/en-us/windows/win32/api/ws2spi/nc-ws2spi-lpnsplookupserviceend#remarks>
+pub(crate) use WinSock::{
+ closesocket as close, ioctlsocket as ioctl, WSAPoll as poll, ADDRESS_FAMILY as sa_family_t,
+ ADDRINFOA as addrinfo, IN6_ADDR as in6_addr, IN_ADDR as in_addr, IPV6_MREQ as ipv6_mreq,
+ IP_MREQ as ip_mreq, LINGER as linger, SD_BOTH as SHUT_RDWR, SD_RECEIVE as SHUT_RD,
+ SD_SEND as SHUT_WR, SOCKADDR as sockaddr, SOCKADDR_IN as sockaddr_in,
+ SOCKADDR_IN6 as sockaddr_in6, SOCKADDR_STORAGE as sockaddr_storage, WSAEACCES as EACCES,
+ WSAEADDRINUSE as EADDRINUSE, WSAEADDRNOTAVAIL as EADDRNOTAVAIL,
+ WSAEAFNOSUPPORT as EAFNOSUPPORT, WSAEALREADY as EALREADY, WSAEBADF as EBADF,
+ WSAECONNABORTED as ECONNABORTED, WSAECONNREFUSED as ECONNREFUSED, WSAECONNRESET as ECONNRESET,
+ WSAEDESTADDRREQ as EDESTADDRREQ, WSAEDISCON as EDISCON, WSAEDQUOT as EDQUOT,
+ WSAEFAULT as EFAULT, WSAEHOSTDOWN as EHOSTDOWN, WSAEHOSTUNREACH as EHOSTUNREACH,
+ WSAEINPROGRESS as EINPROGRESS, WSAEINTR as EINTR, WSAEINVAL as EINVAL,
+ WSAEINVALIDPROCTABLE as EINVALIDPROCTABLE, WSAEINVALIDPROVIDER as EINVALIDPROVIDER,
+ WSAEISCONN as EISCONN, WSAELOOP as ELOOP, WSAEMFILE as EMFILE, WSAEMSGSIZE as EMSGSIZE,
+ WSAENAMETOOLONG as ENAMETOOLONG, WSAENETDOWN as ENETDOWN, WSAENETRESET as ENETRESET,
+ WSAENETUNREACH as ENETUNREACH, WSAENOBUFS as ENOBUFS, WSAENOMORE as ENOMORE,
+ WSAENOPROTOOPT as ENOPROTOOPT, WSAENOTCONN as ENOTCONN, WSAENOTEMPTY as ENOTEMPTY,
+ WSAENOTSOCK as ENOTSOCK, WSAEOPNOTSUPP as EOPNOTSUPP, WSAEPFNOSUPPORT as EPFNOSUPPORT,
+ WSAEPROCLIM as EPROCLIM, WSAEPROTONOSUPPORT as EPROTONOSUPPORT, WSAEPROTOTYPE as EPROTOTYPE,
+ WSAEPROVIDERFAILEDINIT as EPROVIDERFAILEDINIT, WSAEREFUSED as EREFUSED, WSAEREMOTE as EREMOTE,
+ WSAESHUTDOWN as ESHUTDOWN, WSAESOCKTNOSUPPORT as ESOCKTNOSUPPORT, WSAESTALE as ESTALE,
+ WSAETIMEDOUT as ETIMEDOUT, WSAETOOMANYREFS as ETOOMANYREFS, WSAEUSERS as EUSERS,
+ WSAEWOULDBLOCK as EWOULDBLOCK, WSAEWOULDBLOCK as EAGAIN, WSAPOLLFD as pollfd,
+ WSA_E_CANCELLED as ECANCELED, *,
+};
+
+// Windows doesn't have `timespec`, just `timeval`. Rustix only uses `timespec`
+// in its public API. So define one, and we'll convert it internally.
+pub struct timespec {
+ pub tv_sec: time_t,
+ pub tv_nsec: crate::ffi::c_long,
+}
+pub type time_t = i64;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/arch/aarch64.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/aarch64.rs
new file mode 100644
index 0000000..4f9e52a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/aarch64.rs
@@ -0,0 +1,269 @@
+//! aarch64 Linux system calls.
+
+use crate::backend::reg::{
+ ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm as _, A0, A1, A2, A3, A4, A5, R0,
+};
+use core::arch::asm;
+
+#[cfg(target_pointer_width = "32")]
+compile_error!("arm64-ilp32 is not supported yet");
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber<'_>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("x8") nr.to_asm(),
+ lateout("x0") r0,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("x8") nr.to_asm(),
+ inlateout("x0") a0.to_asm() => r0,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("x8") nr.to_asm(),
+ inlateout("x0") a0.to_asm() => r0,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_noreturn(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> ! {
+ asm!(
+ "svc 0",
+ "brk #0x1",
+ in("x8") nr.to_asm(),
+ in("x0") a0.to_asm(),
+ options(nostack, noreturn)
+ )
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("x8") nr.to_asm(),
+ inlateout("x0") a0.to_asm() => r0,
+ in("x1") a1.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("x8") nr.to_asm(),
+ inlateout("x0") a0.to_asm() => r0,
+ in("x1") a1.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("x8") nr.to_asm(),
+ inlateout("x0") a0.to_asm() => r0,
+ in("x1") a1.to_asm(),
+ in("x2") a2.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("x8") nr.to_asm(),
+ inlateout("x0") a0.to_asm() => r0,
+ in("x1") a1.to_asm(),
+ in("x2") a2.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("x8") nr.to_asm(),
+ inlateout("x0") a0.to_asm() => r0,
+ in("x1") a1.to_asm(),
+ in("x2") a2.to_asm(),
+ in("x3") a3.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("x8") nr.to_asm(),
+ inlateout("x0") a0.to_asm() => r0,
+ in("x1") a1.to_asm(),
+ in("x2") a2.to_asm(),
+ in("x3") a3.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("x8") nr.to_asm(),
+ inlateout("x0") a0.to_asm() => r0,
+ in("x1") a1.to_asm(),
+ in("x2") a2.to_asm(),
+ in("x3") a3.to_asm(),
+ in("x4") a4.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("x8") nr.to_asm(),
+ inlateout("x0") a0.to_asm() => r0,
+ in("x1") a1.to_asm(),
+ in("x2") a2.to_asm(),
+ in("x3") a3.to_asm(),
+ in("x4") a4.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("x8") nr.to_asm(),
+ inlateout("x0") a0.to_asm() => r0,
+ in("x1") a1.to_asm(),
+ in("x2") a2.to_asm(),
+ in("x3") a3.to_asm(),
+ in("x4") a4.to_asm(),
+ in("x5") a5.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("x8") nr.to_asm(),
+ inlateout("x0") a0.to_asm() => r0,
+ in("x1") a1.to_asm(),
+ in("x2") a2.to_asm(),
+ in("x3") a3.to_asm(),
+ in("x4") a4.to_asm(),
+ in("x5") a5.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/arch/arm.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/arm.rs
new file mode 100644
index 0000000..4317154
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/arm.rs
@@ -0,0 +1,266 @@
+//! arm Linux system calls.
+
+use crate::backend::reg::{
+ ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm as _, A0, A1, A2, A3, A4, A5, R0,
+};
+use core::arch::asm;
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber<'_>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r7") nr.to_asm(),
+ lateout("r0") r0,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r7") nr.to_asm(),
+ inlateout("r0") a0.to_asm() => r0,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r7") nr.to_asm(),
+ inlateout("r0") a0.to_asm() => r0,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_noreturn(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> ! {
+ asm!(
+ "svc 0",
+ "udf #16",
+ in("r7") nr.to_asm(),
+ in("r0") a0.to_asm(),
+ options(nostack, noreturn)
+ )
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r7") nr.to_asm(),
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r7") nr.to_asm(),
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r7") nr.to_asm(),
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r7") nr.to_asm(),
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r7") nr.to_asm(),
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ in("r3") a3.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r7") nr.to_asm(),
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ in("r3") a3.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r7") nr.to_asm(),
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ in("r3") a3.to_asm(),
+ in("r4") a4.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r7") nr.to_asm(),
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ in("r3") a3.to_asm(),
+ in("r4") a4.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r7") nr.to_asm(),
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ in("r3") a3.to_asm(),
+ in("r4") a4.to_asm(),
+ in("r5") a5.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r7") nr.to_asm(),
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ in("r3") a3.to_asm(),
+ in("r4") a4.to_asm(),
+ in("r5") a5.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/arch/mips.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/mips.rs
new file mode 100644
index 0000000..eb66e26
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/mips.rs
@@ -0,0 +1,544 @@
+//! mipsel Linux system calls.
+//!
+//! On mipsel, Linux indicates success or failure using `$a3` rather
+//! than by returning a negative error code as most other architectures do.
+//!
+//! MIPS-family platforms have a special calling convention for `__NR_pipe`,
+//! however we use `__NR_pipe2` instead to avoid having to implement it.
+
+use crate::backend::reg::{
+ ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm as _, A0, A1, A2, A3, A4, A5, A6, R0,
+};
+use core::arch::asm;
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_noreturn(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> ! {
+ asm!(
+ "syscall",
+ "teq $0,$0",
+ in("$2" /*$v0*/) nr.to_asm(),
+ in("$4" /*$a0*/) a0.to_asm(),
+ options(nostack, noreturn)
+ )
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ ".set noat",
+ "subu $sp, 32",
+ "sw {}, 16($sp)",
+ "syscall",
+ "addu $sp, 32",
+ ".set at",
+ in(reg) a4.to_asm(),
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ ".set noat",
+ "subu $sp, 32",
+ "sw {}, 16($sp)",
+ "syscall",
+ "addu $sp, 32",
+ ".set at",
+ in(reg) a4.to_asm(),
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ ".set noat",
+ "subu $sp, 32",
+ "sw {}, 16($sp)",
+ "sw {}, 20($sp)",
+ "syscall",
+ "addu $sp, 32",
+ ".set at",
+ in(reg) a4.to_asm(),
+ in(reg) a5.to_asm(),
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ ".set noat",
+ "subu $sp, 32",
+ "sw {}, 16($sp)",
+ "sw {}, 20($sp)",
+ "syscall",
+ "addu $sp, 32",
+ ".set at",
+ in(reg) a4.to_asm(),
+ in(reg) a5.to_asm(),
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall7_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+ a6: ArgReg<'_, A6>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ ".set noat",
+ "subu $sp, 32",
+ "sw {}, 16($sp)",
+ "sw {}, 20($sp)",
+ "sw {}, 24($sp)",
+ "syscall",
+ "addu $sp, 32",
+ ".set at",
+ in(reg) a4.to_asm(),
+ in(reg) a5.to_asm(),
+ in(reg) a6.to_asm(),
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/arch/mips32r6.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/mips32r6.rs
new file mode 100644
index 0000000..d273a96
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/mips32r6.rs
@@ -0,0 +1,544 @@
+//! mipsisa32r6el Linux system calls.
+//!
+//! On mipsisa32r6el, Linux indicates success or failure using `$a3` rather
+//! than by returning a negative error code as most other architectures do.
+//!
+//! MIPS-family platforms have a special calling convention for `__NR_pipe`,
+//! however we use `__NR_pipe2` instead to avoid having to implement it.
+
+use crate::backend::reg::{
+ ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm as _, A0, A1, A2, A3, A4, A5, A6, R0,
+};
+use core::arch::asm;
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_noreturn(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> ! {
+ asm!(
+ "syscall",
+ "teq $0,$0",
+ in("$2" /*$v0*/) nr.to_asm(),
+ in("$4" /*$a0*/) a0.to_asm(),
+ options(nostack, noreturn)
+ )
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ ".set noat",
+ "subu $sp, 32",
+ "sw {}, 16($sp)",
+ "syscall",
+ "addu $sp, 32",
+ ".set at",
+ in(reg) a4.to_asm(),
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ ".set noat",
+ "subu $sp, 32",
+ "sw {}, 16($sp)",
+ "syscall",
+ "addu $sp, 32",
+ ".set at",
+ in(reg) a4.to_asm(),
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ ".set noat",
+ "subu $sp, 32",
+ "sw {}, 16($sp)",
+ "sw {}, 20($sp)",
+ "syscall",
+ "addu $sp, 32",
+ ".set at",
+ in(reg) a4.to_asm(),
+ in(reg) a5.to_asm(),
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ ".set noat",
+ "subu $sp, 32",
+ "sw {}, 16($sp)",
+ "sw {}, 20($sp)",
+ "syscall",
+ "addu $sp, 32",
+ ".set at",
+ in(reg) a4.to_asm(),
+ in(reg) a5.to_asm(),
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall7_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+ a6: ArgReg<'_, A6>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ ".set noat",
+ "subu $sp, 32",
+ "sw {}, 16($sp)",
+ "sw {}, 20($sp)",
+ "sw {}, 24($sp)",
+ "syscall",
+ "addu $sp, 32",
+ ".set at",
+ in(reg) a4.to_asm(),
+ in(reg) a5.to_asm(),
+ in(reg) a6.to_asm(),
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$t0*/) _,
+ lateout("$9" /*$t1*/) _,
+ lateout("$10" /*$t2*/) _,
+ lateout("$11" /*$t3*/) _,
+ lateout("$12" /*$t4*/) _,
+ lateout("$13" /*$t5*/) _,
+ lateout("$14" /*$t6*/) _,
+ lateout("$15" /*$t7*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/arch/mips64.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/mips64.rs
new file mode 100644
index 0000000..821812f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/mips64.rs
@@ -0,0 +1,467 @@
+//! mips64el Linux system calls.
+//!
+//! On mips64el, Linux indicates success or failure using `$a3` (`$7`) rather
+//! than by returning a negative error code as most other architectures do.
+//!
+//! MIPS-family platforms have a special calling convention for `__NR_pipe`,
+//! however we use `__NR_pipe2` instead to avoid having to implement it.
+
+use crate::backend::reg::{
+ ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm as _, A0, A1, A2, A3, A4, A5, R0,
+};
+use core::arch::asm;
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_noreturn(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> ! {
+ asm!(
+ "syscall",
+ "teq $0,$0",
+ in("$2" /*$v0*/) nr.to_asm(),
+ in("$4" /*$a0*/) a0.to_asm(),
+ options(nostack, noreturn)
+ )
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ inlateout("$8" /*$a4*/) a4.to_asm() => _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ inlateout("$8" /*$a4*/) a4.to_asm() => _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ inlateout("$8" /*$a4*/) a4.to_asm() => _,
+ inlateout("$9" /*$a5*/) a5.to_asm() => _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ inlateout("$8" /*$a4*/) a4.to_asm() => _,
+ inlateout("$9" /*$a5*/) a5.to_asm() => _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/arch/mips64r6.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/mips64r6.rs
new file mode 100644
index 0000000..2a3cf56
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/mips64r6.rs
@@ -0,0 +1,471 @@
+//! mipsisa64r6el Linux system calls.
+//!
+//! On mipsisa64r6el, Linux indicates success or failure using `$a3` (`$7`)
+//! rather than by returning a negative error code as most other architectures
+//! do.
+//!
+//! MIPS-family platforms have a special calling convention for `__NR_pipe`,
+//! however we use `__NR_pipe2` instead to avoid having to implement it.
+//!
+//! MIPS R6 inline assembly currently doesn't differ from MIPS, because no
+//! explicit call of R6-only or R2-only instructions exist here.
+
+use crate::backend::reg::{
+ ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm as _, A0, A1, A2, A3, A4, A5, R0,
+};
+use core::arch::asm;
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_noreturn(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> ! {
+ asm!(
+ "syscall",
+ "teq $0,$0",
+ in("$2" /*$v0*/) nr.to_asm(),
+ in("$4" /*$a0*/) a0.to_asm(),
+ options(nostack, noreturn)
+ )
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ lateout("$7" /*$a3*/) err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ lateout("$8" /*$a4*/) _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ inlateout("$8" /*$a4*/) a4.to_asm() => _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ inlateout("$8" /*$a4*/) a4.to_asm() => _,
+ lateout("$9" /*$a5*/) _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ inlateout("$8" /*$a4*/) a4.to_asm() => _,
+ inlateout("$9" /*$a5*/) a5.to_asm() => _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let x0;
+ let err: usize;
+ asm!(
+ "syscall",
+ inlateout("$2" /*$v0*/) nr.to_asm() => x0,
+ in("$4" /*$a0*/) a0.to_asm(),
+ in("$5" /*$a1*/) a1.to_asm(),
+ in("$6" /*$a2*/) a2.to_asm(),
+ inlateout("$7" /*$a3*/) a3.to_asm() => err,
+ inlateout("$8" /*$a4*/) a4.to_asm() => _,
+ inlateout("$9" /*$a5*/) a5.to_asm() => _,
+ lateout("$10" /*$a6*/) _,
+ lateout("$11" /*$a7*/) _,
+ lateout("$12" /*$t0*/) _,
+ lateout("$13" /*$t1*/) _,
+ lateout("$14" /*$t2*/) _,
+ lateout("$15" /*$t3*/) _,
+ lateout("$24" /*$t8*/) _,
+ lateout("$25" /*$t9*/) _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(if err != 0 {
+ (x0 as usize).wrapping_neg() as *mut _
+ } else {
+ x0
+ })
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/arch/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/mod.rs
new file mode 100644
index 0000000..8d675ad
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/mod.rs
@@ -0,0 +1,321 @@
+//! Architecture-specific syscall code.
+//!
+//! This module also has a `choose` submodule which chooses a scheme and is
+//! what most of the `rustix` syscalls use.
+//!
+//! Compilers should really have intrinsics for making system calls. They're
+//! much like regular calls, with custom calling conventions, and calling
+//! conventions are otherwise the compiler's job. But for now, use inline asm.
+//!
+//! The calling conventions for Linux syscalls are [documented here].
+//!
+//! [documented here]: https://man7.org/linux/man-pages/man2/syscall.2.html
+//!
+//! # Safety
+//!
+//! This contains the inline `asm` statements performing the syscall
+//! instructions.
+
+#![allow(unsafe_code)]
+#![cfg_attr(not(feature = "all-apis"), allow(unused_imports))]
+// We'll use as many arguments as syscalls need.
+#![allow(clippy::too_many_arguments)]
+
+// These functions always use the machine's syscall instruction, even when it
+// isn't the fastest option available.
+#[cfg_attr(target_arch = "aarch64", path = "aarch64.rs")]
+#[cfg_attr(all(target_arch = "arm", not(thumb_mode)), path = "arm.rs")]
+#[cfg_attr(all(target_arch = "arm", thumb_mode), path = "thumb.rs")]
+#[cfg_attr(target_arch = "mips", path = "mips.rs")]
+#[cfg_attr(target_arch = "mips32r6", path = "mips32r6.rs")]
+#[cfg_attr(target_arch = "mips64", path = "mips64.rs")]
+#[cfg_attr(target_arch = "mips64r6", path = "mips64r6.rs")]
+#[cfg_attr(target_arch = "powerpc", path = "powerpc.rs")]
+#[cfg_attr(target_arch = "powerpc64", path = "powerpc64.rs")]
+#[cfg_attr(target_arch = "riscv64", path = "riscv64.rs")]
+#[cfg_attr(target_arch = "s390x", path = "s390x.rs")]
+#[cfg_attr(target_arch = "x86", path = "x86.rs")]
+#[cfg_attr(target_arch = "x86_64", path = "x86_64.rs")]
+pub(in crate::backend) mod asm;
+
+// On most architectures, the architecture syscall instruction is fast, so use
+// it directly.
+#[cfg(any(
+ target_arch = "arm",
+ target_arch = "aarch64",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "riscv64",
+ target_arch = "s390x",
+ target_arch = "x86_64",
+))]
+pub(in crate::backend) use self::asm as choose;
+
+// On 32-bit x86, use vDSO wrappers for all syscalls. We could use the
+// architecture syscall instruction (`int 0x80`), but the vDSO
+// `__kernel_vsyscall` mechanism is much faster.
+#[cfg(target_arch = "x86")]
+pub(in crate::backend) use super::vdso_wrappers::x86_via_vdso as choose;
+
+// This would be the code for always using `int 0x80` on 32-bit x86.
+//#[cfg(target_arch = "x86")]
+//pub(in crate::backend) use self::asm as choose;
+
+// Macros for invoking system calls.
+//
+// These factor out:
+// - Calling `nr` on the syscall number to convert it into `SyscallNumber`.
+// - Calling `.into()` on each of the arguments to convert them into `ArgReg`.
+// - Qualifying the `syscall*` and `__NR_*` identifiers.
+// - Counting the number of arguments.
+macro_rules! syscall {
+ ($nr:ident) => {
+ $crate::backend::arch::choose::syscall0($crate::backend::reg::nr(
+ linux_raw_sys::general::$nr,
+ ))
+ };
+
+ ($nr:ident, $a0:expr) => {
+ $crate::backend::arch::choose::syscall1(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr) => {
+ $crate::backend::arch::choose::syscall2(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr, $a2:expr) => {
+ $crate::backend::arch::choose::syscall3(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ $a2.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr, $a2:expr, $a3:expr) => {
+ $crate::backend::arch::choose::syscall4(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ $a2.into(),
+ $a3.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr, $a2:expr, $a3:expr, $a4:expr) => {
+ $crate::backend::arch::choose::syscall5(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ $a2.into(),
+ $a3.into(),
+ $a4.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr, $a2:expr, $a3:expr, $a4:expr, $a5:expr) => {
+ $crate::backend::arch::choose::syscall6(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ $a2.into(),
+ $a3.into(),
+ $a4.into(),
+ $a5.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr, $a2:expr, $a3:expr, $a4:expr, $a5:expr, $a6:expr) => {
+ $crate::backend::arch::choose::syscall7(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ $a2.into(),
+ $a3.into(),
+ $a4.into(),
+ $a5.into(),
+ $a6.into(),
+ )
+ };
+}
+
+// Macro to invoke a syscall that always uses direct assembly, rather than the
+// vDSO. Useful when still finding the vDSO.
+#[allow(unused_macros)]
+macro_rules! syscall_always_asm {
+ ($nr:ident) => {
+ $crate::backend::arch::asm::syscall0($crate::backend::reg::nr(linux_raw_sys::general::$nr))
+ };
+
+ ($nr:ident, $a0:expr) => {
+ $crate::backend::arch::asm::syscall1(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr) => {
+ $crate::backend::arch::asm::syscall2(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr, $a2:expr) => {
+ $crate::backend::arch::asm::syscall3(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ $a2.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr, $a2:expr, $a3:expr) => {
+ $crate::backend::arch::asm::syscall4(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ $a2.into(),
+ $a3.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr, $a2:expr, $a3:expr, $a4:expr) => {
+ $crate::backend::arch::asm::syscall5(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ $a2.into(),
+ $a3.into(),
+ $a4.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr, $a2:expr, $a3:expr, $a4:expr, $a5:expr) => {
+ $crate::backend::arch::asm::syscall6(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ $a2.into(),
+ $a3.into(),
+ $a4.into(),
+ $a5.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr, $a2:expr, $a3:expr, $a4:expr, $a5:expr, $a6:expr) => {
+ $crate::backend::arch::asm::syscall7(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ $a2.into(),
+ $a3.into(),
+ $a4.into(),
+ $a5.into(),
+ $a6.into(),
+ )
+ };
+}
+
+/// Like `syscall`, but adds the `readonly` attribute to the inline asm, which
+/// indicates that the syscall does not mutate any memory.
+macro_rules! syscall_readonly {
+ ($nr:ident) => {
+ $crate::backend::arch::choose::syscall0_readonly($crate::backend::reg::nr(
+ linux_raw_sys::general::$nr,
+ ))
+ };
+
+ ($nr:ident, $a0:expr) => {
+ $crate::backend::arch::choose::syscall1_readonly(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr) => {
+ $crate::backend::arch::choose::syscall2_readonly(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr, $a2:expr) => {
+ $crate::backend::arch::choose::syscall3_readonly(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ $a2.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr, $a2:expr, $a3:expr) => {
+ $crate::backend::arch::choose::syscall4_readonly(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ $a2.into(),
+ $a3.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr, $a2:expr, $a3:expr, $a4:expr) => {
+ $crate::backend::arch::choose::syscall5_readonly(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ $a2.into(),
+ $a3.into(),
+ $a4.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr, $a2:expr, $a3:expr, $a4:expr, $a5:expr) => {
+ $crate::backend::arch::choose::syscall6_readonly(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ $a2.into(),
+ $a3.into(),
+ $a4.into(),
+ $a5.into(),
+ )
+ };
+
+ ($nr:ident, $a0:expr, $a1:expr, $a2:expr, $a3:expr, $a4:expr, $a5:expr, $a6:expr) => {
+ $crate::backend::arch::choose::syscall7_readonly(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ $a1.into(),
+ $a2.into(),
+ $a3.into(),
+ $a4.into(),
+ $a5.into(),
+ $a6.into(),
+ )
+ };
+}
+
+/// Like `syscall`, but indicates that the syscall does not return.
+#[cfg(feature = "runtime")]
+macro_rules! syscall_noreturn {
+ ($nr:ident, $a0:expr) => {
+ $crate::backend::arch::choose::syscall1_noreturn(
+ $crate::backend::reg::nr(linux_raw_sys::general::$nr),
+ $a0.into(),
+ )
+ };
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/arch/powerpc.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/powerpc.rs
new file mode 100644
index 0000000..481b49f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/powerpc.rs
@@ -0,0 +1,414 @@
+//! powerpc Linux system calls.
+//!
+//! On powerpc, Linux indicates success or failure using `cr0.SO` rather
+//! than by returning a negative error code as most other architectures do. In
+//! theory we could immediately translate this into a `Result`, and it'd save a
+//! few branches. And in theory we could have specialized sequences for use
+//! with syscalls that are known to never fail. However, those would require
+//! more extensive changes in rustix's platform-independent code. For now, we
+//! check the flag and negate the error value to make PowerPC look like other
+//! architectures.
+
+use crate::backend::reg::{
+ ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm, A0, A1, A2, A3, A4, A5, R0,
+};
+use core::arch::asm;
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber<'_>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ lateout("r3") r0,
+ lateout("r4") _,
+ lateout("r5") _,
+ lateout("r6") _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ lateout("r4") _,
+ lateout("r5") _,
+ lateout("r6") _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ lateout("r4") _,
+ lateout("r5") _,
+ lateout("r6") _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_noreturn(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> ! {
+ asm!(
+ "sc",
+ "trap",
+ in("r0") nr.to_asm(),
+ in("r3") a0.to_asm(),
+ options(nostack, noreturn)
+ )
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ lateout("r5") _,
+ lateout("r6") _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ lateout("r5") _,
+ lateout("r6") _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ lateout("r6") _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ lateout("r6") _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ inlateout("r6") a3.to_asm() => _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ inlateout("r6") a3.to_asm() => _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ inlateout("r6") a3.to_asm() => _,
+ inlateout("r7") a4.to_asm() => _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ inlateout("r6") a3.to_asm() => _,
+ inlateout("r7") a4.to_asm() => _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ inlateout("r6") a3.to_asm() => _,
+ inlateout("r7") a4.to_asm() => _,
+ inlateout("r8") a5.to_asm() => _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ inlateout("r6") a3.to_asm() => _,
+ inlateout("r7") a4.to_asm() => _,
+ inlateout("r8") a5.to_asm() => _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/arch/powerpc64.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/powerpc64.rs
new file mode 100644
index 0000000..f21ed6a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/powerpc64.rs
@@ -0,0 +1,414 @@
+//! powerpc64le Linux system calls.
+//!
+//! On powerpc64le, Linux indicates success or failure using `cr0.SO` rather
+//! than by returning a negative error code as most other architectures do. In
+//! theory we could immediately translate this into a `Result`, and it'd save a
+//! few branches. And in theory we could have specialized sequences for use
+//! with syscalls that are known to never fail. However, those would require
+//! more extensive changes in rustix's platform-independent code. For now, we
+//! check the flag and negate the error value to make PowerPC64 look like other
+//! architectures.
+
+use crate::backend::reg::{
+ ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm as _, A0, A1, A2, A3, A4, A5, R0,
+};
+use core::arch::asm;
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber<'_>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ lateout("r3") r0,
+ lateout("r4") _,
+ lateout("r5") _,
+ lateout("r6") _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ lateout("r4") _,
+ lateout("r5") _,
+ lateout("r6") _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ lateout("r4") _,
+ lateout("r5") _,
+ lateout("r6") _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_noreturn(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> ! {
+ asm!(
+ "sc",
+ "trap",
+ in("r0") nr.to_asm(),
+ in("r3") a0.to_asm(),
+ options(nostack, noreturn)
+ )
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ lateout("r5") _,
+ lateout("r6") _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ lateout("r5") _,
+ lateout("r6") _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ lateout("r6") _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ lateout("r6") _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ inlateout("r6") a3.to_asm() => _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ inlateout("r6") a3.to_asm() => _,
+ lateout("r7") _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ inlateout("r6") a3.to_asm() => _,
+ inlateout("r7") a4.to_asm() => _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ inlateout("r6") a3.to_asm() => _,
+ inlateout("r7") a4.to_asm() => _,
+ lateout("r8") _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ inlateout("r6") a3.to_asm() => _,
+ inlateout("r7") a4.to_asm() => _,
+ inlateout("r8") a5.to_asm() => _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "sc",
+ "bns 0f",
+ "neg 3, 3",
+ "0:",
+ inlateout("r0") nr.to_asm() => _,
+ inlateout("r3") a0.to_asm() => r0,
+ inlateout("r4") a1.to_asm() => _,
+ inlateout("r5") a2.to_asm() => _,
+ inlateout("r6") a3.to_asm() => _,
+ inlateout("r7") a4.to_asm() => _,
+ inlateout("r8") a5.to_asm() => _,
+ lateout("r9") _,
+ lateout("r10") _,
+ lateout("r11") _,
+ lateout("r12") _,
+ lateout("cr0") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/arch/riscv64.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/riscv64.rs
new file mode 100644
index 0000000..512657a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/riscv64.rs
@@ -0,0 +1,266 @@
+//! riscv64 Linux system calls.
+
+use crate::backend::reg::{
+ ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm as _, A0, A1, A2, A3, A4, A5, R0,
+};
+use core::arch::asm;
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber<'_>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "ecall",
+ in("a7") nr.to_asm(),
+ lateout("a0") r0,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "ecall",
+ in("a7") nr.to_asm(),
+ inlateout("a0") a0.to_asm() => r0,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "ecall",
+ in("a7") nr.to_asm(),
+ inlateout("a0") a0.to_asm() => r0,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_noreturn(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> ! {
+ asm!(
+ "ecall",
+ "unimp",
+ in("a7") nr.to_asm(),
+ in("a0") a0.to_asm(),
+ options(nostack, noreturn)
+ );
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "ecall",
+ in("a7") nr.to_asm(),
+ inlateout("a0") a0.to_asm() => r0,
+ in("a1") a1.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "ecall",
+ in("a7") nr.to_asm(),
+ inlateout("a0") a0.to_asm() => r0,
+ in("a1") a1.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "ecall",
+ in("a7") nr.to_asm(),
+ inlateout("a0") a0.to_asm() => r0,
+ in("a1") a1.to_asm(),
+ in("a2") a2.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "ecall",
+ in("a7") nr.to_asm(),
+ inlateout("a0") a0.to_asm() => r0,
+ in("a1") a1.to_asm(),
+ in("a2") a2.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "ecall",
+ in("a7") nr.to_asm(),
+ inlateout("a0") a0.to_asm() => r0,
+ in("a1") a1.to_asm(),
+ in("a2") a2.to_asm(),
+ in("a3") a3.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "ecall",
+ in("a7") nr.to_asm(),
+ inlateout("a0") a0.to_asm() => r0,
+ in("a1") a1.to_asm(),
+ in("a2") a2.to_asm(),
+ in("a3") a3.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "ecall",
+ in("a7") nr.to_asm(),
+ inlateout("a0") a0.to_asm() => r0,
+ in("a1") a1.to_asm(),
+ in("a2") a2.to_asm(),
+ in("a3") a3.to_asm(),
+ in("a4") a4.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "ecall",
+ in("a7") nr.to_asm(),
+ inlateout("a0") a0.to_asm() => r0,
+ in("a1") a1.to_asm(),
+ in("a2") a2.to_asm(),
+ in("a3") a3.to_asm(),
+ in("a4") a4.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "ecall",
+ in("a7") nr.to_asm(),
+ inlateout("a0") a0.to_asm() => r0,
+ in("a1") a1.to_asm(),
+ in("a2") a2.to_asm(),
+ in("a3") a3.to_asm(),
+ in("a4") a4.to_asm(),
+ in("a5") a5.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "ecall",
+ in("a7") nr.to_asm(),
+ inlateout("a0") a0.to_asm() => r0,
+ in("a1") a1.to_asm(),
+ in("a2") a2.to_asm(),
+ in("a3") a3.to_asm(),
+ in("a4") a4.to_asm(),
+ in("a5") a5.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/arch/s390x.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/s390x.rs
new file mode 100644
index 0000000..5d6e14f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/s390x.rs
@@ -0,0 +1,288 @@
+//! s390x Linux system calls.
+
+use crate::backend::reg::{
+ ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm as _, A0, A1, A2, A3, A4, A5, R0,
+};
+use core::arch::asm;
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber<'_>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r1") nr.to_asm(),
+ lateout("r2") r0,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r1") nr.to_asm(),
+ inlateout("r2") a0.to_asm() => r0,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r1") nr.to_asm(),
+ inlateout("r2") a0.to_asm() => r0,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_noreturn(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> ! {
+ asm!(
+ "svc 0",
+ "j .+2",
+ in("r1") nr.to_asm(),
+ in("r2") a0.to_asm(),
+ options(nostack, noreturn)
+ )
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r1") nr.to_asm(),
+ inlateout("r2") a0.to_asm() => r0,
+ in("r3") a1.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r1") nr.to_asm(),
+ inlateout("r2") a0.to_asm() => r0,
+ in("r3") a1.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r1") nr.to_asm(),
+ inlateout("r2") a0.to_asm() => r0,
+ in("r3") a1.to_asm(),
+ in("r4") a2.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r1") nr.to_asm(),
+ inlateout("r2") a0.to_asm() => r0,
+ in("r3") a1.to_asm(),
+ in("r4") a2.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r1") nr.to_asm(),
+ inlateout("r2") a0.to_asm() => r0,
+ in("r3") a1.to_asm(),
+ in("r4") a2.to_asm(),
+ in("r5") a3.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r1") nr.to_asm(),
+ inlateout("r2") a0.to_asm() => r0,
+ in("r3") a1.to_asm(),
+ in("r4") a2.to_asm(),
+ in("r5") a3.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r1") nr.to_asm(),
+ inlateout("r2") a0.to_asm() => r0,
+ in("r3") a1.to_asm(),
+ in("r4") a2.to_asm(),
+ in("r5") a3.to_asm(),
+ in("r6") a4.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "svc 0",
+ in("r1") nr.to_asm(),
+ inlateout("r2") a0.to_asm() => r0,
+ in("r3") a1.to_asm(),
+ in("r4") a2.to_asm(),
+ in("r5") a3.to_asm(),
+ in("r6") a4.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ if nr.nr == linux_raw_sys::general::__NR_mmap as usize {
+ let mut a = [
+ a0.to_asm(),
+ a1.to_asm(),
+ a2.to_asm(),
+ a3.to_asm(),
+ a4.to_asm(),
+ a5.to_asm(),
+ ];
+ return syscall1(nr, a.as_mut_ptr().into());
+ }
+ let r0;
+ asm!(
+ "svc 0",
+ in("r1") nr.to_asm(),
+ inlateout("r2") a0.to_asm() => r0,
+ in("r3") a1.to_asm(),
+ in("r4") a2.to_asm(),
+ in("r5") a3.to_asm(),
+ in("r6") a4.to_asm(),
+ in("r7") a5.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ if nr.nr == linux_raw_sys::general::__NR_mmap as usize {
+ let a = [
+ a0.to_asm(),
+ a1.to_asm(),
+ a2.to_asm(),
+ a3.to_asm(),
+ a4.to_asm(),
+ a5.to_asm(),
+ ];
+ return syscall1_readonly(nr, a.as_ptr().into());
+ }
+ let r0;
+ asm!(
+ "svc 0",
+ in("r1") nr.to_asm(),
+ inlateout("r2") a0.to_asm() => r0,
+ in("r3") a1.to_asm(),
+ in("r4") a2.to_asm(),
+ in("r5") a3.to_asm(),
+ in("r6") a4.to_asm(),
+ in("r7") a5.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/arch/thumb.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/thumb.rs
new file mode 100644
index 0000000..0989430
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/thumb.rs
@@ -0,0 +1,323 @@
+//! arm Linux system calls, using thumb-mode.
+//!
+//! In thumb-mode, r7 is the frame pointer and is not permitted to be used in
+//! an inline asm operand, so we have to use a different register and copy it
+//! into r7 inside the inline asm.
+
+use crate::backend::reg::{
+ ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm as _, A0, A1, A2, A3, A4, A5, R0,
+};
+use core::arch::asm;
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber<'_>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "mov {tmp}, r7",
+ "mov r7, {nr}",
+ "svc 0",
+ "mov r7, {tmp}",
+ nr = in(reg) nr.to_asm(),
+ tmp = out(reg) _,
+ lateout("r0") r0,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "mov {tmp}, r7",
+ "mov r7, {nr}",
+ "svc 0",
+ "mov r7, {tmp}",
+ nr = in(reg) nr.to_asm(),
+ tmp = out(reg) _,
+ inlateout("r0") a0.to_asm() => r0,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "mov {tmp}, r7",
+ "mov r7, {nr}",
+ "svc 0",
+ "mov r7, {tmp}",
+ nr = in(reg) nr.to_asm(),
+ tmp = out(reg) _,
+ inlateout("r0") a0.to_asm() => r0,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_noreturn(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> ! {
+ asm!(
+ "mov r7, {nr}",
+ "svc 0",
+ "udf #16",
+ nr = in(reg) nr.to_asm(),
+ in("r0") a0.to_asm(),
+ options(nostack, noreturn)
+ )
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "mov {tmp}, r7",
+ "mov r7, {nr}",
+ "svc 0",
+ "mov r7, {tmp}",
+ nr = in(reg) nr.to_asm(),
+ tmp = out(reg) _,
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "mov {tmp}, r7",
+ "mov r7, {nr}",
+ "svc 0",
+ "mov r7, {tmp}",
+ nr = in(reg) nr.to_asm(),
+ tmp = out(reg) _,
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "mov {tmp}, r7",
+ "mov r7, {nr}",
+ "svc 0",
+ "mov r7, {tmp}",
+ nr = in(reg) nr.to_asm(),
+ tmp = out(reg) _,
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "mov {tmp}, r7",
+ "mov r7, {nr}",
+ "svc 0",
+ "mov r7, {tmp}",
+ nr = in(reg) nr.to_asm(),
+ tmp = out(reg) _,
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "mov {tmp}, r7",
+ "mov r7, {nr}",
+ "svc 0",
+ "mov r7, {tmp}",
+ nr = in(reg) nr.to_asm(),
+ tmp = out(reg) _,
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ in("r3") a3.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "mov {tmp}, r7",
+ "mov r7, {nr}",
+ "svc 0",
+ "mov r7, {tmp}",
+ nr = in(reg) nr.to_asm(),
+ tmp = out(reg) _,
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ in("r3") a3.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "mov {tmp}, r7",
+ "mov r7, {nr}",
+ "svc 0",
+ "mov r7, {tmp}",
+ nr = in(reg) nr.to_asm(),
+ tmp = out(reg) _,
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ in("r3") a3.to_asm(),
+ in("r4") a4.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "mov {tmp}, r7",
+ "mov r7, {nr}",
+ "svc 0",
+ "mov r7, {tmp}",
+ nr = in(reg) nr.to_asm(),
+ tmp = out(reg) _,
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ in("r3") a3.to_asm(),
+ in("r4") a4.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "mov {tmp}, r7",
+ "mov r7, {nr}",
+ "svc 0",
+ "mov r7, {tmp}",
+ nr = in(reg) nr.to_asm(),
+ tmp = out(reg) _,
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ in("r3") a3.to_asm(),
+ in("r4") a4.to_asm(),
+ in("r5") a5.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "mov {tmp}, r7",
+ "mov r7, {nr}",
+ "svc 0",
+ "mov r7, {tmp}",
+ nr = in(reg) nr.to_asm(),
+ tmp = out(reg) _,
+ inlateout("r0") a0.to_asm() => r0,
+ in("r1") a1.to_asm(),
+ in("r2") a2.to_asm(),
+ in("r3") a3.to_asm(),
+ in("r4") a4.to_asm(),
+ in("r5") a5.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/arch/x86.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/x86.rs
new file mode 100644
index 0000000..9537641
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/x86.rs
@@ -0,0 +1,492 @@
+//! 32-bit x86 Linux system calls.
+//!
+//! There are two forms; `indirect_*` which take a callee, which allow calling
+//! through the vDSO when possible, and plain forms, which use the `int 0x80`
+//! instruction.
+//!
+//! Most `rustix` syscalls use the vsyscall mechanism rather than going using
+//! `int 0x80` sequences, as vsyscall is much faster.
+//!
+//! Syscalls made with `int 0x80` preserve the flags register, while syscalls
+//! made using vsyscall do not.
+
+#![allow(dead_code)]
+
+use crate::backend::reg::{
+ ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm as _, A0, A1, A2, A3, A4, A5, R0,
+};
+use crate::backend::vdso_wrappers::SyscallType;
+use core::arch::asm;
+
+#[inline]
+pub(in crate::backend) unsafe fn indirect_syscall0(
+ callee: SyscallType,
+ nr: SyscallNumber<'_>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "call {callee}",
+ callee = in(reg) callee,
+ inlateout("eax") nr.to_asm() => r0,
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn indirect_syscall1(
+ callee: SyscallType,
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "call {callee}",
+ callee = in(reg) callee,
+ inlateout("eax") nr.to_asm() => r0,
+ in("ebx") a0.to_asm(),
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn indirect_syscall1_noreturn(
+ callee: SyscallType,
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+) -> ! {
+ asm!(
+ "call {callee}",
+ "ud2",
+ callee = in(reg) callee,
+ in("eax") nr.to_asm(),
+ in("ebx") a0.to_asm(),
+ options(noreturn)
+ )
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn indirect_syscall2(
+ callee: SyscallType,
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "call {callee}",
+ callee = in(reg) callee,
+ inlateout("eax") nr.to_asm() => r0,
+ in("ebx") a0.to_asm(),
+ in("ecx") a1.to_asm(),
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn indirect_syscall3(
+ callee: SyscallType,
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "call {callee}",
+ callee = in(reg) callee,
+ inlateout("eax") nr.to_asm() => r0,
+ in("ebx") a0.to_asm(),
+ in("ecx") a1.to_asm(),
+ in("edx") a2.to_asm(),
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn indirect_syscall4(
+ callee: SyscallType,
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ // a3 should go in esi, but `asm!` won't let us use it as an operand.
+ // Temporarily swap it into place, and then swap it back afterward.
+ //
+ // We hard-code the callee operand to use edi instead of `in(reg)` because
+ // even though we can't name esi as an operand, the compiler can use esi to
+ // satisfy `in(reg)`.
+ asm!(
+ "xchg esi, {a3}",
+ "call edi",
+ "xchg esi, {a3}",
+ a3 = in(reg) a3.to_asm(),
+ in("edi") callee,
+ inlateout("eax") nr.to_asm() => r0,
+ in("ebx") a0.to_asm(),
+ in("ecx") a1.to_asm(),
+ in("edx") a2.to_asm(),
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn indirect_syscall5(
+ callee: SyscallType,
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ // Oof. a3 should go in esi, and `asm!` won't let us use that register as
+ // an operand. And we can't request stack slots. And there are no other
+ // registers free. Use eax as a temporary pointer to a slice, since it gets
+ // clobbered as the return value anyway.
+ asm!(
+ "push esi",
+ "push [eax + 0]",
+ "mov esi, [eax + 4]",
+ "mov eax, [eax + 8]",
+ "call [esp]",
+ "pop esi",
+ "pop esi",
+ inout("eax") &[callee as _, a3.to_asm(), nr.to_asm()] => r0,
+ in("ebx") a0.to_asm(),
+ in("ecx") a1.to_asm(),
+ in("edx") a2.to_asm(),
+ in("edi") a4.to_asm(),
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn indirect_syscall6(
+ callee: SyscallType,
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ // Oof again. a3 should go in esi, and a5 should go in ebp, and `asm!`
+ // won't let us use either of those registers as operands. And we can't
+ // request stack slots. And there are no other registers free. Use eax as a
+ // temporary pointer to a slice, since it gets clobbered as the return
+ // value anyway.
+ //
+ // This is another reason that syscalls should be compiler intrinsics
+ // rather than inline asm.
+ asm!(
+ "push ebp",
+ "push esi",
+ "push [eax + 0]",
+ "mov esi, [eax + 4]",
+ "mov ebp, [eax + 8]",
+ "mov eax, [eax + 12]",
+ "call [esp]",
+ "pop esi",
+ "pop esi",
+ "pop ebp",
+ inout("eax") &[callee as _, a3.to_asm(), a5.to_asm(), nr.to_asm()] => r0,
+ in("ebx") a0.to_asm(),
+ in("ecx") a1.to_asm(),
+ in("edx") a2.to_asm(),
+ in("edi") a4.to_asm(),
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber<'_>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "int $$0x80",
+ inlateout("eax") nr.to_asm() => r0,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "int $$0x80",
+ inlateout("eax") nr.to_asm() => r0,
+ in("ebx") a0.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "int $$0x80",
+ inlateout("eax") nr.to_asm() => r0,
+ in("ebx") a0.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_noreturn(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> ! {
+ asm!(
+ "int $$0x80",
+ "ud2",
+ in("eax") nr.to_asm(),
+ in("ebx") a0.to_asm(),
+ options(nostack, noreturn)
+ )
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "int $$0x80",
+ inlateout("eax") nr.to_asm() => r0,
+ in("ebx") a0.to_asm(),
+ in("ecx") a1.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "int $$0x80",
+ inlateout("eax") nr.to_asm() => r0,
+ in("ebx") a0.to_asm(),
+ in("ecx") a1.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "int $$0x80",
+ inlateout("eax") nr.to_asm() => r0,
+ in("ebx") a0.to_asm(),
+ in("ecx") a1.to_asm(),
+ in("edx") a2.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "int $$0x80",
+ inlateout("eax") nr.to_asm() => r0,
+ in("ebx") a0.to_asm(),
+ in("ecx") a1.to_asm(),
+ in("edx") a2.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ // a3 should go in esi, but `asm!` won't let us use it as an operand.
+ // Temporarily swap it into place, and then swap it back afterward.
+ asm!(
+ "xchg esi, {a3}",
+ "int $$0x80",
+ "xchg esi, {a3}",
+ a3 = in(reg) a3.to_asm(),
+ inlateout("eax") nr.to_asm() => r0,
+ in("ebx") a0.to_asm(),
+ in("ecx") a1.to_asm(),
+ in("edx") a2.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ // See the comments in `syscall4`.
+ asm!(
+ "xchg esi, {a3}",
+ "int $$0x80",
+ "xchg esi, {a3}",
+ a3 = in(reg) a3.to_asm(),
+ inlateout("eax") nr.to_asm() => r0,
+ in("ebx") a0.to_asm(),
+ in("ecx") a1.to_asm(),
+ in("edx") a2.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ // As in `syscall4`, use xchg to handle a3. a4 should go in edi, and we can
+ // use that register as an operand. Unlike in `indirect_syscall5`, we don't
+ // have a `callee` operand taking up a register, so we have enough
+ // registers and don't need to use a slice.
+ asm!(
+ "xchg esi, {a3}",
+ "int $$0x80",
+ "xchg esi, {a3}",
+ a3 = in(reg) a3.to_asm(),
+ inlateout("eax") nr.to_asm() => r0,
+ in("ebx") a0.to_asm(),
+ in("ecx") a1.to_asm(),
+ in("edx") a2.to_asm(),
+ in("edi") a4.to_asm(),
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ // See the comments in `syscall5`.
+ asm!(
+ "xchg esi, {a3}",
+ "int $$0x80",
+ "xchg esi, {a3}",
+ a3 = in(reg) a3.to_asm(),
+ inlateout("eax") nr.to_asm() => r0,
+ in("ebx") a0.to_asm(),
+ in("ecx") a1.to_asm(),
+ in("edx") a2.to_asm(),
+ in("edi") a4.to_asm(),
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ // See the comments in `indirect_syscall6`.
+ asm!(
+ "push ebp",
+ "push esi",
+ "mov esi, [eax + 0]",
+ "mov ebp, [eax + 4]",
+ "mov eax, [eax + 8]",
+ "int $$0x80",
+ "pop esi",
+ "pop ebp",
+ inout("eax") &[a3.to_asm(), a5.to_asm(), nr.to_asm()] => r0,
+ in("ebx") a0.to_asm(),
+ in("ecx") a1.to_asm(),
+ in("edx") a2.to_asm(),
+ in("edi") a4.to_asm(),
+ options(preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ // See the comments in `indirect_syscall6`.
+ asm!(
+ "push ebp",
+ "push esi",
+ "mov esi, [eax + 0]",
+ "mov ebp, [eax + 4]",
+ "mov eax, [eax + 8]",
+ "int $$0x80",
+ "pop esi",
+ "pop ebp",
+ inout("eax") &[a3.to_asm(), a5.to_asm(), nr.to_asm()] => r0,
+ in("ebx") a0.to_asm(),
+ in("ecx") a1.to_asm(),
+ in("edx") a2.to_asm(),
+ in("edi") a4.to_asm(),
+ options(preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/arch/x86_64.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/x86_64.rs
new file mode 100644
index 0000000..6d105c0
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/arch/x86_64.rs
@@ -0,0 +1,294 @@
+//! x86-64 Linux system calls.
+
+use crate::backend::reg::{
+ ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm as _, A0, A1, A2, A3, A4, A5, R0,
+};
+use core::arch::asm;
+
+#[cfg(target_pointer_width = "32")]
+compile_error!("x32 is not yet supported");
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber<'_>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "syscall",
+ inlateout("rax") nr.to_asm() => r0,
+ lateout("rcx") _,
+ lateout("r11") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "syscall",
+ inlateout("rax") nr.to_asm() => r0,
+ in("rdi") a0.to_asm(),
+ lateout("rcx") _,
+ lateout("r11") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "syscall",
+ inlateout("rax") nr.to_asm() => r0,
+ in("rdi") a0.to_asm(),
+ lateout("rcx") _,
+ lateout("r11") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall1_noreturn(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> ! {
+ asm!(
+ "syscall",
+ "ud2",
+ in("rax") nr.to_asm(),
+ in("rdi") a0.to_asm(),
+ options(nostack, noreturn)
+ )
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "syscall",
+ inlateout("rax") nr.to_asm() => r0,
+ in("rdi") a0.to_asm(),
+ in("rsi") a1.to_asm(),
+ lateout("rcx") _,
+ lateout("r11") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall2_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "syscall",
+ inlateout("rax") nr.to_asm() => r0,
+ in("rdi") a0.to_asm(),
+ in("rsi") a1.to_asm(),
+ lateout("rcx") _,
+ lateout("r11") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "syscall",
+ inlateout("rax") nr.to_asm() => r0,
+ in("rdi") a0.to_asm(),
+ in("rsi") a1.to_asm(),
+ in("rdx") a2.to_asm(),
+ lateout("rcx") _,
+ lateout("r11") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall3_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "syscall",
+ inlateout("rax") nr.to_asm() => r0,
+ in("rdi") a0.to_asm(),
+ in("rsi") a1.to_asm(),
+ in("rdx") a2.to_asm(),
+ lateout("rcx") _,
+ lateout("r11") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "syscall",
+ inlateout("rax") nr.to_asm() => r0,
+ in("rdi") a0.to_asm(),
+ in("rsi") a1.to_asm(),
+ in("rdx") a2.to_asm(),
+ in("r10") a3.to_asm(),
+ lateout("rcx") _,
+ lateout("r11") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall4_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "syscall",
+ inlateout("rax") nr.to_asm() => r0,
+ in("rdi") a0.to_asm(),
+ in("rsi") a1.to_asm(),
+ in("rdx") a2.to_asm(),
+ in("r10") a3.to_asm(),
+ lateout("rcx") _,
+ lateout("r11") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "syscall",
+ inlateout("rax") nr.to_asm() => r0,
+ in("rdi") a0.to_asm(),
+ in("rsi") a1.to_asm(),
+ in("rdx") a2.to_asm(),
+ in("r10") a3.to_asm(),
+ in("r8") a4.to_asm(),
+ lateout("rcx") _,
+ lateout("r11") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall5_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "syscall",
+ inlateout("rax") nr.to_asm() => r0,
+ in("rdi") a0.to_asm(),
+ in("rsi") a1.to_asm(),
+ in("rdx") a2.to_asm(),
+ in("r10") a3.to_asm(),
+ in("r8") a4.to_asm(),
+ lateout("rcx") _,
+ lateout("r11") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "syscall",
+ inlateout("rax") nr.to_asm() => r0,
+ in("rdi") a0.to_asm(),
+ in("rsi") a1.to_asm(),
+ in("rdx") a2.to_asm(),
+ in("r10") a3.to_asm(),
+ in("r8") a4.to_asm(),
+ in("r9") a5.to_asm(),
+ lateout("rcx") _,
+ lateout("r11") _,
+ options(nostack, preserves_flags)
+ );
+ FromAsm::from_asm(r0)
+}
+
+#[inline]
+pub(in crate::backend) unsafe fn syscall6_readonly(
+ nr: SyscallNumber<'_>,
+ a0: ArgReg<'_, A0>,
+ a1: ArgReg<'_, A1>,
+ a2: ArgReg<'_, A2>,
+ a3: ArgReg<'_, A3>,
+ a4: ArgReg<'_, A4>,
+ a5: ArgReg<'_, A5>,
+) -> RetReg<R0> {
+ let r0;
+ asm!(
+ "syscall",
+ inlateout("rax") nr.to_asm() => r0,
+ in("rdi") a0.to_asm(),
+ in("rsi") a1.to_asm(),
+ in("rdx") a2.to_asm(),
+ in("r10") a3.to_asm(),
+ in("r8") a4.to_asm(),
+ in("r9") a5.to_asm(),
+ lateout("rcx") _,
+ lateout("r11") _,
+ options(nostack, preserves_flags, readonly)
+ );
+ FromAsm::from_asm(r0)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/c.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/c.rs
new file mode 100644
index 0000000..755dadc
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/c.rs
@@ -0,0 +1,385 @@
+//! Adapt the Linux API to resemble a POSIX-style libc API.
+//!
+//! The linux_raw backend doesn't use actual libc; this just defines certain
+//! types that are convenient to have defined.
+
+#![allow(unused_imports)]
+#![allow(non_camel_case_types)]
+
+pub(crate) type size_t = usize;
+pub(crate) use linux_raw_sys::ctypes::*;
+pub(crate) use linux_raw_sys::errno::{EBADF, EINVAL};
+pub(crate) use linux_raw_sys::general::{__kernel_fd_set as fd_set, __FD_SETSIZE as FD_SETSIZE};
+pub(crate) use linux_raw_sys::ioctl::{FIONBIO, FIONREAD};
+// Import the kernel's `uid_t` and `gid_t` if they're 32-bit.
+#[cfg(feature = "thread")]
+pub(crate) use linux_raw_sys::general::futex_waitv;
+#[cfg(not(any(target_arch = "arm", target_arch = "sparc", target_arch = "x86")))]
+pub(crate) use linux_raw_sys::general::{__kernel_gid_t as gid_t, __kernel_uid_t as uid_t};
+pub(crate) use linux_raw_sys::general::{
+ __kernel_pid_t as pid_t, __kernel_time64_t as time_t, __kernel_timespec as timespec, iovec,
+ O_CLOEXEC, O_NOCTTY, O_NONBLOCK, O_RDWR,
+};
+#[cfg(feature = "system")]
+pub(crate) use linux_raw_sys::system::sysinfo;
+
+#[cfg(feature = "fs")]
+#[cfg(target_arch = "x86")]
+#[cfg(test)]
+pub(crate) use linux_raw_sys::general::stat64;
+#[cfg(feature = "fs")]
+#[cfg(test)]
+pub(crate) use linux_raw_sys::general::{
+ __kernel_fsid_t as fsid_t, stat, statfs64, statx, statx_timestamp,
+};
+
+#[cfg(feature = "event")]
+#[cfg(test)]
+pub(crate) use linux_raw_sys::general::epoll_event;
+
+#[cfg(feature = "mm")]
+mod mm {
+ pub(crate) use linux_raw_sys::general::{MAP_HUGETLB, MAP_HUGE_SHIFT};
+}
+#[cfg(feature = "mm")]
+pub(crate) use mm::*;
+
+#[cfg(any(
+ feature = "fs",
+ all(
+ not(feature = "use-libc-auxv"),
+ not(feature = "use-explicitly-provided-auxv"),
+ any(
+ feature = "param",
+ feature = "runtime",
+ feature = "thread",
+ feature = "time",
+ target_arch = "x86",
+ )
+ )
+))]
+pub(crate) use linux_raw_sys::general::{
+ AT_FDCWD, NFS_SUPER_MAGIC, O_LARGEFILE, PROC_SUPER_MAGIC, UTIME_NOW, UTIME_OMIT, XATTR_CREATE,
+ XATTR_REPLACE,
+};
+
+pub(crate) use linux_raw_sys::ioctl::{BLKPBSZGET, BLKSSZGET, FICLONE};
+#[cfg(target_pointer_width = "32")]
+pub(crate) use linux_raw_sys::ioctl::{FS_IOC32_GETFLAGS, FS_IOC32_SETFLAGS};
+#[cfg(target_pointer_width = "64")]
+pub(crate) use linux_raw_sys::ioctl::{FS_IOC_GETFLAGS, FS_IOC_SETFLAGS};
+
+#[cfg(feature = "io_uring")]
+pub(crate) use linux_raw_sys::{general::open_how, io_uring::*};
+
+#[cfg(feature = "net")]
+pub(crate) use linux_raw_sys::{
+ cmsg_macros::*,
+ general::{O_CLOEXEC as SOCK_CLOEXEC, O_NONBLOCK as SOCK_NONBLOCK},
+ if_ether::*,
+ net::{
+ __kernel_sa_family_t as sa_family_t, __kernel_sockaddr_storage as sockaddr_storage,
+ cmsghdr, in6_addr, in_addr, ip_mreq, ip_mreq_source, ip_mreqn, ipv6_mreq, linger, mmsghdr,
+ msghdr, sockaddr, sockaddr_in, sockaddr_in6, sockaddr_un, socklen_t, AF_DECnet,
+ AF_APPLETALK, AF_ASH, AF_ATMPVC, AF_ATMSVC, AF_AX25, AF_BLUETOOTH, AF_BRIDGE, AF_CAN,
+ AF_ECONET, AF_IEEE802154, AF_INET, AF_INET6, AF_IPX, AF_IRDA, AF_ISDN, AF_IUCV, AF_KEY,
+ AF_LLC, AF_NETBEUI, AF_NETLINK, AF_NETROM, AF_PACKET, AF_PHONET, AF_PPPOX, AF_RDS, AF_ROSE,
+ AF_RXRPC, AF_SECURITY, AF_SNA, AF_TIPC, AF_UNIX, AF_UNSPEC, AF_WANPIPE, AF_X25, AF_XDP,
+ IP6T_SO_ORIGINAL_DST, IPPROTO_FRAGMENT, IPPROTO_ICMPV6, IPPROTO_MH, IPPROTO_ROUTING,
+ IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP, IPV6_FREEBIND, IPV6_MULTICAST_HOPS,
+ IPV6_MULTICAST_LOOP, IPV6_RECVTCLASS, IPV6_TCLASS, IPV6_UNICAST_HOPS, IPV6_V6ONLY,
+ IP_ADD_MEMBERSHIP, IP_ADD_SOURCE_MEMBERSHIP, IP_DROP_MEMBERSHIP, IP_DROP_SOURCE_MEMBERSHIP,
+ IP_FREEBIND, IP_MULTICAST_LOOP, IP_MULTICAST_TTL, IP_RECVTOS, IP_TOS, IP_TTL,
+ MSG_CMSG_CLOEXEC, MSG_CONFIRM, MSG_CTRUNC, MSG_DONTROUTE, MSG_DONTWAIT, MSG_EOR,
+ MSG_ERRQUEUE, MSG_MORE, MSG_NOSIGNAL, MSG_OOB, MSG_PEEK, MSG_TRUNC, MSG_WAITALL,
+ SCM_CREDENTIALS, SCM_RIGHTS, SHUT_RD, SHUT_RDWR, SHUT_WR, SOCK_DGRAM, SOCK_RAW, SOCK_RDM,
+ SOCK_SEQPACKET, SOCK_STREAM, SOL_SOCKET, SOL_XDP, SO_ACCEPTCONN, SO_BROADCAST, SO_COOKIE,
+ SO_DOMAIN, SO_ERROR, SO_INCOMING_CPU, SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE,
+ SO_ORIGINAL_DST, SO_PASSCRED, SO_PROTOCOL, SO_RCVBUF, SO_RCVBUFFORCE, SO_RCVTIMEO_NEW,
+ SO_RCVTIMEO_NEW as SO_RCVTIMEO, SO_RCVTIMEO_OLD, SO_REUSEADDR, SO_REUSEPORT, SO_SNDBUF,
+ SO_SNDBUFFORCE, SO_SNDTIMEO_NEW, SO_SNDTIMEO_NEW as SO_SNDTIMEO, SO_SNDTIMEO_OLD, SO_TYPE,
+ TCP_CONGESTION, TCP_CORK, TCP_KEEPCNT, TCP_KEEPIDLE, TCP_KEEPINTVL, TCP_NODELAY,
+ TCP_QUICKACK, TCP_THIN_LINEAR_TIMEOUTS, TCP_USER_TIMEOUT,
+ },
+ netlink::*,
+ xdp::{
+ sockaddr_xdp, xdp_desc, xdp_mmap_offsets, xdp_mmap_offsets_v1, xdp_options,
+ xdp_ring_offset, xdp_ring_offset_v1, xdp_statistics, xdp_statistics_v1, xdp_umem_reg,
+ xdp_umem_reg_v1, XDP_COPY, XDP_MMAP_OFFSETS, XDP_OPTIONS, XDP_OPTIONS_ZEROCOPY,
+ XDP_PGOFF_RX_RING, XDP_PGOFF_TX_RING, XDP_PKT_CONTD, XDP_RING_NEED_WAKEUP, XDP_RX_RING,
+ XDP_SHARED_UMEM, XDP_STATISTICS, XDP_TX_RING, XDP_UMEM_COMPLETION_RING, XDP_UMEM_FILL_RING,
+ XDP_UMEM_PGOFF_COMPLETION_RING, XDP_UMEM_PGOFF_FILL_RING, XDP_UMEM_REG,
+ XDP_UMEM_UNALIGNED_CHUNK_FLAG, XDP_USE_NEED_WAKEUP, XDP_USE_SG, XDP_ZEROCOPY,
+ XSK_UNALIGNED_BUF_ADDR_MASK, XSK_UNALIGNED_BUF_OFFSET_SHIFT,
+ },
+};
+
+// Cast away bindgen's `enum` type to make these consistent with the other
+// `setsockopt`/`getsockopt` level values.
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_IP: u32 = linux_raw_sys::net::IPPROTO_IP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_ICMP: u32 = linux_raw_sys::net::IPPROTO_ICMP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_IGMP: u32 = linux_raw_sys::net::IPPROTO_IGMP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_IPIP: u32 = linux_raw_sys::net::IPPROTO_IPIP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_TCP: u32 = linux_raw_sys::net::IPPROTO_TCP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_EGP: u32 = linux_raw_sys::net::IPPROTO_EGP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_PUP: u32 = linux_raw_sys::net::IPPROTO_PUP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_UDP: u32 = linux_raw_sys::net::IPPROTO_UDP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_IDP: u32 = linux_raw_sys::net::IPPROTO_IDP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_TP: u32 = linux_raw_sys::net::IPPROTO_TP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_DCCP: u32 = linux_raw_sys::net::IPPROTO_DCCP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_IPV6: u32 = linux_raw_sys::net::IPPROTO_IPV6 as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_RSVP: u32 = linux_raw_sys::net::IPPROTO_RSVP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_GRE: u32 = linux_raw_sys::net::IPPROTO_GRE as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_ESP: u32 = linux_raw_sys::net::IPPROTO_ESP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_AH: u32 = linux_raw_sys::net::IPPROTO_AH as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_MTP: u32 = linux_raw_sys::net::IPPROTO_MTP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_BEETPH: u32 = linux_raw_sys::net::IPPROTO_BEETPH as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_ENCAP: u32 = linux_raw_sys::net::IPPROTO_ENCAP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_PIM: u32 = linux_raw_sys::net::IPPROTO_PIM as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_COMP: u32 = linux_raw_sys::net::IPPROTO_COMP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_SCTP: u32 = linux_raw_sys::net::IPPROTO_SCTP as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_UDPLITE: u32 = linux_raw_sys::net::IPPROTO_UDPLITE as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_MPLS: u32 = linux_raw_sys::net::IPPROTO_MPLS as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_ETHERNET: u32 = linux_raw_sys::net::IPPROTO_ETHERNET as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_RAW: u32 = linux_raw_sys::net::IPPROTO_RAW as _;
+#[cfg(feature = "net")]
+pub(crate) const IPPROTO_MPTCP: u32 = linux_raw_sys::net::IPPROTO_MPTCP as _;
+
+#[cfg(any(feature = "process", feature = "runtime"))]
+pub(crate) use linux_raw_sys::general::siginfo_t;
+
+#[cfg(any(feature = "process", feature = "runtime"))]
+pub(crate) const EXIT_SUCCESS: c_int = 0;
+#[cfg(any(feature = "process", feature = "runtime"))]
+pub(crate) const EXIT_FAILURE: c_int = 1;
+#[cfg(feature = "process")]
+pub(crate) const EXIT_SIGNALED_SIGABRT: c_int = 128 + linux_raw_sys::general::SIGABRT as c_int;
+#[cfg(feature = "runtime")]
+pub(crate) const CLONE_CHILD_SETTID: c_int = linux_raw_sys::general::CLONE_CHILD_SETTID as c_int;
+
+#[cfg(feature = "process")]
+pub(crate) use linux_raw_sys::{
+ general::{
+ CLD_CONTINUED, CLD_DUMPED, CLD_EXITED, CLD_KILLED, CLD_STOPPED, CLD_TRAPPED, F_RDLCK,
+ F_UNLCK, F_WRLCK, O_NONBLOCK as PIDFD_NONBLOCK, P_ALL, P_PGID, P_PID, P_PIDFD, SEEK_CUR,
+ SEEK_END, SEEK_SET,
+ },
+ ioctl::TIOCSCTTY,
+};
+
+#[cfg(feature = "process")]
+#[cfg(target_pointer_width = "32")]
+pub(crate) use linux_raw_sys::general::{flock64 as flock, F_GETLK64};
+
+#[cfg(feature = "process")]
+#[cfg(target_pointer_width = "64")]
+pub(crate) use linux_raw_sys::general::{flock, F_GETLK};
+
+#[cfg(feature = "pty")]
+pub(crate) use linux_raw_sys::ioctl::TIOCGPTPEER;
+
+#[cfg(feature = "termios")]
+pub(crate) use linux_raw_sys::{
+ general::{
+ cc_t, speed_t, tcflag_t, termios, termios2, winsize, B0, B1000000, B110, B115200, B1152000,
+ B1200, B134, B150, B1500000, B1800, B19200, B200, B2000000, B230400, B2400, B2500000, B300,
+ B3000000, B3500000, B38400, B4000000, B460800, B4800, B50, B500000, B57600, B576000, B600,
+ B75, B921600, B9600, BOTHER, BRKINT, BS0, BS1, BSDLY, CBAUD, CBAUDEX, CIBAUD, CLOCAL,
+ CMSPAR, CR0, CR1, CR2, CR3, CRDLY, CREAD, CRTSCTS, CS5, CS6, CS7, CS8, CSIZE, CSTOPB, ECHO,
+ ECHOCTL, ECHOE, ECHOK, ECHOKE, ECHONL, ECHOPRT, EXTA, EXTB, EXTPROC, FF0, FF1, FFDLY,
+ FLUSHO, HUPCL, IBSHIFT, ICANON, ICRNL, IEXTEN, IGNBRK, IGNCR, IGNPAR, IMAXBEL, INLCR,
+ INPCK, ISIG, ISTRIP, IUCLC, IUTF8, IXANY, IXOFF, IXON, NCCS, NL0, NL1, NLDLY, NOFLSH,
+ OCRNL, OFDEL, OFILL, OLCUC, ONLCR, ONLRET, ONOCR, OPOST, PARENB, PARMRK, PARODD, PENDIN,
+ TAB0, TAB1, TAB2, TAB3, TABDLY, TCIFLUSH, TCIOFF, TCIOFLUSH, TCION, TCOFLUSH, TCOOFF,
+ TCOON, TCSADRAIN, TCSAFLUSH, TCSANOW, TOSTOP, VDISCARD, VEOF, VEOL, VEOL2, VERASE, VINTR,
+ VKILL, VLNEXT, VMIN, VQUIT, VREPRINT, VSTART, VSTOP, VSUSP, VSWTC, VT0, VT1, VTDLY, VTIME,
+ VWERASE, XCASE, XTABS,
+ },
+ ioctl::{
+ TCFLSH, TCGETS, TCGETS2, TCSBRK, TCSETS, TCSETS2, TCSETSF2, TCSETSW2, TCXONC, TIOCEXCL,
+ TIOCGPGRP, TIOCGSID, TIOCGWINSZ, TIOCNXCL, TIOCSPGRP, TIOCSWINSZ,
+ },
+};
+
+// Define our own `uid_t` and `gid_t` if the kernel's versions are not 32-bit.
+#[cfg(any(target_arch = "arm", target_arch = "sparc", target_arch = "x86"))]
+pub(crate) type uid_t = u32;
+#[cfg(any(target_arch = "arm", target_arch = "sparc", target_arch = "x86"))]
+pub(crate) type gid_t = u32;
+
+// Bindgen infers `u32` for many of these macro types which meant to be
+// used with `c_int` in the C APIs, so cast them to `c_int`.
+
+// Convert the signal constants from `u32` to `c_int`.
+pub(crate) const SIGHUP: c_int = linux_raw_sys::general::SIGHUP as _;
+pub(crate) const SIGINT: c_int = linux_raw_sys::general::SIGINT as _;
+pub(crate) const SIGQUIT: c_int = linux_raw_sys::general::SIGQUIT as _;
+pub(crate) const SIGILL: c_int = linux_raw_sys::general::SIGILL as _;
+pub(crate) const SIGTRAP: c_int = linux_raw_sys::general::SIGTRAP as _;
+pub(crate) const SIGABRT: c_int = linux_raw_sys::general::SIGABRT as _;
+pub(crate) const SIGBUS: c_int = linux_raw_sys::general::SIGBUS as _;
+pub(crate) const SIGFPE: c_int = linux_raw_sys::general::SIGFPE as _;
+pub(crate) const SIGKILL: c_int = linux_raw_sys::general::SIGKILL as _;
+pub(crate) const SIGUSR1: c_int = linux_raw_sys::general::SIGUSR1 as _;
+pub(crate) const SIGSEGV: c_int = linux_raw_sys::general::SIGSEGV as _;
+pub(crate) const SIGUSR2: c_int = linux_raw_sys::general::SIGUSR2 as _;
+pub(crate) const SIGPIPE: c_int = linux_raw_sys::general::SIGPIPE as _;
+pub(crate) const SIGALRM: c_int = linux_raw_sys::general::SIGALRM as _;
+pub(crate) const SIGTERM: c_int = linux_raw_sys::general::SIGTERM as _;
+#[cfg(not(any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "sparc",
+ target_arch = "sparc64"
+)))]
+pub(crate) const SIGSTKFLT: c_int = linux_raw_sys::general::SIGSTKFLT as _;
+pub(crate) const SIGCHLD: c_int = linux_raw_sys::general::SIGCHLD as _;
+pub(crate) const SIGCONT: c_int = linux_raw_sys::general::SIGCONT as _;
+pub(crate) const SIGSTOP: c_int = linux_raw_sys::general::SIGSTOP as _;
+pub(crate) const SIGTSTP: c_int = linux_raw_sys::general::SIGTSTP as _;
+pub(crate) const SIGTTIN: c_int = linux_raw_sys::general::SIGTTIN as _;
+pub(crate) const SIGTTOU: c_int = linux_raw_sys::general::SIGTTOU as _;
+pub(crate) const SIGURG: c_int = linux_raw_sys::general::SIGURG as _;
+pub(crate) const SIGXCPU: c_int = linux_raw_sys::general::SIGXCPU as _;
+pub(crate) const SIGXFSZ: c_int = linux_raw_sys::general::SIGXFSZ as _;
+pub(crate) const SIGVTALRM: c_int = linux_raw_sys::general::SIGVTALRM as _;
+pub(crate) const SIGPROF: c_int = linux_raw_sys::general::SIGPROF as _;
+pub(crate) const SIGWINCH: c_int = linux_raw_sys::general::SIGWINCH as _;
+pub(crate) const SIGIO: c_int = linux_raw_sys::general::SIGIO as _;
+pub(crate) const SIGPWR: c_int = linux_raw_sys::general::SIGPWR as _;
+pub(crate) const SIGSYS: c_int = linux_raw_sys::general::SIGSYS as _;
+#[cfg(any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "sparc",
+ target_arch = "sparc64"
+))]
+pub(crate) const SIGEMT: c_int = linux_raw_sys::general::SIGEMT as _;
+
+#[cfg(feature = "stdio")]
+pub(crate) const STDIN_FILENO: c_int = linux_raw_sys::general::STDIN_FILENO as _;
+#[cfg(feature = "stdio")]
+pub(crate) const STDOUT_FILENO: c_int = linux_raw_sys::general::STDOUT_FILENO as _;
+#[cfg(feature = "stdio")]
+pub(crate) const STDERR_FILENO: c_int = linux_raw_sys::general::STDERR_FILENO as _;
+
+pub(crate) const PIPE_BUF: usize = linux_raw_sys::general::PIPE_BUF as _;
+
+pub(crate) const CLOCK_MONOTONIC: c_int = linux_raw_sys::general::CLOCK_MONOTONIC as _;
+pub(crate) const CLOCK_REALTIME: c_int = linux_raw_sys::general::CLOCK_REALTIME as _;
+pub(crate) const CLOCK_MONOTONIC_RAW: c_int = linux_raw_sys::general::CLOCK_MONOTONIC_RAW as _;
+pub(crate) const CLOCK_MONOTONIC_COARSE: c_int =
+ linux_raw_sys::general::CLOCK_MONOTONIC_COARSE as _;
+pub(crate) const CLOCK_REALTIME_COARSE: c_int = linux_raw_sys::general::CLOCK_REALTIME_COARSE as _;
+pub(crate) const CLOCK_THREAD_CPUTIME_ID: c_int =
+ linux_raw_sys::general::CLOCK_THREAD_CPUTIME_ID as _;
+pub(crate) const CLOCK_PROCESS_CPUTIME_ID: c_int =
+ linux_raw_sys::general::CLOCK_PROCESS_CPUTIME_ID as _;
+#[cfg(any(feature = "thread", feature = "time"))]
+pub(crate) const CLOCK_BOOTTIME: c_int = linux_raw_sys::general::CLOCK_BOOTTIME as _;
+#[cfg(any(feature = "thread", feature = "time"))]
+pub(crate) const CLOCK_BOOTTIME_ALARM: c_int = linux_raw_sys::general::CLOCK_BOOTTIME_ALARM as _;
+#[cfg(any(feature = "thread", feature = "time"))]
+pub(crate) const CLOCK_TAI: c_int = linux_raw_sys::general::CLOCK_TAI as _;
+#[cfg(any(feature = "thread", feature = "time"))]
+pub(crate) const CLOCK_REALTIME_ALARM: c_int = linux_raw_sys::general::CLOCK_REALTIME_ALARM as _;
+
+#[cfg(feature = "system")]
+mod reboot_symbols {
+ use super::c_int;
+
+ pub(crate) const LINUX_REBOOT_MAGIC1: c_int = linux_raw_sys::general::LINUX_REBOOT_MAGIC1 as _;
+ pub(crate) const LINUX_REBOOT_MAGIC2: c_int = linux_raw_sys::general::LINUX_REBOOT_MAGIC2 as _;
+
+ pub(crate) const LINUX_REBOOT_CMD_RESTART: c_int =
+ linux_raw_sys::general::LINUX_REBOOT_CMD_RESTART as _;
+ pub(crate) const LINUX_REBOOT_CMD_HALT: c_int =
+ linux_raw_sys::general::LINUX_REBOOT_CMD_HALT as _;
+ pub(crate) const LINUX_REBOOT_CMD_CAD_ON: c_int =
+ linux_raw_sys::general::LINUX_REBOOT_CMD_CAD_ON as _;
+ pub(crate) const LINUX_REBOOT_CMD_CAD_OFF: c_int =
+ linux_raw_sys::general::LINUX_REBOOT_CMD_CAD_OFF as _;
+ pub(crate) const LINUX_REBOOT_CMD_POWER_OFF: c_int =
+ linux_raw_sys::general::LINUX_REBOOT_CMD_POWER_OFF as _;
+ pub(crate) const LINUX_REBOOT_CMD_SW_SUSPEND: c_int =
+ linux_raw_sys::general::LINUX_REBOOT_CMD_SW_SUSPEND as _;
+ pub(crate) const LINUX_REBOOT_CMD_KEXEC: c_int =
+ linux_raw_sys::general::LINUX_REBOOT_CMD_KEXEC as _;
+}
+#[cfg(feature = "system")]
+pub(crate) use reboot_symbols::*;
+
+#[cfg(any(
+ feature = "fs",
+ all(
+ linux_raw,
+ not(feature = "use-libc-auxv"),
+ not(feature = "use-explicitly-provided-auxv"),
+ any(
+ feature = "param",
+ feature = "runtime",
+ feature = "thread",
+ feature = "time",
+ target_arch = "x86",
+ )
+ )
+))]
+mod statx_flags {
+ pub(crate) use linux_raw_sys::general::{
+ STATX_ALL, STATX_ATIME, STATX_BASIC_STATS, STATX_BLOCKS, STATX_BTIME, STATX_CTIME,
+ STATX_DIOALIGN, STATX_GID, STATX_INO, STATX_MNT_ID, STATX_MODE, STATX_MTIME, STATX_NLINK,
+ STATX_SIZE, STATX_TYPE, STATX_UID,
+ };
+
+ pub(crate) use linux_raw_sys::general::{
+ STATX_ATTR_APPEND, STATX_ATTR_AUTOMOUNT, STATX_ATTR_COMPRESSED, STATX_ATTR_DAX,
+ STATX_ATTR_ENCRYPTED, STATX_ATTR_IMMUTABLE, STATX_ATTR_MOUNT_ROOT, STATX_ATTR_NODUMP,
+ STATX_ATTR_VERITY,
+ };
+}
+#[cfg(any(
+ feature = "fs",
+ all(
+ linux_raw,
+ not(feature = "use-libc-auxv"),
+ not(feature = "use-explicitly-provided-auxv"),
+ any(
+ feature = "param",
+ feature = "runtime",
+ feature = "thread",
+ feature = "time",
+ target_arch = "x86",
+ )
+ )
+))]
+pub(crate) use statx_flags::*;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/conv.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/conv.rs
new file mode 100644
index 0000000..901451a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/conv.rs
@@ -0,0 +1,1021 @@
+//! Convert values to [`ArgReg`] and from [`RetReg`].
+//!
+//! System call arguments and return values are all communicated with inline
+//! asm and FFI as `*mut Opaque`. To protect these raw pointers from escaping
+//! or being accidentally misused as they travel through the code, we wrap them
+//! in [`ArgReg`] and [`RetReg`] structs. This file provides `From`
+//! implementations and explicit conversion functions for converting values
+//! into and out of these wrapper structs.
+//!
+//! # Safety
+//!
+//! Some of this code is `unsafe` in order to work with raw file descriptors,
+//! and some is `unsafe` to interpret the values in a `RetReg`.
+#![allow(unsafe_code)]
+
+use super::c;
+use super::fd::{AsRawFd as _, BorrowedFd, FromRawFd as _, RawFd};
+#[cfg(any(feature = "event", feature = "runtime", feature = "system"))]
+use super::io::errno::try_decode_error;
+#[cfg(target_pointer_width = "64")]
+use super::io::errno::try_decode_u64;
+#[cfg(not(debug_assertions))]
+use super::io::errno::{
+ decode_c_int_infallible, decode_c_uint_infallible, decode_usize_infallible,
+};
+use super::io::errno::{
+ try_decode_c_int, try_decode_c_uint, try_decode_raw_fd, try_decode_usize, try_decode_void,
+ try_decode_void_star,
+};
+use super::reg::{raw_arg, ArgNumber, ArgReg, RetReg, R0};
+#[cfg(feature = "time")]
+use super::time::types::TimerfdClockId;
+#[cfg(any(feature = "thread", feature = "time"))]
+use crate::clockid::ClockId;
+use crate::fd::OwnedFd;
+use crate::ffi::CStr;
+use crate::io;
+#[cfg(any(feature = "process", feature = "runtime", feature = "termios"))]
+use crate::pid::Pid;
+#[cfg(feature = "process")]
+use crate::process::Resource;
+#[cfg(any(feature = "process", feature = "runtime"))]
+use crate::signal::Signal;
+use crate::utils::{as_mut_ptr, as_ptr};
+use core::mem::MaybeUninit;
+use core::ptr::null_mut;
+#[cfg(any(feature = "thread", feature = "time"))]
+use linux_raw_sys::general::__kernel_clockid_t;
+#[cfg(target_pointer_width = "64")]
+use linux_raw_sys::general::__kernel_loff_t;
+#[cfg(feature = "net")]
+use linux_raw_sys::net::socklen_t;
+
+/// Convert `SYS_*` constants for socketcall.
+#[cfg(target_arch = "x86")]
+#[inline]
+pub(super) fn x86_sys<'a, Num: ArgNumber>(sys: u32) -> ArgReg<'a, Num> {
+ pass_usize(sys as usize)
+}
+
+/// Pass the "low" half of the endian-specific memory encoding of a `u64`, for
+/// 32-bit architectures.
+#[cfg(target_pointer_width = "32")]
+#[inline]
+pub(super) fn lo<'a, Num: ArgNumber>(x: u64) -> ArgReg<'a, Num> {
+ #[cfg(target_endian = "little")]
+ let x = x >> 32;
+ #[cfg(target_endian = "big")]
+ let x = x & 0xffff_ffff;
+
+ pass_usize(x as usize)
+}
+
+/// Pass the "high" half of the endian-specific memory encoding of a `u64`, for
+/// 32-bit architectures.
+#[cfg(target_pointer_width = "32")]
+#[inline]
+pub(super) fn hi<'a, Num: ArgNumber>(x: u64) -> ArgReg<'a, Num> {
+ #[cfg(target_endian = "little")]
+ let x = x & 0xffff_ffff;
+ #[cfg(target_endian = "big")]
+ let x = x >> 32;
+
+ pass_usize(x as usize)
+}
+
+/// Pass a zero, or null, argument.
+#[inline]
+pub(super) fn zero<'a, Num: ArgNumber>() -> ArgReg<'a, Num> {
+ raw_arg(null_mut())
+}
+
+/// Pass the `mem::size_of` of a type.
+#[inline]
+pub(super) fn size_of<'a, T: Sized, Num: ArgNumber>() -> ArgReg<'a, Num> {
+ pass_usize(core::mem::size_of::<T>())
+}
+
+/// Pass an arbitrary `usize` value.
+///
+/// For passing pointers, use `void_star` or other functions which take a raw
+/// pointer instead of casting to `usize`, so that provenance is preserved.
+#[inline]
+pub(super) fn pass_usize<'a, Num: ArgNumber>(t: usize) -> ArgReg<'a, Num> {
+ raw_arg(t as *mut _)
+}
+
+impl<'a, Num: ArgNumber, T> From<*mut T> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(c: *mut T) -> Self {
+ raw_arg(c.cast())
+ }
+}
+
+impl<'a, Num: ArgNumber, T> From<*const T> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(c: *const T) -> Self {
+ let mut_ptr = c as *mut T;
+ raw_arg(mut_ptr.cast())
+ }
+}
+
+impl<'a, Num: ArgNumber> From<&'a CStr> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(c: &'a CStr) -> Self {
+ let mut_ptr = c.as_ptr() as *mut u8;
+ raw_arg(mut_ptr.cast())
+ }
+}
+
+impl<'a, Num: ArgNumber> From<Option<&'a CStr>> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(t: Option<&'a CStr>) -> Self {
+ raw_arg(match t {
+ Some(s) => {
+ let mut_ptr = s.as_ptr() as *mut u8;
+ mut_ptr.cast()
+ }
+ None => null_mut(),
+ })
+ }
+}
+
+/// Pass a borrowed file-descriptor argument.
+impl<'a, Num: ArgNumber> From<BorrowedFd<'a>> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(fd: BorrowedFd<'a>) -> Self {
+ // SAFETY: `BorrowedFd` ensures that the file descriptor is valid, and
+ // the lifetime parameter on the resulting `ArgReg` ensures that the
+ // result is bounded by the `BorrowedFd`'s lifetime.
+ unsafe { raw_fd(fd.as_raw_fd()) }
+ }
+}
+
+/// Pass a raw file-descriptor argument. Most users should use [`ArgReg::from`]
+/// instead, to preserve I/O safety as long as possible.
+///
+/// # Safety
+///
+/// `fd` must be a valid open file descriptor.
+#[inline]
+pub(super) unsafe fn raw_fd<'a, Num: ArgNumber>(fd: RawFd) -> ArgReg<'a, Num> {
+ // Use `no_fd` when passing `-1` is intended.
+ #[cfg(feature = "fs")]
+ debug_assert!(fd == crate::fs::CWD.as_raw_fd() || fd == crate::fs::ABS.as_raw_fd() || fd >= 0);
+
+ // Don't pass the `IORING_REGISTER_FILES_SKIP` sentry value this way.
+ #[cfg(feature = "io_uring")]
+ debug_assert_ne!(fd, crate::io_uring::IORING_REGISTER_FILES_SKIP.as_raw_fd());
+
+ // Linux doesn't look at the high bits beyond the `c_int`, so use
+ // zero-extension rather than sign-extension because it's a smaller
+ // instruction.
+ let fd: c::c_int = fd;
+ pass_usize(fd as c::c_uint as usize)
+}
+
+/// Deliberately pass `-1` to a file-descriptor argument, for system calls
+/// like `mmap` where this indicates the argument is omitted.
+#[inline]
+pub(super) fn no_fd<'a, Num: ArgNumber>() -> ArgReg<'a, Num> {
+ pass_usize(!0_usize)
+}
+
+#[inline]
+pub(super) fn slice_just_addr<T: Sized, Num: ArgNumber>(v: &[T]) -> ArgReg<'_, Num> {
+ let mut_ptr = v.as_ptr() as *mut T;
+ raw_arg(mut_ptr.cast())
+}
+
+#[inline]
+pub(super) fn slice_just_addr_mut<T: Sized, Num: ArgNumber>(v: &mut [T]) -> ArgReg<'_, Num> {
+ raw_arg(v.as_mut_ptr().cast())
+}
+
+#[inline]
+pub(super) fn slice<T: Sized, Num0: ArgNumber, Num1: ArgNumber>(
+ v: &[T],
+) -> (ArgReg<'_, Num0>, ArgReg<'_, Num1>) {
+ (slice_just_addr(v), pass_usize(v.len()))
+}
+
+#[inline]
+pub(super) fn slice_mut<T: Sized, Num0: ArgNumber, Num1: ArgNumber>(
+ v: &mut [T],
+) -> (ArgReg<'_, Num0>, ArgReg<'_, Num1>) {
+ (raw_arg(v.as_mut_ptr().cast()), pass_usize(v.len()))
+}
+
+#[inline]
+pub(super) fn by_ref<T: Sized, Num: ArgNumber>(t: &T) -> ArgReg<'_, Num> {
+ let mut_ptr = as_ptr(t) as *mut T;
+ raw_arg(mut_ptr.cast())
+}
+
+#[inline]
+pub(super) fn by_mut<T: Sized, Num: ArgNumber>(t: &mut T) -> ArgReg<'_, Num> {
+ raw_arg(as_mut_ptr(t).cast())
+}
+
+/// Convert an optional mutable reference into a `usize` for passing to a
+/// syscall.
+#[inline]
+pub(super) fn opt_mut<T: Sized, Num: ArgNumber>(t: Option<&mut T>) -> ArgReg<'_, Num> {
+ // This optimizes into the equivalent of `transmute(t)`, and has the
+ // advantage of not requiring `unsafe`.
+ match t {
+ Some(t) => by_mut(t),
+ None => raw_arg(null_mut()),
+ }
+}
+
+/// Convert an optional immutable reference into a `usize` for passing to a
+/// syscall.
+#[inline]
+pub(super) fn opt_ref<T: Sized, Num: ArgNumber>(t: Option<&T>) -> ArgReg<'_, Num> {
+ // This optimizes into the equivalent of `transmute(t)`, and has the
+ // advantage of not requiring `unsafe`.
+ match t {
+ Some(t) => by_ref(t),
+ None => raw_arg(null_mut()),
+ }
+}
+
+/// Convert a `c_int` into an `ArgReg`.
+///
+/// Be sure to use `raw_fd` to pass `RawFd` values.
+#[inline]
+pub(super) fn c_int<'a, Num: ArgNumber>(i: c::c_int) -> ArgReg<'a, Num> {
+ pass_usize(i as usize)
+}
+
+/// Convert a `c_uint` into an `ArgReg`.
+#[inline]
+pub(super) fn c_uint<'a, Num: ArgNumber>(i: c::c_uint) -> ArgReg<'a, Num> {
+ pass_usize(i as usize)
+}
+
+#[cfg(target_pointer_width = "64")]
+#[inline]
+pub(super) fn loff_t<'a, Num: ArgNumber>(i: __kernel_loff_t) -> ArgReg<'a, Num> {
+ pass_usize(i as usize)
+}
+
+#[cfg(target_pointer_width = "64")]
+#[inline]
+pub(super) fn loff_t_from_u64<'a, Num: ArgNumber>(i: u64) -> ArgReg<'a, Num> {
+ // `loff_t` is signed, but syscalls which expect `loff_t` return `EINVAL`
+ // if it's outside the signed `i64` range, so we can silently cast.
+ pass_usize(i as usize)
+}
+
+#[cfg(any(feature = "thread", feature = "time"))]
+impl<'a, Num: ArgNumber> From<ClockId> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(i: ClockId) -> Self {
+ pass_usize(i as __kernel_clockid_t as usize)
+ }
+}
+
+#[cfg(feature = "time")]
+impl<'a, Num: ArgNumber> From<TimerfdClockId> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(i: TimerfdClockId) -> Self {
+ pass_usize(i as __kernel_clockid_t as usize)
+ }
+}
+
+#[cfg(feature = "net")]
+#[inline]
+pub(super) fn socklen_t<'a, Num: ArgNumber>(i: socklen_t) -> ArgReg<'a, Num> {
+ pass_usize(i as usize)
+}
+
+#[cfg(any(
+ feature = "fs",
+ all(
+ not(feature = "use-libc-auxv"),
+ not(feature = "use-explicitly-provided-auxv"),
+ any(
+ feature = "param",
+ feature = "runtime",
+ feature = "thread",
+ feature = "time",
+ target_arch = "x86",
+ )
+ )
+))]
+pub(crate) mod fs {
+ use super::*;
+ use crate::fs::{FileType, Mode, OFlags};
+ #[cfg(target_pointer_width = "32")]
+ use linux_raw_sys::general::O_LARGEFILE;
+
+ impl<'a, Num: ArgNumber> From<Mode> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(mode: Mode) -> Self {
+ pass_usize(mode.bits() as usize)
+ }
+ }
+
+ impl<'a, Num: ArgNumber> From<(Mode, FileType)> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(pair: (Mode, FileType)) -> Self {
+ pass_usize(pair.0.as_raw_mode() as usize | pair.1.as_raw_mode() as usize)
+ }
+ }
+
+ impl<'a, Num: ArgNumber> From<crate::fs::AtFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::fs::AtFlags) -> Self {
+ c_uint(flags.bits())
+ }
+ }
+
+ impl<'a, Num: ArgNumber> From<crate::fs::XattrFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::fs::XattrFlags) -> Self {
+ c_uint(flags.bits())
+ }
+ }
+
+ impl<'a, Num: ArgNumber> From<crate::fs::inotify::CreateFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::fs::inotify::CreateFlags) -> Self {
+ c_uint(flags.bits())
+ }
+ }
+
+ impl<'a, Num: ArgNumber> From<crate::fs::inotify::WatchFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::fs::inotify::WatchFlags) -> Self {
+ c_uint(flags.bits())
+ }
+ }
+
+ impl<'a, Num: ArgNumber> From<crate::fs::MemfdFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::fs::MemfdFlags) -> Self {
+ c_uint(flags.bits())
+ }
+ }
+
+ impl<'a, Num: ArgNumber> From<crate::fs::RenameFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::fs::RenameFlags) -> Self {
+ c_uint(flags.bits())
+ }
+ }
+
+ impl<'a, Num: ArgNumber> From<crate::fs::StatxFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::fs::StatxFlags) -> Self {
+ c_uint(flags.bits())
+ }
+ }
+
+ #[cfg(target_pointer_width = "32")]
+ #[inline]
+ fn oflags_bits(oflags: OFlags) -> c::c_uint {
+ let mut bits = oflags.bits();
+ // Add `O_LARGEFILE`, unless `O_PATH` is set, as Linux returns `EINVAL`
+ // when both are set.
+ if !oflags.contains(OFlags::PATH) {
+ bits |= O_LARGEFILE;
+ }
+ bits
+ }
+
+ #[cfg(target_pointer_width = "64")]
+ #[inline]
+ const fn oflags_bits(oflags: OFlags) -> c::c_uint {
+ oflags.bits()
+ }
+
+ impl<'a, Num: ArgNumber> From<OFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(oflags: OFlags) -> Self {
+ pass_usize(oflags_bits(oflags) as usize)
+ }
+ }
+
+ /// Convert an `OFlags` into a `u64` for use in the `open_how` struct.
+ #[inline]
+ pub(crate) fn oflags_for_open_how(oflags: OFlags) -> u64 {
+ u64::from(oflags_bits(oflags))
+ }
+
+ impl<'a, Num: ArgNumber> From<crate::fs::FallocateFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::fs::FallocateFlags) -> Self {
+ c_uint(flags.bits())
+ }
+ }
+
+ impl<'a, Num: ArgNumber> From<crate::fs::Advice> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(advice: crate::fs::Advice) -> Self {
+ c_uint(advice as c::c_uint)
+ }
+ }
+
+ impl<'a, Num: ArgNumber> From<crate::fs::SealFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::fs::SealFlags) -> Self {
+ c_uint(flags.bits())
+ }
+ }
+
+ impl<'a, Num: ArgNumber> From<crate::fs::Access> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(access: crate::fs::Access) -> Self {
+ c_uint(access.bits())
+ }
+ }
+}
+
+#[cfg(feature = "mount")]
+impl<'a, Num: ArgNumber> From<crate::backend::mount::types::MountFlagsArg> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mount::types::MountFlagsArg) -> Self {
+ c_uint(flags.0)
+ }
+}
+
+#[cfg(feature = "mount")]
+impl<'a, Num: ArgNumber> From<crate::backend::mount::types::UnmountFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mount::types::UnmountFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "mount")]
+impl<'a, Num: ArgNumber> From<crate::mount::FsConfigCmd> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(cmd: crate::mount::FsConfigCmd) -> Self {
+ c_uint(cmd as c::c_uint)
+ }
+}
+
+#[cfg(feature = "mount")]
+impl<'a, Num: ArgNumber> From<crate::backend::mount::types::FsOpenFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mount::types::FsOpenFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "mount")]
+impl<'a, Num: ArgNumber> From<crate::backend::mount::types::FsMountFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mount::types::FsMountFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "mount")]
+impl<'a, Num: ArgNumber> From<crate::backend::mount::types::MountAttrFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mount::types::MountAttrFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "mount")]
+impl<'a, Num: ArgNumber> From<crate::backend::mount::types::OpenTreeFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mount::types::OpenTreeFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "mount")]
+impl<'a, Num: ArgNumber> From<crate::backend::mount::types::FsPickFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mount::types::FsPickFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "mount")]
+impl<'a, Num: ArgNumber> From<crate::backend::mount::types::MoveMountFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mount::types::MoveMountFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+impl<'a, Num: ArgNumber> From<crate::io::FdFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::io::FdFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "pipe")]
+impl<'a, Num: ArgNumber> From<crate::pipe::PipeFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::pipe::PipeFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "pipe")]
+impl<'a, Num: ArgNumber> From<crate::pipe::SpliceFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::pipe::SpliceFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+impl<'a, Num: ArgNumber> From<crate::io::DupFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::io::DupFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+impl<'a, Num: ArgNumber> From<crate::io::ReadWriteFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::io::ReadWriteFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "process")]
+impl<'a, Num: ArgNumber> From<crate::process::PidfdFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::process::PidfdFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "pty")]
+impl<'a, Num: ArgNumber> From<crate::pty::OpenptFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::pty::OpenptFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "thread")]
+impl<'a, Num: ArgNumber> From<crate::thread::UnshareFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::thread::UnshareFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "event")]
+impl<'a, Num: ArgNumber> From<crate::event::EventfdFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::event::EventfdFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "event")]
+impl<'a, Num: ArgNumber> From<crate::event::epoll::CreateFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::event::epoll::CreateFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "mm")]
+impl<'a, Num: ArgNumber> From<crate::backend::mm::types::ProtFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mm::types::ProtFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "mm")]
+impl<'a, Num: ArgNumber> From<crate::backend::mm::types::MsyncFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mm::types::MsyncFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "mm")]
+impl<'a, Num: ArgNumber> From<crate::backend::mm::types::MremapFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mm::types::MremapFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "mm")]
+impl<'a, Num: ArgNumber> From<crate::backend::mm::types::MlockFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mm::types::MlockFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "mm")]
+impl<'a, Num: ArgNumber> From<crate::backend::mm::types::MlockAllFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mm::types::MlockAllFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "mm")]
+impl<'a, Num: ArgNumber> From<crate::backend::mm::types::MapFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mm::types::MapFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "mm")]
+impl<'a, Num: ArgNumber> From<crate::backend::mm::types::MprotectFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mm::types::MprotectFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "mm")]
+impl<'a, Num: ArgNumber> From<crate::backend::mm::types::UserfaultfdFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::backend::mm::types::UserfaultfdFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "thread")]
+impl<'a, Num: ArgNumber> From<crate::backend::thread::types::MembarrierCommand>
+ for ArgReg<'a, Num>
+{
+ #[inline]
+ fn from(cmd: crate::backend::thread::types::MembarrierCommand) -> Self {
+ c_uint(cmd as u32)
+ }
+}
+
+#[cfg(feature = "thread")]
+impl<'a, Num: ArgNumber> From<crate::thread::Cpuid> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(cpuid: crate::thread::Cpuid) -> Self {
+ c_uint(cpuid.as_raw())
+ }
+}
+
+#[cfg(target_pointer_width = "64")]
+#[inline]
+pub(super) fn dev_t<'a, Num: ArgNumber>(dev: u64) -> ArgReg<'a, Num> {
+ pass_usize(dev as usize)
+}
+
+#[cfg(target_pointer_width = "32")]
+#[inline]
+pub(super) fn dev_t<'a, Num: ArgNumber>(dev: u64) -> io::Result<ArgReg<'a, Num>> {
+ Ok(pass_usize(dev.try_into().map_err(|_err| io::Errno::INVAL)?))
+}
+
+/// Convert a `Resource` into a syscall argument.
+#[cfg(feature = "process")]
+impl<'a, Num: ArgNumber> From<Resource> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(resource: Resource) -> Self {
+ c_uint(resource as c::c_uint)
+ }
+}
+
+#[cfg(any(feature = "process", feature = "runtime", feature = "termios"))]
+impl<'a, Num: ArgNumber> From<Pid> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(pid: Pid) -> Self {
+ pass_usize(pid.as_raw_nonzero().get() as usize)
+ }
+}
+
+#[cfg(feature = "process")]
+#[inline]
+pub(super) fn negative_pid<'a, Num: ArgNumber>(pid: Pid) -> ArgReg<'a, Num> {
+ pass_usize(pid.as_raw_nonzero().get().wrapping_neg() as usize)
+}
+
+#[cfg(any(feature = "process", feature = "runtime"))]
+impl<'a, Num: ArgNumber> From<Signal> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(sig: Signal) -> Self {
+ pass_usize(sig.as_raw() as usize)
+ }
+}
+
+#[cfg(feature = "io_uring")]
+impl<'a, Num: ArgNumber> From<crate::io_uring::IoringEnterFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::io_uring::IoringEnterFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "time")]
+impl<'a, Num: ArgNumber> From<crate::time::TimerfdFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::time::TimerfdFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "time")]
+impl<'a, Num: ArgNumber> From<crate::time::TimerfdTimerFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::time::TimerfdTimerFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "rand")]
+impl<'a, Num: ArgNumber> From<crate::rand::GetRandomFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::rand::GetRandomFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "net")]
+impl<'a, Num: ArgNumber> From<crate::net::RecvFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::net::RecvFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "net")]
+impl<'a, Num: ArgNumber> From<crate::net::SendFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::net::SendFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "net")]
+impl<'a, Num: ArgNumber> From<crate::net::SocketFlags> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::net::SocketFlags) -> Self {
+ c_uint(flags.bits())
+ }
+}
+
+#[cfg(feature = "net")]
+impl<'a, Num: ArgNumber> From<crate::net::AddressFamily> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(family: crate::net::AddressFamily) -> Self {
+ c_uint(family.0.into())
+ }
+}
+
+#[cfg(feature = "net")]
+impl<'a, Num: ArgNumber> From<(crate::net::SocketType, crate::net::SocketFlags)>
+ for ArgReg<'a, Num>
+{
+ #[inline]
+ fn from(pair: (crate::net::SocketType, crate::net::SocketFlags)) -> Self {
+ c_uint(pair.0 .0 | pair.1.bits())
+ }
+}
+
+#[cfg(feature = "thread")]
+impl<'a, Num: ArgNumber>
+ From<(
+ crate::backend::thread::futex::Operation,
+ crate::thread::futex::Flags,
+ )> for ArgReg<'a, Num>
+{
+ #[inline]
+ fn from(
+ pair: (
+ crate::backend::thread::futex::Operation,
+ crate::thread::futex::Flags,
+ ),
+ ) -> Self {
+ c_uint(pair.0 as u32 | pair.1.bits())
+ }
+}
+
+#[cfg(feature = "net")]
+impl<'a, Num: ArgNumber> From<crate::net::SocketType> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(type_: crate::net::SocketType) -> Self {
+ c_uint(type_.0)
+ }
+}
+
+#[cfg(feature = "net")]
+impl<'a, Num: ArgNumber> From<Option<crate::net::Protocol>> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(protocol: Option<crate::net::Protocol>) -> Self {
+ c_uint(match protocol {
+ Some(p) => p.0.get(),
+ None => 0,
+ })
+ }
+}
+
+impl<'a, Num: ArgNumber, T> From<&'a mut MaybeUninit<T>> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(t: &'a mut MaybeUninit<T>) -> Self {
+ raw_arg(t.as_mut_ptr().cast())
+ }
+}
+
+impl<'a, Num: ArgNumber, T> From<&'a mut [MaybeUninit<T>]> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(t: &'a mut [MaybeUninit<T>]) -> Self {
+ raw_arg(t.as_mut_ptr().cast())
+ }
+}
+
+#[cfg(any(feature = "process", feature = "thread"))]
+impl<'a, Num: ArgNumber> From<crate::ugid::Uid> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(t: crate::ugid::Uid) -> Self {
+ c_uint(t.as_raw())
+ }
+}
+
+#[cfg(any(feature = "process", feature = "thread"))]
+impl<'a, Num: ArgNumber> From<crate::ugid::Gid> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(t: crate::ugid::Gid) -> Self {
+ c_uint(t.as_raw())
+ }
+}
+
+#[cfg(feature = "runtime")]
+impl<'a, Num: ArgNumber> From<crate::runtime::How> for ArgReg<'a, Num> {
+ #[inline]
+ fn from(flags: crate::runtime::How) -> Self {
+ c_uint(flags as u32)
+ }
+}
+
+/// Convert a `usize` returned from a syscall that effectively returns `()` on
+/// success.
+///
+/// # Safety
+///
+/// The caller must ensure that this is the return value of a syscall which
+/// just returns 0 on success.
+#[inline]
+pub(super) unsafe fn ret(raw: RetReg<R0>) -> io::Result<()> {
+ try_decode_void(raw)
+}
+
+/// Convert a `usize` returned from a syscall that doesn't return on success.
+///
+/// # Safety
+///
+/// The caller must ensure that this is the return value of a syscall which
+/// doesn't return on success.
+#[cfg(any(feature = "event", feature = "runtime", feature = "system"))]
+#[inline]
+pub(super) unsafe fn ret_error(raw: RetReg<R0>) -> io::Errno {
+ try_decode_error(raw)
+}
+
+/// Convert a `usize` returned from a syscall that effectively always returns
+/// `()`.
+///
+/// # Safety
+///
+/// The caller must ensure that this is the return value of a syscall which
+/// always returns `()`.
+#[inline]
+pub(super) unsafe fn ret_infallible(raw: RetReg<R0>) {
+ #[cfg(debug_assertions)]
+ {
+ try_decode_void(raw).unwrap()
+ }
+ #[cfg(not(debug_assertions))]
+ drop(raw);
+}
+
+/// Convert a `usize` returned from a syscall that effectively returns a
+/// `c_int` on success.
+#[inline]
+pub(super) fn ret_c_int(raw: RetReg<R0>) -> io::Result<c::c_int> {
+ try_decode_c_int(raw)
+}
+
+/// Convert a `usize` returned from a syscall that effectively returns a
+/// `c_uint` on success.
+#[inline]
+pub(super) fn ret_c_uint(raw: RetReg<R0>) -> io::Result<c::c_uint> {
+ try_decode_c_uint(raw)
+}
+
+/// Convert a `usize` returned from a syscall that effectively returns a `u64`
+/// on success.
+#[cfg(target_pointer_width = "64")]
+#[inline]
+pub(super) fn ret_u64(raw: RetReg<R0>) -> io::Result<u64> {
+ try_decode_u64(raw)
+}
+
+/// Convert a `usize` returned from a syscall that effectively returns a
+/// `usize` on success.
+#[inline]
+pub(super) fn ret_usize(raw: RetReg<R0>) -> io::Result<usize> {
+ try_decode_usize(raw)
+}
+
+/// Convert a `usize` returned from a syscall that effectively always
+/// returns a `usize`.
+///
+/// # Safety
+///
+/// This function must only be used with return values from infallible
+/// syscalls.
+#[inline]
+pub(super) unsafe fn ret_usize_infallible(raw: RetReg<R0>) -> usize {
+ #[cfg(debug_assertions)]
+ {
+ try_decode_usize(raw).unwrap()
+ }
+ #[cfg(not(debug_assertions))]
+ {
+ decode_usize_infallible(raw)
+ }
+}
+
+/// Convert a `c_int` returned from a syscall that effectively always
+/// returns a `c_int`.
+///
+/// # Safety
+///
+/// This function must only be used with return values from infallible
+/// syscalls.
+#[inline]
+pub(super) unsafe fn ret_c_int_infallible(raw: RetReg<R0>) -> c::c_int {
+ #[cfg(debug_assertions)]
+ {
+ try_decode_c_int(raw).unwrap()
+ }
+ #[cfg(not(debug_assertions))]
+ {
+ decode_c_int_infallible(raw)
+ }
+}
+
+/// Convert a `c_uint` returned from a syscall that effectively always
+/// returns a `c_uint`.
+///
+/// # Safety
+///
+/// This function must only be used with return values from infallible
+/// syscalls.
+#[inline]
+pub(super) unsafe fn ret_c_uint_infallible(raw: RetReg<R0>) -> c::c_uint {
+ #[cfg(debug_assertions)]
+ {
+ try_decode_c_uint(raw).unwrap()
+ }
+ #[cfg(not(debug_assertions))]
+ {
+ decode_c_uint_infallible(raw)
+ }
+}
+
+/// Convert a `usize` returned from a syscall that effectively returns an
+/// `OwnedFd` on success.
+///
+/// # Safety
+///
+/// The caller must ensure that this is the return value of a syscall which
+/// returns an owned file descriptor.
+#[inline]
+pub(super) unsafe fn ret_owned_fd(raw: RetReg<R0>) -> io::Result<OwnedFd> {
+ let raw_fd = try_decode_raw_fd(raw)?;
+ Ok(crate::backend::fd::OwnedFd::from_raw_fd(raw_fd))
+}
+
+/// Convert the return value of `dup2` and `dup3`.
+///
+/// When these functions succeed, they return the same value as their second
+/// argument, so we don't construct a new `OwnedFd`.
+///
+/// # Safety
+///
+/// The caller must ensure that this is the return value of a syscall which
+/// returns a file descriptor.
+#[inline]
+pub(super) unsafe fn ret_discarded_fd(raw: RetReg<R0>) -> io::Result<()> {
+ let _raw_fd = try_decode_raw_fd(raw)?;
+ Ok(())
+}
+
+/// Convert a `usize` returned from a syscall that effectively returns a
+/// `*mut c_void` on success.
+#[inline]
+pub(super) fn ret_void_star(raw: RetReg<R0>) -> io::Result<*mut c::c_void> {
+ try_decode_void_star(raw)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/event/epoll.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/event/epoll.rs
new file mode 100644
index 0000000..093129d
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/event/epoll.rs
@@ -0,0 +1,74 @@
+use crate::ffi;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `EPOLL_*` for use with [`epoll::create`].
+ ///
+ /// [`epoll::create`]: crate::event::epoll::create
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct CreateFlags: ffi::c_uint {
+ /// `EPOLL_CLOEXEC`
+ const CLOEXEC = linux_raw_sys::general::EPOLL_CLOEXEC;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `EPOLL*` for use with [`epoll::add`].
+ ///
+ /// [`epoll::add`]: crate::event::epoll::add
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct EventFlags: u32 {
+ /// `EPOLLIN`
+ const IN = linux_raw_sys::general::EPOLLIN as u32;
+
+ /// `EPOLLOUT`
+ const OUT = linux_raw_sys::general::EPOLLOUT as u32;
+
+ /// `EPOLLPRI`
+ const PRI = linux_raw_sys::general::EPOLLPRI as u32;
+
+ /// `EPOLLERR`
+ const ERR = linux_raw_sys::general::EPOLLERR as u32;
+
+ /// `EPOLLHUP`
+ const HUP = linux_raw_sys::general::EPOLLHUP as u32;
+
+ /// `EPOLLRDNORM`
+ const RDNORM = linux_raw_sys::general::EPOLLRDNORM as u32;
+
+ /// `EPOLLRDBAND`
+ const RDBAND = linux_raw_sys::general::EPOLLRDBAND as u32;
+
+ /// `EPOLLWRNORM`
+ const WRNORM = linux_raw_sys::general::EPOLLWRNORM as u32;
+
+ /// `EPOLLWRBAND`
+ const WRBAND = linux_raw_sys::general::EPOLLWRBAND as u32;
+
+ /// `EPOLLMSG`
+ const MSG = linux_raw_sys::general::EPOLLMSG as u32;
+
+ /// `EPOLLRDHUP`
+ const RDHUP = linux_raw_sys::general::EPOLLRDHUP as u32;
+
+ /// `EPOLLET`
+ const ET = linux_raw_sys::general::EPOLLET as u32;
+
+ /// `EPOLLONESHOT`
+ const ONESHOT = linux_raw_sys::general::EPOLLONESHOT as u32;
+
+ /// `EPOLLWAKEUP`
+ const WAKEUP = linux_raw_sys::general::EPOLLWAKEUP as u32;
+
+ /// `EPOLLEXCLUSIVE`
+ const EXCLUSIVE = linux_raw_sys::general::EPOLLEXCLUSIVE as u32;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/event/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/event/mod.rs
new file mode 100644
index 0000000..605de25
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/event/mod.rs
@@ -0,0 +1,4 @@
+pub mod epoll;
+pub(crate) mod poll_fd;
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/event/poll_fd.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/event/poll_fd.rs
new file mode 100644
index 0000000..9de43f2
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/event/poll_fd.rs
@@ -0,0 +1,98 @@
+use crate::fd::{AsFd, BorrowedFd};
+use bitflags::bitflags;
+
+bitflags! {
+ /// `POLL*` flags for use with [`poll`].
+ ///
+ /// [`poll`]: crate::event::poll
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct PollFlags: u16 {
+ /// `POLLIN`
+ const IN = linux_raw_sys::general::POLLIN as u16;
+ /// `POLLPRI`
+ const PRI = linux_raw_sys::general::POLLPRI as u16;
+ /// `POLLOUT`
+ const OUT = linux_raw_sys::general::POLLOUT as u16;
+ /// `POLLRDNORM`
+ const RDNORM = linux_raw_sys::general::POLLRDNORM as u16;
+ /// `POLLWRNORM`
+ const WRNORM = linux_raw_sys::general::POLLWRNORM as u16;
+ /// `POLLRDBAND`
+ const RDBAND = linux_raw_sys::general::POLLRDBAND as u16;
+ /// `POLLWRBAND`
+ const WRBAND = linux_raw_sys::general::POLLWRBAND as u16;
+ /// `POLLERR`
+ const ERR = linux_raw_sys::general::POLLERR as u16;
+ /// `POLLHUP`
+ const HUP = linux_raw_sys::general::POLLHUP as u16;
+ /// `POLLNVAL`
+ const NVAL = linux_raw_sys::general::POLLNVAL as u16;
+ /// `POLLRDHUP`
+ const RDHUP = linux_raw_sys::general::POLLRDHUP as u16;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `struct pollfd`—File descriptor and flags for use with [`poll`].
+///
+/// [`poll`]: crate::event::poll
+#[doc(alias = "pollfd")]
+#[repr(C)]
+#[derive(Debug, Clone)]
+pub struct PollFd<'fd> {
+ pub(crate) fd: BorrowedFd<'fd>,
+ pub(crate) events: u16,
+ pub(crate) revents: u16,
+}
+
+impl<'fd> PollFd<'fd> {
+ /// Constructs a new `PollFd` holding `fd` and `events`.
+ #[inline]
+ pub fn new<Fd: AsFd>(fd: &'fd Fd, events: PollFlags) -> Self {
+ Self::from_borrowed_fd(fd.as_fd(), events)
+ }
+
+ /// Sets the contained file descriptor to `fd`.
+ #[inline]
+ pub fn set_fd<Fd: AsFd>(&mut self, fd: &'fd Fd) {
+ self.fd = fd.as_fd();
+ }
+
+ /// Clears the ready events.
+ #[inline]
+ pub fn clear_revents(&mut self) {
+ self.revents = 0;
+ }
+
+ /// Constructs a new `PollFd` holding `fd` and `events`.
+ ///
+ /// This is the same as `new`, but can be used to avoid borrowing the
+ /// `BorrowedFd`, which can be tricky in situations where the `BorrowedFd`
+ /// is a temporary.
+ #[inline]
+ pub fn from_borrowed_fd(fd: BorrowedFd<'fd>, events: PollFlags) -> Self {
+ Self {
+ fd,
+ events: events.bits(),
+ revents: 0,
+ }
+ }
+
+ /// Returns the ready events.
+ #[inline]
+ pub fn revents(&self) -> PollFlags {
+ // Use `.unwrap()` here because in theory we know we know all the bits
+ // the OS might set here, but OS's have added extensions in the past.
+ PollFlags::from_bits(self.revents).unwrap()
+ }
+}
+
+impl<'fd> AsFd for PollFd<'fd> {
+ #[inline]
+ fn as_fd(&self) -> BorrowedFd<'_> {
+ self.fd.as_fd()
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/event/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/event/syscalls.rs
new file mode 100644
index 0000000..8a4e24b
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/event/syscalls.rs
@@ -0,0 +1,358 @@
+//! linux_raw syscalls supporting `rustix::event`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use crate::backend::conv::{
+ by_ref, c_int, c_uint, opt_mut, opt_ref, pass_usize, ret, ret_c_int, ret_error, ret_owned_fd,
+ ret_usize, size_of, slice_mut, zero,
+};
+use crate::event::{epoll, EventfdFlags, FdSetElement, PollFd, Timespec};
+use crate::fd::{BorrowedFd, OwnedFd};
+use crate::io;
+use core::ptr::null_mut;
+use linux_raw_sys::general::{kernel_sigset_t, EPOLL_CTL_ADD, EPOLL_CTL_DEL, EPOLL_CTL_MOD};
+
+#[inline]
+pub(crate) fn poll(fds: &mut [PollFd<'_>], timeout: Option<&Timespec>) -> io::Result<usize> {
+ let (fds_addr_mut, fds_len) = slice_mut(fds);
+
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ // If we don't have Linux 5.1, and the timeout fits in a
+ // `__kernel_old_timespec`, use plain `ppoll`.
+ //
+ // We do this unconditionally, rather than trying `ppoll_time64` and
+ // falling back on `Errno::NOSYS`, because seccomp configurations will
+ // sometimes abort the process on syscalls they don't recognize.
+ #[cfg(not(feature = "linux_5_1"))]
+ {
+ use linux_raw_sys::general::__kernel_old_timespec;
+
+ // If we don't have a timeout, or if we can convert the timeout to
+ // a `__kernel_old_timespec`, the use `__NR_ppoll`.
+ fn convert(timeout: &Timespec) -> Option<__kernel_old_timespec> {
+ Some(__kernel_old_timespec {
+ tv_sec: timeout.tv_sec.try_into().ok()?,
+ tv_nsec: timeout.tv_nsec.try_into().ok()?,
+ })
+ }
+ let old_timeout = if let Some(timeout) = timeout {
+ match convert(timeout) {
+ // Could not convert timeout.
+ None => None,
+ // Could convert timeout. Ok!
+ Some(old_timeout) => Some(Some(old_timeout)),
+ }
+ } else {
+ // No timeout. Ok!
+ Some(None)
+ };
+ if let Some(mut old_timeout) = old_timeout {
+ // Call `ppoll`.
+ //
+ // Linux's `ppoll` mutates the timeout argument. Our public
+ // interface does not do this, because it's not portable to other
+ // platforms, so we create a temporary value to hide this behavior.
+ return ret_usize(syscall!(
+ __NR_ppoll,
+ fds_addr_mut,
+ fds_len,
+ opt_mut(old_timeout.as_mut()),
+ zero(),
+ size_of::<kernel_sigset_t, _>()
+ ));
+ }
+ }
+
+ // We either have Linux 5.1 or the timeout didn't fit in
+ // `__kernel_old_timespec` so `__NR_ppoll_time64` will either
+ // succeed or fail due to our having no other options.
+
+ // Call `ppoll_time64`.
+ //
+ // Linux's `ppoll_time64` mutates the timeout argument. Our public
+ // interface does not do this, because it's not portable to other
+ // platforms, so we create a temporary value to hide this behavior.
+ ret_usize(syscall!(
+ __NR_ppoll_time64,
+ fds_addr_mut,
+ fds_len,
+ opt_mut(timeout.copied().as_mut()),
+ zero(),
+ size_of::<kernel_sigset_t, _>()
+ ))
+ }
+
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ // Call `ppoll`.
+ //
+ // Linux's `ppoll` mutates the timeout argument. Our public interface
+ // does not do this, because it's not portable to other platforms, so
+ // we create a temporary value to hide this behavior.
+ ret_usize(syscall!(
+ __NR_ppoll,
+ fds_addr_mut,
+ fds_len,
+ opt_mut(timeout.copied().as_mut()),
+ zero(),
+ size_of::<kernel_sigset_t, _>()
+ ))
+ }
+}
+
+pub(crate) unsafe fn select(
+ nfds: i32,
+ readfds: Option<&mut [FdSetElement]>,
+ writefds: Option<&mut [FdSetElement]>,
+ exceptfds: Option<&mut [FdSetElement]>,
+ timeout: Option<&crate::timespec::Timespec>,
+) -> io::Result<i32> {
+ let len = crate::event::fd_set_num_elements_for_bitvector(nfds);
+
+ let readfds = match readfds {
+ Some(readfds) => {
+ assert!(readfds.len() >= len);
+ readfds.as_mut_ptr()
+ }
+ None => null_mut(),
+ };
+ let writefds = match writefds {
+ Some(writefds) => {
+ assert!(writefds.len() >= len);
+ writefds.as_mut_ptr()
+ }
+ None => null_mut(),
+ };
+ let exceptfds = match exceptfds {
+ Some(exceptfds) => {
+ assert!(exceptfds.len() >= len);
+ exceptfds.as_mut_ptr()
+ }
+ None => null_mut(),
+ };
+
+ #[cfg(target_pointer_width = "32")]
+ {
+ // If we don't have Linux 5.1, and the timeout fits in a
+ // `__kernel_old_timespec`, use plain `pselect6`.
+ //
+ // We do this unconditionally, rather than trying `pselect6_time64` and
+ // falling back on `Errno::NOSYS`, because seccomp configurations will
+ // sometimes abort the process on syscalls they don't recognize.
+ #[cfg(not(feature = "linux_5_1"))]
+ {
+ use linux_raw_sys::general::__kernel_old_timespec;
+
+ // If we don't have a timeout, or if we can convert the timeout to
+ // a `__kernel_old_timespec`, the use `__NR_pselect6`.
+ fn convert(timeout: &Timespec) -> Option<__kernel_old_timespec> {
+ Some(__kernel_old_timespec {
+ tv_sec: timeout.tv_sec.try_into().ok()?,
+ tv_nsec: timeout.tv_nsec.try_into().ok()?,
+ })
+ }
+ let old_timeout = if let Some(timeout) = timeout {
+ match convert(timeout) {
+ // Could not convert timeout.
+ None => None,
+ // Could convert timeout. Ok!
+ Some(old_timeout) => Some(Some(old_timeout)),
+ }
+ } else {
+ // No timeout. Ok!
+ Some(None)
+ };
+ if let Some(mut old_timeout) = old_timeout {
+ // Call `pselect6`.
+ //
+ // Linux's `pselect6` mutates the timeout argument. Our public
+ // interface does not do this, because it's not portable to other
+ // platforms, so we create a temporary value to hide this behavior.
+ return ret_c_int(syscall!(
+ __NR_pselect6,
+ c_int(nfds),
+ readfds,
+ writefds,
+ exceptfds,
+ opt_mut(old_timeout.as_mut()),
+ zero()
+ ));
+ }
+ }
+
+ // We either have Linux 5.1 or the timeout didn't fit in
+ // `__kernel_old_timespec` so `__NR_pselect6_time64` will either
+ // succeed or fail due to our having no other options.
+
+ // Call `pselect6_time64`.
+ //
+ // Linux's `pselect6_time64` mutates the timeout argument. Our public
+ // interface does not do this, because it's not portable to other
+ // platforms, so we create a temporary value to hide this behavior.
+ ret_c_int(syscall!(
+ __NR_pselect6_time64,
+ c_int(nfds),
+ readfds,
+ writefds,
+ exceptfds,
+ opt_mut(timeout.copied().as_mut()),
+ zero()
+ ))
+ }
+
+ #[cfg(target_pointer_width = "64")]
+ {
+ // Call `pselect6`.
+ //
+ // Linux's `pselect6` mutates the timeout argument. Our public interface
+ // does not do this, because it's not portable to other platforms, so we
+ // create a temporary value to hide this behavior.
+ ret_c_int(syscall!(
+ __NR_pselect6,
+ c_int(nfds),
+ readfds,
+ writefds,
+ exceptfds,
+ opt_mut(timeout.copied().as_mut()),
+ zero()
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn epoll_create(flags: epoll::CreateFlags) -> io::Result<OwnedFd> {
+ // SAFETY: `__NR_epoll_create1` doesn't access any user memory.
+ unsafe { ret_owned_fd(syscall_readonly!(__NR_epoll_create1, flags)) }
+}
+
+#[inline]
+pub(crate) fn epoll_add(
+ epfd: BorrowedFd<'_>,
+ fd: BorrowedFd<'_>,
+ event: &epoll::Event,
+) -> io::Result<()> {
+ // SAFETY: `__NR_epoll_ctl` with `EPOLL_CTL_ADD` doesn't modify any user
+ // memory, and it only reads from `event`.
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_epoll_ctl,
+ epfd,
+ c_uint(EPOLL_CTL_ADD),
+ fd,
+ by_ref(event)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn epoll_mod(
+ epfd: BorrowedFd<'_>,
+ fd: BorrowedFd<'_>,
+ event: &epoll::Event,
+) -> io::Result<()> {
+ // SAFETY: `__NR_epoll_ctl` with `EPOLL_CTL_MOD` doesn't modify any user
+ // memory, and it only reads from `event`.
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_epoll_ctl,
+ epfd,
+ c_uint(EPOLL_CTL_MOD),
+ fd,
+ by_ref(event)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn epoll_del(epfd: BorrowedFd<'_>, fd: BorrowedFd<'_>) -> io::Result<()> {
+ // SAFETY: `__NR_epoll_ctl` with `EPOLL_CTL_DEL` doesn't access any user
+ // memory.
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_epoll_ctl,
+ epfd,
+ c_uint(EPOLL_CTL_DEL),
+ fd,
+ zero()
+ ))
+ }
+}
+
+#[inline]
+pub(crate) unsafe fn epoll_wait(
+ epfd: BorrowedFd<'_>,
+ events: (*mut crate::event::epoll::Event, usize),
+ timeout: Option<&Timespec>,
+) -> io::Result<usize> {
+ // If we don't have Linux 5.1, and the timeout fits in an `i32`, use plain
+ // `epoll_pwait`.
+ //
+ // We do this unconditionally, rather than trying `epoll_pwait2` and
+ // falling back on `Errno::NOSYS`, because seccomp configurations will
+ // sometimes abort the process on syscalls they don't recognize.
+ #[cfg(not(feature = "linux_5_11"))]
+ {
+ // If we don't have a timeout, or if we can convert the timeout to an
+ // `i32`, the use `__NR_epoll_pwait`.
+ let old_timeout = if let Some(timeout) = timeout {
+ // Try to convert the timeout; if this is `Some`, we're ok!
+ timeout.as_c_int_millis()
+ } else {
+ // No timeout. Ok!
+ Some(-1)
+ };
+ if let Some(old_timeout) = old_timeout {
+ // Call `epoll_pwait`.
+ return ret_usize(syscall!(
+ __NR_epoll_pwait,
+ epfd,
+ events.0,
+ pass_usize(events.1),
+ c_int(old_timeout),
+ zero()
+ ));
+ }
+ }
+
+ // Call `epoll_pwait2`.
+ //
+ // We either have Linux 5.1 or the timeout didn't fit in an `i32`, so
+ // `__NR_epoll_pwait2` will either succeed or fail due to our having no
+ // other options.
+ ret_usize(syscall!(
+ __NR_epoll_pwait2,
+ epfd,
+ events.0,
+ pass_usize(events.1),
+ opt_ref(timeout),
+ zero()
+ ))
+}
+
+#[inline]
+pub(crate) fn eventfd(initval: u32, flags: EventfdFlags) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(syscall_readonly!(__NR_eventfd2, c_uint(initval), flags)) }
+}
+
+#[inline]
+pub(crate) fn pause() {
+ unsafe {
+ #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))]
+ let error = ret_error(syscall_readonly!(
+ __NR_ppoll,
+ zero(),
+ zero(),
+ zero(),
+ zero()
+ ));
+
+ #[cfg(not(any(target_arch = "aarch64", target_arch = "riscv64")))]
+ let error = ret_error(syscall_readonly!(__NR_pause));
+
+ debug_assert_eq!(error, io::Errno::INTR);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/event/types.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/event/types.rs
new file mode 100644
index 0000000..9d320df
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/event/types.rs
@@ -0,0 +1,21 @@
+use crate::ffi;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `EFD_*` flags for use with [`eventfd`].
+ ///
+ /// [`eventfd`]: crate::event::eventfd
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct EventfdFlags: ffi::c_uint {
+ /// `EFD_CLOEXEC`
+ const CLOEXEC = linux_raw_sys::general::EFD_CLOEXEC;
+ /// `EFD_NONBLOCK`
+ const NONBLOCK = linux_raw_sys::general::EFD_NONBLOCK;
+ /// `EFD_SEMAPHORE`
+ const SEMAPHORE = linux_raw_sys::general::EFD_SEMAPHORE;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/fs/dir.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/fs/dir.rs
new file mode 100644
index 0000000..31ebc54
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/fs/dir.rs
@@ -0,0 +1,373 @@
+use crate::fd::{AsFd, BorrowedFd, OwnedFd};
+use crate::ffi::{CStr, CString};
+use crate::fs::{
+ fcntl_getfl, fstat, fstatfs, fstatvfs, openat, FileType, Mode, OFlags, Stat, StatFs, StatVfs,
+};
+use crate::io;
+#[cfg(feature = "process")]
+use crate::process::fchdir;
+use crate::utils::as_ptr;
+use alloc::borrow::ToOwned as _;
+use alloc::vec::Vec;
+use core::fmt;
+use core::mem::size_of;
+use linux_raw_sys::general::{linux_dirent64, SEEK_SET};
+
+/// `DIR*`
+pub struct Dir {
+ /// The `OwnedFd` that we read directory entries from.
+ fd: OwnedFd,
+
+ /// Have we seen any errors in this iteration?
+ any_errors: bool,
+
+ /// Should we rewind the stream on the next iteration?
+ rewind: bool,
+
+ /// The buffer for `linux_dirent64` entries.
+ buf: Vec<u8>,
+
+ /// Where we are in the buffer.
+ pos: usize,
+}
+
+impl Dir {
+ /// Take ownership of `fd` and construct a `Dir` that reads entries from
+ /// the given directory file descriptor.
+ #[inline]
+ pub fn new<Fd: Into<OwnedFd>>(fd: Fd) -> io::Result<Self> {
+ Self::_new(fd.into())
+ }
+
+ #[inline]
+ fn _new(fd: OwnedFd) -> io::Result<Self> {
+ Ok(Self {
+ fd,
+ any_errors: false,
+ rewind: false,
+ buf: Vec::new(),
+ pos: 0,
+ })
+ }
+
+ /// Borrow `fd` and construct a `Dir` that reads entries from the given
+ /// directory file descriptor.
+ #[inline]
+ pub fn read_from<Fd: AsFd>(fd: Fd) -> io::Result<Self> {
+ Self::_read_from(fd.as_fd())
+ }
+
+ #[inline]
+ fn _read_from(fd: BorrowedFd<'_>) -> io::Result<Self> {
+ let flags = fcntl_getfl(fd)?;
+ let fd_for_dir = openat(fd, cstr!("."), flags | OFlags::CLOEXEC, Mode::empty())?;
+
+ Ok(Self {
+ fd: fd_for_dir,
+ any_errors: false,
+ rewind: false,
+ buf: Vec::new(),
+ pos: 0,
+ })
+ }
+
+ /// `rewinddir(self)`
+ #[inline]
+ pub fn rewind(&mut self) {
+ self.any_errors = false;
+ self.rewind = true;
+ self.pos = self.buf.len();
+ }
+
+ /// `seekdir(self, offset)`
+ ///
+ /// This function is only available on 64-bit platforms because it's
+ /// implemented using [`libc::seekdir`] which only supports offsets that
+ /// fit in a `c_long`.
+ ///
+ /// [`libc::seekdir`]: https://docs.rs/libc/*/arm-unknown-linux-gnueabihf/libc/fn.seekdir.html
+ // In the linux_raw backend here, we don't use `libc::seekdir` and don't
+ // have this limitation, but it's a goal of rustix to support the same API
+ // on both the linux_raw and libc backends.
+ #[cfg(target_pointer_width = "64")]
+ #[cfg_attr(docsrs, doc(cfg(target_pointer_width = "64")))]
+ #[doc(alias = "seekdir")]
+ #[inline]
+ pub fn seek(&mut self, offset: i64) -> io::Result<()> {
+ self.any_errors = false;
+ self.rewind = false;
+ self.pos = self.buf.len();
+ match io::retry_on_intr(|| {
+ crate::backend::fs::syscalls::_seek(self.fd.as_fd(), offset, SEEK_SET)
+ }) {
+ Ok(_) => Ok(()),
+ Err(err) => {
+ self.any_errors = true;
+ Err(err)
+ }
+ }
+ }
+
+ /// `readdir(self)`, where `None` means the end of the directory.
+ pub fn read(&mut self) -> Option<io::Result<DirEntry>> {
+ // If we've seen errors, don't continue to try to read anything
+ // further.
+ if self.any_errors {
+ return None;
+ }
+
+ // If a rewind was requested, seek to the beginning.
+ if self.rewind {
+ self.rewind = false;
+ match io::retry_on_intr(|| {
+ crate::backend::fs::syscalls::_seek(self.fd.as_fd(), 0, SEEK_SET)
+ }) {
+ Ok(_) => (),
+ Err(err) => {
+ self.any_errors = true;
+ return Some(Err(err));
+ }
+ }
+ }
+
+ // Compute linux_dirent64 field offsets.
+ let z = linux_dirent64 {
+ d_ino: 0_u64,
+ d_off: 0_i64,
+ d_type: 0_u8,
+ d_reclen: 0_u16,
+ d_name: Default::default(),
+ };
+ let base = as_ptr(&z) as usize;
+ let offsetof_d_reclen = (as_ptr(&z.d_reclen) as usize) - base;
+ let offsetof_d_name = (as_ptr(&z.d_name) as usize) - base;
+ let offsetof_d_ino = (as_ptr(&z.d_ino) as usize) - base;
+ let offsetof_d_off = (as_ptr(&z.d_off) as usize) - base;
+ let offsetof_d_type = (as_ptr(&z.d_type) as usize) - base;
+
+ // Test if we need more entries, and if so, read more.
+ if self.buf.len() - self.pos < size_of::<linux_dirent64>() {
+ match self.read_more()? {
+ Ok(()) => (),
+ Err(err) => return Some(Err(err)),
+ }
+ }
+
+ // We successfully read an entry. Extract the fields.
+ let pos = self.pos;
+
+ // Do an unaligned u16 load.
+ let d_reclen = u16::from_ne_bytes([
+ self.buf[pos + offsetof_d_reclen],
+ self.buf[pos + offsetof_d_reclen + 1],
+ ]);
+ assert!(self.buf.len() - pos >= d_reclen as usize);
+ self.pos += d_reclen as usize;
+
+ // Read the NUL-terminated name from the `d_name` field. Without
+ // `unsafe`, we need to scan for the NUL twice: once to obtain a size
+ // for the slice, and then once within `CStr::from_bytes_with_nul`.
+ let name_start = pos + offsetof_d_name;
+ let name_len = self.buf[name_start..]
+ .iter()
+ .position(|x| *x == b'\0')
+ .unwrap();
+ let name = CStr::from_bytes_with_nul(&self.buf[name_start..][..=name_len]).unwrap();
+ let name = name.to_owned();
+ assert!(name.as_bytes().len() <= self.buf.len() - name_start);
+
+ // Do an unaligned `u64` load for `d_ino`.
+ let d_ino = u64::from_ne_bytes([
+ self.buf[pos + offsetof_d_ino],
+ self.buf[pos + offsetof_d_ino + 1],
+ self.buf[pos + offsetof_d_ino + 2],
+ self.buf[pos + offsetof_d_ino + 3],
+ self.buf[pos + offsetof_d_ino + 4],
+ self.buf[pos + offsetof_d_ino + 5],
+ self.buf[pos + offsetof_d_ino + 6],
+ self.buf[pos + offsetof_d_ino + 7],
+ ]);
+
+ // Do an unaligned `i64` load for `d_off`.
+ let d_off = i64::from_ne_bytes([
+ self.buf[pos + offsetof_d_off],
+ self.buf[pos + offsetof_d_off + 1],
+ self.buf[pos + offsetof_d_off + 2],
+ self.buf[pos + offsetof_d_off + 3],
+ self.buf[pos + offsetof_d_off + 4],
+ self.buf[pos + offsetof_d_off + 5],
+ self.buf[pos + offsetof_d_off + 6],
+ self.buf[pos + offsetof_d_off + 7],
+ ]);
+
+ let d_type = self.buf[pos + offsetof_d_type];
+
+ // Check that our types correspond to the `linux_dirent64` types.
+ let _ = linux_dirent64 {
+ d_ino,
+ d_off,
+ d_type,
+ d_reclen,
+ d_name: Default::default(),
+ };
+
+ Some(Ok(DirEntry {
+ d_ino,
+ d_off,
+ d_type,
+ name,
+ }))
+ }
+
+ #[must_use]
+ fn read_more(&mut self) -> Option<io::Result<()>> {
+ // The first few times we're called, we allocate a relatively small
+ // buffer, because many directories are small. If we're called more,
+ // use progressively larger allocations, up to a fixed maximum.
+ //
+ // The specific sizes and policy here have not been tuned in detail yet
+ // and may need to be adjusted. In doing so, we should be careful to
+ // avoid unbounded buffer growth. This buffer only exists to share the
+ // cost of a `getdents` call over many entries, so if it gets too big,
+ // cache and heap usage will outweigh the benefit. And ultimately,
+ // directories can contain more entries than we can allocate contiguous
+ // memory for, so we'll always need to cap the size at some point.
+ if self.buf.len() < 1024 * size_of::<linux_dirent64>() {
+ self.buf.reserve(32 * size_of::<linux_dirent64>());
+ }
+ self.buf.resize(self.buf.capacity(), 0);
+ let nread = match io::retry_on_intr(|| {
+ crate::backend::fs::syscalls::getdents(self.fd.as_fd(), &mut self.buf)
+ }) {
+ Ok(nread) => nread,
+ Err(io::Errno::NOENT) => {
+ self.any_errors = true;
+ return None;
+ }
+ Err(err) => {
+ self.any_errors = true;
+ return Some(Err(err));
+ }
+ };
+ self.buf.resize(nread, 0);
+ self.pos = 0;
+ if nread == 0 {
+ None
+ } else {
+ Some(Ok(()))
+ }
+ }
+
+ /// `fstat(self)`
+ #[inline]
+ pub fn stat(&self) -> io::Result<Stat> {
+ fstat(&self.fd)
+ }
+
+ /// `fstatfs(self)`
+ #[inline]
+ pub fn statfs(&self) -> io::Result<StatFs> {
+ fstatfs(&self.fd)
+ }
+
+ /// `fstatvfs(self)`
+ #[inline]
+ pub fn statvfs(&self) -> io::Result<StatVfs> {
+ fstatvfs(&self.fd)
+ }
+
+ /// `fchdir(self)`
+ #[cfg(feature = "process")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "process")))]
+ #[inline]
+ pub fn chdir(&self) -> io::Result<()> {
+ fchdir(&self.fd)
+ }
+}
+
+impl Iterator for Dir {
+ type Item = io::Result<DirEntry>;
+
+ #[inline]
+ fn next(&mut self) -> Option<Self::Item> {
+ Self::read(self)
+ }
+}
+
+impl fmt::Debug for Dir {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ f.debug_struct("Dir").field("fd", &self.fd).finish()
+ }
+}
+
+/// `struct dirent`
+#[derive(Debug)]
+pub struct DirEntry {
+ d_ino: u64,
+ d_type: u8,
+ d_off: i64,
+ name: CString,
+}
+
+impl DirEntry {
+ /// Returns the file name of this directory entry.
+ #[inline]
+ pub fn file_name(&self) -> &CStr {
+ &self.name
+ }
+
+ /// Returns the “offset” of this directory entry. This is not a true
+ /// numerical offset but an opaque cookie that identifies a position in the
+ /// given stream.
+ #[inline]
+ pub fn offset(&self) -> i64 {
+ self.d_off
+ }
+
+ /// Returns the type of this directory entry.
+ #[inline]
+ pub fn file_type(&self) -> FileType {
+ FileType::from_dirent_d_type(self.d_type)
+ }
+
+ /// Return the inode number of this directory entry.
+ #[inline]
+ pub fn ino(&self) -> u64 {
+ self.d_ino
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn dir_iterator_handles_io_errors() {
+ // create a dir, keep the FD, then delete the dir
+ let tmp = tempfile::tempdir().unwrap();
+ let fd = crate::fs::openat(
+ crate::fs::CWD,
+ tmp.path(),
+ crate::fs::OFlags::RDONLY | crate::fs::OFlags::CLOEXEC,
+ crate::fs::Mode::empty(),
+ )
+ .unwrap();
+
+ let file_fd = crate::fs::openat(
+ &fd,
+ tmp.path().join("test.txt"),
+ crate::fs::OFlags::WRONLY | crate::fs::OFlags::CREATE,
+ crate::fs::Mode::RWXU,
+ )
+ .unwrap();
+
+ let mut dir = Dir::read_from(&fd).unwrap();
+
+ // Reach inside the `Dir` and replace its directory with a file, which
+ // will cause the subsequent `getdents64` to fail.
+ crate::io::dup2(&file_fd, &mut dir.fd).unwrap();
+
+ assert!(matches!(dir.next(), Some(Err(_))));
+ assert!(dir.next().is_none());
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/fs/inotify.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/fs/inotify.rs
new file mode 100644
index 0000000..eb13d91
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/fs/inotify.rs
@@ -0,0 +1,124 @@
+//! inotify support for working with inotify objects.
+
+use crate::ffi;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `IN_*` for use with [`inotify::init`].
+ ///
+ /// [`inotify::init`]: crate::fs::inotify::init
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct CreateFlags: ffi::c_uint {
+ /// `IN_CLOEXEC`
+ const CLOEXEC = linux_raw_sys::general::IN_CLOEXEC;
+ /// `IN_NONBLOCK`
+ const NONBLOCK = linux_raw_sys::general::IN_NONBLOCK;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `IN*` for use with [`inotify::add_watch`].
+ ///
+ /// [`inotify::add_watch`]: crate::fs::inotify::add_watch
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct WatchFlags: ffi::c_uint {
+ /// `IN_ACCESS`
+ const ACCESS = linux_raw_sys::general::IN_ACCESS;
+ /// `IN_ATTRIB`
+ const ATTRIB = linux_raw_sys::general::IN_ATTRIB;
+ /// `IN_CLOSE_NOWRITE`
+ const CLOSE_NOWRITE = linux_raw_sys::general::IN_CLOSE_NOWRITE;
+ /// `IN_CLOSE_WRITE`
+ const CLOSE_WRITE = linux_raw_sys::general::IN_CLOSE_WRITE;
+ /// `IN_CREATE`
+ const CREATE = linux_raw_sys::general::IN_CREATE;
+ /// `IN_DELETE`
+ const DELETE = linux_raw_sys::general::IN_DELETE;
+ /// `IN_DELETE_SELF`
+ const DELETE_SELF = linux_raw_sys::general::IN_DELETE_SELF;
+ /// `IN_MODIFY`
+ const MODIFY = linux_raw_sys::general::IN_MODIFY;
+ /// `IN_MOVE_SELF`
+ const MOVE_SELF = linux_raw_sys::general::IN_MOVE_SELF;
+ /// `IN_MOVED_FROM`
+ const MOVED_FROM = linux_raw_sys::general::IN_MOVED_FROM;
+ /// `IN_MOVED_TO`
+ const MOVED_TO = linux_raw_sys::general::IN_MOVED_TO;
+ /// `IN_OPEN`
+ const OPEN = linux_raw_sys::general::IN_OPEN;
+
+ /// `IN_CLOSE`
+ const CLOSE = linux_raw_sys::general::IN_CLOSE;
+ /// `IN_MOVE`
+ const MOVE = linux_raw_sys::general::IN_MOVE;
+ /// `IN_ALL_EVENTS`
+ const ALL_EVENTS = linux_raw_sys::general::IN_ALL_EVENTS;
+
+ /// `IN_DONT_FOLLOW`
+ const DONT_FOLLOW = linux_raw_sys::general::IN_DONT_FOLLOW;
+ /// `IN_EXCL_UNLINK`
+ const EXCL_UNLINK = linux_raw_sys::general::IN_EXCL_UNLINK;
+ /// `IN_MASK_ADD`
+ const MASK_ADD = linux_raw_sys::general::IN_MASK_ADD;
+ /// `IN_MASK_CREATE`
+ const MASK_CREATE = linux_raw_sys::general::IN_MASK_CREATE;
+ /// `IN_ONESHOT`
+ const ONESHOT = linux_raw_sys::general::IN_ONESHOT;
+ /// `IN_ONLYDIR`
+ const ONLYDIR = linux_raw_sys::general::IN_ONLYDIR;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `IN*` for use with [`inotify::Reader`].
+ ///
+ /// [`inotify::Reader`]: crate::fs::inotify::InotifyReader
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ReadFlags: ffi::c_uint {
+ /// `IN_ACCESS`
+ const ACCESS = linux_raw_sys::general::IN_ACCESS;
+ /// `IN_ATTRIB`
+ const ATTRIB = linux_raw_sys::general::IN_ATTRIB;
+ /// `IN_CLOSE_NOWRITE`
+ const CLOSE_NOWRITE = linux_raw_sys::general::IN_CLOSE_NOWRITE;
+ /// `IN_CLOSE_WRITE`
+ const CLOSE_WRITE = linux_raw_sys::general::IN_CLOSE_WRITE;
+ /// `IN_CREATE`
+ const CREATE = linux_raw_sys::general::IN_CREATE;
+ /// `IN_DELETE`
+ const DELETE = linux_raw_sys::general::IN_DELETE;
+ /// `IN_DELETE_SELF`
+ const DELETE_SELF = linux_raw_sys::general::IN_DELETE_SELF;
+ /// `IN_MODIFY`
+ const MODIFY = linux_raw_sys::general::IN_MODIFY;
+ /// `IN_MOVE_SELF`
+ const MOVE_SELF = linux_raw_sys::general::IN_MOVE_SELF;
+ /// `IN_MOVED_FROM`
+ const MOVED_FROM = linux_raw_sys::general::IN_MOVED_FROM;
+ /// `IN_MOVED_TO`
+ const MOVED_TO = linux_raw_sys::general::IN_MOVED_TO;
+ /// `IN_OPEN`
+ const OPEN = linux_raw_sys::general::IN_OPEN;
+
+ /// `IN_IGNORED`
+ const IGNORED = linux_raw_sys::general::IN_IGNORED;
+ /// `IN_ISDIR`
+ const ISDIR = linux_raw_sys::general::IN_ISDIR;
+ /// `IN_Q_OVERFLOW`
+ const QUEUE_OVERFLOW = linux_raw_sys::general::IN_Q_OVERFLOW;
+ /// `IN_UNMOUNT`
+ const UNMOUNT = linux_raw_sys::general::IN_UNMOUNT;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/fs/makedev.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/fs/makedev.rs
new file mode 100644
index 0000000..284ba2f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/fs/makedev.rs
@@ -0,0 +1,19 @@
+use crate::fs::Dev;
+
+#[inline]
+pub(crate) fn makedev(maj: u32, min: u32) -> Dev {
+ ((u64::from(maj) & 0xffff_f000_u64) << 32)
+ | ((u64::from(maj) & 0x0000_0fff_u64) << 8)
+ | ((u64::from(min) & 0xffff_ff00_u64) << 12)
+ | (u64::from(min) & 0x0000_00ff_u64)
+}
+
+#[inline]
+pub(crate) fn major(dev: Dev) -> u32 {
+ (((dev >> 31 >> 1) & 0xffff_f000) | ((dev >> 8) & 0x0000_0fff)) as u32
+}
+
+#[inline]
+pub(crate) fn minor(dev: Dev) -> u32 {
+ (((dev >> 12) & 0xffff_ff00) | (dev & 0x0000_00ff)) as u32
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/fs/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/fs/mod.rs
new file mode 100644
index 0000000..9f53c5d
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/fs/mod.rs
@@ -0,0 +1,13 @@
+#[cfg(feature = "alloc")]
+pub(crate) mod dir;
+pub mod inotify;
+pub(crate) mod makedev;
+pub(crate) mod syscalls;
+pub(crate) mod types;
+
+// TODO: Fix linux-raw-sys to define ioctl codes for sparc.
+#[cfg(any(target_arch = "sparc", target_arch = "sparc64"))]
+pub(crate) const EXT4_IOC_RESIZE_FS: u32 = 0x8008_6610;
+
+#[cfg(not(any(target_arch = "sparc", target_arch = "sparc64")))]
+pub(crate) use linux_raw_sys::ioctl::EXT4_IOC_RESIZE_FS;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/fs/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/fs/syscalls.rs
new file mode 100644
index 0000000..872dd8e
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/fs/syscalls.rs
@@ -0,0 +1,1722 @@
+//! linux_raw syscalls supporting `rustix::fs`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code)]
+#![allow(clippy::undocumented_unsafe_blocks)]
+
+use crate::backend::c;
+use crate::backend::conv::fs::oflags_for_open_how;
+#[cfg(any(
+ not(feature = "linux_4_11"),
+ target_arch = "aarch64",
+ target_arch = "riscv64",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+))]
+use crate::backend::conv::zero;
+use crate::backend::conv::{
+ by_ref, c_int, c_uint, dev_t, opt_mut, pass_usize, raw_fd, ret, ret_c_int, ret_c_uint,
+ ret_infallible, ret_owned_fd, ret_usize, size_of, slice, slice_mut,
+};
+#[cfg(target_pointer_width = "64")]
+use crate::backend::conv::{loff_t, loff_t_from_u64, ret_u64};
+use crate::fd::{BorrowedFd, OwnedFd};
+use crate::ffi::CStr;
+#[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))]
+use crate::fs::CWD;
+use crate::fs::{
+ inotify, Access, Advice, AtFlags, FallocateFlags, FileType, FlockOperation, Fsid, Gid,
+ MemfdFlags, Mode, OFlags, RenameFlags, ResolveFlags, SealFlags, SeekFrom, Stat, StatFs,
+ StatVfs, StatVfsMountFlags, Statx, StatxFlags, Timestamps, Uid, XattrFlags,
+};
+use crate::io;
+use core::mem::MaybeUninit;
+use core::num::NonZeroU64;
+#[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
+use linux_raw_sys::general::stat as linux_stat64;
+use linux_raw_sys::general::{
+ open_how, AT_EACCESS, AT_FDCWD, AT_REMOVEDIR, AT_SYMLINK_NOFOLLOW, F_ADD_SEALS, F_GETFL,
+ F_GET_SEALS, F_SETFL, SEEK_CUR, SEEK_DATA, SEEK_END, SEEK_HOLE, SEEK_SET, STATX__RESERVED,
+};
+#[cfg(target_pointer_width = "32")]
+use {
+ crate::backend::conv::{hi, lo, slice_just_addr},
+ linux_raw_sys::general::stat64 as linux_stat64,
+ linux_raw_sys::general::timespec as __kernel_old_timespec,
+};
+
+#[inline]
+pub(crate) fn open(path: &CStr, flags: OFlags, mode: Mode) -> io::Result<OwnedFd> {
+ // Always enable support for large files.
+ let flags = flags | OFlags::LARGEFILE;
+
+ #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))]
+ {
+ openat(CWD, path, flags, mode)
+ }
+ #[cfg(not(any(target_arch = "aarch64", target_arch = "riscv64")))]
+ unsafe {
+ ret_owned_fd(syscall_readonly!(__NR_open, path, flags, mode))
+ }
+}
+
+#[inline]
+pub(crate) fn openat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ flags: OFlags,
+ mode: Mode,
+) -> io::Result<OwnedFd> {
+ // Always enable support for large files.
+ let flags = flags | OFlags::LARGEFILE;
+
+ unsafe { ret_owned_fd(syscall_readonly!(__NR_openat, dirfd, path, flags, mode)) }
+}
+
+#[inline]
+pub(crate) fn openat2(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ mut flags: OFlags,
+ mode: Mode,
+ resolve: ResolveFlags,
+) -> io::Result<OwnedFd> {
+ // Enable support for large files, but not with `O_PATH` because
+ // `openat2` doesn't like those flags together.
+ if !flags.contains(OFlags::PATH) {
+ flags |= OFlags::from_bits_retain(c::O_LARGEFILE);
+ }
+
+ unsafe {
+ ret_owned_fd(syscall_readonly!(
+ __NR_openat2,
+ dirfd,
+ path,
+ by_ref(&open_how {
+ flags: oflags_for_open_how(flags),
+ mode: u64::from(mode.bits()),
+ resolve: resolve.bits(),
+ }),
+ size_of::<open_how, _>()
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn chmod(path: &CStr, mode: Mode) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fchmodat,
+ raw_fd(AT_FDCWD),
+ path,
+ mode
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn chmodat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ mode: Mode,
+ flags: AtFlags,
+) -> io::Result<()> {
+ if flags == AtFlags::SYMLINK_NOFOLLOW {
+ return Err(io::Errno::OPNOTSUPP);
+ }
+ if !flags.is_empty() {
+ return Err(io::Errno::INVAL);
+ }
+ unsafe { ret(syscall_readonly!(__NR_fchmodat, dirfd, path, mode)) }
+}
+
+#[inline]
+pub(crate) fn fchmod(fd: BorrowedFd<'_>, mode: Mode) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_fchmod, fd, mode)) }
+}
+
+#[inline]
+pub(crate) fn chownat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ owner: Option<Uid>,
+ group: Option<Gid>,
+ flags: AtFlags,
+) -> io::Result<()> {
+ unsafe {
+ let (ow, gr) = crate::ugid::translate_fchown_args(owner, group);
+ ret(syscall_readonly!(
+ __NR_fchownat,
+ dirfd,
+ path,
+ c_uint(ow),
+ c_uint(gr),
+ flags
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn chown(path: &CStr, owner: Option<Uid>, group: Option<Gid>) -> io::Result<()> {
+ // Most architectures have a `chown` syscall.
+ #[cfg(not(any(target_arch = "aarch64", target_arch = "riscv64")))]
+ unsafe {
+ let (ow, gr) = crate::ugid::translate_fchown_args(owner, group);
+ ret(syscall_readonly!(__NR_chown, path, c_uint(ow), c_uint(gr)))
+ }
+
+ // Aarch64 and RISC-V don't, so use `fchownat`.
+ #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))]
+ unsafe {
+ let (ow, gr) = crate::ugid::translate_fchown_args(owner, group);
+ ret(syscall_readonly!(
+ __NR_fchownat,
+ raw_fd(AT_FDCWD),
+ path,
+ c_uint(ow),
+ c_uint(gr),
+ zero()
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn fchown(fd: BorrowedFd<'_>, owner: Option<Uid>, group: Option<Gid>) -> io::Result<()> {
+ unsafe {
+ let (ow, gr) = crate::ugid::translate_fchown_args(owner, group);
+ ret(syscall_readonly!(__NR_fchown, fd, c_uint(ow), c_uint(gr)))
+ }
+}
+
+#[inline]
+pub(crate) fn mknodat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ file_type: FileType,
+ mode: Mode,
+ dev: u64,
+) -> io::Result<()> {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_mknodat,
+ dirfd,
+ path,
+ (mode, file_type),
+ dev_t(dev)?
+ ))
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_mknodat,
+ dirfd,
+ path,
+ (mode, file_type),
+ dev_t(dev)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn seek(fd: BorrowedFd<'_>, pos: SeekFrom) -> io::Result<u64> {
+ let (whence, offset) = match pos {
+ SeekFrom::Start(pos) => {
+ let pos: u64 = pos;
+ // Silently cast; we'll get `EINVAL` if the value is negative.
+ (SEEK_SET, pos as i64)
+ }
+ SeekFrom::End(offset) => (SEEK_END, offset),
+ SeekFrom::Current(offset) => (SEEK_CUR, offset),
+ SeekFrom::Data(pos) => {
+ let pos: u64 = pos;
+ // Silently cast; we'll get `EINVAL` if the value is negative.
+ (SEEK_DATA, pos as i64)
+ }
+ SeekFrom::Hole(pos) => {
+ let pos: u64 = pos;
+ // Silently cast; we'll get `EINVAL` if the value is negative.
+ (SEEK_HOLE, pos as i64)
+ }
+ };
+ _seek(fd, offset, whence)
+}
+
+#[inline]
+pub(crate) fn _seek(fd: BorrowedFd<'_>, offset: i64, whence: c::c_uint) -> io::Result<u64> {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ let mut result = MaybeUninit::<u64>::uninit();
+ ret(syscall!(
+ __NR__llseek,
+ fd,
+ // Don't use the hi/lo functions here because Linux's llseek
+ // takes its 64-bit argument differently from everything else.
+ pass_usize((offset >> 32) as usize),
+ pass_usize(offset as usize),
+ &mut result,
+ c_uint(whence)
+ ))?;
+ Ok(result.assume_init())
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret_u64(syscall_readonly!(
+ __NR_lseek,
+ fd,
+ loff_t(offset),
+ c_uint(whence)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn tell(fd: BorrowedFd<'_>) -> io::Result<u64> {
+ _seek(fd, 0, SEEK_CUR).map(|x| x as u64)
+}
+
+#[inline]
+pub(crate) fn ftruncate(fd: BorrowedFd<'_>, length: u64) -> io::Result<()> {
+ // <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/kernel/sys32.c?h=v6.13#n89>
+ #[cfg(all(
+ target_pointer_width = "32",
+ any(
+ target_arch = "arm",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "powerpc"
+ ),
+ ))]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_ftruncate64,
+ fd,
+ zero(),
+ hi(length),
+ lo(length)
+ ))
+ }
+ #[cfg(all(
+ target_pointer_width = "32",
+ not(any(
+ target_arch = "arm",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "powerpc"
+ )),
+ ))]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_ftruncate64,
+ fd,
+ hi(length),
+ lo(length)
+ ))
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_ftruncate,
+ fd,
+ loff_t_from_u64(length)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn fallocate(
+ fd: BorrowedFd<'_>,
+ mode: FallocateFlags,
+ offset: u64,
+ len: u64,
+) -> io::Result<()> {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fallocate,
+ fd,
+ mode,
+ hi(offset),
+ lo(offset),
+ hi(len),
+ lo(len)
+ ))
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fallocate,
+ fd,
+ mode,
+ loff_t_from_u64(offset),
+ loff_t_from_u64(len)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn fadvise(
+ fd: BorrowedFd<'_>,
+ pos: u64,
+ len: Option<NonZeroU64>,
+ advice: Advice,
+) -> io::Result<()> {
+ let len = match len {
+ None => 0,
+ Some(len) => len.get(),
+ };
+
+ // On ARM, the arguments are reordered so that the `len` and `pos` argument
+ // pairs are aligned. And ARM has a custom syscall code for this.
+ #[cfg(target_arch = "arm")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_arm_fadvise64_64,
+ fd,
+ advice,
+ hi(pos),
+ lo(pos),
+ hi(len),
+ lo(len)
+ ))
+ }
+
+ // On powerpc, the arguments are reordered as on ARM.
+ #[cfg(target_arch = "powerpc")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fadvise64_64,
+ fd,
+ advice,
+ hi(pos),
+ lo(pos),
+ hi(len),
+ lo(len)
+ ))
+ }
+
+ // On mips, the arguments are not reordered, and padding is inserted
+ // instead to ensure alignment.
+ #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fadvise64,
+ fd,
+ zero(),
+ hi(pos),
+ lo(pos),
+ hi(len),
+ lo(len),
+ advice
+ ))
+ }
+
+ // For all other 32-bit architectures, use `fadvise64_64` so that we get a
+ // 64-bit length.
+ #[cfg(all(
+ target_pointer_width = "32",
+ not(any(
+ target_arch = "arm",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "powerpc"
+ )),
+ ))]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fadvise64_64,
+ fd,
+ hi(pos),
+ lo(pos),
+ hi(len),
+ lo(len),
+ advice
+ ))
+ }
+
+ // On 64-bit architectures, use `fadvise64` which is sufficient.
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fadvise64,
+ fd,
+ loff_t_from_u64(pos),
+ loff_t_from_u64(len),
+ advice
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn fsync(fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_fsync, fd)) }
+}
+
+#[inline]
+pub(crate) fn fdatasync(fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_fdatasync, fd)) }
+}
+
+#[inline]
+pub(crate) fn flock(fd: BorrowedFd<'_>, operation: FlockOperation) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_flock,
+ fd,
+ c_uint(operation as c::c_uint)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn syncfs(fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_syncfs, fd)) }
+}
+
+#[inline]
+pub(crate) fn sync() {
+ unsafe { ret_infallible(syscall_readonly!(__NR_sync)) }
+}
+
+#[inline]
+pub(crate) fn fstat(fd: BorrowedFd<'_>) -> io::Result<Stat> {
+ // 32-bit and mips64 Linux: `struct stat64` is not y2038 compatible; use
+ // `statx`.
+ //
+ // And, some old platforms don't support `statx`, and some fail with a
+ // confusing error code, so we call `crate::fs::statx` to handle that. If
+ // `statx` isn't available, fall back to the buggy system call.
+ #[cfg(any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ ))]
+ {
+ match crate::fs::statx(fd, cstr!(""), AtFlags::EMPTY_PATH, StatxFlags::BASIC_STATS) {
+ Ok(x) => statx_to_stat(x),
+ Err(io::Errno::NOSYS) => fstat_old(fd),
+ Err(err) => Err(err),
+ }
+ }
+
+ #[cfg(all(
+ target_pointer_width = "64",
+ not(target_arch = "mips64"),
+ not(target_arch = "mips64r6")
+ ))]
+ unsafe {
+ let mut result = MaybeUninit::<Stat>::uninit();
+ ret(syscall!(__NR_fstat, fd, &mut result))?;
+ Ok(result.assume_init())
+ }
+}
+
+#[cfg(any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+))]
+fn fstat_old(fd: BorrowedFd<'_>) -> io::Result<Stat> {
+ let mut result = MaybeUninit::<linux_stat64>::uninit();
+
+ #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
+ unsafe {
+ ret(syscall!(__NR_fstat, fd, &mut result))?;
+ stat_to_stat(result.assume_init())
+ }
+
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret(syscall!(__NR_fstat64, fd, &mut result))?;
+ stat_to_stat(result.assume_init())
+ }
+}
+
+#[inline]
+pub(crate) fn stat(path: &CStr) -> io::Result<Stat> {
+ // See the comments in `fstat` about using `crate::fs::statx` here.
+ #[cfg(any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ ))]
+ {
+ match crate::fs::statx(
+ crate::fs::CWD,
+ path,
+ AtFlags::empty(),
+ StatxFlags::BASIC_STATS,
+ ) {
+ Ok(x) => statx_to_stat(x),
+ Err(io::Errno::NOSYS) => stat_old(path),
+ Err(err) => Err(err),
+ }
+ }
+
+ #[cfg(all(
+ target_pointer_width = "64",
+ not(target_arch = "mips64"),
+ not(target_arch = "mips64r6"),
+ ))]
+ unsafe {
+ let mut result = MaybeUninit::<Stat>::uninit();
+ ret(syscall!(
+ __NR_newfstatat,
+ raw_fd(AT_FDCWD),
+ path,
+ &mut result,
+ c_uint(0)
+ ))?;
+ Ok(result.assume_init())
+ }
+}
+
+#[cfg(any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+))]
+fn stat_old(path: &CStr) -> io::Result<Stat> {
+ let mut result = MaybeUninit::<linux_stat64>::uninit();
+
+ #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
+ unsafe {
+ ret(syscall!(
+ __NR_newfstatat,
+ raw_fd(AT_FDCWD),
+ path,
+ &mut result,
+ c_uint(0)
+ ))?;
+ stat_to_stat(result.assume_init())
+ }
+
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret(syscall!(
+ __NR_fstatat64,
+ raw_fd(AT_FDCWD),
+ path,
+ &mut result,
+ c_uint(0)
+ ))?;
+ stat_to_stat(result.assume_init())
+ }
+}
+
+#[inline]
+pub(crate) fn statat(dirfd: BorrowedFd<'_>, path: &CStr, flags: AtFlags) -> io::Result<Stat> {
+ // See the comments in `fstat` about using `crate::fs::statx` here.
+ #[cfg(any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ ))]
+ {
+ match crate::fs::statx(dirfd, path, flags, StatxFlags::BASIC_STATS) {
+ Ok(x) => statx_to_stat(x),
+ Err(io::Errno::NOSYS) => statat_old(dirfd, path, flags),
+ Err(err) => Err(err),
+ }
+ }
+
+ #[cfg(all(
+ target_pointer_width = "64",
+ not(target_arch = "mips64"),
+ not(target_arch = "mips64r6"),
+ ))]
+ unsafe {
+ let mut result = MaybeUninit::<Stat>::uninit();
+ ret(syscall!(__NR_newfstatat, dirfd, path, &mut result, flags))?;
+ Ok(result.assume_init())
+ }
+}
+
+#[cfg(any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+))]
+fn statat_old(dirfd: BorrowedFd<'_>, path: &CStr, flags: AtFlags) -> io::Result<Stat> {
+ let mut result = MaybeUninit::<linux_stat64>::uninit();
+
+ #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
+ unsafe {
+ ret(syscall!(__NR_newfstatat, dirfd, path, &mut result, flags))?;
+ stat_to_stat(result.assume_init())
+ }
+
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret(syscall!(__NR_fstatat64, dirfd, path, &mut result, flags))?;
+ stat_to_stat(result.assume_init())
+ }
+}
+
+#[inline]
+pub(crate) fn lstat(path: &CStr) -> io::Result<Stat> {
+ // See the comments in `fstat` about using `crate::fs::statx` here.
+ #[cfg(any(target_pointer_width = "32", target_arch = "mips64"))]
+ {
+ match crate::fs::statx(
+ crate::fs::CWD,
+ path,
+ AtFlags::SYMLINK_NOFOLLOW,
+ StatxFlags::BASIC_STATS,
+ ) {
+ Ok(x) => statx_to_stat(x),
+ Err(io::Errno::NOSYS) => lstat_old(path),
+ Err(err) => Err(err),
+ }
+ }
+
+ #[cfg(all(target_pointer_width = "64", not(target_arch = "mips64")))]
+ unsafe {
+ let mut result = MaybeUninit::<Stat>::uninit();
+ ret(syscall!(
+ __NR_newfstatat,
+ raw_fd(AT_FDCWD),
+ path,
+ &mut result,
+ c_uint(AT_SYMLINK_NOFOLLOW)
+ ))?;
+ Ok(result.assume_init())
+ }
+}
+
+#[cfg(any(target_pointer_width = "32", target_arch = "mips64"))]
+fn lstat_old(path: &CStr) -> io::Result<Stat> {
+ let mut result = MaybeUninit::<linux_stat64>::uninit();
+
+ #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
+ unsafe {
+ ret(syscall!(
+ __NR_newfstatat,
+ raw_fd(AT_FDCWD),
+ path,
+ &mut result,
+ c_uint(AT_SYMLINK_NOFOLLOW)
+ ))?;
+ stat_to_stat(result.assume_init())
+ }
+
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret(syscall!(
+ __NR_fstatat64,
+ raw_fd(AT_FDCWD),
+ path,
+ &mut result,
+ c_uint(AT_SYMLINK_NOFOLLOW)
+ ))?;
+ stat_to_stat(result.assume_init())
+ }
+}
+
+/// Convert from a Linux `statx` value to rustix's `Stat`.
+#[cfg(any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+))]
+fn statx_to_stat(x: crate::fs::Statx) -> io::Result<Stat> {
+ Ok(Stat {
+ st_dev: crate::fs::makedev(x.stx_dev_major, x.stx_dev_minor),
+ st_mode: x.stx_mode.into(),
+ st_nlink: x.stx_nlink.into(),
+ st_uid: x.stx_uid.into(),
+ st_gid: x.stx_gid.into(),
+ st_rdev: crate::fs::makedev(x.stx_rdev_major, x.stx_rdev_minor),
+ st_size: x.stx_size.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_blksize: x.stx_blksize.into(),
+ st_blocks: x.stx_blocks.into(),
+ st_atime: i64::from(x.stx_atime.tv_sec),
+ st_atime_nsec: x.stx_atime.tv_nsec.into(),
+ st_mtime: i64::from(x.stx_mtime.tv_sec),
+ st_mtime_nsec: x.stx_mtime.tv_nsec.into(),
+ st_ctime: i64::from(x.stx_ctime.tv_sec),
+ st_ctime_nsec: x.stx_ctime.tv_nsec.into(),
+ st_ino: x.stx_ino.into(),
+ })
+}
+
+/// Convert from a Linux `stat64` value to rustix's `Stat`.
+#[cfg(target_pointer_width = "32")]
+fn stat_to_stat(s64: linux_raw_sys::general::stat64) -> io::Result<Stat> {
+ Ok(Stat {
+ st_dev: s64.st_dev.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_mode: s64.st_mode.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_nlink: s64.st_nlink.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_uid: s64.st_uid.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_gid: s64.st_gid.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_rdev: s64.st_rdev.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_size: s64.st_size.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_blksize: s64.st_blksize.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_blocks: s64.st_blocks.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_atime: i64::from(s64.st_atime.to_signed()),
+ st_atime_nsec: s64
+ .st_atime_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ st_mtime: i64::from(s64.st_mtime.to_signed()),
+ st_mtime_nsec: s64
+ .st_mtime_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ st_ctime: i64::from(s64.st_ctime.to_signed()),
+ st_ctime_nsec: s64
+ .st_ctime_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ st_ino: s64.st_ino.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ })
+}
+
+/// Convert from a Linux `stat` value to rustix's `Stat`.
+#[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
+fn stat_to_stat(s: linux_raw_sys::general::stat) -> io::Result<Stat> {
+ Ok(Stat {
+ st_dev: s.st_dev.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_mode: s.st_mode.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_nlink: s.st_nlink.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_uid: s.st_uid.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_gid: s.st_gid.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_rdev: s.st_rdev.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_size: s.st_size.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_blksize: s.st_blksize.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_blocks: s.st_blocks.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ st_atime: i64::from(s.st_atime.to_signed()),
+ st_atime_nsec: s
+ .st_atime_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ st_mtime: i64::from(s.st_mtime.to_signed()),
+ st_mtime_nsec: s
+ .st_mtime_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ st_ctime: i64::from(s.st_ctime.to_signed()),
+ st_ctime_nsec: s
+ .st_ctime_nsec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ st_ino: s.st_ino.try_into().map_err(|_| io::Errno::OVERFLOW)?,
+ })
+}
+
+#[inline]
+pub(crate) fn statx(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ flags: AtFlags,
+ mask: StatxFlags,
+) -> io::Result<Statx> {
+ // If a future Linux kernel adds more fields to `struct statx` and users
+ // passing flags unknown to rustix in `StatxFlags`, we could end up
+ // writing outside of the buffer. To prevent this possibility, we mask off
+ // any flags that we don't know about.
+ //
+ // This includes `STATX__RESERVED`, which has a value that we know, but
+ // which could take on arbitrary new meaning in the future. Linux currently
+ // rejects this flag with `EINVAL`, so we do the same.
+ //
+ // This doesn't rely on `STATX_ALL` because [it's deprecated] and already
+ // doesn't represent all the known flags.
+ //
+ // [it's deprecated]: https://patchwork.kernel.org/project/linux-fsdevel/patch/[email protected]/
+ if (mask.bits() & STATX__RESERVED) == STATX__RESERVED {
+ return Err(io::Errno::INVAL);
+ }
+ let mask = mask & StatxFlags::all();
+
+ unsafe {
+ let mut statx_buf = MaybeUninit::<Statx>::uninit();
+ ret(syscall!(
+ __NR_statx,
+ dirfd,
+ path,
+ flags,
+ mask,
+ &mut statx_buf
+ ))?;
+ Ok(statx_buf.assume_init())
+ }
+}
+
+#[cfg(not(feature = "linux_4_11"))]
+#[inline]
+pub(crate) fn is_statx_available() -> bool {
+ unsafe {
+ // Call `statx` with null pointers so that if it fails for any reason
+ // other than `EFAULT`, we know it's not supported. This can use
+ // "readonly" because we don't pass it a buffer to mutate.
+ matches!(
+ ret(syscall_readonly!(
+ __NR_statx,
+ raw_fd(AT_FDCWD),
+ zero(),
+ zero(),
+ zero(),
+ zero()
+ )),
+ Err(io::Errno::FAULT)
+ )
+ }
+}
+
+#[inline]
+pub(crate) fn fstatfs(fd: BorrowedFd<'_>) -> io::Result<StatFs> {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ let mut result = MaybeUninit::<StatFs>::uninit();
+ ret(syscall!(
+ __NR_fstatfs64,
+ fd,
+ size_of::<StatFs, _>(),
+ &mut result
+ ))?;
+ Ok(result.assume_init())
+ }
+
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ let mut result = MaybeUninit::<StatFs>::uninit();
+ ret(syscall!(__NR_fstatfs, fd, &mut result))?;
+ Ok(result.assume_init())
+ }
+}
+
+#[inline]
+pub(crate) fn fstatvfs(fd: BorrowedFd<'_>) -> io::Result<StatVfs> {
+ // Linux doesn't have an `fstatvfs` syscall; we have to do `fstatfs` and
+ // translate the fields as best we can.
+ let statfs = fstatfs(fd)?;
+
+ Ok(statfs_to_statvfs(statfs))
+}
+
+#[inline]
+pub(crate) fn statfs(path: &CStr) -> io::Result<StatFs> {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ let mut result = MaybeUninit::<StatFs>::uninit();
+ ret(syscall!(
+ __NR_statfs64,
+ path,
+ size_of::<StatFs, _>(),
+ &mut result
+ ))?;
+ Ok(result.assume_init())
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ let mut result = MaybeUninit::<StatFs>::uninit();
+ ret(syscall!(__NR_statfs, path, &mut result))?;
+ Ok(result.assume_init())
+ }
+}
+
+#[inline]
+pub(crate) fn statvfs(path: &CStr) -> io::Result<StatVfs> {
+ // Linux doesn't have a `statvfs` syscall; we have to do `statfs` and
+ // translate the fields as best we can.
+ let statfs = statfs(path)?;
+
+ Ok(statfs_to_statvfs(statfs))
+}
+
+fn statfs_to_statvfs(statfs: StatFs) -> StatVfs {
+ let Fsid { val } = Fsid {
+ val: statfs.f_fsid.val,
+ };
+ let [f_fsid_val0, f_fsid_val1]: [i32; 2] = val;
+
+ StatVfs {
+ f_bsize: statfs.f_bsize as u64,
+ f_frsize: if statfs.f_frsize != 0 {
+ statfs.f_frsize
+ } else {
+ statfs.f_bsize
+ } as u64,
+ f_blocks: statfs.f_blocks as u64,
+ f_bfree: statfs.f_bfree as u64,
+ f_bavail: statfs.f_bavail as u64,
+ f_files: statfs.f_files as u64,
+ f_ffree: statfs.f_ffree as u64,
+ f_favail: statfs.f_ffree as u64,
+ f_fsid: u64::from(f_fsid_val0 as u32) | (u64::from(f_fsid_val1 as u32) << 32),
+ f_flag: StatVfsMountFlags::from_bits_retain(statfs.f_flags as u64),
+ f_namemax: statfs.f_namelen as u64,
+ }
+}
+
+#[cfg(feature = "alloc")]
+#[inline]
+pub(crate) fn readlink(path: &CStr, buf: &mut [u8]) -> io::Result<usize> {
+ let (buf_addr_mut, buf_len) = slice_mut(buf);
+ unsafe {
+ ret_usize(syscall!(
+ __NR_readlinkat,
+ raw_fd(AT_FDCWD),
+ path,
+ buf_addr_mut,
+ buf_len
+ ))
+ }
+}
+
+#[inline]
+pub(crate) unsafe fn readlinkat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ buf: (*mut u8, usize),
+) -> io::Result<usize> {
+ ret_usize(syscall!(
+ __NR_readlinkat,
+ dirfd,
+ path,
+ buf.0,
+ pass_usize(buf.1)
+ ))
+}
+
+#[inline]
+pub(crate) fn fcntl_getfl(fd: BorrowedFd<'_>) -> io::Result<OFlags> {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret_c_uint(syscall_readonly!(__NR_fcntl64, fd, c_uint(F_GETFL)))
+ .map(OFlags::from_bits_retain)
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret_c_uint(syscall_readonly!(__NR_fcntl, fd, c_uint(F_GETFL))).map(OFlags::from_bits_retain)
+ }
+}
+
+#[inline]
+pub(crate) fn fcntl_setfl(fd: BorrowedFd<'_>, flags: OFlags) -> io::Result<()> {
+ // Always enable support for large files.
+ let flags = flags | OFlags::from_bits_retain(c::O_LARGEFILE);
+
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret(syscall_readonly!(__NR_fcntl64, fd, c_uint(F_SETFL), flags))
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret(syscall_readonly!(__NR_fcntl, fd, c_uint(F_SETFL), flags))
+ }
+}
+
+#[inline]
+pub(crate) fn fcntl_get_seals(fd: BorrowedFd<'_>) -> io::Result<SealFlags> {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret_c_int(syscall_readonly!(__NR_fcntl64, fd, c_uint(F_GET_SEALS)))
+ .map(|seals| SealFlags::from_bits_retain(seals as u32))
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret_c_int(syscall_readonly!(__NR_fcntl, fd, c_uint(F_GET_SEALS)))
+ .map(|seals| SealFlags::from_bits_retain(seals as u32))
+ }
+}
+
+#[inline]
+pub(crate) fn fcntl_add_seals(fd: BorrowedFd<'_>, seals: SealFlags) -> io::Result<()> {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fcntl64,
+ fd,
+ c_uint(F_ADD_SEALS),
+ seals
+ ))
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fcntl,
+ fd,
+ c_uint(F_ADD_SEALS),
+ seals
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn fcntl_lock(fd: BorrowedFd<'_>, operation: FlockOperation) -> io::Result<()> {
+ #[cfg(target_pointer_width = "64")]
+ use linux_raw_sys::general::{flock, F_SETLK, F_SETLKW};
+ #[cfg(target_pointer_width = "32")]
+ use linux_raw_sys::general::{flock64 as flock, F_SETLK64 as F_SETLK, F_SETLKW64 as F_SETLKW};
+ use linux_raw_sys::general::{F_RDLCK, F_UNLCK, F_WRLCK};
+
+ let (cmd, l_type) = match operation {
+ FlockOperation::LockShared => (F_SETLKW, F_RDLCK),
+ FlockOperation::LockExclusive => (F_SETLKW, F_WRLCK),
+ FlockOperation::Unlock => (F_SETLKW, F_UNLCK),
+ FlockOperation::NonBlockingLockShared => (F_SETLK, F_RDLCK),
+ FlockOperation::NonBlockingLockExclusive => (F_SETLK, F_WRLCK),
+ FlockOperation::NonBlockingUnlock => (F_SETLK, F_UNLCK),
+ };
+
+ let lock = flock {
+ l_type: l_type as _,
+
+ // When `l_len` is zero, this locks all the bytes from
+ // `l_whence`/`l_start` to the end of the file, even as the
+ // file grows dynamically.
+ l_whence: SEEK_SET as _,
+ l_start: 0,
+ l_len: 0,
+
+ // Unused.
+ l_pid: 0,
+ };
+
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fcntl64,
+ fd,
+ c_uint(cmd),
+ by_ref(&lock)
+ ))
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fcntl,
+ fd,
+ c_uint(cmd),
+ by_ref(&lock)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn rename(old_path: &CStr, new_path: &CStr) -> io::Result<()> {
+ #[cfg(target_arch = "riscv64")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_renameat2,
+ raw_fd(AT_FDCWD),
+ old_path,
+ raw_fd(AT_FDCWD),
+ new_path,
+ c_uint(0)
+ ))
+ }
+ #[cfg(not(target_arch = "riscv64"))]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_renameat,
+ raw_fd(AT_FDCWD),
+ old_path,
+ raw_fd(AT_FDCWD),
+ new_path
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn renameat(
+ old_dirfd: BorrowedFd<'_>,
+ old_path: &CStr,
+ new_dirfd: BorrowedFd<'_>,
+ new_path: &CStr,
+) -> io::Result<()> {
+ #[cfg(target_arch = "riscv64")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_renameat2,
+ old_dirfd,
+ old_path,
+ new_dirfd,
+ new_path,
+ c_uint(0)
+ ))
+ }
+ #[cfg(not(target_arch = "riscv64"))]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_renameat,
+ old_dirfd,
+ old_path,
+ new_dirfd,
+ new_path
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn renameat2(
+ old_dirfd: BorrowedFd<'_>,
+ old_path: &CStr,
+ new_dirfd: BorrowedFd<'_>,
+ new_path: &CStr,
+ flags: RenameFlags,
+) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_renameat2,
+ old_dirfd,
+ old_path,
+ new_dirfd,
+ new_path,
+ flags
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn unlink(path: &CStr) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_unlinkat,
+ raw_fd(AT_FDCWD),
+ path,
+ c_uint(0)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn unlinkat(dirfd: BorrowedFd<'_>, path: &CStr, flags: AtFlags) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_unlinkat, dirfd, path, flags)) }
+}
+
+#[inline]
+pub(crate) fn rmdir(path: &CStr) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_unlinkat,
+ raw_fd(AT_FDCWD),
+ path,
+ c_uint(AT_REMOVEDIR)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn link(old_path: &CStr, new_path: &CStr) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_linkat,
+ raw_fd(AT_FDCWD),
+ old_path,
+ raw_fd(AT_FDCWD),
+ new_path,
+ c_uint(0)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn linkat(
+ old_dirfd: BorrowedFd<'_>,
+ old_path: &CStr,
+ new_dirfd: BorrowedFd<'_>,
+ new_path: &CStr,
+ flags: AtFlags,
+) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_linkat,
+ old_dirfd,
+ old_path,
+ new_dirfd,
+ new_path,
+ flags
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn symlink(old_path: &CStr, new_path: &CStr) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_symlinkat,
+ old_path,
+ raw_fd(AT_FDCWD),
+ new_path
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn symlinkat(old_path: &CStr, dirfd: BorrowedFd<'_>, new_path: &CStr) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_symlinkat, old_path, dirfd, new_path)) }
+}
+
+#[inline]
+pub(crate) fn mkdir(path: &CStr, mode: Mode) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_mkdirat,
+ raw_fd(AT_FDCWD),
+ path,
+ mode
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn mkdirat(dirfd: BorrowedFd<'_>, path: &CStr, mode: Mode) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_mkdirat, dirfd, path, mode)) }
+}
+
+#[cfg(feature = "alloc")]
+#[inline]
+pub(crate) fn getdents(fd: BorrowedFd<'_>, dirent: &mut [u8]) -> io::Result<usize> {
+ let (dirent_addr_mut, dirent_len) = slice_mut(dirent);
+
+ unsafe { ret_usize(syscall!(__NR_getdents64, fd, dirent_addr_mut, dirent_len)) }
+}
+
+#[inline]
+pub(crate) fn getdents_uninit(
+ fd: BorrowedFd<'_>,
+ dirent: &mut [MaybeUninit<u8>],
+) -> io::Result<usize> {
+ let (dirent_addr_mut, dirent_len) = slice_mut(dirent);
+
+ unsafe { ret_usize(syscall!(__NR_getdents64, fd, dirent_addr_mut, dirent_len)) }
+}
+
+#[inline]
+pub(crate) fn utimensat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ times: &Timestamps,
+ flags: AtFlags,
+) -> io::Result<()> {
+ _utimensat(dirfd, Some(path), times, flags)
+}
+
+#[inline]
+fn _utimensat(
+ dirfd: BorrowedFd<'_>,
+ path: Option<&CStr>,
+ times: &Timestamps,
+ flags: AtFlags,
+) -> io::Result<()> {
+ // `utimensat_time64` was introduced in Linux 5.1. The old `utimensat`
+ // syscall is not y2038-compatible on 32-bit architectures.
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ match ret(syscall_readonly!(
+ __NR_utimensat_time64,
+ dirfd,
+ path,
+ by_ref(times),
+ flags
+ )) {
+ Err(io::Errno::NOSYS) => _utimensat_old(dirfd, path, times, flags),
+ otherwise => otherwise,
+ }
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_utimensat,
+ dirfd,
+ path,
+ by_ref(times),
+ flags
+ ))
+ }
+}
+
+#[cfg(target_pointer_width = "32")]
+unsafe fn _utimensat_old(
+ dirfd: BorrowedFd<'_>,
+ path: Option<&CStr>,
+ times: &Timestamps,
+ flags: AtFlags,
+) -> io::Result<()> {
+ // See the comments in `clock_gettime_via_syscall` about emulation.
+ let old_times = [
+ __kernel_old_timespec {
+ tv_sec: times
+ .last_access
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: times
+ .last_access
+ .tv_nsec
+ .try_into()
+ .map_err(|_| io::Errno::INVAL)?,
+ },
+ __kernel_old_timespec {
+ tv_sec: times
+ .last_modification
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: times
+ .last_modification
+ .tv_nsec
+ .try_into()
+ .map_err(|_| io::Errno::INVAL)?,
+ },
+ ];
+ // The length of the array is fixed and not passed into the syscall.
+ let old_times_addr = slice_just_addr(&old_times);
+ ret(syscall_readonly!(
+ __NR_utimensat,
+ dirfd,
+ path,
+ old_times_addr,
+ flags
+ ))
+}
+
+#[inline]
+pub(crate) fn futimens(fd: BorrowedFd<'_>, times: &Timestamps) -> io::Result<()> {
+ _utimensat(fd, None, times, AtFlags::empty())
+}
+
+#[inline]
+pub(crate) fn access(path: &CStr, access: Access) -> io::Result<()> {
+ #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))]
+ {
+ accessat_noflags(CWD, path, access)
+ }
+
+ #[cfg(not(any(target_arch = "aarch64", target_arch = "riscv64")))]
+ unsafe {
+ ret(syscall_readonly!(__NR_access, path, access))
+ }
+}
+
+pub(crate) fn accessat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ access: Access,
+ flags: AtFlags,
+) -> io::Result<()> {
+ if !flags
+ .difference(AtFlags::EACCESS | AtFlags::SYMLINK_NOFOLLOW)
+ .is_empty()
+ {
+ return Err(io::Errno::INVAL);
+ }
+
+ // Linux's `faccessat` syscall doesn't have a flags argument, so if we have
+ // any flags, use the newer `faccessat2` introduced in Linux 5.8 which
+ // does. Unless we're on Android where using newer system calls can cause
+ // seccomp to abort the process.
+ #[cfg(not(target_os = "android"))]
+ if !flags.is_empty() {
+ unsafe {
+ match ret(syscall_readonly!(
+ __NR_faccessat2,
+ dirfd,
+ path,
+ access,
+ flags
+ )) {
+ Ok(()) => return Ok(()),
+ Err(io::Errno::NOSYS) => {}
+ Err(other) => return Err(other),
+ }
+ }
+ }
+
+ // Linux's `faccessat` doesn't have a flags parameter. If we have
+ // `AT_EACCESS` and we're not setuid or setgid, we can emulate it.
+ if flags.is_empty()
+ || (flags.bits() == AT_EACCESS
+ && crate::backend::ugid::syscalls::getuid()
+ == crate::backend::ugid::syscalls::geteuid()
+ && crate::backend::ugid::syscalls::getgid()
+ == crate::backend::ugid::syscalls::getegid())
+ {
+ return accessat_noflags(dirfd, path, access);
+ }
+
+ Err(io::Errno::NOSYS)
+}
+
+#[inline]
+fn accessat_noflags(dirfd: BorrowedFd<'_>, path: &CStr, access: Access) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_faccessat, dirfd, path, access)) }
+}
+
+#[inline]
+pub(crate) fn copy_file_range(
+ fd_in: BorrowedFd<'_>,
+ off_in: Option<&mut u64>,
+ fd_out: BorrowedFd<'_>,
+ off_out: Option<&mut u64>,
+ len: usize,
+) -> io::Result<usize> {
+ unsafe {
+ ret_usize(syscall!(
+ __NR_copy_file_range,
+ fd_in,
+ opt_mut(off_in),
+ fd_out,
+ opt_mut(off_out),
+ pass_usize(len),
+ c_uint(0)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn memfd_create(name: &CStr, flags: MemfdFlags) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(syscall_readonly!(__NR_memfd_create, name, flags)) }
+}
+
+#[inline]
+pub(crate) fn sendfile(
+ out_fd: BorrowedFd<'_>,
+ in_fd: BorrowedFd<'_>,
+ offset: Option<&mut u64>,
+ count: usize,
+) -> io::Result<usize> {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret_usize(syscall!(
+ __NR_sendfile64,
+ out_fd,
+ in_fd,
+ opt_mut(offset),
+ pass_usize(count)
+ ))
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret_usize(syscall!(
+ __NR_sendfile,
+ out_fd,
+ in_fd,
+ opt_mut(offset),
+ pass_usize(count)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn inotify_init1(flags: inotify::CreateFlags) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(syscall_readonly!(__NR_inotify_init1, flags)) }
+}
+
+#[inline]
+pub(crate) fn inotify_add_watch(
+ infd: BorrowedFd<'_>,
+ path: &CStr,
+ flags: inotify::WatchFlags,
+) -> io::Result<i32> {
+ unsafe { ret_c_int(syscall_readonly!(__NR_inotify_add_watch, infd, path, flags)) }
+}
+
+#[inline]
+pub(crate) fn inotify_rm_watch(infd: BorrowedFd<'_>, wfd: i32) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_inotify_rm_watch, infd, c_int(wfd))) }
+}
+
+#[inline]
+pub(crate) unsafe fn getxattr(
+ path: &CStr,
+ name: &CStr,
+ value: (*mut u8, usize),
+) -> io::Result<usize> {
+ ret_usize(syscall!(
+ __NR_getxattr,
+ path,
+ name,
+ value.0,
+ pass_usize(value.1)
+ ))
+}
+
+#[inline]
+pub(crate) unsafe fn lgetxattr(
+ path: &CStr,
+ name: &CStr,
+ value: (*mut u8, usize),
+) -> io::Result<usize> {
+ ret_usize(syscall!(
+ __NR_lgetxattr,
+ path,
+ name,
+ value.0,
+ pass_usize(value.1)
+ ))
+}
+
+#[inline]
+pub(crate) unsafe fn fgetxattr(
+ fd: BorrowedFd<'_>,
+ name: &CStr,
+ value: (*mut u8, usize),
+) -> io::Result<usize> {
+ ret_usize(syscall!(
+ __NR_fgetxattr,
+ fd,
+ name,
+ value.0,
+ pass_usize(value.1)
+ ))
+}
+
+#[inline]
+pub(crate) fn setxattr(
+ path: &CStr,
+ name: &CStr,
+ value: &[u8],
+ flags: XattrFlags,
+) -> io::Result<()> {
+ let (value_addr, value_len) = slice(value);
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_setxattr,
+ path,
+ name,
+ value_addr,
+ value_len,
+ flags
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn lsetxattr(
+ path: &CStr,
+ name: &CStr,
+ value: &[u8],
+ flags: XattrFlags,
+) -> io::Result<()> {
+ let (value_addr, value_len) = slice(value);
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_lsetxattr,
+ path,
+ name,
+ value_addr,
+ value_len,
+ flags
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn fsetxattr(
+ fd: BorrowedFd<'_>,
+ name: &CStr,
+ value: &[u8],
+ flags: XattrFlags,
+) -> io::Result<()> {
+ let (value_addr, value_len) = slice(value);
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fsetxattr,
+ fd,
+ name,
+ value_addr,
+ value_len,
+ flags
+ ))
+ }
+}
+
+#[inline]
+pub(crate) unsafe fn listxattr(path: &CStr, list: (*mut u8, usize)) -> io::Result<usize> {
+ ret_usize(syscall!(__NR_listxattr, path, list.0, pass_usize(list.1)))
+}
+
+#[inline]
+pub(crate) unsafe fn llistxattr(path: &CStr, list: (*mut u8, usize)) -> io::Result<usize> {
+ ret_usize(syscall!(__NR_llistxattr, path, list.0, pass_usize(list.1)))
+}
+
+#[inline]
+pub(crate) unsafe fn flistxattr(fd: BorrowedFd<'_>, list: (*mut u8, usize)) -> io::Result<usize> {
+ ret_usize(syscall!(__NR_flistxattr, fd, list.0, pass_usize(list.1)))
+}
+
+#[inline]
+pub(crate) fn removexattr(path: &CStr, name: &CStr) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_removexattr, path, name)) }
+}
+
+#[inline]
+pub(crate) fn lremovexattr(path: &CStr, name: &CStr) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_lremovexattr, path, name)) }
+}
+
+#[inline]
+pub(crate) fn fremovexattr(fd: BorrowedFd<'_>, name: &CStr) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_fremovexattr, fd, name)) }
+}
+
+// Some linux_raw_sys structs have unsigned types for values which are
+// interpreted as signed. This defines a utility or casting to the
+// same-sized signed type.
+#[cfg(any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+))]
+mod to_signed {
+ pub(super) trait ToSigned {
+ type Signed;
+ fn to_signed(self) -> Self::Signed;
+ }
+ impl ToSigned for u32 {
+ type Signed = i32;
+
+ fn to_signed(self) -> Self::Signed {
+ self as _
+ }
+ }
+ impl ToSigned for i32 {
+ type Signed = i32;
+
+ fn to_signed(self) -> Self::Signed {
+ self
+ }
+ }
+ impl ToSigned for u64 {
+ type Signed = i64;
+
+ fn to_signed(self) -> Self::Signed {
+ self as _
+ }
+ }
+ impl ToSigned for i64 {
+ type Signed = i64;
+
+ fn to_signed(self) -> Self::Signed {
+ self
+ }
+ }
+}
+#[cfg(any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+))]
+use to_signed::*;
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_sizes() {
+ assert_eq_size!(linux_raw_sys::general::__kernel_loff_t, u64);
+ assert_eq_align!(linux_raw_sys::general::__kernel_loff_t, u64);
+
+ // Assert that `Timestamps` has the expected layout.
+ assert_eq_size!([linux_raw_sys::general::__kernel_timespec; 2], Timestamps);
+ assert_eq_align!([linux_raw_sys::general::__kernel_timespec; 2], Timestamps);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/fs/types.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/fs/types.rs
new file mode 100644
index 0000000..ce6461c
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/fs/types.rs
@@ -0,0 +1,848 @@
+use crate::ffi;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `*_OK` constants for use with [`accessat`].
+ ///
+ /// [`accessat`]: fn.accessat.html
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct Access: ffi::c_uint {
+ /// `R_OK`
+ const READ_OK = linux_raw_sys::general::R_OK;
+
+ /// `W_OK`
+ const WRITE_OK = linux_raw_sys::general::W_OK;
+
+ /// `X_OK`
+ const EXEC_OK = linux_raw_sys::general::X_OK;
+
+ /// `F_OK`
+ const EXISTS = linux_raw_sys::general::F_OK;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `AT_*` constants for use with [`openat`], [`statat`], and other `*at`
+ /// functions.
+ ///
+ /// [`openat`]: crate::fs::openat
+ /// [`statat`]: crate::fs::statat
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct AtFlags: ffi::c_uint {
+ /// `AT_SYMLINK_NOFOLLOW`
+ const SYMLINK_NOFOLLOW = linux_raw_sys::general::AT_SYMLINK_NOFOLLOW;
+
+ /// `AT_EACCESS`
+ const EACCESS = linux_raw_sys::general::AT_EACCESS;
+
+ /// `AT_REMOVEDIR`
+ const REMOVEDIR = linux_raw_sys::general::AT_REMOVEDIR;
+
+ /// `AT_SYMLINK_FOLLOW`
+ const SYMLINK_FOLLOW = linux_raw_sys::general::AT_SYMLINK_FOLLOW;
+
+ /// `AT_NO_AUTOMOUNT`
+ const NO_AUTOMOUNT = linux_raw_sys::general::AT_NO_AUTOMOUNT;
+
+ /// `AT_EMPTY_PATH`
+ const EMPTY_PATH = linux_raw_sys::general::AT_EMPTY_PATH;
+
+ /// `AT_STATX_SYNC_AS_STAT`
+ const STATX_SYNC_AS_STAT = linux_raw_sys::general::AT_STATX_SYNC_AS_STAT;
+
+ /// `AT_STATX_FORCE_SYNC`
+ const STATX_FORCE_SYNC = linux_raw_sys::general::AT_STATX_FORCE_SYNC;
+
+ /// `AT_STATX_DONT_SYNC`
+ const STATX_DONT_SYNC = linux_raw_sys::general::AT_STATX_DONT_SYNC;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `S_I*` constants for use with [`openat`], [`chmodat`], and [`fchmod`].
+ ///
+ /// [`openat`]: crate::fs::openat
+ /// [`chmodat`]: crate::fs::chmodat
+ /// [`fchmod`]: crate::fs::fchmod
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct Mode: RawMode {
+ /// `S_IRWXU`
+ const RWXU = linux_raw_sys::general::S_IRWXU;
+
+ /// `S_IRUSR`
+ const RUSR = linux_raw_sys::general::S_IRUSR;
+
+ /// `S_IWUSR`
+ const WUSR = linux_raw_sys::general::S_IWUSR;
+
+ /// `S_IXUSR`
+ const XUSR = linux_raw_sys::general::S_IXUSR;
+
+ /// `S_IRWXG`
+ const RWXG = linux_raw_sys::general::S_IRWXG;
+
+ /// `S_IRGRP`
+ const RGRP = linux_raw_sys::general::S_IRGRP;
+
+ /// `S_IWGRP`
+ const WGRP = linux_raw_sys::general::S_IWGRP;
+
+ /// `S_IXGRP`
+ const XGRP = linux_raw_sys::general::S_IXGRP;
+
+ /// `S_IRWXO`
+ const RWXO = linux_raw_sys::general::S_IRWXO;
+
+ /// `S_IROTH`
+ const ROTH = linux_raw_sys::general::S_IROTH;
+
+ /// `S_IWOTH`
+ const WOTH = linux_raw_sys::general::S_IWOTH;
+
+ /// `S_IXOTH`
+ const XOTH = linux_raw_sys::general::S_IXOTH;
+
+ /// `S_ISUID`
+ const SUID = linux_raw_sys::general::S_ISUID;
+
+ /// `S_ISGID`
+ const SGID = linux_raw_sys::general::S_ISGID;
+
+ /// `S_ISVTX`
+ const SVTX = linux_raw_sys::general::S_ISVTX;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+impl Mode {
+ /// Construct a `Mode` from the mode bits of the `st_mode` field of a
+ /// `Mode`.
+ #[inline]
+ pub const fn from_raw_mode(st_mode: RawMode) -> Self {
+ Self::from_bits_truncate(st_mode & !linux_raw_sys::general::S_IFMT)
+ }
+
+ /// Construct an `st_mode` value from a `Mode`.
+ #[inline]
+ pub const fn as_raw_mode(self) -> RawMode {
+ self.bits()
+ }
+}
+
+impl From<RawMode> for Mode {
+ /// Support conversions from raw mode values to `Mode`.
+ ///
+ /// ```
+ /// use rustix::fs::{Mode, RawMode};
+ /// assert_eq!(Mode::from(0o700), Mode::RWXU);
+ /// ```
+ #[inline]
+ fn from(st_mode: RawMode) -> Self {
+ Self::from_raw_mode(st_mode)
+ }
+}
+
+impl From<Mode> for RawMode {
+ /// Support conversions from `Mode` to raw mode values.
+ ///
+ /// ```
+ /// use rustix::fs::{Mode, RawMode};
+ /// assert_eq!(RawMode::from(Mode::RWXU), 0o700);
+ /// ```
+ #[inline]
+ fn from(mode: Mode) -> Self {
+ mode.as_raw_mode()
+ }
+}
+
+bitflags! {
+ /// `O_*` constants for use with [`openat`].
+ ///
+ /// [`openat`]: crate::fs::openat
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct OFlags: ffi::c_uint {
+ /// `O_ACCMODE`
+ const ACCMODE = linux_raw_sys::general::O_ACCMODE;
+
+ /// Similar to `ACCMODE`, but just includes the read/write flags, and
+ /// no other flags.
+ ///
+ /// On some platforms, `PATH` may be included in `ACCMODE`, when
+ /// sometimes we really just want the read/write bits. Caution is
+ /// indicated, as the presence of `PATH` may mean that the read/write
+ /// bits don't have their usual meaning.
+ const RWMODE = linux_raw_sys::general::O_RDONLY |
+ linux_raw_sys::general::O_WRONLY |
+ linux_raw_sys::general::O_RDWR;
+
+ /// `O_APPEND`
+ const APPEND = linux_raw_sys::general::O_APPEND;
+
+ /// `O_CREAT`
+ #[doc(alias = "CREAT")]
+ const CREATE = linux_raw_sys::general::O_CREAT;
+
+ /// `O_DIRECTORY`
+ const DIRECTORY = linux_raw_sys::general::O_DIRECTORY;
+
+ /// `O_DSYNC`
+ const DSYNC = linux_raw_sys::general::O_SYNC;
+
+ /// `O_EXCL`
+ const EXCL = linux_raw_sys::general::O_EXCL;
+
+ /// `O_FSYNC`
+ const FSYNC = linux_raw_sys::general::O_SYNC;
+
+ /// `O_NOFOLLOW`
+ const NOFOLLOW = linux_raw_sys::general::O_NOFOLLOW;
+
+ /// `O_NONBLOCK`
+ const NONBLOCK = linux_raw_sys::general::O_NONBLOCK;
+
+ /// `O_RDONLY`
+ const RDONLY = linux_raw_sys::general::O_RDONLY;
+
+ /// `O_WRONLY`
+ const WRONLY = linux_raw_sys::general::O_WRONLY;
+
+ /// `O_RDWR`
+ ///
+ /// This is not equal to `RDONLY | WRONLY`. It's a distinct flag.
+ const RDWR = linux_raw_sys::general::O_RDWR;
+
+ /// `O_NOCTTY`
+ const NOCTTY = linux_raw_sys::general::O_NOCTTY;
+
+ /// `O_RSYNC`
+ const RSYNC = linux_raw_sys::general::O_SYNC;
+
+ /// `O_SYNC`
+ const SYNC = linux_raw_sys::general::O_SYNC;
+
+ /// `O_TRUNC`
+ const TRUNC = linux_raw_sys::general::O_TRUNC;
+
+ /// `O_PATH`
+ const PATH = linux_raw_sys::general::O_PATH;
+
+ /// `O_CLOEXEC`
+ const CLOEXEC = linux_raw_sys::general::O_CLOEXEC;
+
+ /// `O_TMPFILE`
+ const TMPFILE = linux_raw_sys::general::O_TMPFILE;
+
+ /// `O_NOATIME`
+ const NOATIME = linux_raw_sys::general::O_NOATIME;
+
+ /// `O_DIRECT`
+ const DIRECT = linux_raw_sys::general::O_DIRECT;
+
+ /// `O_LARGEFILE`
+ ///
+ /// Rustix and/or libc will automatically set this flag when
+ /// appropriate in the [`rustix::fs::open`] family of functions, so
+ /// typical users do not need to care about it. It may be reported in
+ /// the return of `fcntl_getfl`, though.
+ const LARGEFILE = linux_raw_sys::general::O_LARGEFILE;
+
+ /// `O_ASYNC`, `FASYNC`
+ ///
+ /// This flag can't be used with the [`rustix::fs::open`] family of
+ /// functions, use [`rustix::fs::fcntl_setfl`] instead.
+ const ASYNC = linux_raw_sys::general::FASYNC;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `RESOLVE_*` constants for use with [`openat2`].
+ ///
+ /// [`openat2`]: crate::fs::openat2
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ResolveFlags: u64 {
+ /// `RESOLVE_NO_XDEV`
+ const NO_XDEV = linux_raw_sys::general::RESOLVE_NO_XDEV as u64;
+
+ /// `RESOLVE_NO_MAGICLINKS`
+ const NO_MAGICLINKS = linux_raw_sys::general::RESOLVE_NO_MAGICLINKS as u64;
+
+ /// `RESOLVE_NO_SYMLINKS`
+ const NO_SYMLINKS = linux_raw_sys::general::RESOLVE_NO_SYMLINKS as u64;
+
+ /// `RESOLVE_BENEATH`
+ const BENEATH = linux_raw_sys::general::RESOLVE_BENEATH as u64;
+
+ /// `RESOLVE_IN_ROOT`
+ const IN_ROOT = linux_raw_sys::general::RESOLVE_IN_ROOT as u64;
+
+ /// `RESOLVE_CACHED` (since Linux 5.12)
+ const CACHED = linux_raw_sys::general::RESOLVE_CACHED as u64;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `RENAME_*` constants for use with [`renameat_with`].
+ ///
+ /// [`renameat_with`]: crate::fs::renameat_with
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct RenameFlags: ffi::c_uint {
+ /// `RENAME_EXCHANGE`
+ const EXCHANGE = linux_raw_sys::general::RENAME_EXCHANGE;
+
+ /// `RENAME_NOREPLACE`
+ const NOREPLACE = linux_raw_sys::general::RENAME_NOREPLACE;
+
+ /// `RENAME_WHITEOUT`
+ const WHITEOUT = linux_raw_sys::general::RENAME_WHITEOUT;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `S_IF*` constants for use with [`mknodat`] and [`Stat`]'s `st_mode` field.
+///
+/// [`mknodat`]: crate::fs::mknodat
+/// [`Stat`]: crate::fs::Stat
+#[derive(Clone, Copy, Debug, PartialEq, Eq)]
+pub enum FileType {
+ /// `S_IFREG`
+ RegularFile = linux_raw_sys::general::S_IFREG as isize,
+
+ /// `S_IFDIR`
+ Directory = linux_raw_sys::general::S_IFDIR as isize,
+
+ /// `S_IFLNK`
+ Symlink = linux_raw_sys::general::S_IFLNK as isize,
+
+ /// `S_IFIFO`
+ #[doc(alias = "IFO")]
+ Fifo = linux_raw_sys::general::S_IFIFO as isize,
+
+ /// `S_IFSOCK`
+ Socket = linux_raw_sys::general::S_IFSOCK as isize,
+
+ /// `S_IFCHR`
+ CharacterDevice = linux_raw_sys::general::S_IFCHR as isize,
+
+ /// `S_IFBLK`
+ BlockDevice = linux_raw_sys::general::S_IFBLK as isize,
+
+ /// An unknown filesystem object.
+ Unknown,
+}
+
+impl FileType {
+ /// Construct a `FileType` from the `S_IFMT` bits of the `st_mode` field of
+ /// a `Stat`.
+ #[inline]
+ pub const fn from_raw_mode(st_mode: RawMode) -> Self {
+ match st_mode & linux_raw_sys::general::S_IFMT {
+ linux_raw_sys::general::S_IFREG => Self::RegularFile,
+ linux_raw_sys::general::S_IFDIR => Self::Directory,
+ linux_raw_sys::general::S_IFLNK => Self::Symlink,
+ linux_raw_sys::general::S_IFIFO => Self::Fifo,
+ linux_raw_sys::general::S_IFSOCK => Self::Socket,
+ linux_raw_sys::general::S_IFCHR => Self::CharacterDevice,
+ linux_raw_sys::general::S_IFBLK => Self::BlockDevice,
+ _ => Self::Unknown,
+ }
+ }
+
+ /// Construct an `st_mode` value from a `FileType`.
+ #[inline]
+ pub const fn as_raw_mode(self) -> RawMode {
+ match self {
+ Self::RegularFile => linux_raw_sys::general::S_IFREG,
+ Self::Directory => linux_raw_sys::general::S_IFDIR,
+ Self::Symlink => linux_raw_sys::general::S_IFLNK,
+ Self::Fifo => linux_raw_sys::general::S_IFIFO,
+ Self::Socket => linux_raw_sys::general::S_IFSOCK,
+ Self::CharacterDevice => linux_raw_sys::general::S_IFCHR,
+ Self::BlockDevice => linux_raw_sys::general::S_IFBLK,
+ Self::Unknown => linux_raw_sys::general::S_IFMT,
+ }
+ }
+
+ /// Construct a `FileType` from the `d_type` field of a `c::dirent`.
+ #[inline]
+ pub(crate) const fn from_dirent_d_type(d_type: u8) -> Self {
+ match d_type as u32 {
+ linux_raw_sys::general::DT_REG => Self::RegularFile,
+ linux_raw_sys::general::DT_DIR => Self::Directory,
+ linux_raw_sys::general::DT_LNK => Self::Symlink,
+ linux_raw_sys::general::DT_SOCK => Self::Socket,
+ linux_raw_sys::general::DT_FIFO => Self::Fifo,
+ linux_raw_sys::general::DT_CHR => Self::CharacterDevice,
+ linux_raw_sys::general::DT_BLK => Self::BlockDevice,
+ // linux_raw_sys::general::DT_UNKNOWN |
+ _ => Self::Unknown,
+ }
+ }
+}
+
+/// `POSIX_FADV_*` constants for use with [`fadvise`].
+///
+/// [`fadvise`]: crate::fs::fadvise
+#[derive(Debug, Copy, Clone, Eq, PartialEq)]
+#[repr(u32)]
+pub enum Advice {
+ /// `POSIX_FADV_NORMAL`
+ Normal = linux_raw_sys::general::POSIX_FADV_NORMAL,
+
+ /// `POSIX_FADV_SEQUENTIAL`
+ Sequential = linux_raw_sys::general::POSIX_FADV_SEQUENTIAL,
+
+ /// `POSIX_FADV_RANDOM`
+ Random = linux_raw_sys::general::POSIX_FADV_RANDOM,
+
+ /// `POSIX_FADV_NOREUSE`
+ NoReuse = linux_raw_sys::general::POSIX_FADV_NOREUSE,
+
+ /// `POSIX_FADV_WILLNEED`
+ WillNeed = linux_raw_sys::general::POSIX_FADV_WILLNEED,
+
+ /// `POSIX_FADV_DONTNEED`
+ DontNeed = linux_raw_sys::general::POSIX_FADV_DONTNEED,
+}
+
+bitflags! {
+ /// `MFD_*` constants for use with [`memfd_create`].
+ ///
+ /// [`memfd_create`]: crate::fs::memfd_create
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MemfdFlags: ffi::c_uint {
+ /// `MFD_CLOEXEC`
+ const CLOEXEC = linux_raw_sys::general::MFD_CLOEXEC;
+
+ /// `MFD_ALLOW_SEALING`
+ const ALLOW_SEALING = linux_raw_sys::general::MFD_ALLOW_SEALING;
+
+ /// `MFD_HUGETLB` (since Linux 4.14)
+ const HUGETLB = linux_raw_sys::general::MFD_HUGETLB;
+
+ /// `MFD_NOEXEC_SEAL` (since Linux 6.3)
+ const NOEXEC_SEAL = linux_raw_sys::general::MFD_NOEXEC_SEAL;
+ /// `MFD_EXEC` (since Linux 6.3)
+ const EXEC = linux_raw_sys::general::MFD_EXEC;
+
+ /// `MFD_HUGE_64KB`
+ const HUGE_64KB = linux_raw_sys::general::MFD_HUGE_64KB;
+ /// `MFD_HUGE_512KB`
+ const HUGE_512KB = linux_raw_sys::general::MFD_HUGE_512KB;
+ /// `MFD_HUGE_1MB`
+ const HUGE_1MB = linux_raw_sys::general::MFD_HUGE_1MB;
+ /// `MFD_HUGE_2MB`
+ const HUGE_2MB = linux_raw_sys::general::MFD_HUGE_2MB;
+ /// `MFD_HUGE_8MB`
+ const HUGE_8MB = linux_raw_sys::general::MFD_HUGE_8MB;
+ /// `MFD_HUGE_16MB`
+ const HUGE_16MB = linux_raw_sys::general::MFD_HUGE_16MB;
+ /// `MFD_HUGE_32MB`
+ const HUGE_32MB = linux_raw_sys::general::MFD_HUGE_32MB;
+ /// `MFD_HUGE_256MB`
+ const HUGE_256MB = linux_raw_sys::general::MFD_HUGE_256MB;
+ /// `MFD_HUGE_512MB`
+ const HUGE_512MB = linux_raw_sys::general::MFD_HUGE_512MB;
+ /// `MFD_HUGE_1GB`
+ const HUGE_1GB = linux_raw_sys::general::MFD_HUGE_1GB;
+ /// `MFD_HUGE_2GB`
+ const HUGE_2GB = linux_raw_sys::general::MFD_HUGE_2GB;
+ /// `MFD_HUGE_16GB`
+ const HUGE_16GB = linux_raw_sys::general::MFD_HUGE_16GB;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `F_SEAL_*` constants for use with [`fcntl_add_seals`] and
+ /// [`fcntl_get_seals`].
+ ///
+ /// [`fcntl_add_seals`]: crate::fs::fcntl_add_seals
+ /// [`fcntl_get_seals`]: crate::fs::fcntl_get_seals
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct SealFlags: u32 {
+ /// `F_SEAL_SEAL`
+ const SEAL = linux_raw_sys::general::F_SEAL_SEAL;
+ /// `F_SEAL_SHRINK`
+ const SHRINK = linux_raw_sys::general::F_SEAL_SHRINK;
+ /// `F_SEAL_GROW`
+ const GROW = linux_raw_sys::general::F_SEAL_GROW;
+ /// `F_SEAL_WRITE`
+ const WRITE = linux_raw_sys::general::F_SEAL_WRITE;
+ /// `F_SEAL_FUTURE_WRITE` (since Linux 5.1)
+ const FUTURE_WRITE = linux_raw_sys::general::F_SEAL_FUTURE_WRITE;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `FALLOC_FL_*` constants for use with [`fallocate`].
+ ///
+ /// [`fallocate`]: crate::fs::fallocate
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct FallocateFlags: u32 {
+ /// `FALLOC_FL_KEEP_SIZE`
+ const KEEP_SIZE = linux_raw_sys::general::FALLOC_FL_KEEP_SIZE;
+ /// `FALLOC_FL_PUNCH_HOLE`
+ const PUNCH_HOLE = linux_raw_sys::general::FALLOC_FL_PUNCH_HOLE;
+ /// `FALLOC_FL_NO_HIDE_STALE`
+ const NO_HIDE_STALE = linux_raw_sys::general::FALLOC_FL_NO_HIDE_STALE;
+ /// `FALLOC_FL_COLLAPSE_RANGE`
+ const COLLAPSE_RANGE = linux_raw_sys::general::FALLOC_FL_COLLAPSE_RANGE;
+ /// `FALLOC_FL_ZERO_RANGE`
+ const ZERO_RANGE = linux_raw_sys::general::FALLOC_FL_ZERO_RANGE;
+ /// `FALLOC_FL_INSERT_RANGE`
+ const INSERT_RANGE = linux_raw_sys::general::FALLOC_FL_INSERT_RANGE;
+ /// `FALLOC_FL_UNSHARE_RANGE`
+ const UNSHARE_RANGE = linux_raw_sys::general::FALLOC_FL_UNSHARE_RANGE;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `ST_*` constants for use with [`StatVfs`].
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct StatVfsMountFlags: u64 {
+ /// `ST_MANDLOCK`
+ const MANDLOCK = linux_raw_sys::general::MS_MANDLOCK as u64;
+
+ /// `ST_NOATIME`
+ const NOATIME = linux_raw_sys::general::MS_NOATIME as u64;
+
+ /// `ST_NODEV`
+ const NODEV = linux_raw_sys::general::MS_NODEV as u64;
+
+ /// `ST_NODIRATIME`
+ const NODIRATIME = linux_raw_sys::general::MS_NODIRATIME as u64;
+
+ /// `ST_NOEXEC`
+ const NOEXEC = linux_raw_sys::general::MS_NOEXEC as u64;
+
+ /// `ST_NOSUID`
+ const NOSUID = linux_raw_sys::general::MS_NOSUID as u64;
+
+ /// `ST_RDONLY`
+ const RDONLY = linux_raw_sys::general::MS_RDONLY as u64;
+
+ /// `ST_RELATIME`
+ const RELATIME = linux_raw_sys::general::MS_RELATIME as u64;
+
+ /// `ST_SYNCHRONOUS`
+ const SYNCHRONOUS = linux_raw_sys::general::MS_SYNCHRONOUS as u64;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `LOCK_*` constants for use with [`flock`] and [`fcntl_lock`].
+///
+/// [`flock`]: crate::fs::flock
+/// [`fcntl_lock`]: crate::fs::fcntl_lock
+#[derive(Clone, Copy, Debug, PartialEq, Eq)]
+#[repr(u32)]
+pub enum FlockOperation {
+ /// `LOCK_SH`
+ LockShared = linux_raw_sys::general::LOCK_SH,
+ /// `LOCK_EX`
+ LockExclusive = linux_raw_sys::general::LOCK_EX,
+ /// `LOCK_UN`
+ Unlock = linux_raw_sys::general::LOCK_UN,
+ /// `LOCK_SH | LOCK_NB`
+ NonBlockingLockShared = linux_raw_sys::general::LOCK_SH | linux_raw_sys::general::LOCK_NB,
+ /// `LOCK_EX | LOCK_NB`
+ NonBlockingLockExclusive = linux_raw_sys::general::LOCK_EX | linux_raw_sys::general::LOCK_NB,
+ /// `LOCK_UN | LOCK_NB`
+ NonBlockingUnlock = linux_raw_sys::general::LOCK_UN | linux_raw_sys::general::LOCK_NB,
+}
+
+/// `struct stat` for use with [`statat`] and [`fstat`].
+///
+/// [`statat`]: crate::fs::statat
+/// [`fstat`]: crate::fs::fstat
+// On 32-bit with `struct stat64` and mips64 with `struct stat`, Linux's
+// `st_mtime` and friends are 32-bit, so we use our own struct, populated from
+// `statx` where possible, to avoid the y2038 bug.
+#[cfg(any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+))]
+#[derive(Debug, Copy, Clone)]
+#[allow(missing_docs)]
+#[non_exhaustive]
+pub struct Stat {
+ pub st_dev: u64,
+ pub st_mode: u32,
+ pub st_nlink: u32,
+ pub st_uid: u32,
+ pub st_gid: u32,
+ pub st_rdev: u64,
+ pub st_size: i64,
+ pub st_blksize: u32,
+ pub st_blocks: u64,
+ pub st_atime: i64,
+ pub st_atime_nsec: u32,
+ pub st_mtime: i64,
+ pub st_mtime_nsec: u32,
+ pub st_ctime: i64,
+ pub st_ctime_nsec: u32,
+ pub st_ino: u64,
+}
+
+/// `struct stat` for use with [`statat`] and [`fstat`].
+///
+/// [`statat`]: crate::fs::statat
+/// [`fstat`]: crate::fs::fstat
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+#[allow(missing_docs)]
+#[non_exhaustive]
+#[cfg(target_arch = "x86_64")]
+pub struct Stat {
+ pub st_dev: ffi::c_ulong,
+ pub st_ino: ffi::c_ulong,
+ pub st_nlink: ffi::c_ulong,
+ pub st_mode: ffi::c_uint,
+ pub st_uid: ffi::c_uint,
+ pub st_gid: ffi::c_uint,
+ pub(crate) __pad0: ffi::c_uint,
+ pub st_rdev: ffi::c_ulong,
+ pub st_size: ffi::c_long,
+ pub st_blksize: ffi::c_long,
+ pub st_blocks: ffi::c_long,
+ pub st_atime: ffi::c_long,
+ pub st_atime_nsec: ffi::c_ulong,
+ pub st_mtime: ffi::c_long,
+ pub st_mtime_nsec: ffi::c_ulong,
+ pub st_ctime: ffi::c_long,
+ pub st_ctime_nsec: ffi::c_ulong,
+ pub(crate) __unused: [ffi::c_long; 3],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+#[allow(missing_docs)]
+#[non_exhaustive]
+#[cfg(target_arch = "aarch64")]
+pub struct Stat {
+ pub st_dev: ffi::c_ulong,
+ pub st_ino: ffi::c_ulong,
+ pub st_mode: ffi::c_uint,
+ pub st_nlink: ffi::c_uint,
+ pub st_uid: ffi::c_uint,
+ pub st_gid: ffi::c_uint,
+ pub st_rdev: ffi::c_ulong,
+ pub(crate) __pad1: ffi::c_ulong,
+ pub st_size: ffi::c_long,
+ pub st_blksize: ffi::c_int,
+ pub(crate) __pad2: ffi::c_int,
+ pub st_blocks: ffi::c_long,
+ pub st_atime: ffi::c_long,
+ pub st_atime_nsec: ffi::c_ulong,
+ pub st_mtime: ffi::c_long,
+ pub st_mtime_nsec: ffi::c_ulong,
+ pub st_ctime: ffi::c_long,
+ pub st_ctime_nsec: ffi::c_ulong,
+ pub(crate) __unused4: ffi::c_uint,
+ pub(crate) __unused5: ffi::c_uint,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+#[allow(missing_docs)]
+#[non_exhaustive]
+#[cfg(target_arch = "riscv64")]
+pub struct Stat {
+ pub st_dev: ffi::c_ulong,
+ pub st_ino: ffi::c_ulong,
+ pub st_mode: ffi::c_uint,
+ pub st_nlink: ffi::c_uint,
+ pub st_uid: ffi::c_uint,
+ pub st_gid: ffi::c_uint,
+ pub st_rdev: ffi::c_ulong,
+ pub(crate) __pad1: ffi::c_ulong,
+ pub st_size: ffi::c_long,
+ pub st_blksize: ffi::c_int,
+ pub(crate) __pad2: ffi::c_int,
+ pub st_blocks: ffi::c_long,
+ pub st_atime: ffi::c_long,
+ pub st_atime_nsec: ffi::c_ulong,
+ pub st_mtime: ffi::c_long,
+ pub st_mtime_nsec: ffi::c_ulong,
+ pub st_ctime: ffi::c_long,
+ pub st_ctime_nsec: ffi::c_ulong,
+ pub(crate) __unused4: ffi::c_uint,
+ pub(crate) __unused5: ffi::c_uint,
+}
+// This follows `stat`. powerpc64 defines a `stat64` but it's not used.
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+#[allow(missing_docs)]
+#[non_exhaustive]
+#[cfg(target_arch = "powerpc64")]
+pub struct Stat {
+ pub st_dev: ffi::c_ulong,
+ pub st_ino: ffi::c_ulong,
+ pub st_nlink: ffi::c_ulong,
+ pub st_mode: ffi::c_uint,
+ pub st_uid: ffi::c_uint,
+ pub st_gid: ffi::c_uint,
+ pub st_rdev: ffi::c_ulong,
+ pub st_size: ffi::c_long,
+ pub st_blksize: ffi::c_ulong,
+ pub st_blocks: ffi::c_ulong,
+ pub st_atime: ffi::c_long,
+ pub st_atime_nsec: ffi::c_ulong,
+ pub st_mtime: ffi::c_long,
+ pub st_mtime_nsec: ffi::c_ulong,
+ pub st_ctime: ffi::c_long,
+ pub st_ctime_nsec: ffi::c_ulong,
+ pub(crate) __unused4: ffi::c_ulong,
+ pub(crate) __unused5: ffi::c_ulong,
+ pub(crate) __unused6: ffi::c_ulong,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+#[allow(missing_docs)]
+#[non_exhaustive]
+#[cfg(target_arch = "s390x")]
+pub struct Stat {
+ pub st_dev: ffi::c_ulong,
+ pub st_ino: ffi::c_ulong,
+ pub st_nlink: ffi::c_ulong,
+ pub st_mode: ffi::c_uint,
+ pub st_uid: ffi::c_uint,
+ pub st_gid: ffi::c_uint,
+ pub(crate) __pad1: ffi::c_uint,
+ pub st_rdev: ffi::c_ulong,
+ pub st_size: ffi::c_long, // Linux has `c_ulong` but we make it signed.
+ pub st_atime: ffi::c_long,
+ pub st_atime_nsec: ffi::c_ulong,
+ pub st_mtime: ffi::c_long,
+ pub st_mtime_nsec: ffi::c_ulong,
+ pub st_ctime: ffi::c_long,
+ pub st_ctime_nsec: ffi::c_ulong,
+ pub st_blksize: ffi::c_ulong,
+ pub st_blocks: ffi::c_long,
+ pub(crate) __unused: [ffi::c_ulong; 3],
+}
+
+/// `struct statfs` for use with [`statfs`] and [`fstatfs`].
+///
+/// [`statfs`]: crate::fs::statfs
+/// [`fstatfs`]: crate::fs::fstatfs
+#[allow(clippy::module_name_repetitions)]
+#[repr(C)]
+#[cfg_attr(target_arch = "arm", repr(packed(4)))]
+#[derive(Debug, Copy, Clone)]
+#[allow(missing_docs)]
+#[non_exhaustive]
+pub struct StatFs {
+ pub f_type: FsWord,
+ #[cfg(not(any(target_arch = "arm", target_arch = "s390x")))]
+ pub f_bsize: ffi::c_long,
+ #[cfg(any(target_arch = "arm", target_arch = "s390x"))]
+ pub f_bsize: ffi::c_uint,
+ pub f_blocks: u64,
+ pub f_bfree: u64,
+ pub f_bavail: u64,
+ pub f_files: u64,
+ pub f_ffree: u64,
+ pub f_fsid: Fsid,
+ #[cfg(not(any(target_arch = "arm", target_arch = "s390x")))]
+ pub f_namelen: ffi::c_long,
+ #[cfg(any(target_arch = "arm", target_arch = "s390x"))]
+ pub f_namelen: ffi::c_uint,
+ #[cfg(not(any(target_arch = "arm", target_arch = "s390x")))]
+ pub f_frsize: ffi::c_long,
+ #[cfg(any(target_arch = "arm", target_arch = "s390x"))]
+ pub f_frsize: ffi::c_uint,
+ #[cfg(not(any(target_arch = "arm", target_arch = "s390x")))]
+ pub f_flags: ffi::c_long,
+ #[cfg(any(target_arch = "arm", target_arch = "s390x"))]
+ pub f_flags: ffi::c_uint,
+ #[cfg(not(target_arch = "s390x"))]
+ pub(crate) f_spare: [ffi::c_long; 4],
+ #[cfg(target_arch = "s390x")]
+ pub(crate) f_spare: [ffi::c_uint; 5],
+}
+
+/// `fsid_t` for use with [`StatFs`].
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+#[allow(missing_docs)]
+pub struct Fsid {
+ pub(crate) val: [ffi::c_int; 2],
+}
+
+/// `struct statvfs` for use with [`statvfs`] and [`fstatvfs`].
+///
+/// [`statvfs`]: crate::fs::statvfs
+/// [`fstatvfs`]: crate::fs::fstatvfs
+#[allow(missing_docs)]
+pub struct StatVfs {
+ pub f_bsize: u64,
+ pub f_frsize: u64,
+ pub f_blocks: u64,
+ pub f_bfree: u64,
+ pub f_bavail: u64,
+ pub f_files: u64,
+ pub f_ffree: u64,
+ pub f_favail: u64,
+ pub f_fsid: u64,
+ pub f_flag: StatVfsMountFlags,
+ pub f_namemax: u64,
+}
+
+/// `mode_t`
+pub type RawMode = ffi::c_uint;
+
+/// `dev_t`
+// Within the kernel the `dev_t` is 32-bit, but userspace uses a 64-bit field.
+pub type Dev = u64;
+
+/// `__fsword_t`
+#[cfg(not(any(
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "s390x"
+)))]
+pub type FsWord = ffi::c_long;
+
+/// `__fsword_t`
+#[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
+pub type FsWord = i64;
+
+/// `__fsword_t`
+#[cfg(target_arch = "s390x")]
+pub type FsWord = u32;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/io/errno.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/io/errno.rs
new file mode 100644
index 0000000..4ddf6df
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/io/errno.rs
@@ -0,0 +1,552 @@
+//! The `rustix` `Errno` type.
+//!
+//! This type holds an OS error code, which conceptually corresponds to an
+//! `errno` value.
+//!
+//! # Safety
+//!
+//! Linux uses error codes in `-4095..0`; we use rustc attributes to describe
+//! this restricted range of values.
+#![allow(unsafe_code)]
+#![cfg_attr(not(rustc_attrs), allow(unused_unsafe))]
+
+use crate::backend::c;
+use crate::backend::fd::RawFd;
+use crate::backend::reg::{RetNumber, RetReg};
+use crate::io;
+use linux_raw_sys::errno;
+
+/// `errno`—An error code.
+///
+/// The error type for `rustix` APIs. This is similar to [`std::io::Error`],
+/// but only holds an OS error code, and no extra error value.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/errno.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/errno.3.html
+/// [Winsock]: https://learn.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?errno
+/// [NetBSD]: https://man.netbsd.org/errno.2
+/// [OpenBSD]: https://man.openbsd.org/errno.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=errno§ion=2
+/// [illumos]: https://illumos.org/man/3C/errno
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Error-Codes.html
+#[repr(transparent)]
+#[doc(alias = "errno")]
+#[derive(Eq, PartialEq, Hash, Copy, Clone)]
+// Linux returns negated error codes, and we leave them in negated form, so
+// error codes are in `-4095..0`.
+#[cfg_attr(rustc_attrs, rustc_layout_scalar_valid_range_start(0xf001))]
+#[cfg_attr(rustc_attrs, rustc_layout_scalar_valid_range_end(0xffff))]
+pub struct Errno(u16);
+
+impl Errno {
+ /// Extract an `Errno` value from a `std::io::Error`.
+ ///
+ /// This isn't a `From` conversion because it's expected to be relatively
+ /// uncommon.
+ #[cfg(feature = "std")]
+ #[inline]
+ pub fn from_io_error(io_err: &std::io::Error) -> Option<Self> {
+ io_err.raw_os_error().and_then(|raw| {
+ // `std::io::Error` could theoretically have arbitrary OS error
+ // values, so check that they're in Linux's range.
+ if (1..4096).contains(&raw) {
+ Some(Self::from_errno(raw as u32))
+ } else {
+ None
+ }
+ })
+ }
+
+ /// Extract the raw OS error number from this error.
+ #[inline]
+ pub const fn raw_os_error(self) -> i32 {
+ (self.0 as i16 as i32).wrapping_neg()
+ }
+
+ /// Construct an `Errno` from a raw OS error number.
+ #[inline]
+ pub const fn from_raw_os_error(raw: i32) -> Self {
+ Self::from_errno(raw as u32)
+ }
+
+ /// Convert from a C `errno` value (which is positive) to an `Errno`.
+ const fn from_errno(raw: u32) -> Self {
+ // We store error values in negated form, so that we don't have to
+ // negate them after every syscall.
+ let encoded = raw.wrapping_neg() as u16;
+
+ // TODO: Use Range::contains, once that's `const`.
+ assert!(encoded >= 0xf001);
+
+ // SAFETY: Linux syscalls return negated error values in the range
+ // `-4095..0`, which we just asserted.
+ unsafe { Self(encoded) }
+ }
+}
+
+/// Check for an error from the result of a syscall which encodes a
+/// `c::c_int` on success.
+#[inline]
+pub(in crate::backend) fn try_decode_c_int<Num: RetNumber>(
+ raw: RetReg<Num>,
+) -> io::Result<c::c_int> {
+ if raw.is_in_range(-4095..0) {
+ // SAFETY: `raw` must be in `-4095..0`, and we just checked that raw is
+ // in that range.
+ return Err(unsafe { Errno(raw.decode_error_code()) });
+ }
+
+ Ok(raw.decode_c_int())
+}
+
+/// Check for an error from the result of a syscall which encodes a
+/// `c::c_uint` on success.
+#[inline]
+pub(in crate::backend) fn try_decode_c_uint<Num: RetNumber>(
+ raw: RetReg<Num>,
+) -> io::Result<c::c_uint> {
+ if raw.is_in_range(-4095..0) {
+ // SAFETY: `raw` must be in `-4095..0`, and we just checked that raw is
+ // in that range.
+ return Err(unsafe { Errno(raw.decode_error_code()) });
+ }
+
+ Ok(raw.decode_c_uint())
+}
+
+/// Check for an error from the result of a syscall which encodes a `usize` on
+/// success.
+#[inline]
+pub(in crate::backend) fn try_decode_usize<Num: RetNumber>(raw: RetReg<Num>) -> io::Result<usize> {
+ if raw.is_in_range(-4095..0) {
+ // SAFETY: `raw` must be in `-4095..0`, and we just checked that raw is
+ // in that range.
+ return Err(unsafe { Errno(raw.decode_error_code()) });
+ }
+
+ Ok(raw.decode_usize())
+}
+
+/// Check for an error from the result of a syscall which encodes a
+/// `*mut c_void` on success.
+#[inline]
+pub(in crate::backend) fn try_decode_void_star<Num: RetNumber>(
+ raw: RetReg<Num>,
+) -> io::Result<*mut c::c_void> {
+ if raw.is_in_range(-4095..0) {
+ // SAFETY: `raw` must be in `-4095..0`, and we just checked that raw is
+ // in that range.
+ return Err(unsafe { Errno(raw.decode_error_code()) });
+ }
+
+ Ok(raw.decode_void_star())
+}
+
+/// Check for an error from the result of a syscall which encodes a
+/// `u64` on success.
+#[cfg(target_pointer_width = "64")]
+#[inline]
+pub(in crate::backend) fn try_decode_u64<Num: RetNumber>(raw: RetReg<Num>) -> io::Result<u64> {
+ if raw.is_in_range(-4095..0) {
+ // SAFETY: `raw` must be in `-4095..0`, and we just checked that raw is
+ // in that range.
+ return Err(unsafe { Errno(raw.decode_error_code()) });
+ }
+
+ Ok(raw.decode_u64())
+}
+
+/// Check for an error from the result of a syscall which encodes a file
+/// descriptor on success.
+///
+/// # Safety
+///
+/// This must only be used with syscalls which return file descriptors on
+/// success.
+#[inline]
+pub(in crate::backend) unsafe fn try_decode_raw_fd<Num: RetNumber>(
+ raw: RetReg<Num>,
+) -> io::Result<RawFd> {
+ // Instead of using `check_result` here, we just check for negative, since
+ // this function is only used for system calls which return file
+ // descriptors, and this produces smaller code.
+ if raw.is_negative() {
+ debug_assert!(raw.is_in_range(-4095..0));
+
+ // Tell the optimizer that we know the value is in the error range.
+ // This helps it avoid unnecessary integer conversions.
+ #[cfg(core_intrinsics)]
+ {
+ core::intrinsics::assume(raw.is_in_range(-4095..0));
+ }
+
+ return Err(Errno(raw.decode_error_code()));
+ }
+
+ Ok(raw.decode_raw_fd())
+}
+
+/// Check for an error from the result of a syscall which encodes no value on
+/// success. On success, return the unconsumed `raw` value.
+///
+/// # Safety
+///
+/// This must only be used with syscalls which return no value on success.
+#[inline]
+pub(in crate::backend) unsafe fn try_decode_void<Num: RetNumber>(
+ raw: RetReg<Num>,
+) -> io::Result<()> {
+ // Instead of using `check_result` here, we just check for zero, since this
+ // function is only used for system calls which have no other return value,
+ // and this produces smaller code.
+ if raw.is_nonzero() {
+ debug_assert!(raw.is_in_range(-4095..0));
+
+ // Tell the optimizer that we know the value is in the error range.
+ // This helps it avoid unnecessary integer conversions.
+ #[cfg(core_intrinsics)]
+ {
+ core::intrinsics::assume(raw.is_in_range(-4095..0));
+ }
+
+ return Err(Errno(raw.decode_error_code()));
+ }
+
+ raw.decode_void();
+
+ Ok(())
+}
+
+/// Check for an error from the result of a syscall which does not return on
+/// success. On success, return the unconsumed `raw` value.
+///
+/// # Safety
+///
+/// This must only be used with syscalls which do not return on success.
+#[cfg(any(feature = "event", feature = "runtime", feature = "system"))]
+#[inline]
+pub(in crate::backend) unsafe fn try_decode_error<Num: RetNumber>(raw: RetReg<Num>) -> io::Errno {
+ debug_assert!(raw.is_in_range(-4095..0));
+
+ // Tell the optimizer that we know the value is in the error range.
+ // This helps it avoid unnecessary integer conversions.
+ #[cfg(core_intrinsics)]
+ {
+ core::intrinsics::assume(raw.is_in_range(-4095..0));
+ }
+
+ Errno(raw.decode_error_code())
+}
+
+/// Return the contained `usize` value.
+#[cfg(not(debug_assertions))]
+#[inline]
+pub(in crate::backend) fn decode_usize_infallible<Num: RetNumber>(raw: RetReg<Num>) -> usize {
+ raw.decode_usize()
+}
+
+/// Return the contained `c_int` value.
+#[cfg(not(debug_assertions))]
+#[inline]
+pub(in crate::backend) fn decode_c_int_infallible<Num: RetNumber>(raw: RetReg<Num>) -> c::c_int {
+ raw.decode_c_int()
+}
+
+/// Return the contained `c_uint` value.
+#[cfg(not(debug_assertions))]
+#[inline]
+pub(in crate::backend) fn decode_c_uint_infallible<Num: RetNumber>(raw: RetReg<Num>) -> c::c_uint {
+ raw.decode_c_uint()
+}
+
+impl Errno {
+ /// `EACCES`
+ #[doc(alias = "ACCES")]
+ pub const ACCESS: Self = Self::from_errno(errno::EACCES);
+ /// `EADDRINUSE`
+ pub const ADDRINUSE: Self = Self::from_errno(errno::EADDRINUSE);
+ /// `EADDRNOTAVAIL`
+ pub const ADDRNOTAVAIL: Self = Self::from_errno(errno::EADDRNOTAVAIL);
+ /// `EADV`
+ pub const ADV: Self = Self::from_errno(errno::EADV);
+ /// `EAFNOSUPPORT`
+ pub const AFNOSUPPORT: Self = Self::from_errno(errno::EAFNOSUPPORT);
+ /// `EAGAIN`
+ pub const AGAIN: Self = Self::from_errno(errno::EAGAIN);
+ /// `EALREADY`
+ pub const ALREADY: Self = Self::from_errno(errno::EALREADY);
+ /// `EBADE`
+ pub const BADE: Self = Self::from_errno(errno::EBADE);
+ /// `EBADF`
+ pub const BADF: Self = Self::from_errno(errno::EBADF);
+ /// `EBADFD`
+ pub const BADFD: Self = Self::from_errno(errno::EBADFD);
+ /// `EBADMSG`
+ pub const BADMSG: Self = Self::from_errno(errno::EBADMSG);
+ /// `EBADR`
+ pub const BADR: Self = Self::from_errno(errno::EBADR);
+ /// `EBADRQC`
+ pub const BADRQC: Self = Self::from_errno(errno::EBADRQC);
+ /// `EBADSLT`
+ pub const BADSLT: Self = Self::from_errno(errno::EBADSLT);
+ /// `EBFONT`
+ pub const BFONT: Self = Self::from_errno(errno::EBFONT);
+ /// `EBUSY`
+ pub const BUSY: Self = Self::from_errno(errno::EBUSY);
+ /// `ECANCELED`
+ pub const CANCELED: Self = Self::from_errno(errno::ECANCELED);
+ /// `ECHILD`
+ pub const CHILD: Self = Self::from_errno(errno::ECHILD);
+ /// `ECHRNG`
+ pub const CHRNG: Self = Self::from_errno(errno::ECHRNG);
+ /// `ECOMM`
+ pub const COMM: Self = Self::from_errno(errno::ECOMM);
+ /// `ECONNABORTED`
+ pub const CONNABORTED: Self = Self::from_errno(errno::ECONNABORTED);
+ /// `ECONNREFUSED`
+ pub const CONNREFUSED: Self = Self::from_errno(errno::ECONNREFUSED);
+ /// `ECONNRESET`
+ pub const CONNRESET: Self = Self::from_errno(errno::ECONNRESET);
+ /// `EDEADLK`
+ pub const DEADLK: Self = Self::from_errno(errno::EDEADLK);
+ /// `EDEADLOCK`
+ pub const DEADLOCK: Self = Self::from_errno(errno::EDEADLOCK);
+ /// `EDESTADDRREQ`
+ pub const DESTADDRREQ: Self = Self::from_errno(errno::EDESTADDRREQ);
+ /// `EDOM`
+ pub const DOM: Self = Self::from_errno(errno::EDOM);
+ /// `EDOTDOT`
+ pub const DOTDOT: Self = Self::from_errno(errno::EDOTDOT);
+ /// `EDQUOT`
+ pub const DQUOT: Self = Self::from_errno(errno::EDQUOT);
+ /// `EEXIST`
+ pub const EXIST: Self = Self::from_errno(errno::EEXIST);
+ /// `EFAULT`
+ pub const FAULT: Self = Self::from_errno(errno::EFAULT);
+ /// `EFBIG`
+ pub const FBIG: Self = Self::from_errno(errno::EFBIG);
+ /// `EHOSTDOWN`
+ pub const HOSTDOWN: Self = Self::from_errno(errno::EHOSTDOWN);
+ /// `EHOSTUNREACH`
+ pub const HOSTUNREACH: Self = Self::from_errno(errno::EHOSTUNREACH);
+ /// `EHWPOISON`
+ pub const HWPOISON: Self = Self::from_errno(errno::EHWPOISON);
+ /// `EIDRM`
+ pub const IDRM: Self = Self::from_errno(errno::EIDRM);
+ /// `EILSEQ`
+ pub const ILSEQ: Self = Self::from_errno(errno::EILSEQ);
+ /// `EINPROGRESS`
+ pub const INPROGRESS: Self = Self::from_errno(errno::EINPROGRESS);
+ /// `EINTR`
+ ///
+ /// For a convenient way to retry system calls that exit with `INTR`, use
+ /// [`retry_on_intr`].
+ ///
+ /// [`retry_on_intr`]: io::retry_on_intr
+ pub const INTR: Self = Self::from_errno(errno::EINTR);
+ /// `EINVAL`
+ pub const INVAL: Self = Self::from_errno(errno::EINVAL);
+ /// `EIO`
+ pub const IO: Self = Self::from_errno(errno::EIO);
+ /// `EISCONN`
+ pub const ISCONN: Self = Self::from_errno(errno::EISCONN);
+ /// `EISDIR`
+ pub const ISDIR: Self = Self::from_errno(errno::EISDIR);
+ /// `EISNAM`
+ pub const ISNAM: Self = Self::from_errno(errno::EISNAM);
+ /// `EKEYEXPIRED`
+ pub const KEYEXPIRED: Self = Self::from_errno(errno::EKEYEXPIRED);
+ /// `EKEYREJECTED`
+ pub const KEYREJECTED: Self = Self::from_errno(errno::EKEYREJECTED);
+ /// `EKEYREVOKED`
+ pub const KEYREVOKED: Self = Self::from_errno(errno::EKEYREVOKED);
+ /// `EL2HLT`
+ pub const L2HLT: Self = Self::from_errno(errno::EL2HLT);
+ /// `EL2NSYNC`
+ pub const L2NSYNC: Self = Self::from_errno(errno::EL2NSYNC);
+ /// `EL3HLT`
+ pub const L3HLT: Self = Self::from_errno(errno::EL3HLT);
+ /// `EL3RST`
+ pub const L3RST: Self = Self::from_errno(errno::EL3RST);
+ /// `ELIBACC`
+ pub const LIBACC: Self = Self::from_errno(errno::ELIBACC);
+ /// `ELIBBAD`
+ pub const LIBBAD: Self = Self::from_errno(errno::ELIBBAD);
+ /// `ELIBEXEC`
+ pub const LIBEXEC: Self = Self::from_errno(errno::ELIBEXEC);
+ /// `ELIBMAX`
+ pub const LIBMAX: Self = Self::from_errno(errno::ELIBMAX);
+ /// `ELIBSCN`
+ pub const LIBSCN: Self = Self::from_errno(errno::ELIBSCN);
+ /// `ELNRNG`
+ pub const LNRNG: Self = Self::from_errno(errno::ELNRNG);
+ /// `ELOOP`
+ pub const LOOP: Self = Self::from_errno(errno::ELOOP);
+ /// `EMEDIUMTYPE`
+ pub const MEDIUMTYPE: Self = Self::from_errno(errno::EMEDIUMTYPE);
+ /// `EMFILE`
+ pub const MFILE: Self = Self::from_errno(errno::EMFILE);
+ /// `EMLINK`
+ pub const MLINK: Self = Self::from_errno(errno::EMLINK);
+ /// `EMSGSIZE`
+ pub const MSGSIZE: Self = Self::from_errno(errno::EMSGSIZE);
+ /// `EMULTIHOP`
+ pub const MULTIHOP: Self = Self::from_errno(errno::EMULTIHOP);
+ /// `ENAMETOOLONG`
+ pub const NAMETOOLONG: Self = Self::from_errno(errno::ENAMETOOLONG);
+ /// `ENAVAIL`
+ pub const NAVAIL: Self = Self::from_errno(errno::ENAVAIL);
+ /// `ENETDOWN`
+ pub const NETDOWN: Self = Self::from_errno(errno::ENETDOWN);
+ /// `ENETRESET`
+ pub const NETRESET: Self = Self::from_errno(errno::ENETRESET);
+ /// `ENETUNREACH`
+ pub const NETUNREACH: Self = Self::from_errno(errno::ENETUNREACH);
+ /// `ENFILE`
+ pub const NFILE: Self = Self::from_errno(errno::ENFILE);
+ /// `ENOANO`
+ pub const NOANO: Self = Self::from_errno(errno::ENOANO);
+ /// `ENOBUFS`
+ pub const NOBUFS: Self = Self::from_errno(errno::ENOBUFS);
+ /// `ENOCSI`
+ pub const NOCSI: Self = Self::from_errno(errno::ENOCSI);
+ /// `ENODATA`
+ #[doc(alias = "NOATTR")]
+ pub const NODATA: Self = Self::from_errno(errno::ENODATA);
+ /// `ENODEV`
+ pub const NODEV: Self = Self::from_errno(errno::ENODEV);
+ /// `ENOENT`
+ pub const NOENT: Self = Self::from_errno(errno::ENOENT);
+ /// `ENOEXEC`
+ pub const NOEXEC: Self = Self::from_errno(errno::ENOEXEC);
+ /// `ENOKEY`
+ pub const NOKEY: Self = Self::from_errno(errno::ENOKEY);
+ /// `ENOLCK`
+ pub const NOLCK: Self = Self::from_errno(errno::ENOLCK);
+ /// `ENOLINK`
+ pub const NOLINK: Self = Self::from_errno(errno::ENOLINK);
+ /// `ENOMEDIUM`
+ pub const NOMEDIUM: Self = Self::from_errno(errno::ENOMEDIUM);
+ /// `ENOMEM`
+ pub const NOMEM: Self = Self::from_errno(errno::ENOMEM);
+ /// `ENOMSG`
+ pub const NOMSG: Self = Self::from_errno(errno::ENOMSG);
+ /// `ENONET`
+ pub const NONET: Self = Self::from_errno(errno::ENONET);
+ /// `ENOPKG`
+ pub const NOPKG: Self = Self::from_errno(errno::ENOPKG);
+ /// `ENOPROTOOPT`
+ pub const NOPROTOOPT: Self = Self::from_errno(errno::ENOPROTOOPT);
+ /// `ENOSPC`
+ pub const NOSPC: Self = Self::from_errno(errno::ENOSPC);
+ /// `ENOSR`
+ pub const NOSR: Self = Self::from_errno(errno::ENOSR);
+ /// `ENOSTR`
+ pub const NOSTR: Self = Self::from_errno(errno::ENOSTR);
+ /// `ENOSYS`
+ pub const NOSYS: Self = Self::from_errno(errno::ENOSYS);
+ /// `ENOTBLK`
+ pub const NOTBLK: Self = Self::from_errno(errno::ENOTBLK);
+ /// `ENOTCONN`
+ pub const NOTCONN: Self = Self::from_errno(errno::ENOTCONN);
+ /// `ENOTDIR`
+ pub const NOTDIR: Self = Self::from_errno(errno::ENOTDIR);
+ /// `ENOTEMPTY`
+ pub const NOTEMPTY: Self = Self::from_errno(errno::ENOTEMPTY);
+ /// `ENOTNAM`
+ pub const NOTNAM: Self = Self::from_errno(errno::ENOTNAM);
+ /// `ENOTRECOVERABLE`
+ pub const NOTRECOVERABLE: Self = Self::from_errno(errno::ENOTRECOVERABLE);
+ /// `ENOTSOCK`
+ pub const NOTSOCK: Self = Self::from_errno(errno::ENOTSOCK);
+ /// `ENOTSUP`
+ // On Linux, `ENOTSUP` has the same value as `EOPNOTSUPP`.
+ pub const NOTSUP: Self = Self::from_errno(errno::EOPNOTSUPP);
+ /// `ENOTTY`
+ pub const NOTTY: Self = Self::from_errno(errno::ENOTTY);
+ /// `ENOTUNIQ`
+ pub const NOTUNIQ: Self = Self::from_errno(errno::ENOTUNIQ);
+ /// `ENXIO`
+ pub const NXIO: Self = Self::from_errno(errno::ENXIO);
+ /// `EOPNOTSUPP`
+ pub const OPNOTSUPP: Self = Self::from_errno(errno::EOPNOTSUPP);
+ /// `EOVERFLOW`
+ pub const OVERFLOW: Self = Self::from_errno(errno::EOVERFLOW);
+ /// `EOWNERDEAD`
+ pub const OWNERDEAD: Self = Self::from_errno(errno::EOWNERDEAD);
+ /// `EPERM`
+ pub const PERM: Self = Self::from_errno(errno::EPERM);
+ /// `EPFNOSUPPORT`
+ pub const PFNOSUPPORT: Self = Self::from_errno(errno::EPFNOSUPPORT);
+ /// `EPIPE`
+ pub const PIPE: Self = Self::from_errno(errno::EPIPE);
+ /// `EPROTO`
+ pub const PROTO: Self = Self::from_errno(errno::EPROTO);
+ /// `EPROTONOSUPPORT`
+ pub const PROTONOSUPPORT: Self = Self::from_errno(errno::EPROTONOSUPPORT);
+ /// `EPROTOTYPE`
+ pub const PROTOTYPE: Self = Self::from_errno(errno::EPROTOTYPE);
+ /// `ERANGE`
+ pub const RANGE: Self = Self::from_errno(errno::ERANGE);
+ /// `EREMCHG`
+ pub const REMCHG: Self = Self::from_errno(errno::EREMCHG);
+ /// `EREMOTE`
+ pub const REMOTE: Self = Self::from_errno(errno::EREMOTE);
+ /// `EREMOTEIO`
+ pub const REMOTEIO: Self = Self::from_errno(errno::EREMOTEIO);
+ /// `ERESTART`
+ pub const RESTART: Self = Self::from_errno(errno::ERESTART);
+ /// `ERFKILL`
+ pub const RFKILL: Self = Self::from_errno(errno::ERFKILL);
+ /// `EROFS`
+ pub const ROFS: Self = Self::from_errno(errno::EROFS);
+ /// `ESHUTDOWN`
+ pub const SHUTDOWN: Self = Self::from_errno(errno::ESHUTDOWN);
+ /// `ESOCKTNOSUPPORT`
+ pub const SOCKTNOSUPPORT: Self = Self::from_errno(errno::ESOCKTNOSUPPORT);
+ /// `ESPIPE`
+ pub const SPIPE: Self = Self::from_errno(errno::ESPIPE);
+ /// `ESRCH`
+ pub const SRCH: Self = Self::from_errno(errno::ESRCH);
+ /// `ESRMNT`
+ pub const SRMNT: Self = Self::from_errno(errno::ESRMNT);
+ /// `ESTALE`
+ pub const STALE: Self = Self::from_errno(errno::ESTALE);
+ /// `ESTRPIPE`
+ pub const STRPIPE: Self = Self::from_errno(errno::ESTRPIPE);
+ /// `ETIME`
+ pub const TIME: Self = Self::from_errno(errno::ETIME);
+ /// `ETIMEDOUT`
+ pub const TIMEDOUT: Self = Self::from_errno(errno::ETIMEDOUT);
+ /// `E2BIG`
+ #[doc(alias = "2BIG")]
+ pub const TOOBIG: Self = Self::from_errno(errno::E2BIG);
+ /// `ETOOMANYREFS`
+ pub const TOOMANYREFS: Self = Self::from_errno(errno::ETOOMANYREFS);
+ /// `ETXTBSY`
+ pub const TXTBSY: Self = Self::from_errno(errno::ETXTBSY);
+ /// `EUCLEAN`
+ pub const UCLEAN: Self = Self::from_errno(errno::EUCLEAN);
+ /// `EUNATCH`
+ pub const UNATCH: Self = Self::from_errno(errno::EUNATCH);
+ /// `EUSERS`
+ pub const USERS: Self = Self::from_errno(errno::EUSERS);
+ /// `EWOULDBLOCK`
+ pub const WOULDBLOCK: Self = Self::from_errno(errno::EWOULDBLOCK);
+ /// `EXDEV`
+ pub const XDEV: Self = Self::from_errno(errno::EXDEV);
+ /// `EXFULL`
+ pub const XFULL: Self = Self::from_errno(errno::EXFULL);
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/io/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/io/mod.rs
new file mode 100644
index 0000000..9477b9b
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/io/mod.rs
@@ -0,0 +1,3 @@
+pub(crate) mod errno;
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/io/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/io/syscalls.rs
new file mode 100644
index 0000000..f40dfe5
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/io/syscalls.rs
@@ -0,0 +1,364 @@
+//! linux_raw syscalls supporting `rustix::io`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code)]
+#![allow(clippy::undocumented_unsafe_blocks)]
+
+#[cfg(target_pointer_width = "64")]
+use crate::backend::conv::loff_t_from_u64;
+#[cfg(all(
+ target_pointer_width = "32",
+ any(
+ target_arch = "arm",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "powerpc"
+ ),
+))]
+use crate::backend::conv::zero;
+use crate::backend::conv::{
+ c_uint, pass_usize, raw_fd, ret, ret_c_int, ret_c_uint, ret_discarded_fd, ret_owned_fd,
+ ret_usize, slice,
+};
+#[cfg(target_pointer_width = "32")]
+use crate::backend::conv::{hi, lo};
+use crate::backend::{c, MAX_IOV};
+use crate::fd::{AsFd as _, BorrowedFd, OwnedFd, RawFd};
+use crate::io::{self, DupFlags, FdFlags, IoSlice, IoSliceMut, ReadWriteFlags};
+use crate::ioctl::{IoctlOutput, Opcode};
+use core::cmp;
+use linux_raw_sys::general::{F_DUPFD_CLOEXEC, F_GETFD, F_SETFD};
+
+#[inline]
+pub(crate) unsafe fn read(fd: BorrowedFd<'_>, buf: (*mut u8, usize)) -> io::Result<usize> {
+ ret_usize(syscall!(__NR_read, fd, buf.0, pass_usize(buf.1)))
+}
+
+#[inline]
+pub(crate) unsafe fn pread(
+ fd: BorrowedFd<'_>,
+ buf: (*mut u8, usize),
+ pos: u64,
+) -> io::Result<usize> {
+ // <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/kernel/sys32.c?h=v6.13#n70>
+ #[cfg(all(
+ target_pointer_width = "32",
+ any(
+ target_arch = "arm",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "powerpc"
+ ),
+ ))]
+ {
+ ret_usize(syscall!(
+ __NR_pread64,
+ fd,
+ buf.0,
+ pass_usize(buf.1),
+ zero(),
+ hi(pos),
+ lo(pos)
+ ))
+ }
+ #[cfg(all(
+ target_pointer_width = "32",
+ not(any(
+ target_arch = "arm",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "powerpc"
+ )),
+ ))]
+ {
+ ret_usize(syscall!(
+ __NR_pread64,
+ fd,
+ buf.0,
+ pass_usize(buf.1),
+ hi(pos),
+ lo(pos)
+ ))
+ }
+ #[cfg(target_pointer_width = "64")]
+ ret_usize(syscall!(
+ __NR_pread64,
+ fd,
+ buf.0,
+ pass_usize(buf.1),
+ loff_t_from_u64(pos)
+ ))
+}
+
+#[inline]
+pub(crate) fn readv(fd: BorrowedFd<'_>, bufs: &mut [IoSliceMut<'_>]) -> io::Result<usize> {
+ let (bufs_addr, bufs_len) = slice(&bufs[..cmp::min(bufs.len(), MAX_IOV)]);
+
+ unsafe { ret_usize(syscall!(__NR_readv, fd, bufs_addr, bufs_len)) }
+}
+
+#[inline]
+pub(crate) fn preadv(
+ fd: BorrowedFd<'_>,
+ bufs: &mut [IoSliceMut<'_>],
+ pos: u64,
+) -> io::Result<usize> {
+ let (bufs_addr, bufs_len) = slice(&bufs[..cmp::min(bufs.len(), MAX_IOV)]);
+
+ // Unlike the plain "p" functions, the "pv" functions pass their offset in
+ // an endian-independent way, and always in two registers.
+ unsafe {
+ ret_usize(syscall!(
+ __NR_preadv,
+ fd,
+ bufs_addr,
+ bufs_len,
+ pass_usize(pos as usize),
+ pass_usize((pos >> 32) as usize)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn preadv2(
+ fd: BorrowedFd<'_>,
+ bufs: &mut [IoSliceMut<'_>],
+ pos: u64,
+ flags: ReadWriteFlags,
+) -> io::Result<usize> {
+ let (bufs_addr, bufs_len) = slice(&bufs[..cmp::min(bufs.len(), MAX_IOV)]);
+
+ // Unlike the plain "p" functions, the "pv" functions pass their offset in
+ // an endian-independent way, and always in two registers.
+ unsafe {
+ ret_usize(syscall!(
+ __NR_preadv2,
+ fd,
+ bufs_addr,
+ bufs_len,
+ pass_usize(pos as usize),
+ pass_usize((pos >> 32) as usize),
+ flags
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn write(fd: BorrowedFd<'_>, buf: &[u8]) -> io::Result<usize> {
+ let (buf_addr, buf_len) = slice(buf);
+
+ unsafe { ret_usize(syscall_readonly!(__NR_write, fd, buf_addr, buf_len)) }
+}
+
+#[inline]
+pub(crate) fn pwrite(fd: BorrowedFd<'_>, buf: &[u8], pos: u64) -> io::Result<usize> {
+ let (buf_addr, buf_len) = slice(buf);
+
+ // <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/kernel/sys32.c?h=v6.13#n76>
+ #[cfg(all(
+ target_pointer_width = "32",
+ any(
+ target_arch = "arm",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "powerpc"
+ ),
+ ))]
+ unsafe {
+ ret_usize(syscall_readonly!(
+ __NR_pwrite64,
+ fd,
+ buf_addr,
+ buf_len,
+ zero(),
+ hi(pos),
+ lo(pos)
+ ))
+ }
+ #[cfg(all(
+ target_pointer_width = "32",
+ not(any(
+ target_arch = "arm",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "powerpc"
+ )),
+ ))]
+ unsafe {
+ ret_usize(syscall_readonly!(
+ __NR_pwrite64,
+ fd,
+ buf_addr,
+ buf_len,
+ hi(pos),
+ lo(pos)
+ ))
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret_usize(syscall_readonly!(
+ __NR_pwrite64,
+ fd,
+ buf_addr,
+ buf_len,
+ loff_t_from_u64(pos)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn writev(fd: BorrowedFd<'_>, bufs: &[IoSlice<'_>]) -> io::Result<usize> {
+ let (bufs_addr, bufs_len) = slice(&bufs[..cmp::min(bufs.len(), MAX_IOV)]);
+
+ unsafe { ret_usize(syscall_readonly!(__NR_writev, fd, bufs_addr, bufs_len)) }
+}
+
+#[inline]
+pub(crate) fn pwritev(fd: BorrowedFd<'_>, bufs: &[IoSlice<'_>], pos: u64) -> io::Result<usize> {
+ let (bufs_addr, bufs_len) = slice(&bufs[..cmp::min(bufs.len(), MAX_IOV)]);
+
+ // Unlike the plain "p" functions, the "pv" functions pass their offset in
+ // an endian-independent way, and always in two registers.
+ unsafe {
+ ret_usize(syscall_readonly!(
+ __NR_pwritev,
+ fd,
+ bufs_addr,
+ bufs_len,
+ pass_usize(pos as usize),
+ pass_usize((pos >> 32) as usize)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn pwritev2(
+ fd: BorrowedFd<'_>,
+ bufs: &[IoSlice<'_>],
+ pos: u64,
+ flags: ReadWriteFlags,
+) -> io::Result<usize> {
+ let (bufs_addr, bufs_len) = slice(&bufs[..cmp::min(bufs.len(), MAX_IOV)]);
+
+ // Unlike the plain "p" functions, the "pv" functions pass their offset in
+ // an endian-independent way, and always in two registers.
+ unsafe {
+ ret_usize(syscall_readonly!(
+ __NR_pwritev2,
+ fd,
+ bufs_addr,
+ bufs_len,
+ pass_usize(pos as usize),
+ pass_usize((pos >> 32) as usize),
+ flags
+ ))
+ }
+}
+
+#[inline]
+pub(crate) unsafe fn close(fd: RawFd) {
+ // See the documentation for [`io::close`] for why errors are ignored.
+ syscall_readonly!(__NR_close, raw_fd(fd)).decode_void();
+}
+
+#[cfg(feature = "try_close")]
+#[inline]
+pub(crate) unsafe fn try_close(fd: RawFd) -> io::Result<()> {
+ ret(syscall_readonly!(__NR_close, raw_fd(fd)))
+}
+
+#[inline]
+pub(crate) unsafe fn ioctl(
+ fd: BorrowedFd<'_>,
+ request: Opcode,
+ arg: *mut c::c_void,
+) -> io::Result<IoctlOutput> {
+ ret_c_int(syscall!(__NR_ioctl, fd, c_uint(request), arg))
+}
+
+#[inline]
+pub(crate) unsafe fn ioctl_readonly(
+ fd: BorrowedFd<'_>,
+ request: Opcode,
+ arg: *mut c::c_void,
+) -> io::Result<IoctlOutput> {
+ ret_c_int(syscall_readonly!(__NR_ioctl, fd, c_uint(request), arg))
+}
+
+#[inline]
+pub(crate) fn dup(fd: BorrowedFd<'_>) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(syscall_readonly!(__NR_dup, fd)) }
+}
+
+#[allow(clippy::needless_pass_by_ref_mut)]
+#[inline]
+pub(crate) fn dup2(fd: BorrowedFd<'_>, new: &mut OwnedFd) -> io::Result<()> {
+ #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))]
+ {
+ // We don't need to worry about the difference between `dup2` and
+ // `dup3` when the file descriptors are equal because we have an
+ // `&mut OwnedFd` which means `fd` doesn't alias it.
+ dup3(fd, new, DupFlags::empty())
+ }
+
+ #[cfg(not(any(target_arch = "aarch64", target_arch = "riscv64")))]
+ unsafe {
+ ret_discarded_fd(syscall_readonly!(__NR_dup2, fd, new.as_fd()))
+ }
+}
+
+#[allow(clippy::needless_pass_by_ref_mut)]
+#[inline]
+pub(crate) fn dup3(fd: BorrowedFd<'_>, new: &mut OwnedFd, flags: DupFlags) -> io::Result<()> {
+ unsafe { ret_discarded_fd(syscall_readonly!(__NR_dup3, fd, new.as_fd(), flags)) }
+}
+
+#[inline]
+pub(crate) fn fcntl_getfd(fd: BorrowedFd<'_>) -> io::Result<FdFlags> {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret_c_uint(syscall_readonly!(__NR_fcntl64, fd, c_uint(F_GETFD)))
+ .map(FdFlags::from_bits_retain)
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret_c_uint(syscall_readonly!(__NR_fcntl, fd, c_uint(F_GETFD)))
+ .map(FdFlags::from_bits_retain)
+ }
+}
+
+#[inline]
+pub(crate) fn fcntl_setfd(fd: BorrowedFd<'_>, flags: FdFlags) -> io::Result<()> {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret(syscall_readonly!(__NR_fcntl64, fd, c_uint(F_SETFD), flags))
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret(syscall_readonly!(__NR_fcntl, fd, c_uint(F_SETFD), flags))
+ }
+}
+
+#[inline]
+pub(crate) fn fcntl_dupfd_cloexec(fd: BorrowedFd<'_>, min: RawFd) -> io::Result<OwnedFd> {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret_owned_fd(syscall_readonly!(
+ __NR_fcntl64,
+ fd,
+ c_uint(F_DUPFD_CLOEXEC),
+ raw_fd(min)
+ ))
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret_owned_fd(syscall_readonly!(
+ __NR_fcntl,
+ fd,
+ c_uint(F_DUPFD_CLOEXEC),
+ raw_fd(min)
+ ))
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/io/types.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/io/types.rs
new file mode 100644
index 0000000..533f973
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/io/types.rs
@@ -0,0 +1,57 @@
+use crate::ffi;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `FD_*` constants for use with [`fcntl_getfd`] and [`fcntl_setfd`].
+ ///
+ /// [`fcntl_getfd`]: crate::io::fcntl_getfd
+ /// [`fcntl_setfd`]: crate::io::fcntl_setfd
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct FdFlags: ffi::c_uint {
+ /// `FD_CLOEXEC`
+ const CLOEXEC = linux_raw_sys::general::FD_CLOEXEC;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `RWF_*` constants for use with [`preadv2`] and [`pwritev2`].
+ ///
+ /// [`preadv2`]: crate::io::preadv2
+ /// [`pwritev2`]: crate::io::pwritev
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ReadWriteFlags: ffi::c_uint {
+ /// `RWF_DSYNC` (since Linux 4.7)
+ const DSYNC = linux_raw_sys::general::RWF_DSYNC;
+ /// `RWF_HIPRI` (since Linux 4.6)
+ const HIPRI = linux_raw_sys::general::RWF_HIPRI;
+ /// `RWF_SYNC` (since Linux 4.7)
+ const SYNC = linux_raw_sys::general::RWF_SYNC;
+ /// `RWF_NOWAIT` (since Linux 4.14)
+ const NOWAIT = linux_raw_sys::general::RWF_NOWAIT;
+ /// `RWF_APPEND` (since Linux 4.16)
+ const APPEND = linux_raw_sys::general::RWF_APPEND;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `O_*` constants for use with [`dup2`].
+ ///
+ /// [`dup2`]: crate::io::dup2
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct DupFlags: ffi::c_uint {
+ /// `O_CLOEXEC`
+ const CLOEXEC = linux_raw_sys::general::O_CLOEXEC;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/io_uring/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/io_uring/mod.rs
new file mode 100644
index 0000000..ef944f0
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/io_uring/mod.rs
@@ -0,0 +1 @@
+pub(crate) mod syscalls;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/io_uring/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/io_uring/syscalls.rs
new file mode 100644
index 0000000..3e61b7a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/io_uring/syscalls.rs
@@ -0,0 +1,79 @@
+//! linux_raw syscalls supporting `rustix::io_uring`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend::syscalls` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use crate::backend::conv::{by_mut, c_uint, pass_usize, ret_c_uint, ret_owned_fd};
+use crate::fd::{BorrowedFd, OwnedFd};
+use crate::io;
+use crate::io_uring::{io_uring_params, IoringEnterFlags, IoringRegisterFlags, IoringRegisterOp};
+use core::ffi::c_void;
+
+#[inline]
+pub(crate) fn io_uring_setup(entries: u32, params: &mut io_uring_params) -> io::Result<OwnedFd> {
+ unsafe {
+ ret_owned_fd(syscall!(
+ __NR_io_uring_setup,
+ c_uint(entries),
+ by_mut(params)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) unsafe fn io_uring_register(
+ fd: BorrowedFd<'_>,
+ opcode: IoringRegisterOp,
+ arg: *const c_void,
+ nr_args: u32,
+) -> io::Result<u32> {
+ ret_c_uint(syscall_readonly!(
+ __NR_io_uring_register,
+ fd,
+ c_uint(opcode as u32),
+ arg,
+ c_uint(nr_args)
+ ))
+}
+
+#[inline]
+pub(crate) unsafe fn io_uring_register_with(
+ fd: BorrowedFd<'_>,
+ opcode: IoringRegisterOp,
+ flags: IoringRegisterFlags,
+ arg: *const c_void,
+ nr_args: u32,
+) -> io::Result<u32> {
+ ret_c_uint(syscall_readonly!(
+ __NR_io_uring_register,
+ fd,
+ c_uint((opcode as u32) | bitflags_bits!(flags)),
+ arg,
+ c_uint(nr_args)
+ ))
+}
+
+#[inline]
+pub(crate) unsafe fn io_uring_enter(
+ fd: BorrowedFd<'_>,
+ to_submit: u32,
+ min_complete: u32,
+ flags: IoringEnterFlags,
+ arg: *const c_void,
+ size: usize,
+) -> io::Result<u32> {
+ // This is not `_readonly` because `io_uring_enter` waits for I/O to
+ // complete, and I/O could involve writing to memory buffers, which
+ // could be a side effect depended on by the caller.
+ ret_c_uint(syscall!(
+ __NR_io_uring_enter,
+ fd,
+ c_uint(to_submit),
+ c_uint(min_complete),
+ flags,
+ arg,
+ pass_usize(size)
+ ))
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/mm/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/mm/mod.rs
new file mode 100644
index 0000000..1e0181a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/mm/mod.rs
@@ -0,0 +1,2 @@
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/mm/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/mm/syscalls.rs
new file mode 100644
index 0000000..8488190
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/mm/syscalls.rs
@@ -0,0 +1,239 @@
+//! linux_raw syscalls supporting `rustix::io`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code)]
+#![allow(clippy::undocumented_unsafe_blocks)]
+
+use super::types::{
+ Advice, MapFlags, MlockAllFlags, MlockFlags, MprotectFlags, MremapFlags, MsyncFlags, ProtFlags,
+ UserfaultfdFlags,
+};
+use crate::backend::c;
+#[cfg(target_pointer_width = "64")]
+use crate::backend::conv::loff_t_from_u64;
+use crate::backend::conv::{c_uint, no_fd, pass_usize, ret, ret_owned_fd, ret_void_star};
+use crate::fd::{BorrowedFd, OwnedFd};
+use crate::ffi::c_void;
+use crate::io;
+use linux_raw_sys::general::{MAP_ANONYMOUS, MREMAP_FIXED};
+
+#[inline]
+pub(crate) fn madvise(addr: *mut c_void, len: usize, advice: Advice) -> io::Result<()> {
+ unsafe {
+ ret(syscall!(
+ __NR_madvise,
+ addr,
+ pass_usize(len),
+ c_uint(advice as c::c_uint)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) unsafe fn msync(addr: *mut c_void, len: usize, flags: MsyncFlags) -> io::Result<()> {
+ ret(syscall!(__NR_msync, addr, pass_usize(len), flags))
+}
+
+/// # Safety
+///
+/// `mmap` is primarily unsafe due to the `addr` parameter, as anything working
+/// with memory pointed to by raw pointers is unsafe.
+#[inline]
+pub(crate) unsafe fn mmap(
+ addr: *mut c_void,
+ length: usize,
+ prot: ProtFlags,
+ flags: MapFlags,
+ fd: BorrowedFd<'_>,
+ offset: u64,
+) -> io::Result<*mut c_void> {
+ #[cfg(target_pointer_width = "32")]
+ {
+ ret_void_star(syscall!(
+ __NR_mmap2,
+ addr,
+ pass_usize(length),
+ prot,
+ flags,
+ fd,
+ (offset / 4096)
+ .try_into()
+ .map(pass_usize)
+ .map_err(|_| io::Errno::INVAL)?
+ ))
+ }
+ #[cfg(target_pointer_width = "64")]
+ {
+ ret_void_star(syscall!(
+ __NR_mmap,
+ addr,
+ pass_usize(length),
+ prot,
+ flags,
+ fd,
+ loff_t_from_u64(offset)
+ ))
+ }
+}
+
+/// # Safety
+///
+/// `mmap` is primarily unsafe due to the `addr` parameter, as anything working
+/// with memory pointed to by raw pointers is unsafe.
+#[inline]
+pub(crate) unsafe fn mmap_anonymous(
+ addr: *mut c_void,
+ length: usize,
+ prot: ProtFlags,
+ flags: MapFlags,
+) -> io::Result<*mut c_void> {
+ #[cfg(target_pointer_width = "32")]
+ {
+ ret_void_star(syscall!(
+ __NR_mmap2,
+ addr,
+ pass_usize(length),
+ prot,
+ c_uint(flags.bits() | MAP_ANONYMOUS),
+ no_fd(),
+ pass_usize(0)
+ ))
+ }
+ #[cfg(target_pointer_width = "64")]
+ {
+ ret_void_star(syscall!(
+ __NR_mmap,
+ addr,
+ pass_usize(length),
+ prot,
+ c_uint(flags.bits() | MAP_ANONYMOUS),
+ no_fd(),
+ loff_t_from_u64(0)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) unsafe fn mprotect(
+ ptr: *mut c_void,
+ len: usize,
+ flags: MprotectFlags,
+) -> io::Result<()> {
+ ret(syscall!(__NR_mprotect, ptr, pass_usize(len), flags))
+}
+
+/// # Safety
+///
+/// `munmap` is primarily unsafe due to the `addr` parameter, as anything
+/// working with memory pointed to by raw pointers is unsafe.
+#[inline]
+pub(crate) unsafe fn munmap(addr: *mut c_void, length: usize) -> io::Result<()> {
+ ret(syscall!(__NR_munmap, addr, pass_usize(length)))
+}
+
+/// # Safety
+///
+/// `mremap` is primarily unsafe due to the `old_address` parameter, as
+/// anything working with memory pointed to by raw pointers is unsafe.
+#[inline]
+pub(crate) unsafe fn mremap(
+ old_address: *mut c_void,
+ old_size: usize,
+ new_size: usize,
+ flags: MremapFlags,
+) -> io::Result<*mut c_void> {
+ ret_void_star(syscall!(
+ __NR_mremap,
+ old_address,
+ pass_usize(old_size),
+ pass_usize(new_size),
+ flags
+ ))
+}
+
+/// # Safety
+///
+/// `mremap_fixed` is primarily unsafe due to the `old_address` and
+/// `new_address` parameters, as anything working with memory pointed to by raw
+/// pointers is unsafe.
+#[inline]
+pub(crate) unsafe fn mremap_fixed(
+ old_address: *mut c_void,
+ old_size: usize,
+ new_size: usize,
+ flags: MremapFlags,
+ new_address: *mut c_void,
+) -> io::Result<*mut c_void> {
+ ret_void_star(syscall!(
+ __NR_mremap,
+ old_address,
+ pass_usize(old_size),
+ pass_usize(new_size),
+ c_uint(flags.bits() | MREMAP_FIXED),
+ new_address
+ ))
+}
+
+/// # Safety
+///
+/// `mlock` operates on raw pointers and may round out to the nearest page
+/// boundaries.
+#[inline]
+pub(crate) unsafe fn mlock(addr: *mut c_void, length: usize) -> io::Result<()> {
+ ret(syscall!(__NR_mlock, addr, pass_usize(length)))
+}
+
+/// # Safety
+///
+/// `mlock_with` operates on raw pointers and may round out to the nearest page
+/// boundaries.
+#[inline]
+pub(crate) unsafe fn mlock_with(
+ addr: *mut c_void,
+ length: usize,
+ flags: MlockFlags,
+) -> io::Result<()> {
+ ret(syscall!(__NR_mlock2, addr, pass_usize(length), flags))
+}
+
+/// # Safety
+///
+/// `munlock` operates on raw pointers and may round out to the nearest page
+/// boundaries.
+#[inline]
+pub(crate) unsafe fn munlock(addr: *mut c_void, length: usize) -> io::Result<()> {
+ ret(syscall!(__NR_munlock, addr, pass_usize(length)))
+}
+
+#[inline]
+pub(crate) unsafe fn userfaultfd(flags: UserfaultfdFlags) -> io::Result<OwnedFd> {
+ ret_owned_fd(syscall_readonly!(__NR_userfaultfd, flags))
+}
+
+/// Locks all pages mapped into the address space of the calling process.
+///
+/// This includes the pages of the code, data, and stack segment, as well as
+/// shared libraries, user space kernel data, shared memory, and memory-mapped
+/// files. All mapped pages are guaranteed to be resident in RAM when the call
+/// returns successfully; the pages are guaranteed to stay in RAM until later
+/// unlocked.
+#[inline]
+pub(crate) fn mlockall(flags: MlockAllFlags) -> io::Result<()> {
+ // When `mlockall` is used with `MCL_ONFAULT | MCL_FUTURE`, the ordering
+ // of `mlockall` with respect to arbitrary loads may be significant,
+ // because if a load happens and evokes a fault before the `mlockall`,
+ // the memory doesn't get locked, but if the load and therefore
+ // the fault happens after, then the memory does get locked.
+ //
+ // So to be conservative in this regard, we use `syscall` instead of
+ // `syscall_readonly`
+ unsafe { ret(syscall!(__NR_mlockall, flags)) }
+}
+
+/// Unlocks all pages mapped into the address space of the calling process.
+#[inline]
+pub(crate) fn munlockall() -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_munlockall)) }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/mm/types.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/mm/types.rs
new file mode 100644
index 0000000..c6806fc
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/mm/types.rs
@@ -0,0 +1,297 @@
+use crate::ffi;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `PROT_*` flags for use with [`mmap`].
+ ///
+ /// For `PROT_NONE`, use `ProtFlags::empty()`.
+ ///
+ /// [`mmap`]: crate::mm::mmap
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ProtFlags: u32 {
+ /// `PROT_READ`
+ const READ = linux_raw_sys::general::PROT_READ;
+ /// `PROT_WRITE`
+ const WRITE = linux_raw_sys::general::PROT_WRITE;
+ /// `PROT_EXEC`
+ const EXEC = linux_raw_sys::general::PROT_EXEC;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `PROT_*` flags for use with [`mprotect`].
+ ///
+ /// For `PROT_NONE`, use `MprotectFlags::empty()`.
+ ///
+ /// [`mprotect`]: crate::mm::mprotect
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MprotectFlags: u32 {
+ /// `PROT_READ`
+ const READ = linux_raw_sys::general::PROT_READ;
+ /// `PROT_WRITE`
+ const WRITE = linux_raw_sys::general::PROT_WRITE;
+ /// `PROT_EXEC`
+ const EXEC = linux_raw_sys::general::PROT_EXEC;
+ /// `PROT_GROWSUP`
+ const GROWSUP = linux_raw_sys::general::PROT_GROWSUP;
+ /// `PROT_GROWSDOWN`
+ const GROWSDOWN = linux_raw_sys::general::PROT_GROWSDOWN;
+ /// `PROT_SEM`
+ const SEM = linux_raw_sys::general::PROT_SEM;
+ /// `PROT_BTI`
+ #[cfg(target_arch = "aarch64")]
+ const BTI = linux_raw_sys::general::PROT_BTI;
+ /// `PROT_MTE`
+ #[cfg(target_arch = "aarch64")]
+ const MTE = linux_raw_sys::general::PROT_MTE;
+ /// `PROT_SAO`
+ #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))]
+ const SAO = linux_raw_sys::general::PROT_SAO;
+ /// `PROT_ADI`
+ #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))]
+ const ADI = linux_raw_sys::general::PROT_ADI;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `MAP_*` flags for use with [`mmap`].
+ ///
+ /// For `MAP_ANONYMOUS` (aka `MAP_ANON`), see [`mmap_anonymous`].
+ ///
+ /// [`mmap`]: crate::mm::mmap
+ /// [`mmap_anonymous`]: crates::mm::mmap_anonymous
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MapFlags: u32 {
+ /// `MAP_SHARED`
+ const SHARED = linux_raw_sys::general::MAP_SHARED;
+ /// `MAP_SHARED_VALIDATE` (since Linux 4.15)
+ const SHARED_VALIDATE = linux_raw_sys::general::MAP_SHARED_VALIDATE;
+ /// `MAP_PRIVATE`
+ const PRIVATE = linux_raw_sys::general::MAP_PRIVATE;
+ /// `MAP_DENYWRITE`
+ const DENYWRITE = linux_raw_sys::general::MAP_DENYWRITE;
+ /// `MAP_FIXED`
+ const FIXED = linux_raw_sys::general::MAP_FIXED;
+ /// `MAP_FIXED_NOREPLACE` (since Linux 4.17)
+ const FIXED_NOREPLACE = linux_raw_sys::general::MAP_FIXED_NOREPLACE;
+ /// `MAP_GROWSDOWN`
+ const GROWSDOWN = linux_raw_sys::general::MAP_GROWSDOWN;
+ /// `MAP_HUGETLB`
+ const HUGETLB = linux_raw_sys::general::MAP_HUGETLB;
+ /// `MAP_HUGE_2MB` (since Linux 3.8)
+ const HUGE_2MB = linux_raw_sys::general::MAP_HUGE_2MB;
+ /// `MAP_HUGE_1GB` (since Linux 3.8)
+ const HUGE_1GB = linux_raw_sys::general::MAP_HUGE_1GB;
+ /// `MAP_LOCKED`
+ const LOCKED = linux_raw_sys::general::MAP_LOCKED;
+ /// `MAP_NORESERVE`
+ const NORESERVE = linux_raw_sys::general::MAP_NORESERVE;
+ /// `MAP_POPULATE`
+ const POPULATE = linux_raw_sys::general::MAP_POPULATE;
+ /// `MAP_STACK`
+ const STACK = linux_raw_sys::general::MAP_STACK;
+ /// `MAP_SYNC` (since Linux 4.15)
+ #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6", target_arch = "mips64", target_arch = "mips64r6")))]
+ const SYNC = linux_raw_sys::general::MAP_SYNC;
+ /// `MAP_UNINITIALIZED`
+ #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6", target_arch = "mips64", target_arch = "mips64r6")))]
+ const UNINITIALIZED = linux_raw_sys::general::MAP_UNINITIALIZED;
+ /// `MAP_DROPPABLE`
+ const DROPPABLE = linux_raw_sys::general::MAP_DROPPABLE;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `MREMAP_*` flags for use with [`mremap`].
+ ///
+ /// For `MREMAP_FIXED`, see [`mremap_fixed`].
+ ///
+ /// [`mremap`]: crate::mm::mremap
+ /// [`mremap_fixed`]: crate::mm::mremap_fixed
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MremapFlags: u32 {
+ /// `MREMAP_MAYMOVE`
+ const MAYMOVE = linux_raw_sys::general::MREMAP_MAYMOVE;
+ /// `MREMAP_DONTUNMAP` (since Linux 5.7)
+ const DONTUNMAP = linux_raw_sys::general::MREMAP_DONTUNMAP;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `MS_*` flags for use with [`msync`].
+ ///
+ /// [`msync`]: crate::mm::msync
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MsyncFlags: u32 {
+ /// `MS_SYNC`—Requests an update and waits for it to complete.
+ const SYNC = linux_raw_sys::general::MS_SYNC;
+ /// `MS_ASYNC`—Specifies that an update be scheduled, but the call
+ /// returns immediately.
+ const ASYNC = linux_raw_sys::general::MS_ASYNC;
+ /// `MS_INVALIDATE`—Asks to invalidate other mappings of the same
+ /// file (so that they can be updated with the fresh values just
+ /// written).
+ const INVALIDATE = linux_raw_sys::general::MS_INVALIDATE;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `MLOCK_*` flags for use with [`mlock_with`].
+ ///
+ /// [`mlock_with`]: crate::mm::mlock_with
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MlockFlags: u32 {
+ /// `MLOCK_ONFAULT`
+ const ONFAULT = linux_raw_sys::general::MLOCK_ONFAULT;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `POSIX_MADV_*` constants for use with [`madvise`].
+///
+/// [`madvise`]: crate::mm::madvise
+#[derive(Debug, Copy, Clone, Eq, PartialEq)]
+#[repr(u32)]
+#[non_exhaustive]
+pub enum Advice {
+ /// `POSIX_MADV_NORMAL`
+ Normal = linux_raw_sys::general::MADV_NORMAL,
+
+ /// `POSIX_MADV_SEQUENTIAL`
+ Sequential = linux_raw_sys::general::MADV_SEQUENTIAL,
+
+ /// `POSIX_MADV_RANDOM`
+ Random = linux_raw_sys::general::MADV_RANDOM,
+
+ /// `POSIX_MADV_WILLNEED`
+ WillNeed = linux_raw_sys::general::MADV_WILLNEED,
+
+ /// `MADV_DONTNEED`
+ LinuxDontNeed = linux_raw_sys::general::MADV_DONTNEED,
+
+ /// `MADV_FREE` (since Linux 4.5)
+ LinuxFree = linux_raw_sys::general::MADV_FREE,
+ /// `MADV_REMOVE`
+ LinuxRemove = linux_raw_sys::general::MADV_REMOVE,
+ /// `MADV_DONTFORK`
+ LinuxDontFork = linux_raw_sys::general::MADV_DONTFORK,
+ /// `MADV_DOFORK`
+ LinuxDoFork = linux_raw_sys::general::MADV_DOFORK,
+ /// `MADV_HWPOISON`
+ LinuxHwPoison = linux_raw_sys::general::MADV_HWPOISON,
+ /// `MADV_SOFT_OFFLINE`
+ #[cfg(not(any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )))]
+ LinuxSoftOffline = linux_raw_sys::general::MADV_SOFT_OFFLINE,
+ /// `MADV_MERGEABLE`
+ LinuxMergeable = linux_raw_sys::general::MADV_MERGEABLE,
+ /// `MADV_UNMERGEABLE`
+ LinuxUnmergeable = linux_raw_sys::general::MADV_UNMERGEABLE,
+ /// `MADV_HUGEPAGE`
+ LinuxHugepage = linux_raw_sys::general::MADV_HUGEPAGE,
+ /// `MADV_NOHUGEPAGE`
+ LinuxNoHugepage = linux_raw_sys::general::MADV_NOHUGEPAGE,
+ /// `MADV_DONTDUMP` (since Linux 3.4)
+ LinuxDontDump = linux_raw_sys::general::MADV_DONTDUMP,
+ /// `MADV_DODUMP` (since Linux 3.4)
+ LinuxDoDump = linux_raw_sys::general::MADV_DODUMP,
+ /// `MADV_WIPEONFORK` (since Linux 4.14)
+ LinuxWipeOnFork = linux_raw_sys::general::MADV_WIPEONFORK,
+ /// `MADV_KEEPONFORK` (since Linux 4.14)
+ LinuxKeepOnFork = linux_raw_sys::general::MADV_KEEPONFORK,
+ /// `MADV_COLD` (since Linux 5.4)
+ LinuxCold = linux_raw_sys::general::MADV_COLD,
+ /// `MADV_PAGEOUT` (since Linux 5.4)
+ LinuxPageOut = linux_raw_sys::general::MADV_PAGEOUT,
+ /// `MADV_POPULATE_READ` (since Linux 5.14)
+ LinuxPopulateRead = linux_raw_sys::general::MADV_POPULATE_READ,
+ /// `MADV_POPULATE_WRITE` (since Linux 5.14)
+ LinuxPopulateWrite = linux_raw_sys::general::MADV_POPULATE_WRITE,
+ /// `MADV_DONTNEED_LOCKED` (since Linux 5.18)
+ LinuxDontneedLocked = linux_raw_sys::general::MADV_DONTNEED_LOCKED,
+}
+
+#[allow(non_upper_case_globals)]
+impl Advice {
+ /// `POSIX_MADV_DONTNEED`
+ ///
+ /// On Linux, this is mapped to `POSIX_MADV_NORMAL` because Linux's
+ /// `MADV_DONTNEED` differs from `POSIX_MADV_DONTNEED`. See `LinuxDontNeed`
+ /// for the Linux behavior.
+ pub const DontNeed: Self = Self::Normal;
+}
+
+bitflags! {
+ /// `O_*` flags for use with [`userfaultfd`].
+ ///
+ /// [`userfaultfd`]: crate::mm::userfaultfd
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct UserfaultfdFlags: ffi::c_uint {
+ /// `O_CLOEXEC`
+ const CLOEXEC = linux_raw_sys::general::O_CLOEXEC;
+ /// `O_NONBLOCK`
+ const NONBLOCK = linux_raw_sys::general::O_NONBLOCK;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `MCL_*` flags for use with [`mlockall`].
+ ///
+ /// [`mlockall`]: crate::mm::mlockall
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MlockAllFlags: u32 {
+ /// Used together with `MCL_CURRENT`, `MCL_FUTURE`, or both. Mark all
+ /// current (with `MCL_CURRENT`) or future (with `MCL_FUTURE`) mappings
+ /// to lock pages when they are faulted in. When used with
+ /// `MCL_CURRENT`, all present pages are locked, but `mlockall` will
+ /// not fault in non-present pages. When used with `MCL_FUTURE`, all
+ /// future mappings will be marked to lock pages when they are faulted
+ /// in, but they will not be populated by the lock when the mapping is
+ /// created. `MCL_ONFAULT` must be used with either `MCL_CURRENT` or
+ /// `MCL_FUTURE` or both.
+ const ONFAULT = linux_raw_sys::general::MCL_ONFAULT;
+ /// Lock all pages which will become mapped into the address space of
+ /// the process in the future. These could be, for instance, new pages
+ /// required by a growing heap and stack as well as new memory-mapped
+ /// files or shared memory regions.
+ const FUTURE = linux_raw_sys::general::MCL_FUTURE;
+ /// Lock all pages which are currently mapped into the address space of
+ /// the process.
+ const CURRENT = linux_raw_sys::general::MCL_CURRENT;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/mod.rs
new file mode 100644
index 0000000..581dcc9
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/mod.rs
@@ -0,0 +1,112 @@
+//! The linux_raw backend.
+//!
+//! This makes Linux syscalls directly, without going through libc.
+//!
+//! # Safety
+//!
+//! These files performs raw system calls, and sometimes passes them
+//! uninitialized memory buffers. The signatures in this module are currently
+//! manually maintained and must correspond with the signatures of the actual
+//! Linux syscalls.
+//!
+//! Some of this could be auto-generated from the Linux header file
+//! <linux/syscalls.h>, but we often need more information than it provides,
+//! such as which pointers are array slices, out parameters, or in-out
+//! parameters, which integers are owned or borrowed file descriptors, etc.
+
+#[macro_use]
+mod arch;
+mod conv;
+mod reg;
+#[cfg(any(feature = "time", feature = "thread", target_arch = "x86"))]
+mod vdso;
+#[cfg(any(feature = "time", feature = "thread", target_arch = "x86"))]
+mod vdso_wrappers;
+
+#[cfg(feature = "event")]
+pub(crate) mod event;
+#[cfg(any(
+ feature = "fs",
+ all(
+ not(feature = "use-libc-auxv"),
+ not(feature = "use-explicitly-provided-auxv"),
+ any(
+ feature = "param",
+ feature = "runtime",
+ feature = "thread",
+ feature = "time",
+ target_arch = "x86",
+ )
+ )
+))]
+pub(crate) mod fs;
+pub(crate) mod io;
+#[cfg(feature = "io_uring")]
+pub(crate) mod io_uring;
+#[cfg(feature = "mm")]
+pub(crate) mod mm;
+#[cfg(feature = "mount")]
+pub(crate) mod mount;
+#[cfg(feature = "net")]
+pub(crate) mod net;
+#[cfg(any(
+ feature = "param",
+ feature = "runtime",
+ feature = "thread",
+ feature = "time",
+ target_arch = "x86",
+))]
+pub(crate) mod param;
+#[cfg(feature = "pipe")]
+pub(crate) mod pipe;
+#[cfg(feature = "process")]
+pub(crate) mod process;
+#[cfg(feature = "pty")]
+pub(crate) mod pty;
+#[cfg(feature = "rand")]
+pub(crate) mod rand;
+#[cfg(feature = "runtime")]
+pub(crate) mod runtime;
+#[cfg(feature = "shm")]
+pub(crate) mod shm;
+#[cfg(feature = "system")]
+pub(crate) mod system;
+#[cfg(feature = "termios")]
+pub(crate) mod termios;
+#[cfg(feature = "thread")]
+pub(crate) mod thread;
+#[cfg(feature = "time")]
+pub(crate) mod time;
+
+// Re-export the maybe-polyfill `core::os::fd`.
+pub(crate) use crate::maybe_polyfill::os::fd;
+
+// The linux_raw backend doesn't use actual libc, so we define selected
+// libc-like definitions in a module called `c`.
+pub(crate) mod c;
+
+// Private modules used by multiple public modules.
+#[cfg(any(feature = "process", feature = "runtime"))]
+pub(crate) mod pid;
+#[cfg(any(feature = "process", feature = "thread"))]
+pub(crate) mod prctl;
+#[cfg(any(
+ feature = "fs",
+ feature = "process",
+ feature = "thread",
+ all(
+ not(feature = "use-libc-auxv"),
+ not(feature = "use-explicitly-provided-auxv"),
+ any(
+ feature = "param",
+ feature = "runtime",
+ feature = "time",
+ target_arch = "x86",
+ )
+ )
+))]
+pub(crate) mod ugid;
+
+/// The maximum number of buffers that can be passed into a vectored I/O system
+/// call on the current platform.
+const MAX_IOV: usize = linux_raw_sys::general::UIO_MAXIOV as usize;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/mount/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/mount/mod.rs
new file mode 100644
index 0000000..1e0181a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/mount/mod.rs
@@ -0,0 +1,2 @@
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/mount/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/mount/syscalls.rs
new file mode 100644
index 0000000..6fc6924
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/mount/syscalls.rs
@@ -0,0 +1,237 @@
+//! linux_raw syscalls supporting `rustix::mount`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code)]
+#![allow(clippy::undocumented_unsafe_blocks)]
+
+use crate::backend::conv::{ret, ret_owned_fd, slice, zero};
+use crate::fd::{BorrowedFd, OwnedFd};
+use crate::ffi::CStr;
+use crate::io;
+
+#[inline]
+pub(crate) fn mount(
+ source: Option<&CStr>,
+ target: &CStr,
+ file_system_type: Option<&CStr>,
+ flags: super::types::MountFlagsArg,
+ data: Option<&CStr>,
+) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_mount,
+ source,
+ target,
+ file_system_type,
+ flags,
+ data
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn unmount(target: &CStr, flags: super::types::UnmountFlags) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_umount2, target, flags)) }
+}
+
+#[inline]
+pub(crate) fn fsopen(fs_name: &CStr, flags: super::types::FsOpenFlags) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(syscall_readonly!(__NR_fsopen, fs_name, flags)) }
+}
+
+#[inline]
+pub(crate) fn fsmount(
+ fs_fd: BorrowedFd<'_>,
+ flags: super::types::FsMountFlags,
+ attr_flags: super::types::MountAttrFlags,
+) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(syscall_readonly!(__NR_fsmount, fs_fd, flags, attr_flags)) }
+}
+
+#[inline]
+pub(crate) fn move_mount(
+ from_dfd: BorrowedFd<'_>,
+ from_pathname: &CStr,
+ to_dfd: BorrowedFd<'_>,
+ to_pathname: &CStr,
+ flags: super::types::MoveMountFlags,
+) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_move_mount,
+ from_dfd,
+ from_pathname,
+ to_dfd,
+ to_pathname,
+ flags
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn open_tree(
+ dfd: BorrowedFd<'_>,
+ filename: &CStr,
+ flags: super::types::OpenTreeFlags,
+) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(syscall_readonly!(__NR_open_tree, dfd, filename, flags)) }
+}
+
+#[inline]
+pub(crate) fn fspick(
+ dfd: BorrowedFd<'_>,
+ path: &CStr,
+ flags: super::types::FsPickFlags,
+) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(syscall_readonly!(__NR_fspick, dfd, path, flags)) }
+}
+
+#[inline]
+pub(crate) fn fsconfig_set_flag(fs_fd: BorrowedFd<'_>, key: &CStr) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fsconfig,
+ fs_fd,
+ super::types::FsConfigCmd::SetFlag,
+ key,
+ zero(),
+ zero()
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn fsconfig_set_string(
+ fs_fd: BorrowedFd<'_>,
+ key: &CStr,
+ value: &CStr,
+) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fsconfig,
+ fs_fd,
+ super::types::FsConfigCmd::SetString,
+ key,
+ value,
+ zero()
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn fsconfig_set_binary(
+ fs_fd: BorrowedFd<'_>,
+ key: &CStr,
+ value: &[u8],
+) -> io::Result<()> {
+ let (value_addr, value_len) = slice(value);
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fsconfig,
+ fs_fd,
+ super::types::FsConfigCmd::SetBinary,
+ key,
+ value_addr,
+ value_len
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn fsconfig_set_fd(
+ fs_fd: BorrowedFd<'_>,
+ key: &CStr,
+ fd: BorrowedFd<'_>,
+) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fsconfig,
+ fs_fd,
+ super::types::FsConfigCmd::SetFd,
+ key,
+ zero(),
+ fd
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn fsconfig_set_path(
+ fs_fd: BorrowedFd<'_>,
+ key: &CStr,
+ path: &CStr,
+ fd: BorrowedFd<'_>,
+) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fsconfig,
+ fs_fd,
+ super::types::FsConfigCmd::SetPath,
+ key,
+ path,
+ fd
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn fsconfig_set_path_empty(
+ fs_fd: BorrowedFd<'_>,
+ key: &CStr,
+ fd: BorrowedFd<'_>,
+) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fsconfig,
+ fs_fd,
+ super::types::FsConfigCmd::SetPathEmpty,
+ key,
+ cstr!(""),
+ fd
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn fsconfig_create(fs_fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fsconfig,
+ fs_fd,
+ super::types::FsConfigCmd::Create,
+ zero(),
+ zero(),
+ zero()
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn fsconfig_reconfigure(fs_fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fsconfig,
+ fs_fd,
+ super::types::FsConfigCmd::Reconfigure,
+ zero(),
+ zero(),
+ zero()
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn fsconfig_create_excl(fs_fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_fsconfig,
+ fs_fd,
+ super::types::FsConfigCmd::CreateExclusive,
+ zero(),
+ zero(),
+ zero()
+ ))
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/mount/types.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/mount/types.rs
new file mode 100644
index 0000000..548b74e
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/mount/types.rs
@@ -0,0 +1,335 @@
+use crate::ffi;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `MS_*` constants for use with [`mount`].
+ ///
+ /// [`mount`]: crate::mount::mount
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MountFlags: ffi::c_uint {
+ /// `MS_BIND`
+ const BIND = linux_raw_sys::general::MS_BIND;
+
+ /// `MS_DIRSYNC`
+ const DIRSYNC = linux_raw_sys::general::MS_DIRSYNC;
+
+ /// `MS_LAZYTIME`
+ const LAZYTIME = linux_raw_sys::general::MS_LAZYTIME;
+
+ /// `MS_MANDLOCK`
+ #[doc(alias = "MANDLOCK")]
+ const PERMIT_MANDATORY_FILE_LOCKING = linux_raw_sys::general::MS_MANDLOCK;
+
+ /// `MS_NOATIME`
+ const NOATIME = linux_raw_sys::general::MS_NOATIME;
+
+ /// `MS_NODEV`
+ const NODEV = linux_raw_sys::general::MS_NODEV;
+
+ /// `MS_NODIRATIME`
+ const NODIRATIME = linux_raw_sys::general::MS_NODIRATIME;
+
+ /// `MS_NOEXEC`
+ const NOEXEC = linux_raw_sys::general::MS_NOEXEC;
+
+ /// `MS_NOSUID`
+ const NOSUID = linux_raw_sys::general::MS_NOSUID;
+
+ /// `MS_RDONLY`
+ const RDONLY = linux_raw_sys::general::MS_RDONLY;
+
+ /// `MS_REC`
+ const REC = linux_raw_sys::general::MS_REC;
+
+ /// `MS_RELATIME`
+ const RELATIME = linux_raw_sys::general::MS_RELATIME;
+
+ /// `MS_SILENT`
+ const SILENT = linux_raw_sys::general::MS_SILENT;
+
+ /// `MS_STRICTATIME`
+ const STRICTATIME = linux_raw_sys::general::MS_STRICTATIME;
+
+ /// `MS_SYNCHRONOUS`
+ const SYNCHRONOUS = linux_raw_sys::general::MS_SYNCHRONOUS;
+
+ /// `MS_NOSYMFOLLOW`
+ const NOSYMFOLLOW = linux_raw_sys::general::MS_NOSYMFOLLOW;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `MNT_*` constants for use with [`unmount`].
+ ///
+ /// [`unmount`]: crate::mount::unmount
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct UnmountFlags: ffi::c_uint {
+ /// `MNT_FORCE`
+ const FORCE = linux_raw_sys::general::MNT_FORCE;
+ /// `MNT_DETACH`
+ const DETACH = linux_raw_sys::general::MNT_DETACH;
+ /// `MNT_EXPIRE`
+ const EXPIRE = linux_raw_sys::general::MNT_EXPIRE;
+ /// `UMOUNT_NOFOLLOW`
+ const NOFOLLOW = linux_raw_sys::general::UMOUNT_NOFOLLOW;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `FSOPEN_*` constants for use with [`fsopen`].
+ ///
+ /// [`fsopen`]: crate::mount::fsopen
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct FsOpenFlags: ffi::c_uint {
+ /// `FSOPEN_CLOEXEC`
+ const FSOPEN_CLOEXEC = linux_raw_sys::general::FSOPEN_CLOEXEC;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `FSMOUNT_*` constants for use with [`fsmount`].
+ ///
+ /// [`fsmount`]: crate::mount::fsmount
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct FsMountFlags: ffi::c_uint {
+ /// `FSMOUNT_CLOEXEC`
+ const FSMOUNT_CLOEXEC = linux_raw_sys::general::FSMOUNT_CLOEXEC;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `FSCONFIG_*` constants for use with the `fsconfig` syscall.
+#[derive(Debug, Copy, Clone, Eq, PartialEq)]
+#[repr(u32)]
+pub(crate) enum FsConfigCmd {
+ /// `FSCONFIG_SET_FLAG`
+ SetFlag = linux_raw_sys::general::fsconfig_command::FSCONFIG_SET_FLAG as u32,
+
+ /// `FSCONFIG_SET_STRING`
+ SetString = linux_raw_sys::general::fsconfig_command::FSCONFIG_SET_STRING as u32,
+
+ /// `FSCONFIG_SET_BINARY`
+ SetBinary = linux_raw_sys::general::fsconfig_command::FSCONFIG_SET_BINARY as u32,
+
+ /// `FSCONFIG_SET_PATH`
+ SetPath = linux_raw_sys::general::fsconfig_command::FSCONFIG_SET_PATH as u32,
+
+ /// `FSCONFIG_SET_PATH_EMPTY`
+ SetPathEmpty = linux_raw_sys::general::fsconfig_command::FSCONFIG_SET_PATH_EMPTY as u32,
+
+ /// `FSCONFIG_SET_FD`
+ SetFd = linux_raw_sys::general::fsconfig_command::FSCONFIG_SET_FD as u32,
+
+ /// `FSCONFIG_CMD_CREATE`
+ Create = linux_raw_sys::general::fsconfig_command::FSCONFIG_CMD_CREATE as u32,
+
+ /// `FSCONFIG_CMD_RECONFIGURE`
+ Reconfigure = linux_raw_sys::general::fsconfig_command::FSCONFIG_CMD_RECONFIGURE as u32,
+
+ /// `FSCONFIG_CMD_CREATE_EXCL` (since Linux 6.6)
+ CreateExclusive = linux_raw_sys::general::fsconfig_command::FSCONFIG_CMD_CREATE_EXCL as u32,
+}
+
+bitflags! {
+ /// `MOUNT_ATTR_*` constants for use with [`fsmount`].
+ ///
+ /// [`fsmount`]: crate::mount::fsmount
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MountAttrFlags: ffi::c_uint {
+ /// `MOUNT_ATTR_RDONLY`
+ const MOUNT_ATTR_RDONLY = linux_raw_sys::general::MOUNT_ATTR_RDONLY;
+
+ /// `MOUNT_ATTR_NOSUID`
+ const MOUNT_ATTR_NOSUID = linux_raw_sys::general::MOUNT_ATTR_NOSUID;
+
+ /// `MOUNT_ATTR_NODEV`
+ const MOUNT_ATTR_NODEV = linux_raw_sys::general::MOUNT_ATTR_NODEV;
+
+ /// `MOUNT_ATTR_NOEXEC`
+ const MOUNT_ATTR_NOEXEC = linux_raw_sys::general::MOUNT_ATTR_NOEXEC;
+
+ /// `MOUNT_ATTR__ATIME`
+ const MOUNT_ATTR__ATIME = linux_raw_sys::general::MOUNT_ATTR__ATIME;
+
+ /// `MOUNT_ATTR_RELATIME`
+ const MOUNT_ATTR_RELATIME = linux_raw_sys::general::MOUNT_ATTR_RELATIME;
+
+ /// `MOUNT_ATTR_NOATIME`
+ const MOUNT_ATTR_NOATIME = linux_raw_sys::general::MOUNT_ATTR_NOATIME;
+
+ /// `MOUNT_ATTR_STRICTATIME`
+ const MOUNT_ATTR_STRICTATIME = linux_raw_sys::general::MOUNT_ATTR_STRICTATIME;
+
+ /// `MOUNT_ATTR_NODIRATIME`
+ const MOUNT_ATTR_NODIRATIME = linux_raw_sys::general::MOUNT_ATTR_NODIRATIME;
+
+ /// `MOUNT_ATTR_NOUSER`
+ const MOUNT_ATTR_IDMAP = linux_raw_sys::general::MOUNT_ATTR_IDMAP;
+
+ /// `MOUNT_ATTR__ATIME_FLAGS`
+ const MOUNT_ATTR_NOSYMFOLLOW = linux_raw_sys::general::MOUNT_ATTR_NOSYMFOLLOW;
+
+ /// `MOUNT_ATTR__ATIME_FLAGS`
+ const MOUNT_ATTR_SIZE_VER0 = linux_raw_sys::general::MOUNT_ATTR_SIZE_VER0;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `MOVE_MOUNT_*` constants for use with [`move_mount`].
+ ///
+ /// [`move_mount`]: crate::mount::move_mount
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MoveMountFlags: ffi::c_uint {
+ /// `MOVE_MOUNT_F_EMPTY_PATH`
+ const MOVE_MOUNT_F_SYMLINKS = linux_raw_sys::general::MOVE_MOUNT_F_SYMLINKS;
+
+ /// `MOVE_MOUNT_F_AUTOMOUNTS`
+ const MOVE_MOUNT_F_AUTOMOUNTS = linux_raw_sys::general::MOVE_MOUNT_F_AUTOMOUNTS;
+
+ /// `MOVE_MOUNT_F_EMPTY_PATH`
+ const MOVE_MOUNT_F_EMPTY_PATH = linux_raw_sys::general::MOVE_MOUNT_F_EMPTY_PATH;
+
+ /// `MOVE_MOUNT_T_SYMLINKS`
+ const MOVE_MOUNT_T_SYMLINKS = linux_raw_sys::general::MOVE_MOUNT_T_SYMLINKS;
+
+ /// `MOVE_MOUNT_T_AUTOMOUNTS`
+ const MOVE_MOUNT_T_AUTOMOUNTS = linux_raw_sys::general::MOVE_MOUNT_T_AUTOMOUNTS;
+
+ /// `MOVE_MOUNT_T_EMPTY_PATH`
+ const MOVE_MOUNT_T_EMPTY_PATH = linux_raw_sys::general::MOVE_MOUNT_T_EMPTY_PATH;
+
+ /// `MOVE_MOUNT__MASK`
+ const MOVE_MOUNT_SET_GROUP = linux_raw_sys::general::MOVE_MOUNT_SET_GROUP;
+
+ /// `MOVE_MOUNT_BENEATH` (since Linux 6.5)
+ const MOVE_MOUNT_BENEATH = linux_raw_sys::general::MOVE_MOUNT_BENEATH;
+
+ /// `MOVE_MOUNT__MASK`
+ const MOVE_MOUNT__MASK = linux_raw_sys::general::MOVE_MOUNT__MASK;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `OPENTREE_*` constants for use with [`open_tree`].
+ ///
+ /// [`open_tree`]: crate::mount::open_tree
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct OpenTreeFlags: ffi::c_uint {
+ /// `OPENTREE_CLONE`
+ const OPEN_TREE_CLONE = linux_raw_sys::general::OPEN_TREE_CLONE;
+
+ /// `OPENTREE_CLOEXEC`
+ const OPEN_TREE_CLOEXEC = linux_raw_sys::general::OPEN_TREE_CLOEXEC;
+
+ /// `AT_EMPTY_PATH`
+ const AT_EMPTY_PATH = linux_raw_sys::general::AT_EMPTY_PATH;
+
+ /// `AT_NO_AUTOMOUNT`
+ const AT_NO_AUTOMOUNT = linux_raw_sys::general::AT_NO_AUTOMOUNT;
+
+ /// `AT_RECURSIVE`
+ const AT_RECURSIVE = linux_raw_sys::general::AT_RECURSIVE;
+
+ /// `AT_SYMLINK_NOFOLLOW`
+ const AT_SYMLINK_NOFOLLOW = linux_raw_sys::general::AT_SYMLINK_NOFOLLOW;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `FSPICK_*` constants for use with [`fspick`].
+ ///
+ /// [`fspick`]: crate::mount::fspick
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct FsPickFlags: ffi::c_uint {
+ /// `FSPICK_CLOEXEC`
+ const FSPICK_CLOEXEC = linux_raw_sys::general::FSPICK_CLOEXEC;
+
+ /// `FSPICK_SYMLINK_NOFOLLOW`
+ const FSPICK_SYMLINK_NOFOLLOW = linux_raw_sys::general::FSPICK_SYMLINK_NOFOLLOW;
+
+ /// `FSPICK_NO_AUTOMOUNT`
+ const FSPICK_NO_AUTOMOUNT = linux_raw_sys::general::FSPICK_NO_AUTOMOUNT;
+
+ /// `FSPICK_EMPTY_PATH`
+ const FSPICK_EMPTY_PATH = linux_raw_sys::general::FSPICK_EMPTY_PATH;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `MS_*` constants for use with [`mount_change`].
+ ///
+ /// [`mount_change`]: crate::mount::mount_change
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MountPropagationFlags: ffi::c_uint {
+ /// `MS_SILENT`
+ const SILENT = linux_raw_sys::general::MS_SILENT;
+ /// `MS_SHARED`
+ const SHARED = linux_raw_sys::general::MS_SHARED;
+ /// `MS_PRIVATE`
+ const PRIVATE = linux_raw_sys::general::MS_PRIVATE;
+ /// Mark a mount as a downstream of its current peer group.
+ ///
+ /// Mount and unmount events propagate from the upstream peer group
+ /// into the downstream.
+ ///
+ /// In Linux documentation, this flag is named `MS_SLAVE`, and the
+ /// concepts of “upstream” and “downstream” are called
+ /// “master” and “slave”.
+ #[doc(alias = "SLAVE")]
+ const DOWNSTREAM = linux_raw_sys::general::MS_SLAVE;
+ /// `MS_UNBINDABLE`
+ const UNBINDABLE = linux_raw_sys::general::MS_UNBINDABLE;
+ /// `MS_REC`
+ const REC = linux_raw_sys::general::MS_REC;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub(crate) struct InternalMountFlags: ffi::c_uint {
+ const REMOUNT = linux_raw_sys::general::MS_REMOUNT;
+ const MOVE = linux_raw_sys::general::MS_MOVE;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[repr(transparent)]
+pub(crate) struct MountFlagsArg(pub(crate) ffi::c_uint);
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/net/addr.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/net/addr.rs
new file mode 100644
index 0000000..7138b57
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/net/addr.rs
@@ -0,0 +1,300 @@
+//! Socket address utilities.
+//!
+//! # Safety
+//!
+//! This file uses `CStr::from_bytes_with_nul_unchecked` on a string it knows
+//! to be NUL-terminated.
+#![allow(unsafe_code)]
+
+use crate::backend::c;
+use crate::ffi::CStr;
+use crate::net::addr::SocketAddrLen;
+use crate::net::AddressFamily;
+use crate::{io, path};
+use core::cmp::Ordering;
+use core::hash::{Hash, Hasher};
+use core::{fmt, slice};
+#[cfg(feature = "alloc")]
+use {crate::ffi::CString, alloc::borrow::Cow, alloc::vec::Vec};
+
+/// `struct sockaddr_un`
+#[derive(Clone)]
+#[doc(alias = "sockaddr_un")]
+pub struct SocketAddrUnix {
+ pub(crate) unix: c::sockaddr_un,
+ len: c::socklen_t,
+}
+
+impl SocketAddrUnix {
+ /// Construct a new Unix-domain address from a filesystem path.
+ #[inline]
+ pub fn new<P: path::Arg>(path: P) -> io::Result<Self> {
+ path.into_with_c_str(Self::_new)
+ }
+
+ #[inline]
+ fn _new(path: &CStr) -> io::Result<Self> {
+ let mut unix = Self::init();
+ let mut bytes = path.to_bytes_with_nul();
+ if bytes.len() > unix.sun_path.len() {
+ bytes = path.to_bytes(); // without NUL
+ if bytes.len() > unix.sun_path.len() {
+ return Err(io::Errno::NAMETOOLONG);
+ }
+ }
+ for (i, b) in bytes.iter().enumerate() {
+ unix.sun_path[i] = bitcast!(*b);
+ }
+ let len = offsetof_sun_path() + bytes.len();
+ let len = len.try_into().unwrap();
+ Ok(Self { unix, len })
+ }
+
+ /// Construct a new abstract Unix-domain address from a byte slice.
+ #[inline]
+ pub fn new_abstract_name(name: &[u8]) -> io::Result<Self> {
+ let mut unix = Self::init();
+ let id = &mut unix.sun_path[1..];
+
+ // SAFETY: Convert `&mut [c_char]` to `&mut [u8]`.
+ let id = unsafe { slice::from_raw_parts_mut(id.as_mut_ptr().cast::<u8>(), id.len()) };
+
+ if let Some(id) = id.get_mut(..name.len()) {
+ id.copy_from_slice(name);
+ let len = offsetof_sun_path() + 1 + name.len();
+ let len = len.try_into().unwrap();
+ Ok(Self { unix, len })
+ } else {
+ Err(io::Errno::NAMETOOLONG)
+ }
+ }
+
+ /// Construct a new unnamed address.
+ ///
+ /// The kernel will assign an abstract Unix-domain address to the socket
+ /// when you call [`bind`][crate::net::bind]. You can inspect the assigned
+ /// name with [`getsockname`][crate::net::getsockname].
+ ///
+ /// # References
+ /// - [Linux]
+ ///
+ /// [Linux]: https://www.man7.org/linux/man-pages/man7/unix.7.html
+ #[inline]
+ pub fn new_unnamed() -> Self {
+ Self {
+ unix: Self::init(),
+ len: offsetof_sun_path() as SocketAddrLen,
+ }
+ }
+
+ const fn init() -> c::sockaddr_un {
+ c::sockaddr_un {
+ sun_family: c::AF_UNIX as _,
+ sun_path: [0; 108],
+ }
+ }
+
+ /// For a filesystem path address, return the path.
+ #[inline]
+ #[cfg(feature = "alloc")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
+ pub fn path(&self) -> Option<Cow<'_, CStr>> {
+ let bytes = self.bytes()?;
+ if !bytes.is_empty() && bytes[0] != 0 {
+ if self.unix.sun_path.len() == bytes.len() {
+ // SAFETY: There are no NULs contained in bytes.
+ unsafe { Self::path_with_termination(bytes) }
+ } else {
+ // SAFETY: `from_bytes_with_nul_unchecked` since the string is
+ // NUL-terminated.
+ Some(unsafe { CStr::from_bytes_with_nul_unchecked(bytes) }.into())
+ }
+ } else {
+ None
+ }
+ }
+
+ /// If the `sun_path` field is not NUL-terminated, terminate it.
+ ///
+ /// SAFETY: The input `bytes` must not contain any NULs.
+ #[cfg(feature = "alloc")]
+ #[cold]
+ unsafe fn path_with_termination(bytes: &[u8]) -> Option<Cow<'_, CStr>> {
+ let mut owned = Vec::with_capacity(bytes.len() + 1);
+ owned.extend_from_slice(bytes);
+ owned.push(b'\0');
+ // SAFETY: `from_vec_with_nul_unchecked` since the string is
+ // NUL-terminated and `bytes` does not contain any NULs.
+ Some(Cow::Owned(
+ CString::from_vec_with_nul_unchecked(owned).into(),
+ ))
+ }
+
+ /// For a filesystem path address, return the path as a byte sequence,
+ /// excluding the NUL terminator.
+ #[inline]
+ pub fn path_bytes(&self) -> Option<&[u8]> {
+ let bytes = self.bytes()?;
+ if !bytes.is_empty() && bytes[0] != 0 {
+ if self.unix.sun_path.len() == self.len() - offsetof_sun_path() {
+ // There is no NUL terminator.
+ Some(bytes)
+ } else {
+ // Remove the NUL terminator.
+ Some(&bytes[..bytes.len() - 1])
+ }
+ } else {
+ None
+ }
+ }
+
+ /// For an abstract address, return the identifier.
+ #[inline]
+ pub fn abstract_name(&self) -> Option<&[u8]> {
+ if let [0, bytes @ ..] = self.bytes()? {
+ Some(bytes)
+ } else {
+ None
+ }
+ }
+
+ /// `true` if the socket address is unnamed.
+ #[inline]
+ pub fn is_unnamed(&self) -> bool {
+ self.bytes() == Some(&[])
+ }
+
+ #[inline]
+ pub(crate) fn addr_len(&self) -> SocketAddrLen {
+ bitcast!(self.len)
+ }
+
+ #[inline]
+ pub(crate) fn len(&self) -> usize {
+ self.addr_len() as usize
+ }
+
+ #[inline]
+ fn bytes(&self) -> Option<&[u8]> {
+ let len = self.len();
+ if len != 0 {
+ let bytes = &self.unix.sun_path[..len - offsetof_sun_path()];
+ // SAFETY: `from_raw_parts` to convert from `&[c_char]` to `&[u8]`.
+ Some(unsafe { slice::from_raw_parts(bytes.as_ptr().cast(), bytes.len()) })
+ } else {
+ None
+ }
+ }
+}
+
+impl PartialEq for SocketAddrUnix {
+ #[inline]
+ fn eq(&self, other: &Self) -> bool {
+ let self_len = self.len() - offsetof_sun_path();
+ let other_len = other.len() - offsetof_sun_path();
+ self.unix.sun_path[..self_len].eq(&other.unix.sun_path[..other_len])
+ }
+}
+
+impl Eq for SocketAddrUnix {}
+
+impl PartialOrd for SocketAddrUnix {
+ #[inline]
+ fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
+ Some(self.cmp(other))
+ }
+}
+
+impl Ord for SocketAddrUnix {
+ #[inline]
+ fn cmp(&self, other: &Self) -> Ordering {
+ let self_len = self.len() - offsetof_sun_path();
+ let other_len = other.len() - offsetof_sun_path();
+ self.unix.sun_path[..self_len].cmp(&other.unix.sun_path[..other_len])
+ }
+}
+
+impl Hash for SocketAddrUnix {
+ #[inline]
+ fn hash<H: Hasher>(&self, state: &mut H) {
+ let self_len = self.len() - offsetof_sun_path();
+ self.unix.sun_path[..self_len].hash(state)
+ }
+}
+
+impl fmt::Debug for SocketAddrUnix {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ #[cfg(feature = "alloc")]
+ if let Some(path) = self.path() {
+ return path.fmt(f);
+ }
+ if let Some(bytes) = self.path_bytes() {
+ if let Ok(s) = core::str::from_utf8(bytes) {
+ return s.fmt(f);
+ }
+ return bytes.fmt(f);
+ }
+ if let Some(name) = self.abstract_name() {
+ return name.fmt(f);
+ }
+ "(unnamed)".fmt(f)
+ }
+}
+
+/// `struct sockaddr_storage`
+///
+/// This type is guaranteed to be large enough to hold any encoded socket
+/// address.
+#[repr(transparent)]
+#[derive(Copy, Clone)]
+#[doc(alias = "sockaddr_storage")]
+pub struct SocketAddrStorage(c::sockaddr_storage);
+
+// SAFETY: Bindgen adds a union with a raw pointer for alignment but it's never
+// used. `sockaddr_storage` is just a bunch of bytes and it doesn't hold
+// pointers.
+unsafe impl Send for SocketAddrStorage {}
+
+// SAFETY: Same as with `Send`.
+unsafe impl Sync for SocketAddrStorage {}
+
+impl SocketAddrStorage {
+ /// Return a socket addr storage initialized to all zero bytes. The
+ /// `sa_family` is set to [`AddressFamily::UNSPEC`].
+ pub fn zeroed() -> Self {
+ assert_eq!(c::AF_UNSPEC, 0);
+ // SAFETY: `sockaddr_storage` is meant to be zero-initializable.
+ unsafe { core::mem::zeroed() }
+ }
+
+ /// Return the `sa_family` of this socket address.
+ pub fn family(&self) -> AddressFamily {
+ // SAFETY: `self.0` is a `sockaddr_storage` so it has enough space.
+ unsafe {
+ AddressFamily::from_raw(crate::backend::net::read_sockaddr::read_sa_family(
+ crate::utils::as_ptr(&self.0).cast::<c::sockaddr>(),
+ ))
+ }
+ }
+
+ /// Clear the `sa_family` of this socket address to
+ /// [`AddressFamily::UNSPEC`].
+ pub fn clear_family(&mut self) {
+ // SAFETY: `self.0` is a `sockaddr_storage` so it has enough space.
+ unsafe {
+ crate::backend::net::read_sockaddr::initialize_family_to_unspec(
+ crate::utils::as_mut_ptr(&mut self.0).cast::<c::sockaddr>(),
+ )
+ }
+ }
+}
+
+/// Return the offset of the `sun_path` field of `sockaddr_un`.
+#[inline]
+pub(crate) fn offsetof_sun_path() -> usize {
+ let z = c::sockaddr_un {
+ sun_family: 0_u16,
+ sun_path: [0; 108],
+ };
+ (crate::utils::as_ptr(&z.sun_path) as usize) - (crate::utils::as_ptr(&z) as usize)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/net/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/net/mod.rs
new file mode 100644
index 0000000..169954f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/net/mod.rs
@@ -0,0 +1,8 @@
+pub(crate) mod addr;
+pub(crate) mod msghdr;
+pub(crate) mod netdevice;
+pub(crate) mod read_sockaddr;
+pub(crate) mod send_recv;
+pub(crate) mod sockopt;
+pub(crate) mod syscalls;
+pub(crate) mod write_sockaddr;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/net/msghdr.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/net/msghdr.rs
new file mode 100644
index 0000000..0343e18
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/net/msghdr.rs
@@ -0,0 +1,125 @@
+//! Utilities for dealing with message headers.
+//!
+//! These take closures rather than returning a `c::msghdr` directly because
+//! the message headers may reference stack-local data.
+
+#![allow(unsafe_code)]
+
+use crate::backend::c;
+
+use crate::io::{self, IoSlice, IoSliceMut};
+use crate::net::addr::SocketAddrArg;
+use crate::net::{RecvAncillaryBuffer, SendAncillaryBuffer, SocketAddrBuf};
+
+use core::ptr::null_mut;
+
+fn msg_iov_len(len: usize) -> c::size_t {
+ // This cast cannot overflow.
+ len as c::size_t
+}
+
+fn msg_control_len(len: usize) -> c::size_t {
+ // Same as above.
+ len as c::size_t
+}
+
+/// Create a message header intended to receive a datagram.
+///
+/// # Safety
+///
+/// If `f` dereferences the pointers in the `msghdr`, it must do so only within
+/// the bounds indicated by the associated lengths in the `msghdr`.
+///
+/// And, if `f` returns `Ok`, it must have updated the `msg_controllen` field
+/// of the `msghdr` to indicate how many bytes it initialized.
+pub(crate) unsafe fn with_recv_msghdr<R>(
+ name: &mut SocketAddrBuf,
+ iov: &mut [IoSliceMut<'_>],
+ control: &mut RecvAncillaryBuffer<'_>,
+ f: impl FnOnce(&mut c::msghdr) -> io::Result<R>,
+) -> io::Result<R> {
+ control.clear();
+
+ let mut msghdr = c::msghdr {
+ msg_name: name.storage.as_mut_ptr().cast(),
+ msg_namelen: bitcast!(name.len),
+ msg_iov: iov.as_mut_ptr().cast(),
+ msg_iovlen: msg_iov_len(iov.len()),
+ msg_control: control.as_control_ptr().cast(),
+ msg_controllen: msg_control_len(control.control_len()),
+ msg_flags: 0,
+ };
+
+ let res = f(&mut msghdr);
+
+ // Reset the control length.
+ if res.is_ok() {
+ // SAFETY: `f` returned `Ok`, so our safety condition requires `f` to
+ // have initialized `msg_controllen` bytes.
+ control.set_control_len(msghdr.msg_controllen as usize);
+ }
+
+ name.len = bitcast!(msghdr.msg_namelen);
+
+ res
+}
+
+/// Create a message header intended to send without an address.
+///
+/// The returned `msghdr` will contain raw pointers to the memory
+/// referenced by `iov` and `control`.
+pub(crate) fn noaddr_msghdr(
+ iov: &[IoSlice<'_>],
+ control: &mut SendAncillaryBuffer<'_, '_, '_>,
+) -> c::msghdr {
+ c::msghdr {
+ msg_name: null_mut(),
+ msg_namelen: 0,
+ msg_iov: iov.as_ptr() as _,
+ msg_iovlen: msg_iov_len(iov.len()),
+ msg_control: control.as_control_ptr().cast(),
+ msg_controllen: msg_control_len(control.control_len()),
+ msg_flags: 0,
+ }
+}
+
+/// Create a message header intended to send with the specified address.
+///
+/// This creates a `c::msghdr` and calls a function `f` on it. The `msghdr`'s
+/// raw pointers may point to temporaries, so this function should avoid
+/// storing the pointers anywhere that would outlive the function call.
+///
+/// # Safety
+///
+/// If `f` dereferences the pointers in the `msghdr`, it must do so only within
+/// the bounds indicated by the associated lengths in the `msghdr`.
+pub(crate) unsafe fn with_msghdr<R>(
+ addr: &impl SocketAddrArg,
+ iov: &[IoSlice<'_>],
+ control: &mut SendAncillaryBuffer<'_, '_, '_>,
+ f: impl FnOnce(&c::msghdr) -> R,
+) -> R {
+ addr.with_sockaddr(|addr_ptr, addr_len| {
+ // Pass a reference to the `c::msghdr` instead of passing it by value
+ // because it may contain pointers to temporary objects that won't live
+ // beyond the call to `with_sockaddr`.
+ let mut msghdr = noaddr_msghdr(iov, control);
+ msghdr.msg_name = addr_ptr as _;
+ msghdr.msg_namelen = bitcast!(addr_len);
+
+ f(&msghdr)
+ })
+}
+
+/// Create a zero-initialized message header struct value.
+pub(crate) fn zero_msghdr() -> c::msghdr {
+ c::msghdr {
+ msg_name: null_mut(),
+ msg_namelen: 0,
+ msg_iov: null_mut(),
+ msg_iovlen: 0,
+ msg_control: null_mut(),
+ msg_controllen: 0,
+ msg_flags: 0,
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/net/netdevice.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/net/netdevice.rs
new file mode 100644
index 0000000..d3c2a96
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/net/netdevice.rs
@@ -0,0 +1,70 @@
+//! Wrappers for netdevice ioctls.
+
+#![allow(unsafe_code)]
+
+use crate::backend::io::syscalls::ioctl;
+use crate::fd::BorrowedFd;
+use crate::io;
+use core::ptr::addr_of_mut;
+use core::{slice, str};
+use linux_raw_sys::ctypes::c_char;
+use linux_raw_sys::ioctl::SIOCGIFINDEX;
+#[cfg(feature = "alloc")]
+use linux_raw_sys::ioctl::SIOCGIFNAME;
+use linux_raw_sys::net::{ifreq, ifreq__bindgen_ty_1, ifreq__bindgen_ty_2, IFNAMSIZ};
+#[cfg(feature = "alloc")]
+use {alloc::borrow::ToOwned, alloc::string::String};
+
+pub(crate) fn name_to_index(fd: BorrowedFd<'_>, if_name: &str) -> io::Result<u32> {
+ let if_name_bytes = if_name.as_bytes();
+ if if_name_bytes.len() >= IFNAMSIZ as usize {
+ return Err(io::Errno::NODEV);
+ }
+ if if_name_bytes.contains(&0) {
+ return Err(io::Errno::NODEV);
+ }
+
+ // SAFETY: Convert `&[u8]` to `&[c_char]`.
+ let if_name_bytes = unsafe {
+ slice::from_raw_parts(if_name_bytes.as_ptr().cast::<c_char>(), if_name_bytes.len())
+ };
+
+ let mut ifreq = ifreq {
+ ifr_ifrn: ifreq__bindgen_ty_1 { ifrn_name: [0; 16] },
+ ifr_ifru: ifreq__bindgen_ty_2 { ifru_ivalue: 0 },
+ };
+ unsafe { ifreq.ifr_ifrn.ifrn_name[..if_name_bytes.len()].copy_from_slice(if_name_bytes) };
+
+ unsafe { ioctl(fd, SIOCGIFINDEX, addr_of_mut!(ifreq).cast()) }?;
+ let index = unsafe { ifreq.ifr_ifru.ifru_ivalue };
+ Ok(index as u32)
+}
+
+#[cfg(feature = "alloc")]
+pub(crate) fn index_to_name(fd: BorrowedFd<'_>, index: u32) -> io::Result<String> {
+ let mut ifreq = ifreq {
+ ifr_ifrn: ifreq__bindgen_ty_1 { ifrn_name: [0; 16] },
+ ifr_ifru: ifreq__bindgen_ty_2 {
+ ifru_ivalue: index as _,
+ },
+ };
+
+ unsafe { ioctl(fd, SIOCGIFNAME, addr_of_mut!(ifreq).cast()) }?;
+
+ if let Some(nul_byte) = unsafe { ifreq.ifr_ifrn.ifrn_name }
+ .iter()
+ .position(|ch| *ch == 0)
+ {
+ let ifrn_name = unsafe { &ifreq.ifr_ifrn.ifrn_name[..nul_byte] };
+
+ // SAFETY: Convert `&[c_char]` to `&[u8]`.
+ let ifrn_name =
+ unsafe { slice::from_raw_parts(ifrn_name.as_ptr().cast::<u8>(), ifrn_name.len()) };
+
+ str::from_utf8(ifrn_name)
+ .map_err(|_| io::Errno::ILSEQ)
+ .map(ToOwned::to_owned)
+ } else {
+ Err(io::Errno::INVAL)
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/net/read_sockaddr.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/net/read_sockaddr.rs
new file mode 100644
index 0000000..f18cd48
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/net/read_sockaddr.rs
@@ -0,0 +1,155 @@
+//! The BSD sockets API requires us to read the `sa_family` field before we can
+//! interpret the rest of a `sockaddr` produced by the kernel.
+#![allow(unsafe_code)]
+
+use crate::backend::c;
+use crate::io::Errno;
+use crate::net::addr::SocketAddrLen;
+use crate::net::netlink::SocketAddrNetlink;
+#[cfg(target_os = "linux")]
+use crate::net::xdp::{SocketAddrXdp, SocketAddrXdpFlags};
+use crate::net::{
+ AddressFamily, Ipv4Addr, Ipv6Addr, SocketAddrAny, SocketAddrUnix, SocketAddrV4, SocketAddrV6,
+};
+use core::mem::size_of;
+use core::slice;
+
+// This must match the header of `sockaddr`.
+#[repr(C)]
+pub(crate) struct sockaddr_header {
+ sa_family: u16,
+}
+
+/// Read the `sa_family` field from a socket address returned from the OS.
+///
+/// # Safety
+///
+/// `storage` must point to a least an initialized `sockaddr_header`.
+#[inline]
+pub(crate) const unsafe fn read_sa_family(storage: *const c::sockaddr) -> u16 {
+ // Assert that we know the layout of `sockaddr`.
+ let _ = c::sockaddr {
+ __storage: c::sockaddr_storage {
+ __bindgen_anon_1: linux_raw_sys::net::__kernel_sockaddr_storage__bindgen_ty_1 {
+ __bindgen_anon_1:
+ linux_raw_sys::net::__kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 {
+ ss_family: 0_u16,
+ __data: [0; 126_usize],
+ },
+ },
+ },
+ };
+
+ (*storage.cast::<sockaddr_header>()).sa_family
+}
+
+/// Set the `sa_family` field of a socket address to `AF_UNSPEC`, so that we
+/// can test for `AF_UNSPEC` to test whether it was stored to.
+///
+/// # Safety
+///
+/// `storage` must point to a least an initialized `sockaddr_header`.
+#[inline]
+pub(crate) unsafe fn initialize_family_to_unspec(storage: *mut c::sockaddr) {
+ (*storage.cast::<sockaddr_header>()).sa_family = c::AF_UNSPEC as _;
+}
+
+/// Check if a socket address returned from the OS is considered non-empty.
+#[inline]
+pub(crate) unsafe fn sockaddr_nonempty(_storage: *const c::sockaddr, len: SocketAddrLen) -> bool {
+ len != 0
+}
+
+#[inline]
+pub(crate) fn read_sockaddr_v4(addr: &SocketAddrAny) -> Result<SocketAddrV4, Errno> {
+ if addr.address_family() != AddressFamily::INET {
+ return Err(Errno::AFNOSUPPORT);
+ }
+ assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_in>());
+ let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_in>() };
+ Ok(SocketAddrV4::new(
+ Ipv4Addr::from(u32::from_be(decode.sin_addr.s_addr)),
+ u16::from_be(decode.sin_port),
+ ))
+}
+
+#[inline]
+pub(crate) fn read_sockaddr_v6(addr: &SocketAddrAny) -> Result<SocketAddrV6, Errno> {
+ if addr.address_family() != AddressFamily::INET6 {
+ return Err(Errno::AFNOSUPPORT);
+ }
+ assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_in6>());
+ let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_in6>() };
+ Ok(SocketAddrV6::new(
+ Ipv6Addr::from(unsafe { decode.sin6_addr.in6_u.u6_addr8 }),
+ u16::from_be(decode.sin6_port),
+ u32::from_be(decode.sin6_flowinfo),
+ decode.sin6_scope_id,
+ ))
+}
+
+#[inline]
+pub(crate) fn read_sockaddr_unix(addr: &SocketAddrAny) -> Result<SocketAddrUnix, Errno> {
+ if addr.address_family() != AddressFamily::UNIX {
+ return Err(Errno::AFNOSUPPORT);
+ }
+ let offsetof_sun_path = super::addr::offsetof_sun_path();
+ let len = addr.addr_len() as usize;
+
+ assert!(len >= offsetof_sun_path);
+
+ if len == offsetof_sun_path {
+ SocketAddrUnix::new(&[][..])
+ } else {
+ let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_un>() };
+
+ // On Linux check for Linux's [abstract namespace].
+ //
+ // [abstract namespace]: https://man7.org/linux/man-pages/man7/unix.7.html
+ if decode.sun_path[0] == 0 {
+ let bytes = &decode.sun_path[1..len - offsetof_sun_path];
+
+ // SAFETY: Convert `&[c_char]` to `&[u8]`.
+ let bytes = unsafe { slice::from_raw_parts(bytes.as_ptr().cast::<u8>(), bytes.len()) };
+
+ return SocketAddrUnix::new_abstract_name(bytes);
+ }
+
+ // Otherwise we expect a NUL-terminated filesystem path.
+ let bytes = &decode.sun_path[..len - 1 - offsetof_sun_path];
+
+ // SAFETY: Convert `&[c_char]` to `&[u8]`.
+ let bytes = unsafe { slice::from_raw_parts(bytes.as_ptr().cast::<u8>(), bytes.len()) };
+
+ assert_eq!(decode.sun_path[len - 1 - offsetof_sun_path], 0);
+ SocketAddrUnix::new(bytes)
+ }
+}
+
+#[inline]
+pub(crate) fn read_sockaddr_xdp(addr: &SocketAddrAny) -> Result<SocketAddrXdp, Errno> {
+ if addr.address_family() != AddressFamily::XDP {
+ return Err(Errno::AFNOSUPPORT);
+ }
+ assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_xdp>());
+ let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_xdp>() };
+
+ // This ignores the `sxdp_shared_umem_fd` field, which is only expected to
+ // be significant in `bind` calls, and not returned from `acceptfrom` or
+ // `recvmsg` or similar.
+ Ok(SocketAddrXdp::new(
+ SocketAddrXdpFlags::from_bits_retain(decode.sxdp_flags),
+ u32::from_be(decode.sxdp_ifindex),
+ u32::from_be(decode.sxdp_queue_id),
+ ))
+}
+
+#[inline]
+pub(crate) fn read_sockaddr_netlink(addr: &SocketAddrAny) -> Result<SocketAddrNetlink, Errno> {
+ if addr.address_family() != AddressFamily::NETLINK {
+ return Err(Errno::AFNOSUPPORT);
+ }
+ assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_nl>());
+ let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_nl>() };
+ Ok(SocketAddrNetlink::new(decode.nl_pid, decode.nl_groups))
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/net/send_recv.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/net/send_recv.rs
new file mode 100644
index 0000000..3262d01
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/net/send_recv.rs
@@ -0,0 +1,87 @@
+use crate::backend::c;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `MSG_*` flags for use with [`send`], [`sendto`], and related
+ /// functions.
+ ///
+ /// [`send`]: crate::net::send
+ /// [`sendto`]: crate::net::sendto
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct SendFlags: u32 {
+ /// `MSG_CONFIRM`
+ const CONFIRM = c::MSG_CONFIRM;
+ /// `MSG_DONTROUTE`
+ const DONTROUTE = c::MSG_DONTROUTE;
+ /// `MSG_DONTWAIT`
+ const DONTWAIT = c::MSG_DONTWAIT;
+ /// `MSG_EOR`
+ const EOR = c::MSG_EOR;
+ /// `MSG_MORE`
+ const MORE = c::MSG_MORE;
+ /// `MSG_NOSIGNAL`
+ const NOSIGNAL = c::MSG_NOSIGNAL;
+ /// `MSG_OOB`
+ const OOB = c::MSG_OOB;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `MSG_*` flags for use with [`recv`], [`recvfrom`], and related
+ /// functions.
+ ///
+ /// [`recv`]: crate::net::recv
+ /// [`recvfrom`]: crate::net::recvfrom
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct RecvFlags: u32 {
+ /// `MSG_CMSG_CLOEXEC`
+ const CMSG_CLOEXEC = c::MSG_CMSG_CLOEXEC;
+ /// `MSG_DONTWAIT`
+ const DONTWAIT = c::MSG_DONTWAIT;
+ /// `MSG_ERRQUEUE`
+ const ERRQUEUE = c::MSG_ERRQUEUE;
+ /// `MSG_OOB`
+ const OOB = c::MSG_OOB;
+ /// `MSG_PEEK`
+ const PEEK = c::MSG_PEEK;
+ /// `MSG_TRUNC`
+ const TRUNC = c::MSG_TRUNC;
+ /// `MSG_WAITALL`
+ const WAITALL = c::MSG_WAITALL;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `MSG_*` flags returned from [`recvmsg`], in the `flags` field of
+ /// [`RecvMsg`]
+ ///
+ /// [`recvmsg`]: crate::net::recvmsg
+ /// [`RecvMsg`]: crate::net::RecvMsg
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ReturnFlags: u32 {
+ /// `MSG_OOB`
+ const OOB = c::MSG_OOB;
+ /// `MSG_EOR`
+ const EOR = c::MSG_EOR;
+ /// `MSG_TRUNC`
+ const TRUNC = c::MSG_TRUNC;
+ /// `MSG_CTRUNC`
+ const CTRUNC = c::MSG_CTRUNC;
+ /// `MSG_ERRQUEUE`
+ const ERRQUEUE = c::MSG_ERRQUEUE;
+ /// `MSG_CMSG_CLOEXEC`
+ const CMSG_CLOEXEC = c::MSG_CMSG_CLOEXEC;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/net/sockopt.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/net/sockopt.rs
new file mode 100644
index 0000000..3e5ea1f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/net/sockopt.rs
@@ -0,0 +1,1099 @@
+//! linux_raw syscalls supporting `rustix::net::sockopt`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use crate::backend::c;
+use crate::backend::conv::{by_mut, c_uint, ret, socklen_t};
+use crate::fd::BorrowedFd;
+#[cfg(feature = "alloc")]
+use crate::ffi::CStr;
+use crate::io;
+use crate::net::sockopt::Timeout;
+#[cfg(target_os = "linux")]
+use crate::net::xdp::{XdpMmapOffsets, XdpOptionsFlags, XdpRingOffset, XdpStatistics, XdpUmemReg};
+use crate::net::{
+ AddressFamily, Ipv4Addr, Ipv6Addr, Protocol, RawProtocol, SocketAddrBuf, SocketAddrV4,
+ SocketAddrV6, SocketType, UCred,
+};
+#[cfg(feature = "alloc")]
+use alloc::borrow::ToOwned as _;
+#[cfg(feature = "alloc")]
+use alloc::string::String;
+use core::mem::{size_of, MaybeUninit};
+use core::time::Duration;
+use linux_raw_sys::general::{__kernel_old_timeval, __kernel_sock_timeval};
+use linux_raw_sys::net::{IPV6_MTU, IPV6_MULTICAST_IF, IP_MTU, IP_MULTICAST_IF};
+#[cfg(target_os = "linux")]
+use linux_raw_sys::xdp::{xdp_mmap_offsets, xdp_statistics, xdp_statistics_v1};
+#[cfg(target_arch = "x86")]
+use {
+ crate::backend::conv::{slice_just_addr, x86_sys},
+ crate::backend::reg::{ArgReg, SocketArg},
+ linux_raw_sys::net::{SYS_GETSOCKOPT, SYS_SETSOCKOPT},
+};
+
+#[inline]
+fn getsockopt<T: Copy>(fd: BorrowedFd<'_>, level: u32, optname: u32) -> io::Result<T> {
+ let mut optlen: c::socklen_t = size_of::<T>().try_into().unwrap();
+ debug_assert!(
+ optlen as usize >= size_of::<c::c_int>(),
+ "Socket APIs don't ever use `bool` directly"
+ );
+
+ let mut value = MaybeUninit::<T>::uninit();
+ getsockopt_raw(fd, level, optname, &mut value, &mut optlen)?;
+
+ assert_eq!(
+ optlen as usize,
+ size_of::<T>(),
+ "unexpected getsockopt size"
+ );
+
+ unsafe { Ok(value.assume_init()) }
+}
+
+#[inline]
+fn getsockopt_raw<T>(
+ fd: BorrowedFd<'_>,
+ level: u32,
+ optname: u32,
+ value: &mut MaybeUninit<T>,
+ optlen: &mut c::socklen_t,
+) -> io::Result<()> {
+ #[cfg(not(target_arch = "x86"))]
+ unsafe {
+ ret(syscall!(
+ __NR_getsockopt,
+ fd,
+ c_uint(level),
+ c_uint(optname),
+ value,
+ by_mut(optlen)
+ ))
+ }
+ #[cfg(target_arch = "x86")]
+ unsafe {
+ ret(syscall!(
+ __NR_socketcall,
+ x86_sys(SYS_GETSOCKOPT),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ fd.into(),
+ c_uint(level),
+ c_uint(optname),
+ value.into(),
+ by_mut(optlen),
+ ])
+ ))
+ }
+}
+
+#[inline]
+fn setsockopt<T: Copy>(fd: BorrowedFd<'_>, level: u32, optname: u32, value: T) -> io::Result<()> {
+ let optlen = size_of::<T>().try_into().unwrap();
+ debug_assert!(
+ optlen as usize >= size_of::<c::c_int>(),
+ "Socket APIs don't ever use `bool` directly"
+ );
+ setsockopt_raw(fd, level, optname, &value, optlen)
+}
+
+#[inline]
+fn setsockopt_raw<T>(
+ fd: BorrowedFd<'_>,
+ level: u32,
+ optname: u32,
+ ptr: *const T,
+ optlen: c::socklen_t,
+) -> io::Result<()> {
+ #[cfg(not(target_arch = "x86"))]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_setsockopt,
+ fd,
+ c_uint(level),
+ c_uint(optname),
+ ptr,
+ socklen_t(optlen)
+ ))
+ }
+ #[cfg(target_arch = "x86")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_socketcall,
+ x86_sys(SYS_SETSOCKOPT),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ fd.into(),
+ c_uint(level),
+ c_uint(optname),
+ ptr.into(),
+ socklen_t(optlen),
+ ])
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn socket_type(fd: BorrowedFd<'_>) -> io::Result<SocketType> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_TYPE)
+}
+
+#[inline]
+pub(crate) fn set_socket_reuseaddr(fd: BorrowedFd<'_>, reuseaddr: bool) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_REUSEADDR, from_bool(reuseaddr))
+}
+
+#[inline]
+pub(crate) fn socket_reuseaddr(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_REUSEADDR).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_socket_broadcast(fd: BorrowedFd<'_>, broadcast: bool) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_BROADCAST, from_bool(broadcast))
+}
+
+#[inline]
+pub(crate) fn socket_broadcast(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_BROADCAST).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_socket_linger(fd: BorrowedFd<'_>, linger: Option<Duration>) -> io::Result<()> {
+ // Convert `linger` to seconds, rounding up.
+ let l_linger = if let Some(linger) = linger {
+ duration_to_secs(linger)?
+ } else {
+ 0
+ };
+ let linger = c::linger {
+ l_onoff: c::c_int::from(linger.is_some()),
+ l_linger,
+ };
+ setsockopt(fd, c::SOL_SOCKET, c::SO_LINGER, linger)
+}
+
+#[inline]
+pub(crate) fn socket_linger(fd: BorrowedFd<'_>) -> io::Result<Option<Duration>> {
+ let linger: c::linger = getsockopt(fd, c::SOL_SOCKET, c::SO_LINGER)?;
+ Ok((linger.l_onoff != 0).then(|| Duration::from_secs(linger.l_linger as u64)))
+}
+
+#[inline]
+pub(crate) fn set_socket_passcred(fd: BorrowedFd<'_>, passcred: bool) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_PASSCRED, from_bool(passcred))
+}
+
+#[inline]
+pub(crate) fn socket_passcred(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_PASSCRED).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_socket_timeout(
+ fd: BorrowedFd<'_>,
+ id: Timeout,
+ timeout: Option<Duration>,
+) -> io::Result<()> {
+ let time = duration_to_linux_sock_timeval(timeout)?;
+ let optname = match id {
+ Timeout::Recv => c::SO_RCVTIMEO_NEW,
+ Timeout::Send => c::SO_SNDTIMEO_NEW,
+ };
+ match setsockopt(fd, c::SOL_SOCKET, optname, time) {
+ Err(io::Errno::NOPROTOOPT) if c::SO_RCVTIMEO_NEW != c::SO_RCVTIMEO_OLD => {
+ set_socket_timeout_old(fd, id, timeout)
+ }
+ otherwise => otherwise,
+ }
+}
+
+/// Same as `set_socket_timeout` but uses `__kernel_old_timeval` instead of
+/// `__kernel_sock_timeval` and `_OLD` constants instead of `_NEW`.
+fn set_socket_timeout_old(
+ fd: BorrowedFd<'_>,
+ id: Timeout,
+ timeout: Option<Duration>,
+) -> io::Result<()> {
+ let time = duration_to_linux_old_timeval(timeout)?;
+ let optname = match id {
+ Timeout::Recv => c::SO_RCVTIMEO_OLD,
+ Timeout::Send => c::SO_SNDTIMEO_OLD,
+ };
+ setsockopt(fd, c::SOL_SOCKET, optname, time)
+}
+
+#[inline]
+pub(crate) fn socket_timeout(fd: BorrowedFd<'_>, id: Timeout) -> io::Result<Option<Duration>> {
+ let optname = match id {
+ Timeout::Recv => c::SO_RCVTIMEO_NEW,
+ Timeout::Send => c::SO_SNDTIMEO_NEW,
+ };
+ let time: __kernel_sock_timeval = match getsockopt(fd, c::SOL_SOCKET, optname) {
+ Err(io::Errno::NOPROTOOPT) if c::SO_RCVTIMEO_NEW != c::SO_RCVTIMEO_OLD => {
+ return socket_timeout_old(fd, id)
+ }
+ otherwise => otherwise?,
+ };
+ Ok(duration_from_linux_sock_timeval(time))
+}
+
+/// Same as `get_socket_timeout` but uses `__kernel_old_timeval` instead of
+/// `__kernel_sock_timeval` and `_OLD` constants instead of `_NEW`.
+fn socket_timeout_old(fd: BorrowedFd<'_>, id: Timeout) -> io::Result<Option<Duration>> {
+ let optname = match id {
+ Timeout::Recv => c::SO_RCVTIMEO_OLD,
+ Timeout::Send => c::SO_SNDTIMEO_OLD,
+ };
+ let time: __kernel_old_timeval = getsockopt(fd, c::SOL_SOCKET, optname)?;
+ Ok(duration_from_linux_old_timeval(time))
+}
+
+/// Convert a `__linux_sock_timeval` to a Rust `Option<Duration>`.
+#[inline]
+fn duration_from_linux_sock_timeval(time: __kernel_sock_timeval) -> Option<Duration> {
+ if time.tv_sec == 0 && time.tv_usec == 0 {
+ None
+ } else {
+ Some(Duration::from_secs(time.tv_sec as u64) + Duration::from_micros(time.tv_usec as u64))
+ }
+}
+
+/// Like `duration_from_linux_sock_timeval` but uses Linux's old 32-bit
+/// `__kernel_old_timeval`.
+fn duration_from_linux_old_timeval(time: __kernel_old_timeval) -> Option<Duration> {
+ if time.tv_sec == 0 && time.tv_usec == 0 {
+ None
+ } else {
+ Some(Duration::from_secs(time.tv_sec as u64) + Duration::from_micros(time.tv_usec as u64))
+ }
+}
+
+/// Convert a Rust `Option<Duration>` to a `__kernel_sock_timeval`.
+#[inline]
+fn duration_to_linux_sock_timeval(timeout: Option<Duration>) -> io::Result<__kernel_sock_timeval> {
+ Ok(match timeout {
+ Some(timeout) => {
+ if timeout == Duration::ZERO {
+ return Err(io::Errno::INVAL);
+ }
+ // `subsec_micros` rounds down, so we use `subsec_nanos` and
+ // manually round up.
+ let mut timeout = __kernel_sock_timeval {
+ tv_sec: timeout.as_secs().try_into().unwrap_or(i64::MAX),
+ tv_usec: ((timeout.subsec_nanos() + 999) / 1000) as _,
+ };
+ if timeout.tv_sec == 0 && timeout.tv_usec == 0 {
+ timeout.tv_usec = 1;
+ }
+ timeout
+ }
+ None => __kernel_sock_timeval {
+ tv_sec: 0,
+ tv_usec: 0,
+ },
+ })
+}
+
+/// Like `duration_to_linux_sock_timeval` but uses Linux's old 32-bit
+/// `__kernel_old_timeval`.
+fn duration_to_linux_old_timeval(timeout: Option<Duration>) -> io::Result<__kernel_old_timeval> {
+ Ok(match timeout {
+ Some(timeout) => {
+ if timeout == Duration::ZERO {
+ return Err(io::Errno::INVAL);
+ }
+
+ // `subsec_micros` rounds down, so we use `subsec_nanos` and
+ // manually round up.
+ let mut timeout = __kernel_old_timeval {
+ tv_sec: timeout.as_secs().try_into().unwrap_or(c::c_long::MAX),
+ tv_usec: ((timeout.subsec_nanos() + 999) / 1000) as _,
+ };
+ if timeout.tv_sec == 0 && timeout.tv_usec == 0 {
+ timeout.tv_usec = 1;
+ }
+ timeout
+ }
+ None => __kernel_old_timeval {
+ tv_sec: 0,
+ tv_usec: 0,
+ },
+ })
+}
+
+#[inline]
+pub(crate) fn socket_error(fd: BorrowedFd<'_>) -> io::Result<Result<(), io::Errno>> {
+ let err: c::c_int = getsockopt(fd, c::SOL_SOCKET, c::SO_ERROR)?;
+ Ok(if err == 0 {
+ Ok(())
+ } else {
+ Err(io::Errno::from_raw_os_error(err))
+ })
+}
+
+#[inline]
+pub(crate) fn set_socket_keepalive(fd: BorrowedFd<'_>, keepalive: bool) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_KEEPALIVE, from_bool(keepalive))
+}
+
+#[inline]
+pub(crate) fn socket_keepalive(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_KEEPALIVE).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_socket_recv_buffer_size(fd: BorrowedFd<'_>, size: usize) -> io::Result<()> {
+ let size: c::c_int = size.try_into().map_err(|_| io::Errno::INVAL)?;
+ setsockopt(fd, c::SOL_SOCKET, c::SO_RCVBUF, size)
+}
+
+#[inline]
+pub(crate) fn set_socket_recv_buffer_size_force(fd: BorrowedFd<'_>, size: usize) -> io::Result<()> {
+ let size: c::c_int = size.try_into().map_err(|_| io::Errno::INVAL)?;
+ setsockopt(fd, c::SOL_SOCKET, c::SO_RCVBUFFORCE, size)
+}
+
+#[inline]
+pub(crate) fn socket_recv_buffer_size(fd: BorrowedFd<'_>) -> io::Result<usize> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_RCVBUF).map(|size: u32| size as usize)
+}
+
+#[inline]
+pub(crate) fn set_socket_send_buffer_size(fd: BorrowedFd<'_>, size: usize) -> io::Result<()> {
+ let size: c::c_int = size.try_into().map_err(|_| io::Errno::INVAL)?;
+ setsockopt(fd, c::SOL_SOCKET, c::SO_SNDBUF, size)
+}
+
+#[inline]
+pub(crate) fn set_socket_send_buffer_size_force(fd: BorrowedFd<'_>, size: usize) -> io::Result<()> {
+ let size: c::c_int = size.try_into().map_err(|_| io::Errno::INVAL)?;
+ setsockopt(fd, c::SOL_SOCKET, c::SO_SNDBUFFORCE, size)
+}
+
+#[inline]
+pub(crate) fn socket_send_buffer_size(fd: BorrowedFd<'_>) -> io::Result<usize> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_SNDBUF).map(|size: u32| size as usize)
+}
+
+#[inline]
+pub(crate) fn socket_domain(fd: BorrowedFd<'_>) -> io::Result<AddressFamily> {
+ let domain: c::c_int = getsockopt(fd, c::SOL_SOCKET, c::SO_DOMAIN)?;
+ Ok(AddressFamily(
+ domain.try_into().map_err(|_| io::Errno::OPNOTSUPP)?,
+ ))
+}
+
+#[inline]
+pub(crate) fn socket_acceptconn(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_ACCEPTCONN).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_socket_oobinline(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_OOBINLINE, from_bool(value))
+}
+
+#[inline]
+pub(crate) fn socket_oobinline(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_OOBINLINE).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_socket_reuseport(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_REUSEPORT, from_bool(value))
+}
+
+#[inline]
+pub(crate) fn socket_reuseport(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_REUSEPORT).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn socket_protocol(fd: BorrowedFd<'_>) -> io::Result<Option<Protocol>> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_PROTOCOL)
+ .map(|raw: u32| RawProtocol::new(raw).map(Protocol::from_raw))
+}
+
+#[inline]
+pub(crate) fn socket_cookie(fd: BorrowedFd<'_>) -> io::Result<u64> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_COOKIE)
+}
+
+#[inline]
+pub(crate) fn socket_incoming_cpu(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::SOL_SOCKET, c::SO_INCOMING_CPU)
+}
+
+#[inline]
+pub(crate) fn set_socket_incoming_cpu(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::SOL_SOCKET, c::SO_INCOMING_CPU, value)
+}
+
+#[inline]
+pub(crate) fn set_ip_ttl(fd: BorrowedFd<'_>, ttl: u32) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IP, c::IP_TTL, ttl)
+}
+
+#[inline]
+pub(crate) fn ip_ttl(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_IP, c::IP_TTL)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_v6only(fd: BorrowedFd<'_>, only_v6: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IPV6, c::IPV6_V6ONLY, from_bool(only_v6))
+}
+
+#[inline]
+pub(crate) fn ipv6_v6only(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_IPV6, c::IPV6_V6ONLY).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn ip_mtu(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_IP, IP_MTU)
+}
+
+#[inline]
+pub(crate) fn ipv6_mtu(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_IPV6, IPV6_MTU)
+}
+
+#[inline]
+pub(crate) fn set_ip_multicast_if_with_ifindex(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv4Addr,
+ address: &Ipv4Addr,
+ ifindex: u32,
+) -> io::Result<()> {
+ let mreqn = to_ip_mreqn(multiaddr, address, ifindex as i32);
+ setsockopt(fd, c::IPPROTO_IP, IP_MULTICAST_IF, mreqn)
+}
+
+#[inline]
+pub(crate) fn set_ip_multicast_if(fd: BorrowedFd<'_>, value: &Ipv4Addr) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IP, IP_MULTICAST_IF, to_imr_addr(value))
+}
+
+#[inline]
+pub(crate) fn ip_multicast_if(fd: BorrowedFd<'_>) -> io::Result<Ipv4Addr> {
+ getsockopt(fd, c::IPPROTO_IP, IP_MULTICAST_IF).map(from_in_addr)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_multicast_if(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IPV6, IPV6_MULTICAST_IF, value as c::c_int)
+}
+
+#[inline]
+pub(crate) fn ipv6_multicast_if(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_IPV6, IPV6_MULTICAST_IF)
+}
+
+#[inline]
+pub(crate) fn set_ip_multicast_loop(fd: BorrowedFd<'_>, multicast_loop: bool) -> io::Result<()> {
+ setsockopt(
+ fd,
+ c::IPPROTO_IP,
+ c::IP_MULTICAST_LOOP,
+ from_bool(multicast_loop),
+ )
+}
+
+#[inline]
+pub(crate) fn ip_multicast_loop(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_IP, c::IP_MULTICAST_LOOP).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_ip_multicast_ttl(fd: BorrowedFd<'_>, multicast_ttl: u32) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IP, c::IP_MULTICAST_TTL, multicast_ttl)
+}
+
+#[inline]
+pub(crate) fn ip_multicast_ttl(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_IP, c::IP_MULTICAST_TTL)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_multicast_loop(fd: BorrowedFd<'_>, multicast_loop: bool) -> io::Result<()> {
+ setsockopt(
+ fd,
+ c::IPPROTO_IPV6,
+ c::IPV6_MULTICAST_LOOP,
+ from_bool(multicast_loop),
+ )
+}
+
+#[inline]
+pub(crate) fn ipv6_multicast_loop(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_IPV6, c::IPV6_MULTICAST_LOOP).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_multicast_hops(fd: BorrowedFd<'_>, multicast_hops: u32) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IP, c::IPV6_MULTICAST_HOPS, multicast_hops)
+}
+
+#[inline]
+pub(crate) fn ipv6_multicast_hops(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_IP, c::IPV6_MULTICAST_HOPS)
+}
+
+#[inline]
+pub(crate) fn set_ip_add_membership(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv4Addr,
+ interface: &Ipv4Addr,
+) -> io::Result<()> {
+ let mreq = to_ip_mreq(multiaddr, interface);
+ setsockopt(fd, c::IPPROTO_IP, c::IP_ADD_MEMBERSHIP, mreq)
+}
+
+#[inline]
+pub(crate) fn set_ip_add_membership_with_ifindex(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv4Addr,
+ address: &Ipv4Addr,
+ ifindex: u32,
+) -> io::Result<()> {
+ let mreqn = to_ip_mreqn(multiaddr, address, ifindex as i32);
+ setsockopt(fd, c::IPPROTO_IP, c::IP_ADD_MEMBERSHIP, mreqn)
+}
+
+#[inline]
+pub(crate) fn set_ip_add_source_membership(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv4Addr,
+ interface: &Ipv4Addr,
+ sourceaddr: &Ipv4Addr,
+) -> io::Result<()> {
+ let mreq_source = to_imr_source(multiaddr, interface, sourceaddr);
+ setsockopt(fd, c::IPPROTO_IP, c::IP_ADD_SOURCE_MEMBERSHIP, mreq_source)
+}
+
+#[inline]
+pub(crate) fn set_ip_drop_source_membership(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv4Addr,
+ interface: &Ipv4Addr,
+ sourceaddr: &Ipv4Addr,
+) -> io::Result<()> {
+ let mreq_source = to_imr_source(multiaddr, interface, sourceaddr);
+ setsockopt(fd, c::IPPROTO_IP, c::IP_DROP_SOURCE_MEMBERSHIP, mreq_source)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_add_membership(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv6Addr,
+ interface: u32,
+) -> io::Result<()> {
+ let mreq = to_ipv6mr(multiaddr, interface);
+ setsockopt(fd, c::IPPROTO_IPV6, c::IPV6_ADD_MEMBERSHIP, mreq)
+}
+
+#[inline]
+pub(crate) fn set_ip_drop_membership(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv4Addr,
+ interface: &Ipv4Addr,
+) -> io::Result<()> {
+ let mreq = to_ip_mreq(multiaddr, interface);
+ setsockopt(fd, c::IPPROTO_IP, c::IP_DROP_MEMBERSHIP, mreq)
+}
+
+#[inline]
+pub(crate) fn set_ip_drop_membership_with_ifindex(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv4Addr,
+ address: &Ipv4Addr,
+ ifindex: u32,
+) -> io::Result<()> {
+ let mreqn = to_ip_mreqn(multiaddr, address, ifindex as i32);
+ setsockopt(fd, c::IPPROTO_IP, c::IP_DROP_MEMBERSHIP, mreqn)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_drop_membership(
+ fd: BorrowedFd<'_>,
+ multiaddr: &Ipv6Addr,
+ interface: u32,
+) -> io::Result<()> {
+ let mreq = to_ipv6mr(multiaddr, interface);
+ setsockopt(fd, c::IPPROTO_IPV6, c::IPV6_DROP_MEMBERSHIP, mreq)
+}
+
+#[inline]
+pub(crate) fn ipv6_unicast_hops(fd: BorrowedFd<'_>) -> io::Result<u8> {
+ getsockopt(fd, c::IPPROTO_IPV6, c::IPV6_UNICAST_HOPS).map(|hops: c::c_int| hops as u8)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_unicast_hops(fd: BorrowedFd<'_>, hops: Option<u8>) -> io::Result<()> {
+ let hops = match hops {
+ Some(hops) => hops.into(),
+ None => -1,
+ };
+ setsockopt(fd, c::IPPROTO_IPV6, c::IPV6_UNICAST_HOPS, hops)
+}
+
+#[inline]
+pub(crate) fn set_ip_tos(fd: BorrowedFd<'_>, value: u8) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IP, c::IP_TOS, i32::from(value))
+}
+
+#[inline]
+pub(crate) fn ip_tos(fd: BorrowedFd<'_>) -> io::Result<u8> {
+ let value: i32 = getsockopt(fd, c::IPPROTO_IP, c::IP_TOS)?;
+ Ok(value as u8)
+}
+
+#[inline]
+pub(crate) fn set_ip_recvtos(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IP, c::IP_RECVTOS, from_bool(value))
+}
+
+#[inline]
+pub(crate) fn ip_recvtos(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_IP, c::IP_RECVTOS).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_recvtclass(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IPV6, c::IPV6_RECVTCLASS, from_bool(value))
+}
+
+#[inline]
+pub(crate) fn ipv6_recvtclass(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_IPV6, c::IPV6_RECVTCLASS).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_ip_freebind(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IP, c::IP_FREEBIND, from_bool(value))
+}
+
+#[inline]
+pub(crate) fn ip_freebind(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_IP, c::IP_FREEBIND).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_ipv6_freebind(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IPV6, c::IPV6_FREEBIND, from_bool(value))
+}
+
+#[inline]
+pub(crate) fn ipv6_freebind(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_IPV6, c::IPV6_FREEBIND).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn ip_original_dst(fd: BorrowedFd<'_>) -> io::Result<SocketAddrV4> {
+ let level = c::IPPROTO_IP;
+ let optname = c::SO_ORIGINAL_DST;
+ let mut addr = SocketAddrBuf::new();
+
+ getsockopt_raw(fd, level, optname, &mut addr.storage, &mut addr.len)?;
+
+ Ok(unsafe { addr.into_any() }.try_into().unwrap())
+}
+
+#[inline]
+pub(crate) fn ipv6_original_dst(fd: BorrowedFd<'_>) -> io::Result<SocketAddrV6> {
+ let level = c::IPPROTO_IPV6;
+ let optname = c::IP6T_SO_ORIGINAL_DST;
+ let mut addr = SocketAddrBuf::new();
+
+ getsockopt_raw(fd, level, optname, &mut addr.storage, &mut addr.len)?;
+
+ Ok(unsafe { addr.into_any() }.try_into().unwrap())
+}
+
+#[inline]
+pub(crate) fn set_ipv6_tclass(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_IPV6, c::IPV6_TCLASS, value)
+}
+
+#[inline]
+pub(crate) fn ipv6_tclass(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_IPV6, c::IPV6_TCLASS)
+}
+
+#[inline]
+pub(crate) fn set_tcp_nodelay(fd: BorrowedFd<'_>, nodelay: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_TCP, c::TCP_NODELAY, from_bool(nodelay))
+}
+
+#[inline]
+pub(crate) fn tcp_nodelay(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_TCP, c::TCP_NODELAY).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_tcp_keepcnt(fd: BorrowedFd<'_>, count: u32) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_TCP, c::TCP_KEEPCNT, count)
+}
+
+#[inline]
+pub(crate) fn tcp_keepcnt(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_TCP, c::TCP_KEEPCNT)
+}
+
+#[inline]
+pub(crate) fn set_tcp_keepidle(fd: BorrowedFd<'_>, duration: Duration) -> io::Result<()> {
+ let secs: c::c_uint = duration_to_secs(duration)?;
+ setsockopt(fd, c::IPPROTO_TCP, c::TCP_KEEPIDLE, secs)
+}
+
+#[inline]
+pub(crate) fn tcp_keepidle(fd: BorrowedFd<'_>) -> io::Result<Duration> {
+ let secs: c::c_uint = getsockopt(fd, c::IPPROTO_TCP, c::TCP_KEEPIDLE)?;
+ Ok(Duration::from_secs(secs.into()))
+}
+
+#[inline]
+pub(crate) fn set_tcp_keepintvl(fd: BorrowedFd<'_>, duration: Duration) -> io::Result<()> {
+ let secs: c::c_uint = duration_to_secs(duration)?;
+ setsockopt(fd, c::IPPROTO_TCP, c::TCP_KEEPINTVL, secs)
+}
+
+#[inline]
+pub(crate) fn tcp_keepintvl(fd: BorrowedFd<'_>) -> io::Result<Duration> {
+ let secs: c::c_uint = getsockopt(fd, c::IPPROTO_TCP, c::TCP_KEEPINTVL)?;
+ Ok(Duration::from_secs(secs.into()))
+}
+
+#[inline]
+pub(crate) fn set_tcp_user_timeout(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_TCP, c::TCP_USER_TIMEOUT, value)
+}
+
+#[inline]
+pub(crate) fn tcp_user_timeout(fd: BorrowedFd<'_>) -> io::Result<u32> {
+ getsockopt(fd, c::IPPROTO_TCP, c::TCP_USER_TIMEOUT)
+}
+
+#[inline]
+pub(crate) fn set_tcp_quickack(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_TCP, c::TCP_QUICKACK, from_bool(value))
+}
+
+#[inline]
+pub(crate) fn tcp_quickack(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_TCP, c::TCP_QUICKACK).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_tcp_congestion(fd: BorrowedFd<'_>, value: &str) -> io::Result<()> {
+ let level = c::IPPROTO_TCP;
+ let optname = c::TCP_CONGESTION;
+ let optlen = value.len().try_into().unwrap();
+ setsockopt_raw(fd, level, optname, value.as_ptr(), optlen)
+}
+
+#[cfg(feature = "alloc")]
+#[inline]
+pub(crate) fn tcp_congestion(fd: BorrowedFd<'_>) -> io::Result<String> {
+ const OPTLEN: c::socklen_t = 16;
+
+ let level = c::IPPROTO_TCP;
+ let optname = c::TCP_CONGESTION;
+ let mut value = MaybeUninit::<[MaybeUninit<u8>; OPTLEN as usize]>::uninit();
+ let mut optlen = OPTLEN;
+ getsockopt_raw(fd, level, optname, &mut value, &mut optlen)?;
+ unsafe {
+ let value = value.assume_init();
+ let slice: &[u8] = core::mem::transmute(&value[..optlen as usize]);
+ assert!(slice.contains(&b'\0'));
+ Ok(
+ core::str::from_utf8(CStr::from_ptr(slice.as_ptr().cast()).to_bytes())
+ .unwrap()
+ .to_owned(),
+ )
+ }
+}
+
+#[inline]
+pub(crate) fn set_tcp_thin_linear_timeouts(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(
+ fd,
+ c::IPPROTO_TCP,
+ c::TCP_THIN_LINEAR_TIMEOUTS,
+ from_bool(value),
+ )
+}
+
+#[inline]
+pub(crate) fn tcp_thin_linear_timeouts(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_TCP, c::TCP_THIN_LINEAR_TIMEOUTS).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn set_tcp_cork(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> {
+ setsockopt(fd, c::IPPROTO_TCP, c::TCP_CORK, from_bool(value))
+}
+
+#[inline]
+pub(crate) fn tcp_cork(fd: BorrowedFd<'_>) -> io::Result<bool> {
+ getsockopt(fd, c::IPPROTO_TCP, c::TCP_CORK).map(to_bool)
+}
+
+#[inline]
+pub(crate) fn socket_peercred(fd: BorrowedFd<'_>) -> io::Result<UCred> {
+ getsockopt(fd, c::SOL_SOCKET, linux_raw_sys::net::SO_PEERCRED)
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn set_xdp_umem_reg(fd: BorrowedFd<'_>, value: XdpUmemReg) -> io::Result<()> {
+ setsockopt(fd, c::SOL_XDP, c::XDP_UMEM_REG, value)
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn set_xdp_umem_fill_ring_size(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::SOL_XDP, c::XDP_UMEM_FILL_RING, value)
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn set_xdp_umem_completion_ring_size(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::SOL_XDP, c::XDP_UMEM_COMPLETION_RING, value)
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn set_xdp_tx_ring_size(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::SOL_XDP, c::XDP_TX_RING, value)
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn set_xdp_rx_ring_size(fd: BorrowedFd<'_>, value: u32) -> io::Result<()> {
+ setsockopt(fd, c::SOL_XDP, c::XDP_RX_RING, value)
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn xdp_mmap_offsets(fd: BorrowedFd<'_>) -> io::Result<XdpMmapOffsets> {
+ // The kernel will write `xdp_mmap_offsets` or `xdp_mmap_offsets_v1` to the
+ // supplied pointer, depending on the kernel version. Both structs only
+ // contain u64 values. By using the larger of both as the parameter, we can
+ // shuffle the values to the non-v1 version returned by
+ // `get_xdp_mmap_offsets` while keeping the return type unaffected by the
+ // kernel version. This works because C will layout all struct members one
+ // after the other.
+
+ let mut optlen = size_of::<xdp_mmap_offsets>().try_into().unwrap();
+ debug_assert!(
+ optlen as usize >= size_of::<c::c_int>(),
+ "Socket APIs don't ever use `bool` directly"
+ );
+ let mut value = MaybeUninit::<xdp_mmap_offsets>::zeroed();
+ getsockopt_raw(fd, c::SOL_XDP, c::XDP_MMAP_OFFSETS, &mut value, &mut optlen)?;
+
+ if optlen as usize == size_of::<c::xdp_mmap_offsets_v1>() {
+ // SAFETY: All members of xdp_mmap_offsets are `u64` and thus are
+ // correctly initialized by `MaybeUninit::<xdp_statistics>::zeroed()`.
+ let xpd_mmap_offsets = unsafe { value.assume_init() };
+ Ok(XdpMmapOffsets {
+ rx: XdpRingOffset {
+ producer: xpd_mmap_offsets.rx.producer,
+ consumer: xpd_mmap_offsets.rx.consumer,
+ desc: xpd_mmap_offsets.rx.desc,
+ flags: None,
+ },
+ tx: XdpRingOffset {
+ producer: xpd_mmap_offsets.rx.flags,
+ consumer: xpd_mmap_offsets.tx.producer,
+ desc: xpd_mmap_offsets.tx.consumer,
+ flags: None,
+ },
+ fr: XdpRingOffset {
+ producer: xpd_mmap_offsets.tx.desc,
+ consumer: xpd_mmap_offsets.tx.flags,
+ desc: xpd_mmap_offsets.fr.producer,
+ flags: None,
+ },
+ cr: XdpRingOffset {
+ producer: xpd_mmap_offsets.fr.consumer,
+ consumer: xpd_mmap_offsets.fr.desc,
+ desc: xpd_mmap_offsets.fr.flags,
+ flags: None,
+ },
+ })
+ } else {
+ assert_eq!(
+ optlen as usize,
+ size_of::<xdp_mmap_offsets>(),
+ "unexpected getsockopt size"
+ );
+ // SAFETY: All members of xdp_mmap_offsets are `u64` and thus are
+ // correctly initialized by `MaybeUninit::<xdp_statistics>::zeroed()`.
+ let xpd_mmap_offsets = unsafe { value.assume_init() };
+ Ok(XdpMmapOffsets {
+ rx: XdpRingOffset {
+ producer: xpd_mmap_offsets.rx.producer,
+ consumer: xpd_mmap_offsets.rx.consumer,
+ desc: xpd_mmap_offsets.rx.desc,
+ flags: Some(xpd_mmap_offsets.rx.flags),
+ },
+ tx: XdpRingOffset {
+ producer: xpd_mmap_offsets.tx.producer,
+ consumer: xpd_mmap_offsets.tx.consumer,
+ desc: xpd_mmap_offsets.tx.desc,
+ flags: Some(xpd_mmap_offsets.tx.flags),
+ },
+ fr: XdpRingOffset {
+ producer: xpd_mmap_offsets.fr.producer,
+ consumer: xpd_mmap_offsets.fr.consumer,
+ desc: xpd_mmap_offsets.fr.desc,
+ flags: Some(xpd_mmap_offsets.fr.flags),
+ },
+ cr: XdpRingOffset {
+ producer: xpd_mmap_offsets.cr.producer,
+ consumer: xpd_mmap_offsets.cr.consumer,
+ desc: xpd_mmap_offsets.cr.desc,
+ flags: Some(xpd_mmap_offsets.cr.flags),
+ },
+ })
+ }
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn xdp_statistics(fd: BorrowedFd<'_>) -> io::Result<XdpStatistics> {
+ let mut optlen = size_of::<xdp_statistics>().try_into().unwrap();
+ debug_assert!(
+ optlen as usize >= size_of::<c::c_int>(),
+ "Socket APIs don't ever use `bool` directly"
+ );
+ let mut value = MaybeUninit::<xdp_statistics>::zeroed();
+ getsockopt_raw(fd, c::SOL_XDP, c::XDP_STATISTICS, &mut value, &mut optlen)?;
+
+ if optlen as usize == size_of::<xdp_statistics_v1>() {
+ // SAFETY: All members of xdp_statistics are `u64` and thus are
+ // correctly initialized by `MaybeUninit::<xdp_statistics>::zeroed()`.
+ let xdp_statistics = unsafe { value.assume_init() };
+ Ok(XdpStatistics {
+ rx_dropped: xdp_statistics.rx_dropped,
+ rx_invalid_descs: xdp_statistics.rx_dropped,
+ tx_invalid_descs: xdp_statistics.rx_dropped,
+ rx_ring_full: None,
+ rx_fill_ring_empty_descs: None,
+ tx_ring_empty_descs: None,
+ })
+ } else {
+ assert_eq!(
+ optlen as usize,
+ size_of::<xdp_statistics>(),
+ "unexpected getsockopt size"
+ );
+ // SAFETY: All members of xdp_statistics are `u64` and thus are
+ // correctly initialized by `MaybeUninit::<xdp_statistics>::zeroed()`.
+ let xdp_statistics = unsafe { value.assume_init() };
+ Ok(XdpStatistics {
+ rx_dropped: xdp_statistics.rx_dropped,
+ rx_invalid_descs: xdp_statistics.rx_invalid_descs,
+ tx_invalid_descs: xdp_statistics.tx_invalid_descs,
+ rx_ring_full: Some(xdp_statistics.rx_ring_full),
+ rx_fill_ring_empty_descs: Some(xdp_statistics.rx_fill_ring_empty_descs),
+ tx_ring_empty_descs: Some(xdp_statistics.tx_ring_empty_descs),
+ })
+ }
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn xdp_options(fd: BorrowedFd<'_>) -> io::Result<XdpOptionsFlags> {
+ getsockopt(fd, c::SOL_XDP, c::XDP_OPTIONS)
+}
+
+#[inline]
+fn from_in_addr(in_addr: c::in_addr) -> Ipv4Addr {
+ Ipv4Addr::from(in_addr.s_addr.to_ne_bytes())
+}
+
+#[inline]
+fn to_ip_mreq(multiaddr: &Ipv4Addr, interface: &Ipv4Addr) -> c::ip_mreq {
+ c::ip_mreq {
+ imr_multiaddr: to_imr_addr(multiaddr),
+ imr_interface: to_imr_addr(interface),
+ }
+}
+
+#[inline]
+fn to_ip_mreqn(multiaddr: &Ipv4Addr, address: &Ipv4Addr, ifindex: i32) -> c::ip_mreqn {
+ c::ip_mreqn {
+ imr_multiaddr: to_imr_addr(multiaddr),
+ imr_address: to_imr_addr(address),
+ imr_ifindex: ifindex,
+ }
+}
+
+#[inline]
+fn to_imr_source(
+ multiaddr: &Ipv4Addr,
+ interface: &Ipv4Addr,
+ sourceaddr: &Ipv4Addr,
+) -> c::ip_mreq_source {
+ c::ip_mreq_source {
+ imr_multiaddr: to_imr_addr(multiaddr).s_addr,
+ imr_interface: to_imr_addr(interface).s_addr,
+ imr_sourceaddr: to_imr_addr(sourceaddr).s_addr,
+ }
+}
+
+#[inline]
+fn to_imr_addr(addr: &Ipv4Addr) -> c::in_addr {
+ c::in_addr {
+ s_addr: u32::from_ne_bytes(addr.octets()),
+ }
+}
+
+#[inline]
+fn to_ipv6mr(multiaddr: &Ipv6Addr, interface: u32) -> c::ipv6_mreq {
+ c::ipv6_mreq {
+ ipv6mr_multiaddr: to_ipv6mr_multiaddr(multiaddr),
+ ipv6mr_ifindex: to_ipv6mr_interface(interface),
+ }
+}
+
+#[inline]
+fn to_ipv6mr_multiaddr(multiaddr: &Ipv6Addr) -> c::in6_addr {
+ c::in6_addr {
+ in6_u: linux_raw_sys::net::in6_addr__bindgen_ty_1 {
+ u6_addr8: multiaddr.octets(),
+ },
+ }
+}
+
+#[inline]
+fn to_ipv6mr_interface(interface: u32) -> c::c_int {
+ interface as c::c_int
+}
+
+#[inline]
+fn from_bool(value: bool) -> c::c_uint {
+ c::c_uint::from(value)
+}
+
+#[inline]
+fn to_bool(value: c::c_uint) -> bool {
+ value != 0
+}
+
+/// Convert to seconds, rounding up if necessary.
+#[inline]
+fn duration_to_secs<T: TryFrom<u64>>(duration: Duration) -> io::Result<T> {
+ let mut secs = duration.as_secs();
+ if duration.subsec_nanos() != 0 {
+ secs = secs.checked_add(1).ok_or(io::Errno::INVAL)?;
+ }
+ T::try_from(secs).map_err(|_e| io::Errno::INVAL)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/net/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/net/syscalls.rs
new file mode 100644
index 0000000..488e08f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/net/syscalls.rs
@@ -0,0 +1,731 @@
+//! linux_raw syscalls supporting `rustix::net`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use super::msghdr::{noaddr_msghdr, with_msghdr, with_recv_msghdr};
+use super::read_sockaddr::initialize_family_to_unspec;
+use super::send_recv::{RecvFlags, ReturnFlags, SendFlags};
+use crate::backend::c;
+#[cfg(target_os = "linux")]
+use crate::backend::conv::slice_mut;
+use crate::backend::conv::{
+ by_mut, by_ref, c_int, c_uint, pass_usize, ret, ret_owned_fd, ret_usize, size_of, slice,
+ socklen_t, zero,
+};
+use crate::backend::reg::raw_arg;
+use crate::fd::{BorrowedFd, OwnedFd};
+use crate::io::{self, IoSlice, IoSliceMut};
+use crate::net::addr::SocketAddrArg;
+#[cfg(target_os = "linux")]
+use crate::net::MMsgHdr;
+use crate::net::{
+ AddressFamily, Protocol, RecvAncillaryBuffer, RecvMsg, SendAncillaryBuffer, Shutdown,
+ SocketAddrAny, SocketAddrBuf, SocketFlags, SocketType,
+};
+use core::mem::MaybeUninit;
+#[cfg(target_arch = "x86")]
+use {
+ crate::backend::conv::{slice_just_addr, x86_sys},
+ crate::backend::reg::{ArgReg, SocketArg},
+ linux_raw_sys::net::{
+ SYS_ACCEPT, SYS_ACCEPT4, SYS_BIND, SYS_CONNECT, SYS_GETPEERNAME, SYS_GETSOCKNAME,
+ SYS_LISTEN, SYS_RECV, SYS_RECVFROM, SYS_RECVMSG, SYS_SEND, SYS_SENDMMSG, SYS_SENDMSG,
+ SYS_SENDTO, SYS_SHUTDOWN, SYS_SOCKET, SYS_SOCKETPAIR,
+ },
+};
+
+#[inline]
+pub(crate) fn socket(
+ family: AddressFamily,
+ type_: SocketType,
+ protocol: Option<Protocol>,
+) -> io::Result<OwnedFd> {
+ #[cfg(not(target_arch = "x86"))]
+ unsafe {
+ ret_owned_fd(syscall_readonly!(__NR_socket, family, type_, protocol))
+ }
+ #[cfg(target_arch = "x86")]
+ unsafe {
+ ret_owned_fd(syscall_readonly!(
+ __NR_socketcall,
+ x86_sys(SYS_SOCKET),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ family.into(),
+ type_.into(),
+ protocol.into(),
+ ])
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn socket_with(
+ family: AddressFamily,
+ type_: SocketType,
+ flags: SocketFlags,
+ protocol: Option<Protocol>,
+) -> io::Result<OwnedFd> {
+ #[cfg(not(target_arch = "x86"))]
+ unsafe {
+ ret_owned_fd(syscall_readonly!(
+ __NR_socket,
+ family,
+ (type_, flags),
+ protocol
+ ))
+ }
+ #[cfg(target_arch = "x86")]
+ unsafe {
+ ret_owned_fd(syscall_readonly!(
+ __NR_socketcall,
+ x86_sys(SYS_SOCKET),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ family.into(),
+ (type_, flags).into(),
+ protocol.into(),
+ ])
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn socketpair(
+ family: AddressFamily,
+ type_: SocketType,
+ flags: SocketFlags,
+ protocol: Option<Protocol>,
+) -> io::Result<(OwnedFd, OwnedFd)> {
+ #[cfg(not(target_arch = "x86"))]
+ unsafe {
+ let mut result = MaybeUninit::<[OwnedFd; 2]>::uninit();
+ ret(syscall!(
+ __NR_socketpair,
+ family,
+ (type_, flags),
+ protocol,
+ &mut result
+ ))?;
+ let [fd0, fd1] = result.assume_init();
+ Ok((fd0, fd1))
+ }
+ #[cfg(target_arch = "x86")]
+ unsafe {
+ let mut result = MaybeUninit::<[OwnedFd; 2]>::uninit();
+ ret(syscall!(
+ __NR_socketcall,
+ x86_sys(SYS_SOCKETPAIR),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ family.into(),
+ (type_, flags).into(),
+ protocol.into(),
+ (&mut result).into(),
+ ])
+ ))?;
+ let [fd0, fd1] = result.assume_init();
+ Ok((fd0, fd1))
+ }
+}
+
+#[inline]
+pub(crate) fn accept(fd: BorrowedFd<'_>) -> io::Result<OwnedFd> {
+ #[cfg(not(any(target_arch = "x86", target_arch = "s390x")))]
+ unsafe {
+ let fd = ret_owned_fd(syscall_readonly!(__NR_accept, fd, zero(), zero()))?;
+ Ok(fd)
+ }
+ #[cfg(target_arch = "x86")]
+ unsafe {
+ let fd = ret_owned_fd(syscall_readonly!(
+ __NR_socketcall,
+ x86_sys(SYS_ACCEPT),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[fd.into(), zero(), zero()])
+ ))?;
+ Ok(fd)
+ }
+ #[cfg(target_arch = "s390x")]
+ {
+ // accept is not available on s390x
+ accept_with(fd, SocketFlags::empty())
+ }
+}
+
+#[inline]
+pub(crate) fn accept_with(fd: BorrowedFd<'_>, flags: SocketFlags) -> io::Result<OwnedFd> {
+ #[cfg(not(target_arch = "x86"))]
+ unsafe {
+ let fd = ret_owned_fd(syscall_readonly!(__NR_accept4, fd, zero(), zero(), flags))?;
+ Ok(fd)
+ }
+ #[cfg(target_arch = "x86")]
+ unsafe {
+ let fd = ret_owned_fd(syscall_readonly!(
+ __NR_socketcall,
+ x86_sys(SYS_ACCEPT4),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[fd.into(), zero(), zero(), flags.into()])
+ ))?;
+ Ok(fd)
+ }
+}
+
+#[inline]
+pub(crate) fn acceptfrom(fd: BorrowedFd<'_>) -> io::Result<(OwnedFd, Option<SocketAddrAny>)> {
+ #[cfg(not(any(target_arch = "x86", target_arch = "s390x")))]
+ unsafe {
+ let mut addr = SocketAddrBuf::new();
+ let fd = ret_owned_fd(syscall!(
+ __NR_accept,
+ fd,
+ &mut addr.storage,
+ by_mut(&mut addr.len)
+ ))?;
+ Ok((fd, addr.into_any_option()))
+ }
+ #[cfg(target_arch = "x86")]
+ unsafe {
+ let mut addr = SocketAddrBuf::new();
+ let fd = ret_owned_fd(syscall!(
+ __NR_socketcall,
+ x86_sys(SYS_ACCEPT),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ fd.into(),
+ (&mut addr.storage).into(),
+ by_mut(&mut addr.len),
+ ])
+ ))?;
+ Ok((fd, addr.into_any_option()))
+ }
+ #[cfg(target_arch = "s390x")]
+ {
+ // accept is not available on s390x
+ acceptfrom_with(fd, SocketFlags::empty())
+ }
+}
+
+#[inline]
+pub(crate) fn acceptfrom_with(
+ fd: BorrowedFd<'_>,
+ flags: SocketFlags,
+) -> io::Result<(OwnedFd, Option<SocketAddrAny>)> {
+ #[cfg(not(target_arch = "x86"))]
+ unsafe {
+ let mut addr = SocketAddrBuf::new();
+ let fd = ret_owned_fd(syscall!(
+ __NR_accept4,
+ fd,
+ &mut addr.storage,
+ by_mut(&mut addr.len),
+ flags
+ ))?;
+ Ok((fd, addr.into_any_option()))
+ }
+ #[cfg(target_arch = "x86")]
+ unsafe {
+ let mut addr = SocketAddrBuf::new();
+ let fd = ret_owned_fd(syscall!(
+ __NR_socketcall,
+ x86_sys(SYS_ACCEPT4),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ fd.into(),
+ (&mut addr.storage).into(),
+ by_mut(&mut addr.len),
+ flags.into(),
+ ])
+ ))?;
+ Ok((fd, addr.into_any_option()))
+ }
+}
+
+#[inline]
+pub(crate) fn recvmsg(
+ sockfd: BorrowedFd<'_>,
+ iov: &mut [IoSliceMut<'_>],
+ control: &mut RecvAncillaryBuffer<'_>,
+ msg_flags: RecvFlags,
+) -> io::Result<RecvMsg> {
+ let mut addr = SocketAddrBuf::new();
+
+ // SAFETY: This passes the `msghdr` reference to the OS which reads the
+ // buffers only within the designated bounds.
+ let (bytes, flags) = unsafe {
+ with_recv_msghdr(&mut addr, iov, control, |msghdr| {
+ #[cfg(not(target_arch = "x86"))]
+ let result = ret_usize(syscall!(__NR_recvmsg, sockfd, by_mut(msghdr), msg_flags));
+
+ #[cfg(target_arch = "x86")]
+ let result = ret_usize(syscall!(
+ __NR_socketcall,
+ x86_sys(SYS_RECVMSG),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ sockfd.into(),
+ by_mut(msghdr),
+ msg_flags.into(),
+ ])
+ ));
+
+ result.map(|bytes| (bytes, msghdr.msg_flags))
+ })?
+ };
+
+ // Get the address of the sender, if any.
+ Ok(RecvMsg {
+ bytes,
+ address: unsafe { addr.into_any_option() },
+ flags: ReturnFlags::from_bits_retain(flags),
+ })
+}
+
+#[inline]
+pub(crate) fn sendmsg(
+ sockfd: BorrowedFd<'_>,
+ iov: &[IoSlice<'_>],
+ control: &mut SendAncillaryBuffer<'_, '_, '_>,
+ msg_flags: SendFlags,
+) -> io::Result<usize> {
+ let msghdr = noaddr_msghdr(iov, control);
+
+ #[cfg(not(target_arch = "x86"))]
+ let result = unsafe { ret_usize(syscall!(__NR_sendmsg, sockfd, by_ref(&msghdr), msg_flags)) };
+
+ #[cfg(target_arch = "x86")]
+ let result = unsafe {
+ ret_usize(syscall!(
+ __NR_socketcall,
+ x86_sys(SYS_SENDMSG),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ sockfd.into(),
+ by_ref(&msghdr),
+ msg_flags.into()
+ ])
+ ))
+ };
+
+ result
+}
+
+#[inline]
+pub(crate) fn sendmsg_addr(
+ sockfd: BorrowedFd<'_>,
+ addr: &impl SocketAddrArg,
+ iov: &[IoSlice<'_>],
+ control: &mut SendAncillaryBuffer<'_, '_, '_>,
+ msg_flags: SendFlags,
+) -> io::Result<usize> {
+ // SAFETY: This passes the `msghdr` reference to the OS which reads the
+ // buffers only within the designated bounds.
+ unsafe {
+ with_msghdr(addr, iov, control, |msghdr| {
+ #[cfg(not(target_arch = "x86"))]
+ let result = ret_usize(syscall!(__NR_sendmsg, sockfd, by_ref(msghdr), msg_flags));
+
+ #[cfg(target_arch = "x86")]
+ let result = ret_usize(syscall!(
+ __NR_socketcall,
+ x86_sys(SYS_SENDMSG),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ sockfd.into(),
+ by_ref(msghdr),
+ msg_flags.into(),
+ ])
+ ));
+
+ result
+ })
+ }
+}
+
+#[cfg(target_os = "linux")]
+#[inline]
+pub(crate) fn sendmmsg(
+ sockfd: BorrowedFd<'_>,
+ msgs: &mut [MMsgHdr<'_>],
+ flags: SendFlags,
+) -> io::Result<usize> {
+ let (msgs, len) = slice_mut(msgs);
+
+ #[cfg(not(target_arch = "x86"))]
+ let result = unsafe { ret_usize(syscall!(__NR_sendmmsg, sockfd, msgs, len, flags)) };
+
+ #[cfg(target_arch = "x86")]
+ let result = unsafe {
+ ret_usize(syscall!(
+ __NR_socketcall,
+ x86_sys(SYS_SENDMMSG),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[sockfd.into(), msgs, len, flags.into()])
+ ))
+ };
+
+ result
+}
+
+#[inline]
+pub(crate) fn shutdown(fd: BorrowedFd<'_>, how: Shutdown) -> io::Result<()> {
+ #[cfg(not(target_arch = "x86"))]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_shutdown,
+ fd,
+ c_uint(how as c::c_uint)
+ ))
+ }
+ #[cfg(target_arch = "x86")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_socketcall,
+ x86_sys(SYS_SHUTDOWN),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[fd.into(), c_uint(how as c::c_uint)])
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn send(fd: BorrowedFd<'_>, buf: &[u8], flags: SendFlags) -> io::Result<usize> {
+ let (buf_addr, buf_len) = slice(buf);
+
+ #[cfg(not(any(
+ target_arch = "aarch64",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "riscv64",
+ target_arch = "s390x",
+ target_arch = "x86",
+ target_arch = "x86_64",
+ )))]
+ unsafe {
+ ret_usize(syscall_readonly!(__NR_send, fd, buf_addr, buf_len, flags))
+ }
+ #[cfg(any(
+ target_arch = "aarch64",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "riscv64",
+ target_arch = "s390x",
+ target_arch = "x86_64",
+ ))]
+ unsafe {
+ ret_usize(syscall_readonly!(
+ __NR_sendto,
+ fd,
+ buf_addr,
+ buf_len,
+ flags,
+ zero(),
+ zero()
+ ))
+ }
+ #[cfg(target_arch = "x86")]
+ unsafe {
+ ret_usize(syscall_readonly!(
+ __NR_socketcall,
+ x86_sys(SYS_SEND),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ fd.into(),
+ buf_addr,
+ buf_len,
+ flags.into()
+ ])
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn sendto(
+ fd: BorrowedFd<'_>,
+ buf: &[u8],
+ flags: SendFlags,
+ addr: &impl SocketAddrArg,
+) -> io::Result<usize> {
+ let (buf_addr, buf_len) = slice(buf);
+
+ // SAFETY: This passes the `addr_ptr` reference to the OS which reads the
+ // buffers only within the `addr_len` bound.
+ unsafe {
+ addr.with_sockaddr(|addr_ptr, addr_len| {
+ #[cfg(not(target_arch = "x86"))]
+ {
+ ret_usize(syscall_readonly!(
+ __NR_sendto,
+ fd,
+ buf_addr,
+ buf_len,
+ flags,
+ raw_arg(addr_ptr as *mut _),
+ socklen_t(addr_len)
+ ))
+ }
+ #[cfg(target_arch = "x86")]
+ {
+ ret_usize(syscall_readonly!(
+ __NR_socketcall,
+ x86_sys(SYS_SENDTO),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ fd.into(),
+ buf_addr,
+ buf_len,
+ flags.into(),
+ raw_arg(addr_ptr as *mut _),
+ socklen_t(addr_len)
+ ])
+ ))
+ }
+ })
+ }
+}
+
+#[inline]
+pub(crate) unsafe fn recv(
+ fd: BorrowedFd<'_>,
+ buf: (*mut u8, usize),
+ flags: RecvFlags,
+) -> io::Result<usize> {
+ #[cfg(not(any(
+ target_arch = "aarch64",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "riscv64",
+ target_arch = "s390x",
+ target_arch = "x86",
+ target_arch = "x86_64",
+ )))]
+ {
+ ret_usize(syscall!(__NR_recv, fd, buf.0, pass_usize(buf.1), flags))
+ }
+ #[cfg(any(
+ target_arch = "aarch64",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "riscv64",
+ target_arch = "s390x",
+ target_arch = "x86_64",
+ ))]
+ {
+ ret_usize(syscall!(
+ __NR_recvfrom,
+ fd,
+ buf.0,
+ pass_usize(buf.1),
+ flags,
+ zero(),
+ zero()
+ ))
+ }
+ #[cfg(target_arch = "x86")]
+ {
+ ret_usize(syscall!(
+ __NR_socketcall,
+ x86_sys(SYS_RECV),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ fd.into(),
+ buf.0.into(),
+ pass_usize(buf.1),
+ flags.into(),
+ ])
+ ))
+ }
+}
+
+#[inline]
+pub(crate) unsafe fn recvfrom(
+ fd: BorrowedFd<'_>,
+ buf: (*mut u8, usize),
+ flags: RecvFlags,
+) -> io::Result<(usize, Option<SocketAddrAny>)> {
+ let mut addr = SocketAddrBuf::new();
+
+ // `recvfrom` does not write to the storage if the socket is
+ // connection-oriented sockets, so we initialize the family field to
+ // `AF_UNSPEC` so that we can detect this case.
+ initialize_family_to_unspec(addr.storage.as_mut_ptr().cast::<c::sockaddr>());
+
+ #[cfg(not(target_arch = "x86"))]
+ let nread = ret_usize(syscall!(
+ __NR_recvfrom,
+ fd,
+ buf.0,
+ pass_usize(buf.1),
+ flags,
+ &mut addr.storage,
+ by_mut(&mut addr.len)
+ ))?;
+ #[cfg(target_arch = "x86")]
+ let nread = ret_usize(syscall!(
+ __NR_socketcall,
+ x86_sys(SYS_RECVFROM),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ fd.into(),
+ buf.0.into(),
+ pass_usize(buf.1),
+ flags.into(),
+ (&mut addr.storage).into(),
+ by_mut(&mut addr.len),
+ ])
+ ))?;
+
+ Ok((nread, addr.into_any_option()))
+}
+
+#[inline]
+pub(crate) fn getpeername(fd: BorrowedFd<'_>) -> io::Result<Option<SocketAddrAny>> {
+ #[cfg(not(target_arch = "x86"))]
+ unsafe {
+ let mut addr = SocketAddrBuf::new();
+ ret(syscall!(
+ __NR_getpeername,
+ fd,
+ &mut addr.storage,
+ by_mut(&mut addr.len)
+ ))?;
+ Ok(addr.into_any_option())
+ }
+ #[cfg(target_arch = "x86")]
+ unsafe {
+ let mut addr = SocketAddrBuf::new();
+ ret(syscall!(
+ __NR_socketcall,
+ x86_sys(SYS_GETPEERNAME),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ fd.into(),
+ (&mut addr.storage).into(),
+ by_mut(&mut addr.len),
+ ])
+ ))?;
+ Ok(addr.into_any_option())
+ }
+}
+
+#[inline]
+pub(crate) fn getsockname(fd: BorrowedFd<'_>) -> io::Result<SocketAddrAny> {
+ #[cfg(not(target_arch = "x86"))]
+ unsafe {
+ let mut addr = SocketAddrBuf::new();
+ ret(syscall!(
+ __NR_getsockname,
+ fd,
+ &mut addr.storage,
+ by_mut(&mut addr.len)
+ ))?;
+ Ok(addr.into_any())
+ }
+ #[cfg(target_arch = "x86")]
+ unsafe {
+ let mut addr = SocketAddrBuf::new();
+ ret(syscall!(
+ __NR_socketcall,
+ x86_sys(SYS_GETSOCKNAME),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ fd.into(),
+ (&mut addr.storage).into(),
+ by_mut(&mut addr.len),
+ ])
+ ))?;
+ Ok(addr.into_any())
+ }
+}
+
+#[inline]
+pub(crate) fn bind(fd: BorrowedFd<'_>, addr: &impl SocketAddrArg) -> io::Result<()> {
+ // SAFETY: This passes the `addr_ptr` reference to the OS which reads the
+ // buffers only within the `addr_len` bound.
+ unsafe {
+ addr.with_sockaddr(|addr_ptr, addr_len| {
+ #[cfg(not(target_arch = "x86"))]
+ {
+ ret(syscall_readonly!(
+ __NR_bind,
+ fd,
+ raw_arg(addr_ptr as *mut _),
+ socklen_t(addr_len)
+ ))
+ }
+ #[cfg(target_arch = "x86")]
+ {
+ ret(syscall_readonly!(
+ __NR_socketcall,
+ x86_sys(SYS_BIND),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ fd.into(),
+ raw_arg(addr_ptr as *mut _),
+ socklen_t(addr_len)
+ ])
+ ))
+ }
+ })
+ }
+}
+
+#[inline]
+pub(crate) fn connect(fd: BorrowedFd<'_>, addr: &impl SocketAddrArg) -> io::Result<()> {
+ // SAFETY: This passes the `addr_ptr` reference to the OS which reads the
+ // buffers only within the `addr_len` bound.
+ unsafe {
+ addr.with_sockaddr(|addr_ptr, addr_len| {
+ #[cfg(not(target_arch = "x86"))]
+ {
+ ret(syscall_readonly!(
+ __NR_connect,
+ fd,
+ raw_arg(addr_ptr as *mut _),
+ socklen_t(addr_len)
+ ))
+ }
+ #[cfg(target_arch = "x86")]
+ {
+ ret(syscall_readonly!(
+ __NR_socketcall,
+ x86_sys(SYS_CONNECT),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ fd.into(),
+ raw_arg(addr_ptr as *mut _),
+ socklen_t(addr_len)
+ ])
+ ))
+ }
+ })
+ }
+}
+
+#[inline]
+pub(crate) fn connect_unspec(fd: BorrowedFd<'_>) -> io::Result<()> {
+ debug_assert_eq!(c::AF_UNSPEC, 0);
+ let addr = MaybeUninit::<c::sockaddr_storage>::zeroed();
+
+ #[cfg(not(target_arch = "x86"))]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_connect,
+ fd,
+ by_ref(&addr),
+ size_of::<c::sockaddr_storage, _>()
+ ))
+ }
+ #[cfg(target_arch = "x86")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_socketcall,
+ x86_sys(SYS_CONNECT),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
+ fd.into(),
+ by_ref(&addr),
+ size_of::<c::sockaddr_storage, _>(),
+ ])
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn listen(fd: BorrowedFd<'_>, backlog: c::c_int) -> io::Result<()> {
+ #[cfg(not(target_arch = "x86"))]
+ unsafe {
+ ret(syscall_readonly!(__NR_listen, fd, c_int(backlog)))
+ }
+ #[cfg(target_arch = "x86")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_socketcall,
+ x86_sys(SYS_LISTEN),
+ slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[fd.into(), c_int(backlog)])
+ ))
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/net/write_sockaddr.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/net/write_sockaddr.rs
new file mode 100644
index 0000000..3b34822
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/net/write_sockaddr.rs
@@ -0,0 +1,31 @@
+//! The BSD sockets API requires us to read the `sa_family` field before we can
+//! interpret the rest of a `sockaddr` produced by the kernel.
+#![allow(unsafe_code)]
+
+use crate::backend::c;
+use crate::net::{SocketAddrV4, SocketAddrV6};
+
+pub(crate) fn encode_sockaddr_v4(v4: &SocketAddrV4) -> c::sockaddr_in {
+ c::sockaddr_in {
+ sin_family: c::AF_INET as _,
+ sin_port: u16::to_be(v4.port()),
+ sin_addr: c::in_addr {
+ s_addr: u32::from_ne_bytes(v4.ip().octets()),
+ },
+ __pad: [0_u8; 8],
+ }
+}
+
+pub(crate) fn encode_sockaddr_v6(v6: &SocketAddrV6) -> c::sockaddr_in6 {
+ c::sockaddr_in6 {
+ sin6_family: c::AF_INET6 as _,
+ sin6_port: u16::to_be(v6.port()),
+ sin6_flowinfo: u32::to_be(v6.flowinfo()),
+ sin6_addr: c::in6_addr {
+ in6_u: linux_raw_sys::net::in6_addr__bindgen_ty_1 {
+ u6_addr8: v6.ip().octets(),
+ },
+ },
+ sin6_scope_id: v6.scope_id(),
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/param/auxv.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/param/auxv.rs
new file mode 100644
index 0000000..ca86822
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/param/auxv.rs
@@ -0,0 +1,580 @@
+//! Linux auxv support.
+//!
+//! # Safety
+//!
+//! This uses raw pointers to locate and read the kernel-provided auxv array.
+#![allow(unsafe_code)]
+
+use super::super::conv::{c_int, pass_usize, ret_usize};
+use crate::backend::c;
+use crate::fd::OwnedFd;
+#[cfg(feature = "param")]
+use crate::ffi::CStr;
+use crate::fs::{Mode, OFlags};
+use crate::utils::{as_ptr, check_raw_pointer};
+#[cfg(feature = "alloc")]
+use alloc::vec::Vec;
+use core::mem::size_of;
+use core::ptr::{null_mut, read_unaligned, NonNull};
+#[cfg(feature = "runtime")]
+use core::sync::atomic::AtomicU8;
+use core::sync::atomic::Ordering::Relaxed;
+use core::sync::atomic::{AtomicPtr, AtomicUsize};
+use linux_raw_sys::elf::*;
+use linux_raw_sys::general::{
+ AT_CLKTCK, AT_EXECFN, AT_HWCAP, AT_HWCAP2, AT_MINSIGSTKSZ, AT_NULL, AT_PAGESZ, AT_SYSINFO_EHDR,
+};
+#[cfg(feature = "runtime")]
+use linux_raw_sys::general::{
+ AT_EGID, AT_ENTRY, AT_EUID, AT_GID, AT_PHDR, AT_PHENT, AT_PHNUM, AT_RANDOM, AT_SECURE, AT_UID,
+};
+#[cfg(feature = "alloc")]
+use {alloc::borrow::Cow, alloc::vec};
+
+#[cfg(feature = "param")]
+#[inline]
+pub(crate) fn page_size() -> usize {
+ let mut page_size = PAGE_SIZE.load(Relaxed);
+
+ if page_size == 0 {
+ init_auxv();
+ page_size = PAGE_SIZE.load(Relaxed);
+ }
+
+ page_size
+}
+
+#[cfg(feature = "param")]
+#[inline]
+pub(crate) fn clock_ticks_per_second() -> u64 {
+ let mut ticks = CLOCK_TICKS_PER_SECOND.load(Relaxed);
+
+ if ticks == 0 {
+ init_auxv();
+ ticks = CLOCK_TICKS_PER_SECOND.load(Relaxed);
+ }
+
+ ticks as u64
+}
+
+#[cfg(feature = "param")]
+#[inline]
+pub(crate) fn linux_hwcap() -> (usize, usize) {
+ let mut hwcap = HWCAP.load(Relaxed);
+ let mut hwcap2 = HWCAP2.load(Relaxed);
+
+ if hwcap == 0 || hwcap2 == 0 {
+ init_auxv();
+ hwcap = HWCAP.load(Relaxed);
+ hwcap2 = HWCAP2.load(Relaxed);
+ }
+
+ (hwcap, hwcap2)
+}
+
+#[cfg(feature = "param")]
+#[inline]
+pub(crate) fn linux_minsigstksz() -> usize {
+ let mut minsigstksz = MINSIGSTKSZ.load(Relaxed);
+
+ if minsigstksz == 0 {
+ init_auxv();
+ minsigstksz = MINSIGSTKSZ.load(Relaxed);
+ }
+
+ minsigstksz
+}
+
+#[cfg(feature = "param")]
+#[inline]
+pub(crate) fn linux_execfn() -> &'static CStr {
+ let mut execfn = EXECFN.load(Relaxed);
+
+ if execfn.is_null() {
+ init_auxv();
+ execfn = EXECFN.load(Relaxed);
+ }
+
+ // SAFETY: We assume the `AT_EXECFN` value provided by the kernel is a
+ // valid pointer to a valid NUL-terminated array of bytes.
+ unsafe { CStr::from_ptr(execfn.cast()) }
+}
+
+#[cfg(feature = "runtime")]
+#[inline]
+pub(crate) fn linux_secure() -> bool {
+ let mut secure = SECURE.load(Relaxed);
+
+ // 0 means not initialized yet.
+ if secure == 0 {
+ init_auxv();
+ secure = SECURE.load(Relaxed);
+ }
+
+ // 0 means not present. Libc `getauxval(AT_SECURE)` would return 0.
+ // 1 means not in secure mode.
+ // 2 means in secure mode.
+ secure > 1
+}
+
+#[cfg(feature = "runtime")]
+#[inline]
+pub(crate) fn exe_phdrs() -> (*const c::c_void, usize, usize) {
+ let mut phdr = PHDR.load(Relaxed);
+ let mut phent = PHENT.load(Relaxed);
+ let mut phnum = PHNUM.load(Relaxed);
+
+ if phdr.is_null() || phnum == 0 {
+ init_auxv();
+ phdr = PHDR.load(Relaxed);
+ phent = PHENT.load(Relaxed);
+ phnum = PHNUM.load(Relaxed);
+ }
+
+ (phdr.cast(), phent, phnum)
+}
+
+/// `AT_SYSINFO_EHDR` isn't present on all platforms in all configurations, so
+/// if we don't see it, this function returns a null pointer.
+///
+/// And, this function returns a null pointer, rather than panicking, if the
+/// auxv records can't be read.
+#[inline]
+pub(in super::super) fn sysinfo_ehdr() -> *const Elf_Ehdr {
+ let mut ehdr = SYSINFO_EHDR.load(Relaxed);
+
+ if ehdr.is_null() {
+ // Use `maybe_init_auxv` to read the aux vectors if it can, but do
+ // nothing if it can't. If it can't, then we'll get a null pointer
+ // here, which our callers are prepared to deal with.
+ maybe_init_auxv();
+
+ ehdr = SYSINFO_EHDR.load(Relaxed);
+ }
+
+ ehdr
+}
+
+#[cfg(feature = "runtime")]
+#[inline]
+pub(crate) fn entry() -> usize {
+ let mut entry = ENTRY.load(Relaxed);
+
+ if entry == 0 {
+ init_auxv();
+ entry = ENTRY.load(Relaxed);
+ }
+
+ entry
+}
+
+#[cfg(feature = "runtime")]
+#[inline]
+pub(crate) fn random() -> *const [u8; 16] {
+ let mut random = RANDOM.load(Relaxed);
+
+ if random.is_null() {
+ init_auxv();
+ random = RANDOM.load(Relaxed);
+ }
+
+ random
+}
+
+static PAGE_SIZE: AtomicUsize = AtomicUsize::new(0);
+static CLOCK_TICKS_PER_SECOND: AtomicUsize = AtomicUsize::new(0);
+static HWCAP: AtomicUsize = AtomicUsize::new(0);
+static HWCAP2: AtomicUsize = AtomicUsize::new(0);
+static MINSIGSTKSZ: AtomicUsize = AtomicUsize::new(0);
+static EXECFN: AtomicPtr<c::c_char> = AtomicPtr::new(null_mut());
+static SYSINFO_EHDR: AtomicPtr<Elf_Ehdr> = AtomicPtr::new(null_mut());
+#[cfg(feature = "runtime")]
+static SECURE: AtomicU8 = AtomicU8::new(0);
+#[cfg(feature = "runtime")]
+static PHDR: AtomicPtr<Elf_Phdr> = AtomicPtr::new(null_mut());
+#[cfg(feature = "runtime")]
+static PHENT: AtomicUsize = AtomicUsize::new(0);
+#[cfg(feature = "runtime")]
+static PHNUM: AtomicUsize = AtomicUsize::new(0);
+#[cfg(feature = "runtime")]
+static ENTRY: AtomicUsize = AtomicUsize::new(0);
+#[cfg(feature = "runtime")]
+static RANDOM: AtomicPtr<[u8; 16]> = AtomicPtr::new(null_mut());
+
+const PR_GET_AUXV: c::c_int = 0x4155_5856;
+
+/// Use Linux ≥ 6.4's [`PR_GET_AUXV`] to read the aux records, into a provided
+/// statically-sized buffer. Return:
+/// - `Ok(…)` if the buffer is big enough.
+/// - `Err(Ok(len))` if we need a buffer of length `len`.
+/// - `Err(Err(err))` if we failed with `err`.
+///
+/// [`PR_GET_AUXV`]: https://www.man7.org/linux/man-pages/man2/PR_GET_AUXV.2const.html
+#[cold]
+fn pr_get_auxv_static(buffer: &mut [u8; 512]) -> Result<&mut [u8], crate::io::Result<usize>> {
+ let len = unsafe {
+ ret_usize(syscall_always_asm!(
+ __NR_prctl,
+ c_int(PR_GET_AUXV),
+ buffer.as_mut_ptr(),
+ pass_usize(buffer.len()),
+ pass_usize(0),
+ pass_usize(0)
+ ))
+ .map_err(Err)?
+ };
+ if len <= buffer.len() {
+ return Ok(&mut buffer[..len]);
+ }
+ Err(Ok(len))
+}
+
+/// Use Linux ≥ 6.4's [`PR_GET_AUXV`] to read the aux records, using a
+/// provided statically-sized buffer if possible, or a dynamically allocated
+/// buffer otherwise. Return:
+/// - Ok(…) on success.
+/// - Err(err) on failure.
+///
+/// [`PR_GET_AUXV`]: https://www.man7.org/linux/man-pages/man2/PR_GET_AUXV.2const.html
+#[cfg(feature = "alloc")]
+#[cold]
+fn pr_get_auxv_dynamic(buffer: &mut [u8; 512]) -> crate::io::Result<Cow<'_, [u8]>> {
+ // First try use the static buffer.
+ let len = match pr_get_auxv_static(buffer) {
+ Ok(buffer) => return Ok(Cow::Borrowed(buffer)),
+ Err(Ok(len)) => len,
+ Err(Err(err)) => return Err(err),
+ };
+
+ // If that indicates it needs a bigger buffer, allocate one.
+ let mut buffer = vec![0_u8; len];
+ let len = unsafe {
+ ret_usize(syscall_always_asm!(
+ __NR_prctl,
+ c_int(PR_GET_AUXV),
+ buffer.as_mut_ptr(),
+ pass_usize(buffer.len()),
+ pass_usize(0),
+ pass_usize(0)
+ ))?
+ };
+ assert_eq!(len, buffer.len());
+ Ok(Cow::Owned(buffer))
+}
+
+/// Read the auxv records and initialize the various static variables. Panic
+/// if an error is encountered.
+#[cold]
+fn init_auxv() {
+ init_auxv_impl().unwrap();
+}
+
+/// Like `init_auxv`, but don't panic if an error is encountered. The caller
+/// must be prepared for initialization to be skipped.
+#[cold]
+fn maybe_init_auxv() {
+ let _ = init_auxv_impl();
+}
+
+/// If we don't have "use-explicitly-provided-auxv" or "use-libc-auxv", we
+/// read the aux vector via the `prctl` `PR_GET_AUXV`, with a fallback to
+/// /proc/self/auxv for kernels that don't support `PR_GET_AUXV`.
+#[cold]
+fn init_auxv_impl() -> Result<(), ()> {
+ // 512 bytes of AUX elements ought to be enough for anybody…
+ let mut buffer = [0_u8; 512];
+
+ // If we don't have "alloc", just try to read into our statically-sized
+ // buffer. This might fail due to the buffer being insufficient; we're
+ // prepared to cope, though we may do suboptimal things.
+ #[cfg(not(feature = "alloc"))]
+ let result = pr_get_auxv_static(&mut buffer);
+
+ // If we do have "alloc" then read into our statically-sized buffer if
+ // it fits, or fall back to a dynamically-allocated buffer.
+ #[cfg(feature = "alloc")]
+ let result = pr_get_auxv_dynamic(&mut buffer);
+
+ if let Ok(buffer) = result {
+ // SAFETY: We assume the kernel returns a valid auxv.
+ unsafe {
+ init_from_aux_iter(AuxPointer(buffer.as_ptr().cast())).unwrap();
+ }
+ return Ok(());
+ }
+
+ // If `PR_GET_AUXV` is unavailable, or if we don't have "alloc" and
+ // the aux records don't fit in our static buffer, then fall back to trying
+ // to open "/proc/self/auxv". We don't use `proc_self_fd` because its extra
+ // checking breaks on QEMU.
+ if let Ok(file) = crate::fs::open("/proc/self/auxv", OFlags::RDONLY, Mode::empty()) {
+ #[cfg(feature = "alloc")]
+ init_from_auxv_file(file).unwrap();
+
+ #[cfg(not(feature = "alloc"))]
+ unsafe {
+ init_from_aux_iter(AuxFile(file)).unwrap();
+ }
+
+ return Ok(());
+ }
+
+ Err(())
+}
+
+/// Process auxv entries from the open file `auxv`.
+#[cfg(feature = "alloc")]
+#[cold]
+#[must_use]
+fn init_from_auxv_file(auxv: OwnedFd) -> Option<()> {
+ let mut buffer = Vec::<u8>::with_capacity(512);
+ loop {
+ let cur = buffer.len();
+
+ // Request one extra byte; `Vec` will often allocate more.
+ buffer.reserve(1);
+
+ // Use all the space it allocated.
+ buffer.resize(buffer.capacity(), 0);
+
+ // Read up to that many bytes.
+ let n = match crate::io::read(&auxv, &mut buffer[cur..]) {
+ Err(crate::io::Errno::INTR) => 0,
+ Err(_err) => panic!(),
+ Ok(0) => break,
+ Ok(n) => n,
+ };
+
+ // Account for the number of bytes actually read.
+ buffer.resize(cur + n, 0_u8);
+ }
+
+ // SAFETY: We loaded from an auxv file into the buffer.
+ unsafe { init_from_aux_iter(AuxPointer(buffer.as_ptr().cast())) }
+}
+
+/// Process auxv entries from the auxv array pointed to by `auxp`.
+///
+/// # Safety
+///
+/// This must be passed a pointer to an auxv array.
+///
+/// The buffer contains `Elf_aux_t` elements, though it need not be aligned;
+/// function uses `read_unaligned` to read from it.
+#[cold]
+#[must_use]
+unsafe fn init_from_aux_iter(aux_iter: impl Iterator<Item = Elf_auxv_t>) -> Option<()> {
+ let mut pagesz = 0;
+ let mut clktck = 0;
+ let mut hwcap = 0;
+ let mut hwcap2 = 0;
+ let mut minsigstksz = 0;
+ let mut execfn = null_mut();
+ let mut sysinfo_ehdr = null_mut();
+ #[cfg(feature = "runtime")]
+ let mut secure = 0;
+ #[cfg(feature = "runtime")]
+ let mut phdr = null_mut();
+ #[cfg(feature = "runtime")]
+ let mut phnum = 0;
+ #[cfg(feature = "runtime")]
+ let mut phent = 0;
+ #[cfg(feature = "runtime")]
+ let mut entry = 0;
+ #[cfg(feature = "runtime")]
+ let mut uid = None;
+ #[cfg(feature = "runtime")]
+ let mut euid = None;
+ #[cfg(feature = "runtime")]
+ let mut gid = None;
+ #[cfg(feature = "runtime")]
+ let mut egid = None;
+ #[cfg(feature = "runtime")]
+ let mut random = null_mut();
+
+ for Elf_auxv_t { a_type, a_val } in aux_iter {
+ match a_type as _ {
+ AT_PAGESZ => pagesz = a_val as usize,
+ AT_CLKTCK => clktck = a_val as usize,
+ AT_HWCAP => hwcap = a_val as usize,
+ AT_HWCAP2 => hwcap2 = a_val as usize,
+ AT_MINSIGSTKSZ => minsigstksz = a_val as usize,
+ AT_EXECFN => execfn = check_raw_pointer::<c::c_char>(a_val as *mut _)?.as_ptr(),
+
+ // Use the `AT_SYSINFO_EHDR` if it matches the platform rustix is
+ // compiled for.
+ AT_SYSINFO_EHDR => {
+ if let Some(value) = check_elf_base(a_val as *mut _) {
+ sysinfo_ehdr = value.as_ptr();
+ }
+ }
+
+ #[cfg(feature = "runtime")]
+ AT_SECURE => secure = (a_val as usize != 0) as u8 + 1,
+ #[cfg(feature = "runtime")]
+ AT_UID => uid = Some(a_val),
+ #[cfg(feature = "runtime")]
+ AT_EUID => euid = Some(a_val),
+ #[cfg(feature = "runtime")]
+ AT_GID => gid = Some(a_val),
+ #[cfg(feature = "runtime")]
+ AT_EGID => egid = Some(a_val),
+ #[cfg(feature = "runtime")]
+ AT_PHDR => phdr = check_raw_pointer::<Elf_Phdr>(a_val as *mut _)?.as_ptr(),
+ #[cfg(feature = "runtime")]
+ AT_PHNUM => phnum = a_val as usize,
+ #[cfg(feature = "runtime")]
+ AT_PHENT => phent = a_val as usize,
+ #[cfg(feature = "runtime")]
+ AT_ENTRY => entry = a_val as usize,
+ #[cfg(feature = "runtime")]
+ AT_RANDOM => random = check_raw_pointer::<[u8; 16]>(a_val as *mut _)?.as_ptr(),
+
+ AT_NULL => break,
+ _ => (),
+ }
+ }
+
+ #[cfg(feature = "runtime")]
+ assert_eq!(phent, size_of::<Elf_Phdr>());
+
+ // If we're running set-uid or set-gid, enable “secure execution” mode,
+ // which doesn't do much, but users may be depending on the things that
+ // it does do.
+ #[cfg(feature = "runtime")]
+ if uid != euid || gid != egid {
+ secure = 2;
+ }
+
+ // Accept the aux values.
+ PAGE_SIZE.store(pagesz, Relaxed);
+ CLOCK_TICKS_PER_SECOND.store(clktck, Relaxed);
+ HWCAP.store(hwcap, Relaxed);
+ HWCAP2.store(hwcap2, Relaxed);
+ MINSIGSTKSZ.store(minsigstksz, Relaxed);
+ EXECFN.store(execfn, Relaxed);
+ SYSINFO_EHDR.store(sysinfo_ehdr, Relaxed);
+ #[cfg(feature = "runtime")]
+ SECURE.store(secure, Relaxed);
+ #[cfg(feature = "runtime")]
+ PHDR.store(phdr, Relaxed);
+ #[cfg(feature = "runtime")]
+ PHNUM.store(phnum, Relaxed);
+ #[cfg(feature = "runtime")]
+ ENTRY.store(entry, Relaxed);
+ #[cfg(feature = "runtime")]
+ RANDOM.store(random, Relaxed);
+
+ Some(())
+}
+
+/// Check that `base` is a valid pointer to the kernel-provided vDSO.
+///
+/// `base` is some value we got from a `AT_SYSINFO_EHDR` aux record somewhere,
+/// which hopefully holds the value of the kernel-provided vDSO in memory. Do a
+/// series of checks to be as sure as we can that it's safe to use.
+#[cold]
+#[must_use]
+unsafe fn check_elf_base(base: *const Elf_Ehdr) -> Option<NonNull<Elf_Ehdr>> {
+ // If we're reading a 64-bit auxv on a 32-bit platform, we'll see a zero
+ // `a_val` because `AT_*` values are never greater than `u32::MAX`. Zero is
+ // used by libc's `getauxval` to indicate errors, so it should never be a
+ // valid value.
+ if base.is_null() {
+ return None;
+ }
+
+ let hdr = check_raw_pointer::<Elf_Ehdr>(base as *mut _)?;
+
+ let hdr = hdr.as_ref();
+ if hdr.e_ident[..SELFMAG] != ELFMAG {
+ return None; // Wrong ELF magic
+ }
+ if !matches!(hdr.e_ident[EI_OSABI], ELFOSABI_SYSV | ELFOSABI_LINUX) {
+ return None; // Unrecognized ELF OS ABI
+ }
+ if hdr.e_ident[EI_ABIVERSION] != ELFABIVERSION {
+ return None; // Unrecognized ELF ABI version
+ }
+ if hdr.e_type != ET_DYN {
+ return None; // Wrong ELF type
+ }
+
+ // If ELF is extended, we'll need to adjust.
+ if hdr.e_ident[EI_VERSION] != EV_CURRENT
+ || hdr.e_ehsize as usize != size_of::<Elf_Ehdr>()
+ || hdr.e_phentsize as usize != size_of::<Elf_Phdr>()
+ {
+ return None;
+ }
+ // We don't currently support extra-large numbers of segments.
+ if hdr.e_phnum == PN_XNUM {
+ return None;
+ }
+
+ // If `e_phoff` is zero, it's more likely that we're looking at memory that
+ // has been zeroed than that the kernel has somehow aliased the `Ehdr` and
+ // the `Phdr`.
+ if hdr.e_phoff < size_of::<Elf_Ehdr>() {
+ return None;
+ }
+
+ // Verify that the `EI_CLASS`/`EI_DATA`/`e_machine` fields match the
+ // architecture we're running as. This helps catch cases where we're
+ // running under QEMU.
+ if hdr.e_ident[EI_CLASS] != ELFCLASS {
+ return None; // Wrong ELF class
+ }
+ if hdr.e_ident[EI_DATA] != ELFDATA {
+ return None; // Wrong ELF data
+ }
+ if hdr.e_machine != EM_CURRENT {
+ return None; // Wrong machine type
+ }
+
+ Some(NonNull::new_unchecked(as_ptr(hdr) as *mut _))
+}
+
+// Aux reading utilities
+
+// Read auxv records from an array in memory.
+struct AuxPointer(*const Elf_auxv_t);
+
+impl Iterator for AuxPointer {
+ type Item = Elf_auxv_t;
+
+ #[cold]
+ fn next(&mut self) -> Option<Self::Item> {
+ unsafe {
+ let value = read_unaligned(self.0);
+ self.0 = self.0.add(1);
+ Some(value)
+ }
+ }
+}
+
+// Read auxv records from a file.
+#[cfg(not(feature = "alloc"))]
+struct AuxFile(OwnedFd);
+
+#[cfg(not(feature = "alloc"))]
+impl Iterator for AuxFile {
+ type Item = Elf_auxv_t;
+
+ // This implementation does lots of `read`s and it isn't amazing, but
+ // hopefully we won't use it often.
+ #[cold]
+ fn next(&mut self) -> Option<Self::Item> {
+ let mut buf = [0_u8; size_of::<Self::Item>()];
+ let mut slice = &mut buf[..];
+ while !slice.is_empty() {
+ match crate::io::read(&self.0, &mut *slice) {
+ Ok(0) => panic!("unexpected end of auxv file"),
+ Ok(n) => slice = &mut slice[n..],
+ Err(crate::io::Errno::INTR) => continue,
+ Err(err) => panic!("{:?}", err),
+ }
+ }
+ Some(unsafe { read_unaligned(buf.as_ptr().cast()) })
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/param/init.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/param/init.rs
new file mode 100644
index 0000000..de1e594
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/param/init.rs
@@ -0,0 +1,175 @@
+//! Linux auxv `init` function, for "use-explicitly-provided-auxv" mode.
+//!
+//! # Safety
+//!
+//! This uses raw pointers to locate and read the kernel-provided auxv array.
+#![allow(unsafe_code)]
+
+use crate::backend::c;
+#[cfg(feature = "param")]
+use crate::ffi::CStr;
+use core::ffi::c_void;
+use core::ptr::{null_mut, read, NonNull};
+#[cfg(feature = "runtime")]
+use core::sync::atomic::AtomicBool;
+use core::sync::atomic::{AtomicPtr, AtomicUsize, Ordering};
+use linux_raw_sys::elf::*;
+use linux_raw_sys::general::{
+ AT_CLKTCK, AT_EXECFN, AT_HWCAP, AT_HWCAP2, AT_MINSIGSTKSZ, AT_NULL, AT_PAGESZ, AT_SYSINFO_EHDR,
+};
+#[cfg(feature = "runtime")]
+use linux_raw_sys::general::{AT_ENTRY, AT_PHDR, AT_PHENT, AT_PHNUM, AT_RANDOM, AT_SECURE};
+
+#[cfg(feature = "param")]
+#[inline]
+pub(crate) fn page_size() -> usize {
+ PAGE_SIZE.load(Ordering::Relaxed)
+}
+
+#[cfg(feature = "param")]
+#[inline]
+pub(crate) fn clock_ticks_per_second() -> u64 {
+ CLOCK_TICKS_PER_SECOND.load(Ordering::Relaxed) as u64
+}
+
+#[cfg(feature = "param")]
+#[inline]
+pub(crate) fn linux_hwcap() -> (usize, usize) {
+ (
+ HWCAP.load(Ordering::Relaxed),
+ HWCAP2.load(Ordering::Relaxed),
+ )
+}
+
+#[cfg(feature = "param")]
+#[inline]
+pub(crate) fn linux_minsigstksz() -> usize {
+ MINSIGSTKSZ.load(Ordering::Relaxed)
+}
+
+#[cfg(feature = "param")]
+#[inline]
+pub(crate) fn linux_execfn() -> &'static CStr {
+ let execfn = EXECFN.load(Ordering::Relaxed);
+
+ // SAFETY: We initialize `EXECFN` to a valid `CStr` pointer, and we assume
+ // the `AT_EXECFN` value provided by the kernel points to a valid C string.
+ unsafe { CStr::from_ptr(execfn.cast()) }
+}
+
+#[cfg(feature = "runtime")]
+#[inline]
+pub(crate) fn linux_secure() -> bool {
+ SECURE.load(Ordering::Relaxed)
+}
+
+#[cfg(feature = "runtime")]
+#[inline]
+pub(crate) fn exe_phdrs() -> (*const c_void, usize, usize) {
+ (
+ PHDR.load(Ordering::Relaxed).cast(),
+ PHENT.load(Ordering::Relaxed),
+ PHNUM.load(Ordering::Relaxed),
+ )
+}
+
+/// `AT_SYSINFO_EHDR` isn't present on all platforms in all configurations, so
+/// if we don't see it, this function returns a null pointer.
+#[inline]
+pub(in super::super) fn sysinfo_ehdr() -> *const Elf_Ehdr {
+ SYSINFO_EHDR.load(Ordering::Relaxed)
+}
+
+#[cfg(feature = "runtime")]
+#[inline]
+pub(crate) fn entry() -> usize {
+ ENTRY.load(Ordering::Relaxed)
+}
+
+#[cfg(feature = "runtime")]
+#[inline]
+pub(crate) fn random() -> *const [u8; 16] {
+ RANDOM.load(Ordering::Relaxed)
+}
+
+static PAGE_SIZE: AtomicUsize = AtomicUsize::new(0);
+static CLOCK_TICKS_PER_SECOND: AtomicUsize = AtomicUsize::new(0);
+static HWCAP: AtomicUsize = AtomicUsize::new(0);
+static HWCAP2: AtomicUsize = AtomicUsize::new(0);
+static MINSIGSTKSZ: AtomicUsize = AtomicUsize::new(0);
+static SYSINFO_EHDR: AtomicPtr<Elf_Ehdr> = AtomicPtr::new(null_mut());
+// Initialize `EXECFN` to a valid `CStr` pointer so that we don't need to check
+// for null on every `execfn` call.
+static EXECFN: AtomicPtr<c::c_char> = AtomicPtr::new(b"\0".as_ptr() as _);
+#[cfg(feature = "runtime")]
+static SECURE: AtomicBool = AtomicBool::new(false);
+// Use `dangling` so that we can always treat it like an empty slice.
+#[cfg(feature = "runtime")]
+static PHDR: AtomicPtr<Elf_Phdr> = AtomicPtr::new(NonNull::dangling().as_ptr());
+#[cfg(feature = "runtime")]
+static PHENT: AtomicUsize = AtomicUsize::new(0);
+#[cfg(feature = "runtime")]
+static PHNUM: AtomicUsize = AtomicUsize::new(0);
+#[cfg(feature = "runtime")]
+static ENTRY: AtomicUsize = AtomicUsize::new(0);
+#[cfg(feature = "runtime")]
+static RANDOM: AtomicPtr<[u8; 16]> = AtomicPtr::new(NonNull::dangling().as_ptr());
+
+/// When "use-explicitly-provided-auxv" is enabled, we export a function to be
+/// called during initialization, and passed a pointer to the original
+/// environment variable block set up by the OS.
+pub(crate) unsafe fn init(envp: *mut *mut u8) {
+ init_from_envp(envp);
+}
+
+/// # Safety
+///
+/// This must be passed a pointer to the environment variable buffer
+/// provided by the kernel, which is followed in memory by the auxv array.
+unsafe fn init_from_envp(mut envp: *mut *mut u8) {
+ while !(*envp).is_null() {
+ envp = envp.add(1);
+ }
+ init_from_auxp(envp.add(1).cast())
+}
+
+/// Process auxv entries from the auxv array pointed to by `auxp`.
+///
+/// # Safety
+///
+/// This must be passed a pointer to an auxv array.
+///
+/// The buffer contains `Elf_aux_t` elements, though it need not be aligned;
+/// function uses `read_unaligned` to read from it.
+unsafe fn init_from_auxp(mut auxp: *const Elf_auxv_t) {
+ loop {
+ let Elf_auxv_t { a_type, a_val } = read(auxp);
+
+ match a_type as _ {
+ AT_PAGESZ => PAGE_SIZE.store(a_val as usize, Ordering::Relaxed),
+ AT_CLKTCK => CLOCK_TICKS_PER_SECOND.store(a_val as usize, Ordering::Relaxed),
+ AT_HWCAP => HWCAP.store(a_val as usize, Ordering::Relaxed),
+ AT_HWCAP2 => HWCAP2.store(a_val as usize, Ordering::Relaxed),
+ AT_MINSIGSTKSZ => MINSIGSTKSZ.store(a_val as usize, Ordering::Relaxed),
+ AT_EXECFN => EXECFN.store(a_val.cast::<c::c_char>(), Ordering::Relaxed),
+ AT_SYSINFO_EHDR => SYSINFO_EHDR.store(a_val.cast::<Elf_Ehdr>(), Ordering::Relaxed),
+
+ #[cfg(feature = "runtime")]
+ AT_SECURE => SECURE.store(a_val as usize != 0, Ordering::Relaxed),
+ #[cfg(feature = "runtime")]
+ AT_PHDR => PHDR.store(a_val.cast::<Elf_Phdr>(), Ordering::Relaxed),
+ #[cfg(feature = "runtime")]
+ AT_PHNUM => PHNUM.store(a_val as usize, Ordering::Relaxed),
+ #[cfg(feature = "runtime")]
+ AT_PHENT => PHENT.store(a_val as usize, Ordering::Relaxed),
+ #[cfg(feature = "runtime")]
+ AT_ENTRY => ENTRY.store(a_val as usize, Ordering::Relaxed),
+ #[cfg(feature = "runtime")]
+ AT_RANDOM => RANDOM.store(a_val.cast::<[u8; 16]>(), Ordering::Relaxed),
+
+ AT_NULL => break,
+ _ => (),
+ }
+ auxp = auxp.add(1);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/param/libc_auxv.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/param/libc_auxv.rs
new file mode 100644
index 0000000..d77d3a8
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/param/libc_auxv.rs
@@ -0,0 +1,198 @@
+//! Linux auxv support, using libc.
+//!
+//! # Safety
+//!
+//! This uses raw pointers to locate and read the kernel-provided auxv array.
+#![allow(unsafe_code)]
+
+use crate::backend::c;
+#[cfg(feature = "param")]
+use crate::ffi::CStr;
+#[cfg(not(feature = "runtime"))]
+use core::ptr::null;
+use linux_raw_sys::elf::*;
+
+// `getauxval` wasn't supported in glibc until 2.16. Also this lets us use
+// `*mut` as the return type to preserve strict provenance.
+#[cfg(not(feature = "runtime"))]
+weak!(fn getauxval(c::c_ulong) -> *mut c::c_void);
+
+// With the "runtime" feature, go ahead and depend on `getauxval` existing so
+// that we never fail.
+#[cfg(feature = "runtime")]
+extern "C" {
+ fn getauxval(type_: c::c_ulong) -> *mut c::c_void;
+}
+
+#[cfg(feature = "runtime")]
+const AT_PHDR: c::c_ulong = 3;
+#[cfg(feature = "runtime")]
+const AT_PHENT: c::c_ulong = 4;
+#[cfg(feature = "runtime")]
+const AT_PHNUM: c::c_ulong = 5;
+#[cfg(feature = "runtime")]
+const AT_ENTRY: c::c_ulong = 9;
+const AT_HWCAP: c::c_ulong = 16;
+#[cfg(feature = "runtime")]
+const AT_RANDOM: c::c_ulong = 25;
+const AT_HWCAP2: c::c_ulong = 26;
+const AT_SECURE: c::c_ulong = 23;
+const AT_EXECFN: c::c_ulong = 31;
+const AT_SYSINFO_EHDR: c::c_ulong = 33;
+const AT_MINSIGSTKSZ: c::c_ulong = 51;
+
+// Declare `sysconf` ourselves so that we don't depend on all of libc just for
+// this.
+extern "C" {
+ fn sysconf(name: c::c_int) -> c::c_long;
+}
+
+#[cfg(target_os = "android")]
+const _SC_PAGESIZE: c::c_int = 39;
+#[cfg(target_os = "linux")]
+const _SC_PAGESIZE: c::c_int = 30;
+#[cfg(target_os = "android")]
+const _SC_CLK_TCK: c::c_int = 6;
+#[cfg(target_os = "linux")]
+const _SC_CLK_TCK: c::c_int = 2;
+
+#[cfg(feature = "param")]
+#[inline]
+pub(crate) fn page_size() -> usize {
+ unsafe { sysconf(_SC_PAGESIZE) as usize }
+}
+
+#[cfg(feature = "param")]
+#[inline]
+pub(crate) fn clock_ticks_per_second() -> u64 {
+ unsafe { sysconf(_SC_CLK_TCK) as u64 }
+}
+
+#[cfg(feature = "param")]
+#[inline]
+pub(crate) fn linux_hwcap() -> (usize, usize) {
+ #[cfg(not(feature = "runtime"))]
+ unsafe {
+ if let Some(libc_getauxval) = getauxval.get() {
+ let hwcap = libc_getauxval(AT_HWCAP) as usize;
+ let hwcap2 = libc_getauxval(AT_HWCAP2) as usize;
+ (hwcap, hwcap2)
+ } else {
+ (0, 0)
+ }
+ }
+
+ #[cfg(feature = "runtime")]
+ unsafe {
+ let hwcap = getauxval(AT_HWCAP) as usize;
+ let hwcap2 = getauxval(AT_HWCAP2) as usize;
+ (hwcap, hwcap2)
+ }
+}
+
+#[cfg(feature = "param")]
+#[inline]
+pub(crate) fn linux_minsigstksz() -> usize {
+ #[cfg(not(feature = "runtime"))]
+ if let Some(libc_getauxval) = getauxval.get() {
+ unsafe { libc_getauxval(AT_MINSIGSTKSZ) as usize }
+ } else {
+ 0
+ }
+
+ #[cfg(feature = "runtime")]
+ unsafe {
+ getauxval(AT_MINSIGSTKSZ) as usize
+ }
+}
+
+#[cfg(feature = "param")]
+#[inline]
+pub(crate) fn linux_execfn() -> &'static CStr {
+ #[cfg(not(feature = "runtime"))]
+ unsafe {
+ if let Some(libc_getauxval) = getauxval.get() {
+ CStr::from_ptr(libc_getauxval(AT_EXECFN).cast())
+ } else {
+ cstr!("")
+ }
+ }
+
+ #[cfg(feature = "runtime")]
+ unsafe {
+ CStr::from_ptr(getauxval(AT_EXECFN).cast())
+ }
+}
+
+#[cfg(feature = "runtime")]
+#[inline]
+pub(crate) fn linux_secure() -> bool {
+ unsafe { getauxval(AT_SECURE) as usize != 0 }
+}
+
+#[cfg(feature = "runtime")]
+#[inline]
+pub(crate) fn exe_phdrs() -> (*const c::c_void, usize, usize) {
+ unsafe {
+ let phdr: *const c::c_void = getauxval(AT_PHDR);
+ let phent = getauxval(AT_PHENT) as usize;
+ let phnum = getauxval(AT_PHNUM) as usize;
+ (phdr, phent, phnum)
+ }
+}
+
+/// `AT_SYSINFO_EHDR` isn't present on all platforms in all configurations, so
+/// if we don't see it, this function returns a null pointer.
+#[inline]
+pub(in super::super) fn sysinfo_ehdr() -> *const Elf_Ehdr {
+ #[cfg(not(feature = "runtime"))]
+ unsafe {
+ if let Some(libc_getauxval) = getauxval.get() {
+ libc_getauxval(AT_SYSINFO_EHDR) as *const Elf_Ehdr
+ } else {
+ null()
+ }
+ }
+
+ #[cfg(feature = "runtime")]
+ unsafe {
+ getauxval(AT_SYSINFO_EHDR) as *const Elf_Ehdr
+ }
+}
+
+#[cfg(feature = "runtime")]
+#[inline]
+pub(crate) fn entry() -> usize {
+ unsafe { getauxval(AT_ENTRY) as usize }
+}
+
+#[cfg(feature = "runtime")]
+#[inline]
+pub(crate) fn random() -> *const [u8; 16] {
+ unsafe { getauxval(AT_RANDOM) as *const [u8; 16] }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_abi() {
+ const_assert_eq!(self::_SC_PAGESIZE, ::libc::_SC_PAGESIZE);
+ const_assert_eq!(self::_SC_CLK_TCK, ::libc::_SC_CLK_TCK);
+ const_assert_eq!(self::AT_HWCAP, ::libc::AT_HWCAP);
+ const_assert_eq!(self::AT_HWCAP2, ::libc::AT_HWCAP2);
+ const_assert_eq!(self::AT_EXECFN, ::libc::AT_EXECFN);
+ const_assert_eq!(self::AT_SECURE, ::libc::AT_SECURE);
+ const_assert_eq!(self::AT_SYSINFO_EHDR, ::libc::AT_SYSINFO_EHDR);
+ const_assert_eq!(self::AT_MINSIGSTKSZ, ::libc::AT_MINSIGSTKSZ);
+ #[cfg(feature = "runtime")]
+ const_assert_eq!(self::AT_PHDR, ::libc::AT_PHDR);
+ #[cfg(feature = "runtime")]
+ const_assert_eq!(self::AT_PHNUM, ::libc::AT_PHNUM);
+ #[cfg(feature = "runtime")]
+ const_assert_eq!(self::AT_ENTRY, ::libc::AT_ENTRY);
+ #[cfg(feature = "runtime")]
+ const_assert_eq!(self::AT_RANDOM, ::libc::AT_RANDOM);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/param/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/param/mod.rs
new file mode 100644
index 0000000..365f016
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/param/mod.rs
@@ -0,0 +1,15 @@
+// With "use-explicitly-provided-auxv" enabled, we expect to be initialized
+// with an explicit `rustix::param::init` call.
+//
+// With "use-libc-auxv" enabled, use libc's `getauxval`.
+//
+// Otherwise, we read aux values from /proc/self/auxv.
+#[cfg_attr(feature = "use-explicitly-provided-auxv", path = "init.rs")]
+#[cfg_attr(
+ all(
+ not(feature = "use-explicitly-provided-auxv"),
+ feature = "use-libc-auxv"
+ ),
+ path = "libc_auxv.rs"
+)]
+pub(crate) mod auxv;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/pid/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/pid/mod.rs
new file mode 100644
index 0000000..ef944f0
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/pid/mod.rs
@@ -0,0 +1 @@
+pub(crate) mod syscalls;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/pid/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/pid/syscalls.rs
new file mode 100644
index 0000000..49aaf43
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/pid/syscalls.rs
@@ -0,0 +1,18 @@
+//! linux_raw syscalls for PIDs
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use crate::backend::conv::ret_usize_infallible;
+use crate::pid::{Pid, RawPid};
+
+#[inline]
+#[must_use]
+pub(crate) fn getpid() -> Pid {
+ unsafe {
+ let pid = ret_usize_infallible(syscall_readonly!(__NR_getpid)) as RawPid;
+ Pid::from_raw_unchecked(pid)
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/pipe/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/pipe/mod.rs
new file mode 100644
index 0000000..1e0181a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/pipe/mod.rs
@@ -0,0 +1,2 @@
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/pipe/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/pipe/syscalls.rs
new file mode 100644
index 0000000..86fe085
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/pipe/syscalls.rs
@@ -0,0 +1,135 @@
+//! linux_raw syscalls supporting `rustix::pipe`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use crate::backend::conv::{c_int, c_uint, opt_mut, pass_usize, ret, ret_usize, slice};
+use crate::backend::{c, MAX_IOV};
+use crate::fd::{BorrowedFd, OwnedFd};
+use crate::io;
+use crate::pipe::{IoSliceRaw, PipeFlags, SpliceFlags};
+use core::cmp;
+use core::mem::MaybeUninit;
+use linux_raw_sys::general::{F_GETPIPE_SZ, F_SETPIPE_SZ};
+
+#[inline]
+pub(crate) fn pipe() -> io::Result<(OwnedFd, OwnedFd)> {
+ // aarch64 and risc64 omit `__NR_pipe`. On mips, `__NR_pipe` uses a special
+ // calling convention, but using it is not worth complicating our syscall
+ // wrapping infrastructure at this time.
+ #[cfg(any(
+ target_arch = "aarch64",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "riscv64",
+ ))]
+ {
+ pipe_with(PipeFlags::empty())
+ }
+ #[cfg(not(any(
+ target_arch = "aarch64",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "riscv64",
+ )))]
+ unsafe {
+ let mut result = MaybeUninit::<[OwnedFd; 2]>::uninit();
+ ret(syscall!(__NR_pipe, &mut result))?;
+ let [p0, p1] = result.assume_init();
+ Ok((p0, p1))
+ }
+}
+
+#[inline]
+pub(crate) fn pipe_with(flags: PipeFlags) -> io::Result<(OwnedFd, OwnedFd)> {
+ unsafe {
+ let mut result = MaybeUninit::<[OwnedFd; 2]>::uninit();
+ ret(syscall!(__NR_pipe2, &mut result, flags))?;
+ let [p0, p1] = result.assume_init();
+ Ok((p0, p1))
+ }
+}
+
+#[inline]
+pub(crate) fn splice(
+ fd_in: BorrowedFd<'_>,
+ off_in: Option<&mut u64>,
+ fd_out: BorrowedFd<'_>,
+ off_out: Option<&mut u64>,
+ len: usize,
+ flags: SpliceFlags,
+) -> io::Result<usize> {
+ unsafe {
+ ret_usize(syscall!(
+ __NR_splice,
+ fd_in,
+ opt_mut(off_in),
+ fd_out,
+ opt_mut(off_out),
+ pass_usize(len),
+ flags
+ ))
+ }
+}
+
+#[inline]
+pub(crate) unsafe fn vmsplice(
+ fd: BorrowedFd<'_>,
+ bufs: &[IoSliceRaw<'_>],
+ flags: SpliceFlags,
+) -> io::Result<usize> {
+ let (bufs_addr, bufs_len) = slice(&bufs[..cmp::min(bufs.len(), MAX_IOV)]);
+ ret_usize(syscall!(__NR_vmsplice, fd, bufs_addr, bufs_len, flags))
+}
+
+#[inline]
+pub(crate) fn tee(
+ fd_in: BorrowedFd<'_>,
+ fd_out: BorrowedFd<'_>,
+ len: usize,
+ flags: SpliceFlags,
+) -> io::Result<usize> {
+ unsafe { ret_usize(syscall!(__NR_tee, fd_in, fd_out, pass_usize(len), flags)) }
+}
+
+#[inline]
+pub(crate) fn fcntl_getpipe_size(fd: BorrowedFd<'_>) -> io::Result<usize> {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret_usize(syscall_readonly!(__NR_fcntl64, fd, c_uint(F_GETPIPE_SZ)))
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret_usize(syscall_readonly!(__NR_fcntl, fd, c_uint(F_GETPIPE_SZ)))
+ }
+}
+
+#[inline]
+pub(crate) fn fcntl_setpipe_size(fd: BorrowedFd<'_>, size: usize) -> io::Result<usize> {
+ let size: c::c_int = size.try_into().map_err(|_| io::Errno::PERM)?;
+
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret_usize(syscall_readonly!(
+ __NR_fcntl64,
+ fd,
+ c_uint(F_SETPIPE_SZ),
+ c_int(size)
+ ))
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret_usize(syscall_readonly!(
+ __NR_fcntl,
+ fd,
+ c_uint(F_SETPIPE_SZ),
+ c_int(size)
+ ))
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/pipe/types.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/pipe/types.rs
new file mode 100644
index 0000000..ae18556
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/pipe/types.rs
@@ -0,0 +1,85 @@
+use crate::backend::c;
+use crate::ffi;
+use bitflags::bitflags;
+use core::marker::PhantomData;
+
+bitflags! {
+ /// `O_*` constants for use with [`pipe_with`].
+ ///
+ /// [`pipe_with`]: crate::pipe::pipe_with
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct PipeFlags: ffi::c_uint {
+ /// `O_CLOEXEC`
+ const CLOEXEC = linux_raw_sys::general::O_CLOEXEC;
+ /// `O_DIRECT`
+ const DIRECT = linux_raw_sys::general::O_DIRECT;
+ /// `O_NONBLOCK`
+ const NONBLOCK = linux_raw_sys::general::O_NONBLOCK;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `SPLICE_F_*` constants for use with [`splice`], [`vmsplice`], and
+ /// [`tee`].
+ ///
+ /// [`splice`]: crate::pipe::splice
+ /// [`vmsplice`]: crate::pipe::splice
+ /// [`tee`]: crate::pipe::tee
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct SpliceFlags: ffi::c_uint {
+ /// `SPLICE_F_MOVE`
+ const MOVE = linux_raw_sys::general::SPLICE_F_MOVE;
+ /// `SPLICE_F_NONBLOCK`
+ const NONBLOCK = linux_raw_sys::general::SPLICE_F_NONBLOCK;
+ /// `SPLICE_F_MORE`
+ const MORE = linux_raw_sys::general::SPLICE_F_MORE;
+ /// `SPLICE_F_GIFT`
+ const GIFT = linux_raw_sys::general::SPLICE_F_GIFT;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// A buffer type for use with [`vmsplice`].
+///
+/// It is guaranteed to be ABI compatible with the iovec type on Unix platforms
+/// and `WSABUF` on Windows. Unlike `IoSlice` and `IoSliceMut` it is
+/// semantically like a raw pointer, and therefore can be shared or mutated as
+/// needed.
+///
+/// [`vmsplice`]: crate::pipe::vmsplice
+#[repr(transparent)]
+pub struct IoSliceRaw<'a> {
+ _buf: c::iovec,
+ _lifetime: PhantomData<&'a ()>,
+}
+
+impl<'a> IoSliceRaw<'a> {
+ /// Creates a new `IoSlice` wrapping a byte slice.
+ pub fn from_slice(buf: &'a [u8]) -> Self {
+ IoSliceRaw {
+ _buf: c::iovec {
+ iov_base: (buf.as_ptr() as *mut u8).cast::<ffi::c_void>(),
+ iov_len: buf.len() as _,
+ },
+ _lifetime: PhantomData,
+ }
+ }
+
+ /// Creates a new `IoSlice` wrapping a mutable byte slice.
+ pub fn from_slice_mut(buf: &'a mut [u8]) -> Self {
+ IoSliceRaw {
+ _buf: c::iovec {
+ iov_base: buf.as_mut_ptr().cast::<ffi::c_void>(),
+ iov_len: buf.len() as _,
+ },
+ _lifetime: PhantomData,
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/prctl/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/prctl/mod.rs
new file mode 100644
index 0000000..ef944f0
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/prctl/mod.rs
@@ -0,0 +1 @@
+pub(crate) mod syscalls;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/prctl/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/prctl/syscalls.rs
new file mode 100644
index 0000000..1410d51
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/prctl/syscalls.rs
@@ -0,0 +1,21 @@
+//! linux_raw syscalls supporting modules that use `prctl`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use crate::backend::c;
+use crate::backend::conv::{c_int, ret_c_int};
+use crate::io;
+
+#[inline]
+pub(crate) unsafe fn prctl(
+ option: c::c_int,
+ arg2: *mut c::c_void,
+ arg3: *mut c::c_void,
+ arg4: *mut c::c_void,
+ arg5: *mut c::c_void,
+) -> io::Result<c::c_int> {
+ ret_c_int(syscall!(__NR_prctl, c_int(option), arg2, arg3, arg4, arg5))
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/process/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/process/mod.rs
new file mode 100644
index 0000000..6bc9443
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/process/mod.rs
@@ -0,0 +1,3 @@
+pub(crate) mod syscalls;
+pub(crate) mod types;
+pub(crate) mod wait;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/process/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/process/syscalls.rs
new file mode 100644
index 0000000..c9c1fd8
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/process/syscalls.rs
@@ -0,0 +1,560 @@
+//! linux_raw syscalls supporting `rustix::process`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use crate::backend::c;
+#[cfg(all(feature = "alloc", feature = "fs"))]
+use crate::backend::conv::slice_mut;
+use crate::backend::conv::{
+ by_mut, by_ref, c_int, c_uint, negative_pid, pass_usize, raw_fd, ret, ret_c_int,
+ ret_c_int_infallible, ret_infallible, ret_owned_fd, zero,
+};
+use crate::fd::{AsRawFd as _, BorrowedFd, OwnedFd, RawFd};
+#[cfg(feature = "fs")]
+use crate::ffi::CStr;
+use crate::io;
+use crate::pid::RawPid;
+use crate::process::{
+ Flock, Pid, PidfdFlags, PidfdGetfdFlags, Resource, Rlimit, Uid, WaitId, WaitIdOptions,
+ WaitIdStatus, WaitOptions, WaitStatus,
+};
+use crate::signal::Signal;
+use core::mem::MaybeUninit;
+use core::ptr::{null, null_mut};
+use linux_raw_sys::general::{rlimit64, PRIO_PGRP, PRIO_PROCESS, PRIO_USER, RLIM64_INFINITY};
+#[cfg(feature = "fs")]
+use {crate::backend::conv::ret_c_uint_infallible, crate::fs::Mode};
+#[cfg(feature = "alloc")]
+use {
+ crate::backend::conv::{ret_usize, slice_just_addr_mut},
+ crate::process::Gid,
+};
+
+#[cfg(feature = "fs")]
+#[inline]
+pub(crate) fn chdir(filename: &CStr) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_chdir, filename)) }
+}
+
+#[inline]
+pub(crate) fn fchdir(fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_fchdir, fd)) }
+}
+
+#[cfg(feature = "fs")]
+#[inline]
+pub(crate) fn chroot(filename: &CStr) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_chroot, filename)) }
+}
+
+#[cfg(all(feature = "alloc", feature = "fs"))]
+#[inline]
+pub(crate) fn getcwd(buf: &mut [MaybeUninit<u8>]) -> io::Result<usize> {
+ let (buf_addr_mut, buf_len) = slice_mut(buf);
+ unsafe { ret_usize(syscall!(__NR_getcwd, buf_addr_mut, buf_len)) }
+}
+
+#[inline]
+#[must_use]
+pub(crate) fn getppid() -> Option<Pid> {
+ unsafe {
+ let ppid = ret_c_int_infallible(syscall_readonly!(__NR_getppid));
+ Pid::from_raw(ppid)
+ }
+}
+
+#[inline]
+pub(crate) fn getpgid(pid: Option<Pid>) -> io::Result<Pid> {
+ unsafe {
+ let pgid = ret_c_int(syscall_readonly!(__NR_getpgid, c_int(Pid::as_raw(pid))))?;
+ debug_assert!(pgid > 0);
+ Ok(Pid::from_raw_unchecked(pgid))
+ }
+}
+
+#[inline]
+pub(crate) fn setpgid(pid: Option<Pid>, pgid: Option<Pid>) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_setpgid,
+ c_int(Pid::as_raw(pid)),
+ c_int(Pid::as_raw(pgid))
+ ))
+ }
+}
+
+#[inline]
+#[must_use]
+pub(crate) fn getpgrp() -> Pid {
+ // Use the `getpgrp` syscall if available.
+ #[cfg(not(any(target_arch = "aarch64", target_arch = "riscv64")))]
+ unsafe {
+ let pgid = ret_c_int_infallible(syscall_readonly!(__NR_getpgrp));
+ debug_assert!(pgid > 0);
+ Pid::from_raw_unchecked(pgid)
+ }
+
+ // Otherwise use `getpgrp` and pass it zero.
+ #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))]
+ unsafe {
+ let pgid = ret_c_int_infallible(syscall_readonly!(__NR_getpgid, c_uint(0)));
+ debug_assert!(pgid > 0);
+ Pid::from_raw_unchecked(pgid)
+ }
+}
+
+#[cfg(feature = "fs")]
+#[inline]
+pub(crate) fn umask(mode: Mode) -> Mode {
+ unsafe { Mode::from_bits_retain(ret_c_uint_infallible(syscall_readonly!(__NR_umask, mode))) }
+}
+
+#[inline]
+pub(crate) fn nice(inc: i32) -> io::Result<i32> {
+ let priority = (if inc > -40 && inc < 40 {
+ inc + getpriority_process(None)?
+ } else {
+ inc
+ })
+ .clamp(-20, 19);
+ setpriority_process(None, priority)?;
+ Ok(priority)
+}
+
+#[inline]
+pub(crate) fn getpriority_user(uid: Uid) -> io::Result<i32> {
+ unsafe {
+ Ok(20
+ - ret_c_int(syscall_readonly!(
+ __NR_getpriority,
+ c_uint(PRIO_USER),
+ c_uint(uid.as_raw())
+ ))?)
+ }
+}
+
+#[inline]
+pub(crate) fn getpriority_pgrp(pgid: Option<Pid>) -> io::Result<i32> {
+ unsafe {
+ Ok(20
+ - ret_c_int(syscall_readonly!(
+ __NR_getpriority,
+ c_uint(PRIO_PGRP),
+ c_int(Pid::as_raw(pgid))
+ ))?)
+ }
+}
+
+#[inline]
+pub(crate) fn getpriority_process(pid: Option<Pid>) -> io::Result<i32> {
+ unsafe {
+ Ok(20
+ - ret_c_int(syscall_readonly!(
+ __NR_getpriority,
+ c_uint(PRIO_PROCESS),
+ c_int(Pid::as_raw(pid))
+ ))?)
+ }
+}
+
+#[inline]
+pub(crate) fn setpriority_user(uid: Uid, priority: i32) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_setpriority,
+ c_uint(PRIO_USER),
+ c_uint(uid.as_raw()),
+ c_int(priority)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn setpriority_pgrp(pgid: Option<Pid>, priority: i32) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_setpriority,
+ c_uint(PRIO_PGRP),
+ c_int(Pid::as_raw(pgid)),
+ c_int(priority)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn setpriority_process(pid: Option<Pid>, priority: i32) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_setpriority,
+ c_uint(PRIO_PROCESS),
+ c_int(Pid::as_raw(pid)),
+ c_int(priority)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn getrlimit(limit: Resource) -> Rlimit {
+ let mut result = MaybeUninit::<rlimit64>::uninit();
+ unsafe {
+ ret_infallible(syscall!(
+ __NR_prlimit64,
+ c_uint(0),
+ limit,
+ null::<c::c_void>(),
+ &mut result
+ ));
+ rlimit_from_linux(result.assume_init())
+ }
+}
+
+#[inline]
+pub(crate) fn setrlimit(limit: Resource, new: Rlimit) -> io::Result<()> {
+ unsafe {
+ let lim = rlimit_to_linux(new);
+ match ret(syscall_readonly!(
+ __NR_prlimit64,
+ c_uint(0),
+ limit,
+ by_ref(&lim),
+ null_mut::<c::c_void>()
+ )) {
+ Ok(()) => Ok(()),
+ Err(err) => Err(err),
+ }
+ }
+}
+
+#[inline]
+pub(crate) fn prlimit(pid: Option<Pid>, limit: Resource, new: Rlimit) -> io::Result<Rlimit> {
+ let lim = rlimit_to_linux(new);
+ let mut result = MaybeUninit::<rlimit64>::uninit();
+ unsafe {
+ match ret(syscall!(
+ __NR_prlimit64,
+ c_int(Pid::as_raw(pid)),
+ limit,
+ by_ref(&lim),
+ &mut result
+ )) {
+ Ok(()) => Ok(rlimit_from_linux(result.assume_init())),
+ Err(err) => Err(err),
+ }
+ }
+}
+
+/// Convert a C `rlimit64` to a Rust `Rlimit`.
+#[inline]
+fn rlimit_from_linux(lim: rlimit64) -> Rlimit {
+ let current = if lim.rlim_cur == RLIM64_INFINITY as u64 {
+ None
+ } else {
+ Some(lim.rlim_cur)
+ };
+ let maximum = if lim.rlim_max == RLIM64_INFINITY as u64 {
+ None
+ } else {
+ Some(lim.rlim_max)
+ };
+ Rlimit { current, maximum }
+}
+
+/// Convert a Rust [`Rlimit`] to a C `rlimit64`.
+#[inline]
+fn rlimit_to_linux(lim: Rlimit) -> rlimit64 {
+ let rlim_cur = match lim.current {
+ Some(r) => r,
+ None => RLIM64_INFINITY as _,
+ };
+ let rlim_max = match lim.maximum {
+ Some(r) => r,
+ None => RLIM64_INFINITY as _,
+ };
+ rlimit64 { rlim_cur, rlim_max }
+}
+
+#[inline]
+pub(crate) fn wait(waitopts: WaitOptions) -> io::Result<Option<(Pid, WaitStatus)>> {
+ _waitpid(!0, waitopts)
+}
+
+#[inline]
+pub(crate) fn waitpid(
+ pid: Option<Pid>,
+ waitopts: WaitOptions,
+) -> io::Result<Option<(Pid, WaitStatus)>> {
+ _waitpid(Pid::as_raw(pid), waitopts)
+}
+
+#[inline]
+pub(crate) fn waitpgid(pgid: Pid, waitopts: WaitOptions) -> io::Result<Option<(Pid, WaitStatus)>> {
+ _waitpid(-pgid.as_raw_nonzero().get(), waitopts)
+}
+
+#[inline]
+pub(crate) fn _waitpid(
+ pid: RawPid,
+ waitopts: WaitOptions,
+) -> io::Result<Option<(Pid, WaitStatus)>> {
+ unsafe {
+ let mut status = MaybeUninit::<i32>::uninit();
+ let pid = ret_c_int(syscall!(
+ __NR_wait4,
+ c_int(pid as _),
+ &mut status,
+ c_int(waitopts.bits() as _),
+ zero()
+ ))?;
+ Ok(Pid::from_raw(pid).map(|pid| (pid, WaitStatus::new(status.assume_init()))))
+ }
+}
+
+#[inline]
+pub(crate) fn waitid(id: WaitId<'_>, options: WaitIdOptions) -> io::Result<Option<WaitIdStatus>> {
+ // Get the id to wait on.
+ match id {
+ WaitId::All => _waitid_all(options),
+ WaitId::Pid(pid) => _waitid_pid(pid, options),
+ WaitId::Pgid(pid) => _waitid_pgid(pid, options),
+ WaitId::PidFd(fd) => _waitid_pidfd(fd, options),
+ }
+}
+
+#[inline]
+fn _waitid_all(options: WaitIdOptions) -> io::Result<Option<WaitIdStatus>> {
+ // `waitid` can return successfully without initializing the struct (no
+ // children found when using `WNOHANG`)
+ let mut status = MaybeUninit::<c::siginfo_t>::zeroed();
+ unsafe {
+ ret(syscall!(
+ __NR_waitid,
+ c_uint(c::P_ALL),
+ c_uint(0),
+ &mut status,
+ c_int(options.bits() as _),
+ zero()
+ ))?
+ };
+
+ Ok(unsafe { cvt_waitid_status(status) })
+}
+
+#[inline]
+fn _waitid_pid(pid: Pid, options: WaitIdOptions) -> io::Result<Option<WaitIdStatus>> {
+ // `waitid` can return successfully without initializing the struct (no
+ // children found when using `WNOHANG`)
+ let mut status = MaybeUninit::<c::siginfo_t>::zeroed();
+ unsafe {
+ ret(syscall!(
+ __NR_waitid,
+ c_uint(c::P_PID),
+ c_int(Pid::as_raw(Some(pid))),
+ &mut status,
+ c_int(options.bits() as _),
+ zero()
+ ))?
+ };
+
+ Ok(unsafe { cvt_waitid_status(status) })
+}
+
+#[inline]
+fn _waitid_pgid(pgid: Option<Pid>, options: WaitIdOptions) -> io::Result<Option<WaitIdStatus>> {
+ // `waitid` can return successfully without initializing the struct (no
+ // children found when using `WNOHANG`)
+ let mut status = MaybeUninit::<c::siginfo_t>::zeroed();
+ unsafe {
+ ret(syscall!(
+ __NR_waitid,
+ c_uint(c::P_PGID),
+ c_int(Pid::as_raw(pgid)),
+ &mut status,
+ c_int(options.bits() as _),
+ zero()
+ ))?
+ };
+
+ Ok(unsafe { cvt_waitid_status(status) })
+}
+
+#[inline]
+fn _waitid_pidfd(fd: BorrowedFd<'_>, options: WaitIdOptions) -> io::Result<Option<WaitIdStatus>> {
+ // `waitid` can return successfully without initializing the struct (no
+ // children found when using `WNOHANG`)
+ let mut status = MaybeUninit::<c::siginfo_t>::zeroed();
+ unsafe {
+ ret(syscall!(
+ __NR_waitid,
+ c_uint(c::P_PIDFD),
+ c_uint(fd.as_raw_fd() as _),
+ &mut status,
+ c_int(options.bits() as _),
+ zero()
+ ))?
+ };
+
+ Ok(unsafe { cvt_waitid_status(status) })
+}
+
+/// Convert a `siginfo_t` to a `WaitIdStatus`.
+///
+/// # Safety
+///
+/// The caller must ensure that `status` is initialized and that `waitid`
+/// returned successfully.
+#[inline]
+unsafe fn cvt_waitid_status(status: MaybeUninit<c::siginfo_t>) -> Option<WaitIdStatus> {
+ let status = status.assume_init();
+ if status
+ .__bindgen_anon_1
+ .__bindgen_anon_1
+ ._sifields
+ ._sigchld
+ ._pid
+ == 0
+ {
+ None
+ } else {
+ Some(WaitIdStatus(status))
+ }
+}
+
+#[inline]
+pub(crate) fn getsid(pid: Option<Pid>) -> io::Result<Pid> {
+ unsafe {
+ let pid = ret_c_int(syscall_readonly!(__NR_getsid, c_int(Pid::as_raw(pid))))?;
+ Ok(Pid::from_raw_unchecked(pid))
+ }
+}
+
+#[inline]
+pub(crate) fn setsid() -> io::Result<Pid> {
+ unsafe {
+ let pid = ret_c_int(syscall_readonly!(__NR_setsid))?;
+ Ok(Pid::from_raw_unchecked(pid))
+ }
+}
+
+#[inline]
+pub(crate) fn kill_process(pid: Pid, sig: Signal) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_kill, pid, sig)) }
+}
+
+#[inline]
+pub(crate) fn kill_process_group(pid: Pid, sig: Signal) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_kill, negative_pid(pid), sig)) }
+}
+
+#[inline]
+pub(crate) fn kill_current_process_group(sig: Signal) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_kill, pass_usize(0), sig)) }
+}
+
+#[inline]
+pub(crate) fn test_kill_process(pid: Pid) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_kill, pid, pass_usize(0))) }
+}
+
+#[inline]
+pub(crate) fn test_kill_process_group(pid: Pid) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_kill,
+ negative_pid(pid),
+ pass_usize(0)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn test_kill_current_process_group() -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_kill, pass_usize(0), pass_usize(0))) }
+}
+
+#[inline]
+pub(crate) fn pidfd_getfd(
+ pidfd: BorrowedFd<'_>,
+ targetfd: RawFd,
+ flags: PidfdGetfdFlags,
+) -> io::Result<OwnedFd> {
+ unsafe {
+ ret_owned_fd(syscall_readonly!(
+ __NR_pidfd_getfd,
+ pidfd,
+ raw_fd(targetfd),
+ c_int(flags.bits() as _)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn pidfd_open(pid: Pid, flags: PidfdFlags) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(syscall_readonly!(__NR_pidfd_open, pid, flags)) }
+}
+
+#[inline]
+pub(crate) fn pidfd_send_signal(fd: BorrowedFd<'_>, sig: Signal) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_pidfd_send_signal,
+ fd,
+ sig,
+ pass_usize(0),
+ pass_usize(0)
+ ))
+ }
+}
+
+#[cfg(feature = "fs")]
+#[inline]
+pub(crate) fn pivot_root(new_root: &CStr, put_old: &CStr) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_pivot_root, new_root, put_old)) }
+}
+
+#[cfg(feature = "alloc")]
+#[inline]
+pub(crate) fn getgroups(buf: &mut [Gid]) -> io::Result<usize> {
+ let len = buf.len().try_into().map_err(|_| io::Errno::NOMEM)?;
+
+ unsafe {
+ ret_usize(syscall!(
+ __NR_getgroups,
+ c_int(len),
+ slice_just_addr_mut(buf)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn fcntl_getlk(fd: BorrowedFd<'_>, lock: &Flock) -> io::Result<Option<Flock>> {
+ let mut curr_lock: c::flock = lock.as_raw();
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret(syscall!(
+ __NR_fcntl64,
+ fd,
+ c_uint(c::F_GETLK64),
+ by_mut(&mut curr_lock)
+ ))?
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret(syscall!(
+ __NR_fcntl,
+ fd,
+ c_uint(c::F_GETLK),
+ by_mut(&mut curr_lock)
+ ))?
+ }
+
+ // If no blocking lock is found, `fcntl(GETLK, ..)` sets `l_type` to
+ // `F_UNLCK`.
+ if curr_lock.l_type == c::F_UNLCK as _ {
+ Ok(None)
+ } else {
+ Ok(Some(unsafe { Flock::from_raw_unchecked(curr_lock) }))
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/process/types.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/process/types.rs
new file mode 100644
index 0000000..58b8cc1
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/process/types.rs
@@ -0,0 +1,43 @@
+/// A resource value for use with [`getrlimit`], [`setrlimit`], and
+/// [`prlimit`].
+///
+/// [`getrlimit`]: crate::process::getrlimit
+/// [`setrlimit`]: crate::process::setrlimit
+/// [`prlimit`]: crate::process::prlimit
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(u32)]
+#[non_exhaustive]
+pub enum Resource {
+ /// `RLIMIT_CPU`
+ Cpu = linux_raw_sys::general::RLIMIT_CPU,
+ /// `RLIMIT_FSIZE`
+ Fsize = linux_raw_sys::general::RLIMIT_FSIZE,
+ /// `RLIMIT_DATA`
+ Data = linux_raw_sys::general::RLIMIT_DATA,
+ /// `RLIMIT_STACK`
+ Stack = linux_raw_sys::general::RLIMIT_STACK,
+ /// `RLIMIT_CORE`
+ Core = linux_raw_sys::general::RLIMIT_CORE,
+ /// `RLIMIT_RSS`
+ Rss = linux_raw_sys::general::RLIMIT_RSS,
+ /// `RLIMIT_NPROC`
+ Nproc = linux_raw_sys::general::RLIMIT_NPROC,
+ /// `RLIMIT_NOFILE`
+ Nofile = linux_raw_sys::general::RLIMIT_NOFILE,
+ /// `RLIMIT_MEMLOCK`
+ Memlock = linux_raw_sys::general::RLIMIT_MEMLOCK,
+ /// `RLIMIT_AS`
+ As = linux_raw_sys::general::RLIMIT_AS,
+ /// `RLIMIT_LOCKS`
+ Locks = linux_raw_sys::general::RLIMIT_LOCKS,
+ /// `RLIMIT_SIGPENDING`
+ Sigpending = linux_raw_sys::general::RLIMIT_SIGPENDING,
+ /// `RLIMIT_MSGQUEUE`
+ Msgqueue = linux_raw_sys::general::RLIMIT_MSGQUEUE,
+ /// `RLIMIT_NICE`
+ Nice = linux_raw_sys::general::RLIMIT_NICE,
+ /// `RLIMIT_RTPRIO`
+ Rtprio = linux_raw_sys::general::RLIMIT_RTPRIO,
+ /// `RLIMIT_RTTIME`
+ Rttime = linux_raw_sys::general::RLIMIT_RTTIME,
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/process/wait.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/process/wait.rs
new file mode 100644
index 0000000..89b3ead
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/process/wait.rs
@@ -0,0 +1,123 @@
+// The functions replacing the C macros use the same names as in libc.
+#![allow(non_snake_case, unsafe_code)]
+
+use crate::ffi::c_int;
+pub(crate) use linux_raw_sys::general::{
+ siginfo_t, WCONTINUED, WEXITED, WNOHANG, WNOWAIT, WSTOPPED, WUNTRACED,
+};
+
+#[inline]
+pub(crate) fn WIFSTOPPED(status: i32) -> bool {
+ (status & 0xff) == 0x7f
+}
+
+#[inline]
+pub(crate) fn WSTOPSIG(status: i32) -> i32 {
+ (status >> 8) & 0xff
+}
+
+#[inline]
+pub(crate) fn WIFCONTINUED(status: i32) -> bool {
+ status == 0xffff
+}
+
+#[inline]
+pub(crate) fn WIFSIGNALED(status: i32) -> bool {
+ ((status & 0x7f) + 1) as i8 >= 2
+}
+
+#[inline]
+pub(crate) fn WTERMSIG(status: i32) -> i32 {
+ status & 0x7f
+}
+
+#[inline]
+pub(crate) fn WIFEXITED(status: i32) -> bool {
+ (status & 0x7f) == 0
+}
+
+#[inline]
+pub(crate) fn WEXITSTATUS(status: i32) -> i32 {
+ (status >> 8) & 0xff
+}
+
+pub(crate) trait SiginfoExt {
+ fn si_signo(&self) -> c_int;
+ fn si_errno(&self) -> c_int;
+ fn si_code(&self) -> c_int;
+ unsafe fn si_status(&self) -> c_int;
+}
+
+impl SiginfoExt for siginfo_t {
+ #[inline]
+ fn si_signo(&self) -> c_int {
+ // SAFETY: This is technically a union access, but it's only a union
+ // with padding.
+ unsafe { self.__bindgen_anon_1.__bindgen_anon_1.si_signo }
+ }
+
+ #[inline]
+ fn si_errno(&self) -> c_int {
+ // SAFETY: This is technically a union access, but it's only a union
+ // with padding.
+ unsafe { self.__bindgen_anon_1.__bindgen_anon_1.si_errno }
+ }
+
+ #[inline]
+ fn si_code(&self) -> c_int {
+ // SAFETY: This is technically a union access, but it's only a union
+ // with padding.
+ unsafe { self.__bindgen_anon_1.__bindgen_anon_1.si_code }
+ }
+
+ /// Return the exit status or signal number recorded in a `siginfo_t`.
+ ///
+ /// # Safety
+ ///
+ /// `si_signo` must equal `SIGCHLD` (as it is guaranteed to do after a
+ /// `waitid` call).
+ #[inline]
+ unsafe fn si_status(&self) -> c_int {
+ self.__bindgen_anon_1
+ .__bindgen_anon_1
+ ._sifields
+ ._sigchld
+ ._status
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_libc_correspondence() {
+ for status in [
+ 0,
+ 1,
+ 63,
+ 64,
+ 65,
+ 127,
+ 128,
+ 129,
+ 255,
+ 256,
+ 257,
+ 4095,
+ 4096,
+ 4097,
+ i32::MAX,
+ i32::MIN,
+ u32::MAX as i32,
+ ] {
+ assert_eq!(WIFSTOPPED(status), libc::WIFSTOPPED(status));
+ assert_eq!(WSTOPSIG(status), libc::WSTOPSIG(status));
+ assert_eq!(WIFCONTINUED(status), libc::WIFCONTINUED(status));
+ assert_eq!(WIFSIGNALED(status), libc::WIFSIGNALED(status));
+ assert_eq!(WTERMSIG(status), libc::WTERMSIG(status));
+ assert_eq!(WIFEXITED(status), libc::WIFEXITED(status));
+ assert_eq!(WEXITSTATUS(status), libc::WEXITSTATUS(status));
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/pty/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/pty/mod.rs
new file mode 100644
index 0000000..ef944f0
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/pty/mod.rs
@@ -0,0 +1 @@
+pub(crate) mod syscalls;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/pty/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/pty/syscalls.rs
new file mode 100644
index 0000000..b64344f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/pty/syscalls.rs
@@ -0,0 +1,43 @@
+//! linux_raw syscalls supporting `rustix::pty`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use crate::backend::conv::{by_ref, c_uint, ret};
+use crate::fd::BorrowedFd;
+use crate::io;
+use linux_raw_sys::ioctl::TIOCSPTLCK;
+#[cfg(feature = "alloc")]
+use {
+ crate::backend::c, crate::ffi::CString, crate::path::DecInt, alloc::vec::Vec,
+ core::mem::MaybeUninit, linux_raw_sys::ioctl::TIOCGPTN,
+};
+
+#[cfg(feature = "alloc")]
+#[inline]
+pub(crate) fn ptsname(fd: BorrowedFd<'_>, mut buffer: Vec<u8>) -> io::Result<CString> {
+ unsafe {
+ let mut n = MaybeUninit::<c::c_int>::uninit();
+ ret(syscall!(__NR_ioctl, fd, c_uint(TIOCGPTN), &mut n))?;
+
+ buffer.clear();
+ buffer.extend_from_slice(b"/dev/pts/");
+ buffer.extend_from_slice(DecInt::new(n.assume_init()).as_bytes());
+ buffer.push(b'\0');
+ Ok(CString::from_vec_with_nul_unchecked(buffer))
+ }
+}
+
+#[inline]
+pub(crate) fn unlockpt(fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_ioctl,
+ fd,
+ c_uint(TIOCSPTLCK),
+ by_ref(&0)
+ ))
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/rand/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/rand/mod.rs
new file mode 100644
index 0000000..1e0181a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/rand/mod.rs
@@ -0,0 +1,2 @@
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/rand/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/rand/syscalls.rs
new file mode 100644
index 0000000..acea396
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/rand/syscalls.rs
@@ -0,0 +1,15 @@
+//! linux_raw syscalls supporting `rustix::rand`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use crate::backend::conv::{pass_usize, ret_usize};
+use crate::io;
+use crate::rand::GetRandomFlags;
+
+#[inline]
+pub(crate) unsafe fn getrandom(buf: (*mut u8, usize), flags: GetRandomFlags) -> io::Result<usize> {
+ ret_usize(syscall!(__NR_getrandom, buf.0, pass_usize(buf.1), flags))
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/rand/types.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/rand/types.rs
new file mode 100644
index 0000000..9bc857f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/rand/types.rs
@@ -0,0 +1,20 @@
+use bitflags::bitflags;
+
+bitflags! {
+ /// `GRND_*` flags for use with [`getrandom`].
+ ///
+ /// [`getrandom`]: crate::rand::getrandom
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct GetRandomFlags: u32 {
+ /// `GRND_RANDOM`
+ const RANDOM = linux_raw_sys::general::GRND_RANDOM;
+ /// `GRND_NONBLOCK`
+ const NONBLOCK = linux_raw_sys::general::GRND_NONBLOCK;
+ /// `GRND_INSECURE`
+ const INSECURE = linux_raw_sys::general::GRND_INSECURE;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/reg.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/reg.rs
new file mode 100644
index 0000000..57a8d26
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/reg.rs
@@ -0,0 +1,259 @@
+//! Encapsulation for system call arguments and return values.
+//!
+//! The inline-asm code paths do some amount of reordering of arguments; to
+//! ensure that we don't accidentally misroute an argument or return value, we
+//! use distinct types for each argument index and return value.
+//!
+//! # Safety
+//!
+//! The `ToAsm` and `FromAsm` traits are unsafe to use; they should only be
+//! used by the syscall code which executes actual syscall machine
+//! instructions.
+
+#![allow(unsafe_code)]
+
+use super::c;
+use super::fd::RawFd;
+use core::marker::PhantomData;
+use core::ops::Range;
+
+pub(super) trait ToAsm: private::Sealed {
+ /// Convert `self` to a `usize` ready to be passed to a syscall
+ /// machine instruction.
+ ///
+ /// # Safety
+ ///
+ /// This should be used immediately before the syscall instruction, and the
+ /// returned value shouldn't be used for any other purpose.
+ #[must_use]
+ unsafe fn to_asm(self) -> *mut Opaque;
+}
+
+pub(super) trait FromAsm: private::Sealed {
+ /// Convert `raw` from a value produced by a syscall machine instruction
+ /// into a `Self`.
+ ///
+ /// # Safety
+ ///
+ /// This should be used immediately after the syscall instruction, and the
+ /// operand value shouldn't be used for any other purpose.
+ #[must_use]
+ unsafe fn from_asm(raw: *mut Opaque) -> Self;
+}
+
+/// To preserve provenance, syscall arguments and return values are passed as
+/// pointer types. They need a type to point to, so we define a custom private
+/// type, to prevent it from being used for anything else.
+#[repr(transparent)]
+#[allow(dead_code)]
+pub(super) struct Opaque(c::c_void);
+
+// Argument numbers.
+pub(super) struct A0(());
+pub(super) struct A1(());
+pub(super) struct A2(());
+pub(super) struct A3(());
+pub(super) struct A4(());
+pub(super) struct A5(());
+#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
+pub(super) struct A6(());
+#[cfg(target_arch = "x86")]
+pub(super) struct SocketArg;
+
+pub(super) trait ArgNumber: private::Sealed {}
+impl ArgNumber for A0 {}
+impl ArgNumber for A1 {}
+impl ArgNumber for A2 {}
+impl ArgNumber for A3 {}
+impl ArgNumber for A4 {}
+impl ArgNumber for A5 {}
+#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
+impl ArgNumber for A6 {}
+#[cfg(target_arch = "x86")]
+impl ArgNumber for SocketArg {}
+
+// Return value numbers.
+pub(super) struct R0(());
+
+pub(super) trait RetNumber: private::Sealed {}
+impl RetNumber for R0 {}
+
+/// Syscall arguments use register-sized types. We use a newtype to
+/// discourage accidental misuse of the raw integer values.
+///
+/// This type doesn't implement `Clone` or `Copy`; it should be used exactly
+/// once. And it has a lifetime to ensure that it doesn't outlive any resources
+/// it might be pointing to.
+#[repr(transparent)]
+#[must_use]
+pub(super) struct ArgReg<'a, Num: ArgNumber> {
+ raw: *mut Opaque,
+ _phantom: PhantomData<(&'a (), Num)>,
+}
+
+impl<'a, Num: ArgNumber> ToAsm for ArgReg<'a, Num> {
+ #[inline]
+ unsafe fn to_asm(self) -> *mut Opaque {
+ self.raw
+ }
+}
+
+/// Syscall return values use register-sized types. We use a newtype to
+/// discourage accidental misuse of the raw integer values.
+///
+/// This type doesn't implement `Clone` or `Copy`; it should be used exactly
+/// once.
+#[repr(transparent)]
+#[must_use]
+pub(super) struct RetReg<Num: RetNumber> {
+ raw: *mut Opaque,
+ _phantom: PhantomData<Num>,
+}
+
+impl<Num: RetNumber> RetReg<Num> {
+ #[inline]
+ pub(super) fn decode_usize(self) -> usize {
+ debug_assert!(!(-4095..0).contains(&(self.raw as isize)));
+ self.raw as usize
+ }
+
+ #[inline]
+ pub(super) fn decode_raw_fd(self) -> RawFd {
+ let bits = self.decode_usize();
+ let raw_fd = bits as RawFd;
+
+ // Converting `raw` to `RawFd` should be lossless.
+ debug_assert_eq!(raw_fd as usize, bits);
+
+ raw_fd
+ }
+
+ #[inline]
+ pub(super) fn decode_c_int(self) -> c::c_int {
+ let bits = self.decode_usize();
+ let c_int_ = bits as c::c_int;
+
+ // Converting `raw` to `c_int` should be lossless.
+ debug_assert_eq!(c_int_ as usize, bits);
+
+ c_int_
+ }
+
+ #[inline]
+ pub(super) fn decode_c_uint(self) -> c::c_uint {
+ let bits = self.decode_usize();
+ let c_uint_ = bits as c::c_uint;
+
+ // Converting `raw` to `c_uint` should be lossless.
+ debug_assert_eq!(c_uint_ as usize, bits);
+
+ c_uint_
+ }
+
+ #[inline]
+ pub(super) fn decode_void_star(self) -> *mut c::c_void {
+ self.raw.cast()
+ }
+
+ #[cfg(target_pointer_width = "64")]
+ #[inline]
+ pub(super) fn decode_u64(self) -> u64 {
+ self.decode_usize() as u64
+ }
+
+ #[inline]
+ pub(super) fn decode_void(self) {
+ let ignore = self.decode_usize();
+ debug_assert_eq!(ignore, 0);
+ }
+
+ #[inline]
+ pub(super) fn decode_error_code(self) -> u16 {
+ let bits = self.raw as usize;
+
+ // `raw` must be in `-4095..0`. Linux always returns errors in
+ // `-4095..0`, and we double-check it here.
+ debug_assert!((-4095..0).contains(&(bits as isize)));
+
+ bits as u16
+ }
+
+ #[inline]
+ pub(super) fn is_nonzero(&self) -> bool {
+ !self.raw.is_null()
+ }
+
+ #[inline]
+ pub(super) fn is_negative(&self) -> bool {
+ (self.raw as isize) < 0
+ }
+
+ #[inline]
+ pub(super) fn is_in_range(&self, range: Range<isize>) -> bool {
+ range.contains(&(self.raw as isize))
+ }
+}
+
+impl<Num: RetNumber> FromAsm for RetReg<Num> {
+ #[inline]
+ unsafe fn from_asm(raw: *mut Opaque) -> Self {
+ Self {
+ raw,
+ _phantom: PhantomData,
+ }
+ }
+}
+
+#[repr(transparent)]
+pub(super) struct SyscallNumber<'a> {
+ pub(super) nr: usize,
+ _phantom: PhantomData<&'a ()>,
+}
+
+impl<'a> ToAsm for SyscallNumber<'a> {
+ #[inline]
+ unsafe fn to_asm(self) -> *mut Opaque {
+ self.nr as usize as *mut Opaque
+ }
+}
+
+/// Encode a system call argument as an `ArgReg`.
+#[inline]
+pub(super) fn raw_arg<'a, Num: ArgNumber>(raw: *mut Opaque) -> ArgReg<'a, Num> {
+ ArgReg {
+ raw,
+ _phantom: PhantomData,
+ }
+}
+
+/// Encode a system call number (a `__NR_*` constant) as a `SyscallNumber`.
+#[inline]
+pub(super) const fn nr<'a>(nr: u32) -> SyscallNumber<'a> {
+ SyscallNumber {
+ nr: nr as usize,
+ _phantom: PhantomData,
+ }
+}
+
+/// Seal our various traits using the technique documented [here].
+///
+/// [here]: https://rust-lang.github.io/api-guidelines/future-proofing.html
+mod private {
+ pub trait Sealed {}
+
+ // Implement for those same types, but no others.
+ impl<'a, Num: super::ArgNumber> Sealed for super::ArgReg<'a, Num> {}
+ impl<Num: super::RetNumber> Sealed for super::RetReg<Num> {}
+ impl<'a> Sealed for super::SyscallNumber<'a> {}
+ impl Sealed for super::A0 {}
+ impl Sealed for super::A1 {}
+ impl Sealed for super::A2 {}
+ impl Sealed for super::A3 {}
+ impl Sealed for super::A4 {}
+ impl Sealed for super::A5 {}
+ #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
+ impl Sealed for super::A6 {}
+ #[cfg(target_arch = "x86")]
+ impl Sealed for super::SocketArg {}
+ impl Sealed for super::R0 {}
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/runtime/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/runtime/mod.rs
new file mode 100644
index 0000000..0b48649
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/runtime/mod.rs
@@ -0,0 +1,2 @@
+pub(crate) mod syscalls;
+pub(crate) mod tls;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/runtime/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/runtime/syscalls.rs
new file mode 100644
index 0000000..1e00030
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/runtime/syscalls.rs
@@ -0,0 +1,346 @@
+//! linux_raw syscalls supporting `rustix::runtime`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use crate::backend::c;
+#[cfg(target_arch = "x86")]
+use crate::backend::conv::by_mut;
+#[cfg(target_arch = "x86_64")]
+use crate::backend::conv::c_uint;
+use crate::backend::conv::{
+ by_ref, c_int, opt_ref, ret, ret_c_int, ret_c_int_infallible, ret_error, ret_infallible,
+ ret_void_star, size_of, zero,
+};
+#[cfg(feature = "fs")]
+use crate::fd::BorrowedFd;
+use crate::ffi::CStr;
+#[cfg(feature = "fs")]
+use crate::fs::AtFlags;
+use crate::io;
+use crate::pid::{Pid, RawPid};
+use crate::runtime::{Fork, How, KernelSigSet, KernelSigaction, Siginfo, Stack};
+use crate::signal::Signal;
+use crate::timespec::Timespec;
+use core::ffi::c_void;
+use core::mem::MaybeUninit;
+#[cfg(all(target_pointer_width = "32", not(feature = "linux_5_1")))]
+use linux_raw_sys::general::__kernel_old_timespec;
+#[cfg(target_arch = "x86_64")]
+use linux_raw_sys::general::ARCH_SET_FS;
+
+#[inline]
+pub(crate) unsafe fn kernel_fork() -> io::Result<Fork> {
+ let mut child_pid = MaybeUninit::<RawPid>::uninit();
+
+ // Unix `fork` only returns the child PID in the parent; we'd like it in
+ // the child too, so set `CLONE_CHILD_SETTID` and pass in the address of a
+ // memory location to store it to in the child.
+ //
+ // Architectures differ on the order of the parameters.
+ #[cfg(target_arch = "x86_64")]
+ let pid = ret_c_int(syscall!(
+ __NR_clone,
+ c_int(c::SIGCHLD | c::CLONE_CHILD_SETTID),
+ zero(),
+ zero(),
+ &mut child_pid,
+ zero()
+ ))?;
+ #[cfg(any(
+ target_arch = "aarch64",
+ target_arch = "arm",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "riscv64",
+ target_arch = "s390x",
+ target_arch = "x86"
+ ))]
+ let pid = ret_c_int(syscall!(
+ __NR_clone,
+ c_int(c::SIGCHLD | c::CLONE_CHILD_SETTID),
+ zero(),
+ zero(),
+ zero(),
+ &mut child_pid
+ ))?;
+
+ Ok(if let Some(pid) = Pid::from_raw(pid) {
+ Fork::ParentOf(pid)
+ } else {
+ Fork::Child(Pid::from_raw_unchecked(child_pid.assume_init()))
+ })
+}
+
+#[cfg(feature = "fs")]
+pub(crate) unsafe fn execveat(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ args: *const *const u8,
+ env_vars: *const *const u8,
+ flags: AtFlags,
+) -> io::Errno {
+ ret_error(syscall_readonly!(
+ __NR_execveat,
+ dirfd,
+ path,
+ args,
+ env_vars,
+ flags
+ ))
+}
+
+pub(crate) unsafe fn execve(
+ path: &CStr,
+ args: *const *const u8,
+ env_vars: *const *const u8,
+) -> io::Errno {
+ ret_error(syscall_readonly!(__NR_execve, path, args, env_vars))
+}
+
+pub(crate) mod tls {
+ use super::*;
+ #[cfg(target_arch = "x86")]
+ use crate::backend::runtime::tls::UserDesc;
+
+ #[cfg(target_arch = "x86")]
+ #[inline]
+ pub(crate) unsafe fn set_thread_area(u_info: &mut UserDesc) -> io::Result<()> {
+ ret(syscall!(__NR_set_thread_area, by_mut(u_info)))
+ }
+
+ #[cfg(target_arch = "arm")]
+ #[inline]
+ pub(crate) unsafe fn arm_set_tls(data: *mut c::c_void) -> io::Result<()> {
+ ret(syscall_readonly!(__ARM_NR_set_tls, data))
+ }
+
+ #[cfg(target_arch = "x86_64")]
+ #[inline]
+ pub(crate) unsafe fn set_fs(data: *mut c::c_void) {
+ ret_infallible(syscall_readonly!(
+ __NR_arch_prctl,
+ c_uint(ARCH_SET_FS),
+ data,
+ zero(),
+ zero(),
+ zero()
+ ))
+ }
+
+ #[inline]
+ pub(crate) unsafe fn set_tid_address(data: *mut c::c_void) -> Pid {
+ let tid: i32 = ret_c_int_infallible(syscall_readonly!(__NR_set_tid_address, data));
+ Pid::from_raw_unchecked(tid)
+ }
+
+ #[inline]
+ pub(crate) fn exit_thread(code: c::c_int) -> ! {
+ unsafe { syscall_noreturn!(__NR_exit, c_int(code)) }
+ }
+}
+
+#[inline]
+pub(crate) unsafe fn kernel_sigaction(
+ signal: Signal,
+ new: Option<KernelSigaction>,
+) -> io::Result<KernelSigaction> {
+ let mut old = MaybeUninit::<KernelSigaction>::uninit();
+ let new = opt_ref(new.as_ref());
+ ret(syscall!(
+ __NR_rt_sigaction,
+ signal,
+ new,
+ &mut old,
+ size_of::<KernelSigSet, _>()
+ ))?;
+ Ok(old.assume_init())
+}
+
+#[inline]
+pub(crate) unsafe fn kernel_sigaltstack(new: Option<Stack>) -> io::Result<Stack> {
+ let mut old = MaybeUninit::<Stack>::uninit();
+ let new = opt_ref(new.as_ref());
+ ret(syscall!(__NR_sigaltstack, new, &mut old))?;
+ Ok(old.assume_init())
+}
+
+#[inline]
+pub(crate) unsafe fn tkill(tid: Pid, sig: Signal) -> io::Result<()> {
+ ret(syscall_readonly!(__NR_tkill, tid, sig))
+}
+
+#[inline]
+pub(crate) unsafe fn kernel_sigprocmask(
+ how: How,
+ new: Option<&KernelSigSet>,
+) -> io::Result<KernelSigSet> {
+ let mut old = MaybeUninit::<KernelSigSet>::uninit();
+ let new = opt_ref(new);
+ ret(syscall!(
+ __NR_rt_sigprocmask,
+ how,
+ new,
+ &mut old,
+ size_of::<KernelSigSet, _>()
+ ))?;
+ Ok(old.assume_init())
+}
+
+#[inline]
+pub(crate) fn kernel_sigpending() -> KernelSigSet {
+ let mut pending = MaybeUninit::<KernelSigSet>::uninit();
+ unsafe {
+ ret_infallible(syscall!(
+ __NR_rt_sigpending,
+ &mut pending,
+ size_of::<KernelSigSet, _>()
+ ));
+ pending.assume_init()
+ }
+}
+
+#[inline]
+pub(crate) fn kernel_sigsuspend(set: &KernelSigSet) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_rt_sigsuspend,
+ by_ref(set),
+ size_of::<KernelSigSet, _>()
+ ))
+ }
+}
+
+#[inline]
+pub(crate) unsafe fn kernel_sigwait(set: &KernelSigSet) -> io::Result<Signal> {
+ Ok(Signal::from_raw_unchecked(ret_c_int(syscall_readonly!(
+ __NR_rt_sigtimedwait,
+ by_ref(set),
+ zero(),
+ zero(),
+ size_of::<KernelSigSet, _>()
+ ))?))
+}
+
+#[inline]
+pub(crate) unsafe fn kernel_sigwaitinfo(set: &KernelSigSet) -> io::Result<Siginfo> {
+ let mut info = MaybeUninit::<Siginfo>::uninit();
+ let _signum = ret_c_int(syscall!(
+ __NR_rt_sigtimedwait,
+ by_ref(set),
+ &mut info,
+ zero(),
+ size_of::<KernelSigSet, _>()
+ ))?;
+ Ok(info.assume_init())
+}
+
+#[inline]
+pub(crate) unsafe fn kernel_sigtimedwait(
+ set: &KernelSigSet,
+ timeout: Option<&Timespec>,
+) -> io::Result<Siginfo> {
+ let mut info = MaybeUninit::<Siginfo>::uninit();
+
+ // `rt_sigtimedwait_time64` was introduced in Linux 5.1. The old
+ // `rt_sigtimedwait` syscall is not y2038-compatible on 32-bit
+ // architectures.
+ #[cfg(target_pointer_width = "32")]
+ {
+ // If we don't have Linux 5.1, and the timeout fits in a
+ // `__kernel_old_timespec`, use plain `rt_sigtimedwait`.
+ //
+ // We do this unconditionally, rather than trying
+ // `rt_sigtimedwait_time64` and falling back on `Errno::NOSYS`, because
+ // seccomp configurations will sometimes abort the process on syscalls
+ // they don't recognize.
+ #[cfg(not(feature = "linux_5_1"))]
+ {
+ // If we don't have a timeout, or if we can convert the timeout to
+ // a `__kernel_old_timespec`, the use `__NR_futex`.
+ fn convert(timeout: &Timespec) -> Option<__kernel_old_timespec> {
+ Some(__kernel_old_timespec {
+ tv_sec: timeout.tv_sec.try_into().ok()?,
+ tv_nsec: timeout.tv_nsec.try_into().ok()?,
+ })
+ }
+ let old_timeout = if let Some(timeout) = timeout {
+ match convert(timeout) {
+ // Could not convert timeout.
+ None => None,
+ // Could convert timeout. Ok!
+ Some(old_timeout) => Some(Some(old_timeout)),
+ }
+ } else {
+ // No timeout. Ok!
+ Some(None)
+ };
+ if let Some(old_timeout) = old_timeout {
+ return ret_c_int(syscall!(
+ __NR_rt_sigtimedwait,
+ by_ref(set),
+ &mut info,
+ opt_ref(old_timeout.as_ref()),
+ size_of::<KernelSigSet, _>()
+ ))
+ .map(|sig| {
+ debug_assert_eq!(
+ sig,
+ info.assume_init_ref()
+ .__bindgen_anon_1
+ .__bindgen_anon_1
+ .si_signo
+ );
+ info.assume_init()
+ });
+ }
+ }
+
+ ret_c_int(syscall!(
+ __NR_rt_sigtimedwait_time64,
+ by_ref(set),
+ &mut info,
+ opt_ref(timeout),
+ size_of::<KernelSigSet, _>()
+ ))
+ .map(|sig| {
+ debug_assert_eq!(
+ sig,
+ info.assume_init_ref()
+ .__bindgen_anon_1
+ .__bindgen_anon_1
+ .si_signo
+ );
+ info.assume_init()
+ })
+ }
+
+ #[cfg(target_pointer_width = "64")]
+ {
+ let _signum = ret_c_int(syscall!(
+ __NR_rt_sigtimedwait,
+ by_ref(set),
+ &mut info,
+ opt_ref(timeout),
+ size_of::<KernelSigSet, _>()
+ ))?;
+ Ok(info.assume_init())
+ }
+}
+
+#[inline]
+pub(crate) fn exit_group(code: c::c_int) -> ! {
+ unsafe { syscall_noreturn!(__NR_exit_group, c_int(code)) }
+}
+
+#[inline]
+pub(crate) unsafe fn kernel_brk(addr: *mut c::c_void) -> io::Result<*mut c_void> {
+ // This is non-`readonly`, to prevent loads from being reordered past it.
+ ret_void_star(syscall!(__NR_brk, addr))
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/runtime/tls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/runtime/tls.rs
new file mode 100644
index 0000000..bc04a70
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/runtime/tls.rs
@@ -0,0 +1,7 @@
+//! TLS utilities.
+
+/// For use with [`set_thread_area`].
+///
+/// [`set_thread_area`]: crate::runtime::set_thread_area
+#[cfg(target_arch = "x86")]
+pub type UserDesc = linux_raw_sys::general::user_desc;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/shm/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/shm/mod.rs
new file mode 100644
index 0000000..1e0181a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/shm/mod.rs
@@ -0,0 +1,2 @@
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/shm/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/shm/syscalls.rs
new file mode 100644
index 0000000..77b96d9
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/shm/syscalls.rs
@@ -0,0 +1,46 @@
+use crate::ffi::CStr;
+
+use crate::backend::fs::syscalls::{open, unlink};
+use crate::backend::fs::types::{Mode, OFlags};
+use crate::fd::OwnedFd;
+use crate::{io, shm};
+
+const NAME_MAX: usize = 255;
+const SHM_DIR: &[u8] = b"/dev/shm/";
+
+fn get_shm_name(name: &CStr) -> io::Result<([u8; NAME_MAX + SHM_DIR.len() + 1], usize)> {
+ let name = name.to_bytes();
+
+ if name.len() > NAME_MAX {
+ return Err(io::Errno::NAMETOOLONG);
+ }
+
+ let num_slashes = name.iter().take_while(|x| **x == b'/').count();
+ let after_slashes = &name[num_slashes..];
+ if after_slashes.is_empty()
+ || after_slashes == b"."
+ || after_slashes == b".."
+ || after_slashes.contains(&b'/')
+ {
+ return Err(io::Errno::INVAL);
+ }
+
+ let mut path = [0; NAME_MAX + SHM_DIR.len() + 1];
+ path[..SHM_DIR.len()].copy_from_slice(SHM_DIR);
+ path[SHM_DIR.len()..SHM_DIR.len() + name.len()].copy_from_slice(name);
+ Ok((path, SHM_DIR.len() + name.len() + 1))
+}
+
+pub(crate) fn shm_open(name: &CStr, oflags: shm::OFlags, mode: Mode) -> io::Result<OwnedFd> {
+ let (path, len) = get_shm_name(name)?;
+ open(
+ CStr::from_bytes_with_nul(&path[..len]).unwrap(),
+ OFlags::from_bits(oflags.bits()).unwrap() | OFlags::CLOEXEC,
+ mode,
+ )
+}
+
+pub(crate) fn shm_unlink(name: &CStr) -> io::Result<()> {
+ let (path, len) = get_shm_name(name)?;
+ unlink(CStr::from_bytes_with_nul(&path[..len]).unwrap())
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/shm/types.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/shm/types.rs
new file mode 100644
index 0000000..e1e8fc0
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/shm/types.rs
@@ -0,0 +1,30 @@
+use crate::ffi;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `O_*` constants for use with [`shm::open`].
+ ///
+ /// [`shm::open`]: crate:shm::open
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ShmOFlags: ffi::c_uint {
+ /// `O_CREAT`
+ #[doc(alias = "CREAT")]
+ const CREATE = linux_raw_sys::general::O_CREAT;
+
+ /// `O_EXCL`
+ const EXCL = linux_raw_sys::general::O_EXCL;
+
+ /// `O_RDONLY`
+ const RDONLY = linux_raw_sys::general::O_RDONLY;
+
+ /// `O_RDWR`
+ const RDWR = linux_raw_sys::general::O_RDWR;
+
+ /// `O_TRUNC`
+ const TRUNC = linux_raw_sys::general::O_TRUNC;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/system/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/system/mod.rs
new file mode 100644
index 0000000..1e0181a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/system/mod.rs
@@ -0,0 +1,2 @@
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/system/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/system/syscalls.rs
new file mode 100644
index 0000000..bbee268
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/system/syscalls.rs
@@ -0,0 +1,91 @@
+//! linux_raw syscalls supporting `rustix::system`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use super::types::RawUname;
+use crate::backend::c;
+use crate::backend::conv::{c_int, ret, ret_infallible, slice};
+use crate::fd::BorrowedFd;
+use crate::ffi::CStr;
+use crate::io;
+use crate::system::{RebootCommand, Sysinfo};
+use core::mem::MaybeUninit;
+
+#[inline]
+pub(crate) fn uname() -> RawUname {
+ let mut uname = MaybeUninit::<RawUname>::uninit();
+ unsafe {
+ ret_infallible(syscall!(__NR_uname, &mut uname));
+ uname.assume_init()
+ }
+}
+
+#[inline]
+pub(crate) fn sysinfo() -> Sysinfo {
+ let mut info = MaybeUninit::<Sysinfo>::uninit();
+ unsafe {
+ ret_infallible(syscall!(__NR_sysinfo, &mut info));
+ info.assume_init()
+ }
+}
+
+#[inline]
+pub(crate) fn sethostname(name: &[u8]) -> io::Result<()> {
+ let (ptr, len) = slice(name);
+ unsafe { ret(syscall_readonly!(__NR_sethostname, ptr, len)) }
+}
+
+#[inline]
+pub(crate) fn setdomainname(name: &[u8]) -> io::Result<()> {
+ let (ptr, len) = slice(name);
+ unsafe { ret(syscall_readonly!(__NR_setdomainname, ptr, len)) }
+}
+
+#[inline]
+pub(crate) fn reboot(cmd: RebootCommand) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_reboot,
+ c_int(c::LINUX_REBOOT_MAGIC1),
+ c_int(c::LINUX_REBOOT_MAGIC2),
+ c_int(cmd as i32)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn init_module(image: &[u8], param_values: &CStr) -> io::Result<()> {
+ let (image, len) = slice(image);
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_init_module,
+ image,
+ len,
+ param_values
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn finit_module(
+ fd: BorrowedFd<'_>,
+ param_values: &CStr,
+ flags: c::c_int,
+) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_finit_module,
+ fd,
+ param_values,
+ c_int(flags)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn delete_module(name: &CStr, flags: c::c_int) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_delete_module, name, c_int(flags))) }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/system/types.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/system/types.rs
new file mode 100644
index 0000000..92cc527
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/system/types.rs
@@ -0,0 +1,39 @@
+use crate::ffi;
+use core::mem::size_of;
+
+/// `sysinfo`
+#[non_exhaustive]
+#[repr(C)]
+pub struct Sysinfo {
+ /// Seconds since boot
+ pub uptime: ffi::c_long,
+ /// 1, 5, and 15 minute load averages
+ pub loads: [ffi::c_ulong; 3],
+ /// Total usable main memory size
+ pub totalram: ffi::c_ulong,
+ /// Available memory size
+ pub freeram: ffi::c_ulong,
+ /// Amount of shared memory
+ pub sharedram: ffi::c_ulong,
+ /// Memory used by buffers
+ pub bufferram: ffi::c_ulong,
+ /// Total swap space size
+ pub totalswap: ffi::c_ulong,
+ /// Swap space still available
+ pub freeswap: ffi::c_ulong,
+ /// Number of current processes
+ pub procs: ffi::c_ushort,
+
+ pub(crate) pad: ffi::c_ushort,
+
+ /// Total high memory size
+ pub totalhigh: ffi::c_ulong,
+ /// Available high memory size
+ pub freehigh: ffi::c_ulong,
+ /// Memory unit size in bytes
+ pub mem_unit: ffi::c_uint,
+
+ pub(crate) f: [u8; 20 - 2 * size_of::<ffi::c_long>() - size_of::<ffi::c_int>()],
+}
+
+pub(crate) type RawUname = linux_raw_sys::system::new_utsname;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/termios/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/termios/mod.rs
new file mode 100644
index 0000000..1e0181a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/termios/mod.rs
@@ -0,0 +1,2 @@
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/termios/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/termios/syscalls.rs
new file mode 100644
index 0000000..07c3a3d
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/termios/syscalls.rs
@@ -0,0 +1,425 @@
+//! linux_raw syscalls supporting `rustix::termios`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use crate::backend::c;
+use crate::backend::conv::{by_ref, c_uint, ret};
+use crate::fd::BorrowedFd;
+#[cfg(feature = "alloc")]
+use crate::ffi::CStr;
+use crate::io;
+use crate::pid::Pid;
+use crate::termios::{
+ speed, Action, ControlModes, InputModes, LocalModes, OptionalActions, OutputModes,
+ QueueSelector, SpecialCodeIndex, Termios, Winsize,
+};
+#[cfg(feature = "alloc")]
+#[cfg(feature = "fs")]
+use crate::{fs::FileType, path::DecInt};
+use core::mem::MaybeUninit;
+
+#[inline]
+pub(crate) fn tcgetwinsize(fd: BorrowedFd<'_>) -> io::Result<Winsize> {
+ unsafe {
+ let mut result = MaybeUninit::<Winsize>::uninit();
+ ret(syscall!(__NR_ioctl, fd, c_uint(c::TIOCGWINSZ), &mut result))?;
+ Ok(result.assume_init())
+ }
+}
+
+#[inline]
+pub(crate) fn tcgetattr(fd: BorrowedFd<'_>) -> io::Result<Termios> {
+ let mut result = MaybeUninit::<Termios>::uninit();
+
+ // SAFETY: This invokes the `TCGETS2` ioctl, which initializes the full
+ // `Termios` structure.
+ unsafe {
+ match ret(syscall!(__NR_ioctl, fd, c_uint(c::TCGETS2), &mut result)) {
+ Ok(()) => Ok(result.assume_init()),
+
+ // A `NOTTY` or `ACCESS` might mean the OS doesn't support
+ // `TCGETS2`, for example a seccomp environment or WSL that only
+ // knows about `TCGETS`. Fall back to the old `TCGETS`.
+ #[cfg(not(any(target_arch = "powerpc", target_arch = "powerpc64")))]
+ Err(io::Errno::NOTTY) | Err(io::Errno::ACCESS) => tcgetattr_fallback(fd),
+
+ Err(err) => Err(err),
+ }
+ }
+}
+
+/// Implement `tcgetattr` using the old `TCGETS` ioctl.
+#[cfg(not(any(target_arch = "powerpc", target_arch = "powerpc64")))]
+#[cold]
+fn tcgetattr_fallback(fd: BorrowedFd<'_>) -> io::Result<Termios> {
+ use core::ptr::{addr_of, addr_of_mut};
+
+ let mut result = MaybeUninit::<Termios>::uninit();
+
+ // SAFETY: This invokes the `TCGETS` ioctl which initializes the `Termios`
+ // structure except for the `input_speed` and `output_speed` fields, which
+ // we manually initialize before forming a reference to the full `Termios`.
+ unsafe {
+ // Do the old `TCGETS` call.
+ ret(syscall!(__NR_ioctl, fd, c_uint(c::TCGETS), &mut result))?;
+
+ // Read the `control_modes` field without forming a reference to the
+ // `Termios` because it isn't fully initialized yet.
+ let ptr = result.as_mut_ptr();
+ let control_modes = addr_of!((*ptr).control_modes).read();
+
+ // Infer the output speed and set `output_speed`.
+ let encoded_out = control_modes.bits() & c::CBAUD;
+ let output_speed = match speed::decode(encoded_out) {
+ Some(output_speed) => output_speed,
+ None => return Err(io::Errno::RANGE),
+ };
+ addr_of_mut!((*ptr).output_speed).write(output_speed);
+
+ // Infer the input speed and set `input_speed`. `B0` is a special-case
+ // that means the input speed is the same as the output speed.
+ let encoded_in = (control_modes.bits() & c::CIBAUD) >> c::IBSHIFT;
+ let input_speed = if encoded_in == c::B0 {
+ output_speed
+ } else {
+ match speed::decode(encoded_in) {
+ Some(input_speed) => input_speed,
+ None => return Err(io::Errno::RANGE),
+ }
+ };
+ addr_of_mut!((*ptr).input_speed).write(input_speed);
+
+ // Now all the fields are set.
+ Ok(result.assume_init())
+ }
+}
+
+#[inline]
+pub(crate) fn tcgetpgrp(fd: BorrowedFd<'_>) -> io::Result<Pid> {
+ unsafe {
+ let mut result = MaybeUninit::<c::pid_t>::uninit();
+ ret(syscall!(__NR_ioctl, fd, c_uint(c::TIOCGPGRP), &mut result))?;
+ let pid = result.assume_init();
+
+ // This doesn't appear to be documented, but it appears `tcsetpgrp` can
+ // succeed and set the pid to 0 if we pass it a pseudo-terminal device
+ // fd. For now, fail with `OPNOTSUPP`.
+ if pid == 0 {
+ return Err(io::Errno::OPNOTSUPP);
+ }
+
+ Ok(Pid::from_raw_unchecked(pid))
+ }
+}
+
+#[inline]
+pub(crate) fn tcsetattr(
+ fd: BorrowedFd<'_>,
+ optional_actions: OptionalActions,
+ termios: &Termios,
+) -> io::Result<()> {
+ // Translate from `optional_actions` into a `TCSETS2` ioctl request code.
+ // On MIPS, `optional_actions` has `TCSETS` added to it.
+ let request = c::TCSETS2
+ + if cfg!(any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )) {
+ optional_actions as u32 - c::TCSETS
+ } else {
+ optional_actions as u32
+ };
+
+ // SAFETY: This invokes the `TCSETS2` ioctl.
+ unsafe {
+ match ret(syscall_readonly!(
+ __NR_ioctl,
+ fd,
+ c_uint(request),
+ by_ref(termios)
+ )) {
+ Ok(()) => Ok(()),
+
+ // Similar to `tcgetattr_fallback`, `NOTTY` or `ACCESS` might mean
+ // the OS doesn't support `TCSETS2`. Fall back to the old `TCSETS`.
+ #[cfg(not(any(target_arch = "powerpc", target_arch = "powerpc64")))]
+ Err(io::Errno::NOTTY) | Err(io::Errno::ACCESS) => {
+ tcsetattr_fallback(fd, optional_actions, termios)
+ }
+
+ Err(err) => Err(err),
+ }
+ }
+}
+
+/// Implement `tcsetattr` using the old `TCSETS` ioctl.
+#[cfg(not(any(target_arch = "powerpc", target_arch = "powerpc64")))]
+#[cold]
+fn tcsetattr_fallback(
+ fd: BorrowedFd<'_>,
+ optional_actions: OptionalActions,
+ termios: &Termios,
+) -> io::Result<()> {
+ // `TCSETS` silently accepts `BOTHER` in `c_cflag` even though it doesn't
+ // read `c_ispeed`/`c_ospeed`, so detect this case and fail if needed.
+ let control_modes_bits = termios.control_modes.bits();
+ let encoded_out = control_modes_bits & c::CBAUD;
+ let encoded_in = (control_modes_bits & c::CIBAUD) >> c::IBSHIFT;
+ if encoded_out == c::BOTHER || encoded_in == c::BOTHER {
+ return Err(io::Errno::RANGE);
+ }
+
+ // Translate from `optional_actions` into a `TCSETS` ioctl request code. On
+ // MIPS, `optional_actions` already has `TCSETS` added to it.
+ let request = if cfg!(any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )) {
+ optional_actions as u32
+ } else {
+ optional_actions as u32 + c::TCSETS
+ };
+
+ // SAFETY: This invokes the `TCSETS` ioctl.
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_ioctl,
+ fd,
+ c_uint(request),
+ by_ref(termios)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn tcsendbreak(fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_ioctl,
+ fd,
+ c_uint(c::TCSBRK),
+ c_uint(0)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn tcdrain(fd: BorrowedFd<'_>) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_ioctl,
+ fd,
+ c_uint(c::TCSBRK),
+ c_uint(1)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn tcflush(fd: BorrowedFd<'_>, queue_selector: QueueSelector) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_ioctl,
+ fd,
+ c_uint(c::TCFLSH),
+ c_uint(queue_selector as u32)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn tcflow(fd: BorrowedFd<'_>, action: Action) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_ioctl,
+ fd,
+ c_uint(c::TCXONC),
+ c_uint(action as u32)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn tcgetsid(fd: BorrowedFd<'_>) -> io::Result<Pid> {
+ unsafe {
+ let mut result = MaybeUninit::<c::pid_t>::uninit();
+ ret(syscall!(__NR_ioctl, fd, c_uint(c::TIOCGSID), &mut result))?;
+ let pid = result.assume_init();
+ Ok(Pid::from_raw_unchecked(pid))
+ }
+}
+
+#[inline]
+pub(crate) fn tcsetwinsize(fd: BorrowedFd<'_>, winsize: Winsize) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_ioctl,
+ fd,
+ c_uint(c::TIOCSWINSZ),
+ by_ref(&winsize)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn tcsetpgrp(fd: BorrowedFd<'_>, pid: Pid) -> io::Result<()> {
+ let raw_pid: c::c_int = pid.as_raw_nonzero().get();
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_ioctl,
+ fd,
+ c_uint(c::TIOCSPGRP),
+ by_ref(&raw_pid)
+ ))
+ }
+}
+
+/// A wrapper around a conceptual `cfsetspeed` which handles an arbitrary
+/// integer speed value.
+#[inline]
+pub(crate) fn set_speed(termios: &mut Termios, arbitrary_speed: u32) -> io::Result<()> {
+ let encoded_speed = speed::encode(arbitrary_speed).unwrap_or(c::BOTHER);
+
+ debug_assert_eq!(encoded_speed & !c::CBAUD, 0);
+
+ termios.control_modes -= ControlModes::from_bits_retain(c::CBAUD | c::CIBAUD);
+ termios.control_modes |=
+ ControlModes::from_bits_retain(encoded_speed | (encoded_speed << c::IBSHIFT));
+
+ termios.input_speed = arbitrary_speed;
+ termios.output_speed = arbitrary_speed;
+
+ Ok(())
+}
+
+/// A wrapper around a conceptual `cfsetospeed` which handles an arbitrary
+/// integer speed value.
+#[inline]
+pub(crate) fn set_output_speed(termios: &mut Termios, arbitrary_speed: u32) -> io::Result<()> {
+ let encoded_speed = speed::encode(arbitrary_speed).unwrap_or(c::BOTHER);
+
+ debug_assert_eq!(encoded_speed & !c::CBAUD, 0);
+
+ termios.control_modes -= ControlModes::from_bits_retain(c::CBAUD);
+ termios.control_modes |= ControlModes::from_bits_retain(encoded_speed);
+
+ termios.output_speed = arbitrary_speed;
+
+ Ok(())
+}
+
+/// A wrapper around a conceptual `cfsetispeed` which handles an arbitrary
+/// integer speed value.
+#[inline]
+pub(crate) fn set_input_speed(termios: &mut Termios, arbitrary_speed: u32) -> io::Result<()> {
+ let encoded_speed = speed::encode(arbitrary_speed).unwrap_or(c::BOTHER);
+
+ debug_assert_eq!(encoded_speed & !c::CBAUD, 0);
+
+ termios.control_modes -= ControlModes::from_bits_retain(c::CIBAUD);
+ termios.control_modes |= ControlModes::from_bits_retain(encoded_speed << c::IBSHIFT);
+
+ termios.input_speed = arbitrary_speed;
+
+ Ok(())
+}
+
+#[inline]
+pub(crate) fn cfmakeraw(termios: &mut Termios) {
+ // From the Linux [`cfmakeraw` manual page]:
+ //
+ // [`cfmakeraw` manual page]: https://man7.org/linux/man-pages/man3/cfmakeraw.3.html
+ termios.input_modes -= InputModes::IGNBRK
+ | InputModes::BRKINT
+ | InputModes::PARMRK
+ | InputModes::ISTRIP
+ | InputModes::INLCR
+ | InputModes::IGNCR
+ | InputModes::ICRNL
+ | InputModes::IXON;
+ termios.output_modes -= OutputModes::OPOST;
+ termios.local_modes -= LocalModes::ECHO
+ | LocalModes::ECHONL
+ | LocalModes::ICANON
+ | LocalModes::ISIG
+ | LocalModes::IEXTEN;
+ termios.control_modes -= ControlModes::CSIZE | ControlModes::PARENB;
+ termios.control_modes |= ControlModes::CS8;
+
+ // Musl and glibc also do these:
+ termios.special_codes[SpecialCodeIndex::VMIN] = 1;
+ termios.special_codes[SpecialCodeIndex::VTIME] = 0;
+}
+
+#[inline]
+pub(crate) fn isatty(fd: BorrowedFd<'_>) -> bool {
+ // On error, Linux will return either `EINVAL` (2.6.32) or `ENOTTY`
+ // (otherwise), because we assume we're never passing an invalid
+ // file descriptor (which would get `EBADF`). Either way, an error
+ // means we don't have a tty.
+ tcgetwinsize(fd).is_ok()
+}
+
+#[cfg(feature = "alloc")]
+#[cfg(feature = "fs")]
+pub(crate) fn ttyname(fd: BorrowedFd<'_>, buf: &mut [MaybeUninit<u8>]) -> io::Result<usize> {
+ let fd_stat = crate::backend::fs::syscalls::fstat(fd)?;
+
+ // Quick check: if `fd` isn't a character device, it's not a tty.
+ if FileType::from_raw_mode(fd_stat.st_mode) != FileType::CharacterDevice {
+ return Err(io::Errno::NOTTY);
+ }
+
+ // Check that `fd` is really a tty.
+ tcgetwinsize(fd)?;
+
+ // Create the "/proc/self/fd/<fd>" string.
+ let mut proc_self_fd_buf: [u8; 25] = *b"/proc/self/fd/\0\0\0\0\0\0\0\0\0\0\0";
+ let dec_int = DecInt::from_fd(fd);
+ let bytes_with_nul = dec_int.as_bytes_with_nul();
+ proc_self_fd_buf[b"/proc/self/fd/".len()..][..bytes_with_nul.len()]
+ .copy_from_slice(bytes_with_nul);
+
+ // SAFETY: We just wrote a valid C String.
+ let proc_self_fd_path = unsafe { CStr::from_ptr(proc_self_fd_buf.as_ptr().cast()) };
+
+ let ptr = buf.as_mut_ptr();
+ let len = {
+ // Gather the ttyname by reading the "fd" file inside `proc_self_fd`.
+ let (init, uninit) = crate::fs::readlinkat_raw(crate::fs::CWD, proc_self_fd_path, buf)?;
+
+ // If the number of bytes is equal to the buffer length, truncation may
+ // have occurred. This check also ensures that we have enough space for
+ // adding a NUL terminator.
+ if uninit.is_empty() {
+ return Err(io::Errno::RANGE);
+ }
+
+ // `readlinkat` returns the number of bytes placed in the buffer.
+ // NUL-terminate the string at that offset.
+ uninit[0].write(b'\0');
+
+ init.len()
+ };
+
+ // Check that the path we read refers to the same file as `fd`.
+ {
+ // SAFETY: We just wrote the NUL byte above.
+ let path = unsafe { CStr::from_ptr(ptr.cast()) };
+
+ let path_stat = crate::backend::fs::syscalls::stat(path)?;
+ if path_stat.st_dev != fd_stat.st_dev || path_stat.st_ino != fd_stat.st_ino {
+ return Err(io::Errno::NODEV);
+ }
+ }
+
+ // Return the length, excluding the NUL terminator.
+ Ok(len)
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/termios/types.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/termios/types.rs
new file mode 100644
index 0000000..a8aaee3
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/termios/types.rs
@@ -0,0 +1,13 @@
+//! Types for the `termios` module.
+
+#![allow(non_camel_case_types)]
+
+use crate::ffi;
+
+// We don't want to use `tcflag_t` directly so we don't expose linux_raw_sys
+// publicly. It appears to be `c_ulong `on SPARC and `c_uint` everywhere else.
+
+#[cfg(target_arch = "sparc")]
+pub type tcflag_t = ffi::c_ulong;
+#[cfg(not(target_arch = "sparc"))]
+pub type tcflag_t = ffi::c_uint;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/thread/cpu_set.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/thread/cpu_set.rs
new file mode 100644
index 0000000..8c39d57
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/thread/cpu_set.rs
@@ -0,0 +1,51 @@
+//! Rust implementation of the `CPU_*` macro API.
+
+#![allow(non_snake_case)]
+
+use super::types::RawCpuSet;
+use core::mem::{size_of, size_of_val};
+
+#[inline]
+pub(crate) fn CPU_SET(cpu: usize, cpuset: &mut RawCpuSet) {
+ let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); // 32, 64 etc
+ let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits);
+ cpuset.bits[idx] |= 1 << offset
+}
+
+#[inline]
+pub(crate) fn CPU_ZERO(cpuset: &mut RawCpuSet) {
+ cpuset.bits.fill(0)
+}
+
+#[inline]
+pub(crate) fn CPU_CLR(cpu: usize, cpuset: &mut RawCpuSet) {
+ let size_in_bits = 8 * size_of_val(&cpuset.bits[0]); // 32, 64 etc
+ let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits);
+ cpuset.bits[idx] &= !(1 << offset)
+}
+
+#[inline]
+pub(crate) fn CPU_ISSET(cpu: usize, cpuset: &RawCpuSet) -> bool {
+ let size_in_bits = 8 * size_of_val(&cpuset.bits[0]);
+ let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits);
+ (cpuset.bits[idx] & (1 << offset)) != 0
+}
+
+#[inline]
+pub(crate) fn CPU_COUNT_S(size_in_bytes: usize, cpuset: &RawCpuSet) -> u32 {
+ let size_of_mask = size_of_val(&cpuset.bits[0]);
+ let idx = size_in_bytes / size_of_mask;
+ cpuset.bits[..idx]
+ .iter()
+ .fold(0, |acc, i| acc + i.count_ones())
+}
+
+#[inline]
+pub(crate) fn CPU_COUNT(cpuset: &RawCpuSet) -> u32 {
+ CPU_COUNT_S(size_of::<RawCpuSet>(), cpuset)
+}
+
+#[inline]
+pub(crate) fn CPU_EQUAL(this: &RawCpuSet, that: &RawCpuSet) -> bool {
+ this.bits == that.bits
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/thread/futex.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/thread/futex.rs
new file mode 100644
index 0000000..726cea1
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/thread/futex.rs
@@ -0,0 +1,89 @@
+bitflags::bitflags! {
+ /// `FUTEX_*` flags for use with the functions in [`futex`].
+ ///
+ /// [`futex`]: mod@crate::thread::futex
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct Flags: u32 {
+ /// `FUTEX_PRIVATE_FLAG`
+ const PRIVATE = linux_raw_sys::general::FUTEX_PRIVATE_FLAG;
+ /// `FUTEX_CLOCK_REALTIME`
+ const CLOCK_REALTIME = linux_raw_sys::general::FUTEX_CLOCK_REALTIME;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `FUTEX2_*` flags for use with the functions in [`Waitv`].
+ ///
+ /// Not to be confused with [`WaitvFlags`], which is passed as an argument
+ /// to the `waitv` function.
+ ///
+ /// [`Waitv`]: crate::thread::futex::Waitv
+ /// [`WaitvFlags`]: crate::thread::futex::WaitvFlags
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct WaitFlags: u32 {
+ /// `FUTEX_U8`
+ const SIZE_U8 = linux_raw_sys::general::FUTEX2_SIZE_U8;
+ /// `FUTEX_U16`
+ const SIZE_U16 = linux_raw_sys::general::FUTEX2_SIZE_U16;
+ /// `FUTEX_U32`
+ const SIZE_U32 = linux_raw_sys::general::FUTEX2_SIZE_U32;
+ /// `FUTEX_U64`
+ const SIZE_U64 = linux_raw_sys::general::FUTEX2_SIZE_U64;
+ /// `FUTEX_SIZE_MASK`
+ const SIZE_MASK = linux_raw_sys::general::FUTEX2_SIZE_MASK;
+
+ /// `FUTEX2_NUMA`
+ const NUMA = linux_raw_sys::general::FUTEX2_NUMA;
+
+ /// `FUTEX2_PRIVATE`
+ const PRIVATE = linux_raw_sys::general::FUTEX2_PRIVATE;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `FUTEX_*` operations for use with the futex syscall wrappers.
+#[derive(Debug, Copy, Clone, Eq, PartialEq)]
+#[repr(u32)]
+pub(crate) enum Operation {
+ /// `FUTEX_WAIT`
+ Wait = linux_raw_sys::general::FUTEX_WAIT,
+ /// `FUTEX_WAKE`
+ Wake = linux_raw_sys::general::FUTEX_WAKE,
+ /// `FUTEX_FD`
+ Fd = linux_raw_sys::general::FUTEX_FD,
+ /// `FUTEX_REQUEUE`
+ Requeue = linux_raw_sys::general::FUTEX_REQUEUE,
+ /// `FUTEX_CMP_REQUEUE`
+ CmpRequeue = linux_raw_sys::general::FUTEX_CMP_REQUEUE,
+ /// `FUTEX_WAKE_OP`
+ WakeOp = linux_raw_sys::general::FUTEX_WAKE_OP,
+ /// `FUTEX_LOCK_PI`
+ LockPi = linux_raw_sys::general::FUTEX_LOCK_PI,
+ /// `FUTEX_UNLOCK_PI`
+ UnlockPi = linux_raw_sys::general::FUTEX_UNLOCK_PI,
+ /// `FUTEX_TRYLOCK_PI`
+ TrylockPi = linux_raw_sys::general::FUTEX_TRYLOCK_PI,
+ /// `FUTEX_WAIT_BITSET`
+ WaitBitset = linux_raw_sys::general::FUTEX_WAIT_BITSET,
+ /// `FUTEX_WAKE_BITSET`
+ WakeBitset = linux_raw_sys::general::FUTEX_WAKE_BITSET,
+ /// `FUTEX_WAIT_REQUEUE_PI`
+ WaitRequeuePi = linux_raw_sys::general::FUTEX_WAIT_REQUEUE_PI,
+ /// `FUTEX_CMP_REQUEUE_PI`
+ CmpRequeuePi = linux_raw_sys::general::FUTEX_CMP_REQUEUE_PI,
+ /// `FUTEX_LOCK_PI2`
+ LockPi2 = linux_raw_sys::general::FUTEX_LOCK_PI2,
+}
+
+/// `FUTEX_WAITERS`
+pub const WAITERS: u32 = linux_raw_sys::general::FUTEX_WAITERS;
+
+/// `FUTEX_OWNER_DIED`
+pub const OWNER_DIED: u32 = linux_raw_sys::general::FUTEX_OWNER_DIED;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/thread/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/thread/mod.rs
new file mode 100644
index 0000000..c1843ed
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/thread/mod.rs
@@ -0,0 +1,4 @@
+pub(crate) mod cpu_set;
+pub(crate) mod futex;
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/thread/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/thread/syscalls.rs
new file mode 100644
index 0000000..0888c29
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/thread/syscalls.rs
@@ -0,0 +1,549 @@
+//! linux_raw syscalls supporting `rustix::thread`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use super::types::RawCpuSet;
+use crate::backend::c;
+use crate::backend::conv::{
+ by_mut, by_ref, c_int, c_uint, opt_ref, ret, ret_c_int, ret_c_int_infallible, ret_c_uint,
+ ret_usize, size_of, slice, slice_just_addr, slice_just_addr_mut, zero,
+};
+use crate::fd::BorrowedFd;
+use crate::io;
+use crate::pid::Pid;
+use crate::thread::{
+ futex, ClockId, Cpuid, MembarrierCommand, MembarrierQuery, NanosleepRelativeResult, Timespec,
+};
+use crate::utils::as_mut_ptr;
+use core::mem::MaybeUninit;
+use core::sync::atomic::AtomicU32;
+#[cfg(target_pointer_width = "32")]
+use linux_raw_sys::general::timespec as __kernel_old_timespec;
+use linux_raw_sys::general::{membarrier_cmd, membarrier_cmd_flag, TIMER_ABSTIME};
+
+#[inline]
+pub(crate) fn clock_nanosleep_relative(id: ClockId, req: &Timespec) -> NanosleepRelativeResult {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ let mut rem = MaybeUninit::<Timespec>::uninit();
+ match ret(syscall!(
+ __NR_clock_nanosleep_time64,
+ id,
+ c_int(0),
+ by_ref(req),
+ &mut rem
+ ))
+ .or_else(|err| {
+ // See the comments in `clock_gettime_via_syscall` about emulation.
+ if err == io::Errno::NOSYS {
+ clock_nanosleep_relative_old(id, req, &mut rem)
+ } else {
+ Err(err)
+ }
+ }) {
+ Ok(()) => NanosleepRelativeResult::Ok,
+ Err(io::Errno::INTR) => NanosleepRelativeResult::Interrupted(rem.assume_init()),
+ Err(err) => NanosleepRelativeResult::Err(err),
+ }
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ let mut rem = MaybeUninit::<Timespec>::uninit();
+ match ret(syscall!(
+ __NR_clock_nanosleep,
+ id,
+ c_int(0),
+ by_ref(req),
+ &mut rem
+ )) {
+ Ok(()) => NanosleepRelativeResult::Ok,
+ Err(io::Errno::INTR) => NanosleepRelativeResult::Interrupted(rem.assume_init()),
+ Err(err) => NanosleepRelativeResult::Err(err),
+ }
+ }
+}
+
+#[cfg(target_pointer_width = "32")]
+unsafe fn clock_nanosleep_relative_old(
+ id: ClockId,
+ req: &Timespec,
+ rem: &mut MaybeUninit<Timespec>,
+) -> io::Result<()> {
+ let old_req = __kernel_old_timespec {
+ tv_sec: req.tv_sec.try_into().map_err(|_| io::Errno::INVAL)?,
+ tv_nsec: req.tv_nsec.try_into().map_err(|_| io::Errno::INVAL)?,
+ };
+ let mut old_rem = MaybeUninit::<__kernel_old_timespec>::uninit();
+ ret(syscall!(
+ __NR_clock_nanosleep,
+ id,
+ c_int(0),
+ by_ref(&old_req),
+ &mut old_rem
+ ))?;
+ let old_rem = old_rem.assume_init();
+ rem.write(Timespec {
+ tv_sec: old_rem.tv_sec.into(),
+ tv_nsec: old_rem.tv_nsec.into(),
+ });
+ Ok(())
+}
+
+#[inline]
+pub(crate) fn clock_nanosleep_absolute(id: ClockId, req: &Timespec) -> io::Result<()> {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_clock_nanosleep_time64,
+ id,
+ c_uint(TIMER_ABSTIME),
+ by_ref(req),
+ zero()
+ ))
+ .or_else(|err| {
+ // See the comments in `clock_gettime_via_syscall` about emulation.
+ if err == io::Errno::NOSYS {
+ clock_nanosleep_absolute_old(id, req)
+ } else {
+ Err(err)
+ }
+ })
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_clock_nanosleep,
+ id,
+ c_uint(TIMER_ABSTIME),
+ by_ref(req),
+ zero()
+ ))
+ }
+}
+
+#[cfg(target_pointer_width = "32")]
+unsafe fn clock_nanosleep_absolute_old(id: ClockId, req: &Timespec) -> io::Result<()> {
+ let old_req = __kernel_old_timespec {
+ tv_sec: req.tv_sec.try_into().map_err(|_| io::Errno::INVAL)?,
+ tv_nsec: req.tv_nsec.try_into().map_err(|_| io::Errno::INVAL)?,
+ };
+ ret(syscall_readonly!(
+ __NR_clock_nanosleep,
+ id,
+ c_int(0),
+ by_ref(&old_req),
+ zero()
+ ))
+}
+
+#[inline]
+pub(crate) fn nanosleep(req: &Timespec) -> NanosleepRelativeResult {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ let mut rem = MaybeUninit::<Timespec>::uninit();
+ match ret(syscall!(
+ __NR_clock_nanosleep_time64,
+ ClockId::Realtime,
+ c_int(0),
+ by_ref(req),
+ &mut rem
+ ))
+ .or_else(|err| {
+ // See the comments in `clock_gettime_via_syscall` about emulation.
+ if err == io::Errno::NOSYS {
+ nanosleep_old(req, &mut rem)
+ } else {
+ Err(err)
+ }
+ }) {
+ Ok(()) => NanosleepRelativeResult::Ok,
+ Err(io::Errno::INTR) => NanosleepRelativeResult::Interrupted(rem.assume_init()),
+ Err(err) => NanosleepRelativeResult::Err(err),
+ }
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ let mut rem = MaybeUninit::<Timespec>::uninit();
+ match ret(syscall!(__NR_nanosleep, by_ref(req), &mut rem)) {
+ Ok(()) => NanosleepRelativeResult::Ok,
+ Err(io::Errno::INTR) => NanosleepRelativeResult::Interrupted(rem.assume_init()),
+ Err(err) => NanosleepRelativeResult::Err(err),
+ }
+ }
+}
+
+#[cfg(target_pointer_width = "32")]
+unsafe fn nanosleep_old(req: &Timespec, rem: &mut MaybeUninit<Timespec>) -> io::Result<()> {
+ let old_req = __kernel_old_timespec {
+ tv_sec: req.tv_sec.try_into().map_err(|_| io::Errno::INVAL)?,
+ tv_nsec: req.tv_nsec.try_into().map_err(|_| io::Errno::INVAL)?,
+ };
+ let mut old_rem = MaybeUninit::<__kernel_old_timespec>::uninit();
+ ret(syscall!(__NR_nanosleep, by_ref(&old_req), &mut old_rem))?;
+ let old_rem = old_rem.assume_init();
+ rem.write(Timespec {
+ tv_sec: old_rem.tv_sec.into(),
+ tv_nsec: old_rem.tv_nsec.into(),
+ });
+ Ok(())
+}
+
+#[inline]
+#[must_use]
+pub(crate) fn gettid() -> Pid {
+ unsafe {
+ let tid = ret_c_int_infallible(syscall_readonly!(__NR_gettid));
+ Pid::from_raw_unchecked(tid)
+ }
+}
+
+/// # Safety
+///
+/// The raw pointers must point to valid aligned memory.
+#[inline]
+pub(crate) unsafe fn futex_val2(
+ uaddr: *const AtomicU32,
+ op: super::futex::Operation,
+ flags: futex::Flags,
+ val: u32,
+ val2: u32,
+ uaddr2: *const AtomicU32,
+ val3: u32,
+) -> io::Result<usize> {
+ // Pass `val2` in the least-significant bytes of the `timeout` argument.
+ // [“the kernel casts the timeout value first to unsigned long, then to
+ // uint32_t”], so we perform that exact conversion in reverse to create
+ // the pointer.
+ //
+ // [“the kernel casts the timeout value first to unsigned long, then to uint32_t”]: https://man7.org/linux/man-pages/man2/futex.2.html
+ let timeout = val2 as usize as *const Timespec;
+
+ #[cfg(target_pointer_width = "32")]
+ {
+ // Linux 5.1 added `futex_time64`; if we have that, use it. We don't
+ // need it here, because `timeout` is just passing `val2` and not a
+ // real timeout, but it's nice to use `futex_time64` for consistency
+ // with the other futex calls that do.
+ #[cfg(feature = "linux_5_1")]
+ {
+ ret_usize(syscall!(
+ __NR_futex_time64,
+ uaddr,
+ (op, flags),
+ c_uint(val),
+ timeout,
+ uaddr2,
+ c_uint(val3)
+ ))
+ }
+
+ // If we don't have Linux 5.1, use plain `futex`.
+ #[cfg(not(feature = "linux_5_1"))]
+ {
+ ret_usize(syscall!(
+ __NR_futex,
+ uaddr,
+ (op, flags),
+ c_uint(val),
+ timeout,
+ uaddr2,
+ c_uint(val3)
+ ))
+ }
+ }
+ #[cfg(target_pointer_width = "64")]
+ ret_usize(syscall!(
+ __NR_futex,
+ uaddr,
+ (op, flags),
+ c_uint(val),
+ timeout,
+ uaddr2,
+ c_uint(val3)
+ ))
+}
+
+/// # Safety
+///
+/// The raw pointers must point to valid aligned memory.
+#[inline]
+pub(crate) unsafe fn futex_timeout(
+ uaddr: *const AtomicU32,
+ op: super::futex::Operation,
+ flags: futex::Flags,
+ val: u32,
+ timeout: Option<&Timespec>,
+ uaddr2: *const AtomicU32,
+ val3: u32,
+) -> io::Result<usize> {
+ #[cfg(target_pointer_width = "32")]
+ {
+ // If we don't have Linux 5.1, and the timeout fits in a
+ // `__kernel_old_timespec`, use plain `futex`.
+ //
+ // We do this unconditionally, rather than trying `futex_time64` and
+ // falling back on `Errno::NOSYS`, because seccomp configurations will
+ // sometimes abort the process on syscalls they don't recognize.
+ #[cfg(not(feature = "linux_5_1"))]
+ {
+ // If we don't have a timeout, or if we can convert the timeout to
+ // a `__kernel_old_timespec`, the use `__NR_futex`.
+ fn convert(timeout: &Timespec) -> Option<__kernel_old_timespec> {
+ Some(__kernel_old_timespec {
+ tv_sec: timeout.tv_sec.try_into().ok()?,
+ tv_nsec: timeout.tv_nsec.try_into().ok()?,
+ })
+ }
+ let old_timeout = if let Some(timeout) = timeout {
+ match convert(timeout) {
+ // Could not convert timeout.
+ None => None,
+ // Could convert timeout. Ok!
+ Some(old_timeout) => Some(Some(old_timeout)),
+ }
+ } else {
+ // No timeout. Ok!
+ Some(None)
+ };
+ if let Some(old_timeout) = old_timeout {
+ return ret_usize(syscall!(
+ __NR_futex,
+ uaddr,
+ (op, flags),
+ c_uint(val),
+ opt_ref(old_timeout.as_ref()),
+ uaddr2,
+ c_uint(val3)
+ ));
+ }
+ }
+
+ // We either have Linux 5.1 or the timeout didn't fit in
+ // `__kernel_old_timespec` so `__NR_futex_time64` will either succeed
+ // or fail due to our having no other options.
+ ret_usize(syscall!(
+ __NR_futex_time64,
+ uaddr,
+ (op, flags),
+ c_uint(val),
+ opt_ref(timeout),
+ uaddr2,
+ c_uint(val3)
+ ))
+ }
+ #[cfg(target_pointer_width = "64")]
+ ret_usize(syscall!(
+ __NR_futex,
+ uaddr,
+ (op, flags),
+ c_uint(val),
+ opt_ref(timeout),
+ uaddr2,
+ c_uint(val3)
+ ))
+}
+
+#[inline]
+pub(crate) fn futex_waitv(
+ waiters: &[futex::Wait],
+ flags: futex::WaitvFlags,
+ timeout: Option<&Timespec>,
+ clockid: ClockId,
+) -> io::Result<usize> {
+ let (waiters_addr, waiters_len) = slice(waiters);
+ unsafe {
+ ret_usize(syscall!(
+ __NR_futex_waitv,
+ waiters_addr,
+ waiters_len,
+ c_uint(flags.bits()),
+ opt_ref(timeout),
+ clockid
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn setns(fd: BorrowedFd<'_>, nstype: c::c_int) -> io::Result<c::c_int> {
+ unsafe { ret_c_int(syscall_readonly!(__NR_setns, fd, c_int(nstype))) }
+}
+
+#[inline]
+pub(crate) unsafe fn unshare(flags: crate::thread::UnshareFlags) -> io::Result<()> {
+ ret(syscall_readonly!(__NR_unshare, flags))
+}
+
+#[inline]
+pub(crate) fn capget(
+ header: &mut linux_raw_sys::general::__user_cap_header_struct,
+ data: &mut [MaybeUninit<linux_raw_sys::general::__user_cap_data_struct>],
+) -> io::Result<()> {
+ unsafe {
+ ret(syscall!(
+ __NR_capget,
+ by_mut(header),
+ slice_just_addr_mut(data)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn capset(
+ header: &mut linux_raw_sys::general::__user_cap_header_struct,
+ data: &[linux_raw_sys::general::__user_cap_data_struct],
+) -> io::Result<()> {
+ unsafe { ret(syscall!(__NR_capset, by_mut(header), slice_just_addr(data))) }
+}
+
+#[inline]
+pub(crate) fn setuid_thread(uid: crate::ugid::Uid) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_setuid, uid)) }
+}
+
+#[inline]
+pub(crate) fn setresuid_thread(
+ ruid: crate::ugid::Uid,
+ euid: crate::ugid::Uid,
+ suid: crate::ugid::Uid,
+) -> io::Result<()> {
+ #[cfg(any(target_arch = "x86", target_arch = "arm", target_arch = "sparc"))]
+ unsafe {
+ ret(syscall_readonly!(__NR_setresuid32, ruid, euid, suid))
+ }
+ #[cfg(not(any(target_arch = "x86", target_arch = "arm", target_arch = "sparc")))]
+ unsafe {
+ ret(syscall_readonly!(__NR_setresuid, ruid, euid, suid))
+ }
+}
+
+#[inline]
+pub(crate) fn setgid_thread(gid: crate::ugid::Gid) -> io::Result<()> {
+ unsafe { ret(syscall_readonly!(__NR_setgid, gid)) }
+}
+
+#[inline]
+pub(crate) fn setresgid_thread(
+ rgid: crate::ugid::Gid,
+ egid: crate::ugid::Gid,
+ sgid: crate::ugid::Gid,
+) -> io::Result<()> {
+ #[cfg(any(target_arch = "x86", target_arch = "arm", target_arch = "sparc"))]
+ unsafe {
+ ret(syscall_readonly!(__NR_setresgid32, rgid, egid, sgid))
+ }
+ #[cfg(not(any(target_arch = "x86", target_arch = "arm", target_arch = "sparc")))]
+ unsafe {
+ ret(syscall_readonly!(__NR_setresgid, rgid, egid, sgid))
+ }
+}
+
+#[inline]
+pub(crate) fn setgroups_thread(gids: &[crate::ugid::Gid]) -> io::Result<()> {
+ let (addr, len) = slice(gids);
+ unsafe { ret(syscall_readonly!(__NR_setgroups, len, addr)) }
+}
+
+// `sched_getcpu` has special optimizations via the vDSO on some architectures.
+#[cfg(any(
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "s390x"
+))]
+pub(crate) use crate::backend::vdso_wrappers::sched_getcpu;
+
+// `sched_getcpu` on platforms without a vDSO entry for it.
+#[cfg(not(any(
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "s390x"
+)))]
+#[inline]
+pub(crate) fn sched_getcpu() -> usize {
+ let mut cpu = MaybeUninit::<u32>::uninit();
+ unsafe {
+ let r = ret(syscall!(__NR_getcpu, &mut cpu, zero(), zero()));
+ debug_assert!(r.is_ok());
+ cpu.assume_init() as usize
+ }
+}
+
+#[inline]
+pub(crate) fn sched_getaffinity(pid: Option<Pid>, cpuset: &mut RawCpuSet) -> io::Result<()> {
+ unsafe {
+ // The raw Linux syscall returns the size (in bytes) of the `cpumask_t`
+ // data type that is used internally by the kernel to represent the CPU
+ // set bit mask.
+ let size = ret_usize(syscall!(
+ __NR_sched_getaffinity,
+ c_int(Pid::as_raw(pid)),
+ size_of::<RawCpuSet, _>(),
+ by_mut(&mut cpuset.bits)
+ ))?;
+ let bytes = as_mut_ptr(cpuset).cast::<u8>();
+ let rest = bytes.wrapping_add(size);
+ // Zero every byte in the cpuset not set by the kernel.
+ rest.write_bytes(0, core::mem::size_of::<RawCpuSet>() - size);
+ Ok(())
+ }
+}
+
+#[inline]
+pub(crate) fn sched_setaffinity(pid: Option<Pid>, cpuset: &RawCpuSet) -> io::Result<()> {
+ unsafe {
+ ret(syscall_readonly!(
+ __NR_sched_setaffinity,
+ c_int(Pid::as_raw(pid)),
+ size_of::<RawCpuSet, _>(),
+ slice_just_addr(&cpuset.bits)
+ ))
+ }
+}
+
+#[inline]
+pub(crate) fn sched_yield() {
+ unsafe {
+ // See the documentation for [`crate::thread::sched_yield`] for why
+ // errors are ignored.
+ syscall_readonly!(__NR_sched_yield).decode_void();
+ }
+}
+
+#[inline]
+pub(crate) fn membarrier_query() -> MembarrierQuery {
+ unsafe {
+ match ret_c_uint(syscall!(
+ __NR_membarrier,
+ c_int(membarrier_cmd::MEMBARRIER_CMD_QUERY as _),
+ c_uint(0)
+ )) {
+ Ok(query) => MembarrierQuery::from_bits_retain(query),
+ Err(_) => MembarrierQuery::empty(),
+ }
+ }
+}
+
+#[inline]
+pub(crate) fn membarrier(cmd: MembarrierCommand) -> io::Result<()> {
+ unsafe { ret(syscall!(__NR_membarrier, cmd, c_uint(0))) }
+}
+
+#[inline]
+pub(crate) fn membarrier_cpu(cmd: MembarrierCommand, cpu: Cpuid) -> io::Result<()> {
+ unsafe {
+ ret(syscall!(
+ __NR_membarrier,
+ cmd,
+ c_uint(membarrier_cmd_flag::MEMBARRIER_CMD_FLAG_CPU as _),
+ cpu
+ ))
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/thread/types.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/thread/types.rs
new file mode 100644
index 0000000..be92235
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/thread/types.rs
@@ -0,0 +1,62 @@
+use linux_raw_sys::general::membarrier_cmd;
+
+/// A command for use with [`membarrier`] and [`membarrier_cpu`].
+///
+/// For `MEMBARRIER_CMD_QUERY`, see [`membarrier_query`].
+///
+/// [`membarrier`]: crate::thread::membarrier
+/// [`membarrier_cpu`]: crate::thread::membarrier_cpu
+/// [`membarrier_query`]: crate::thread::membarrier_query
+#[derive(Copy, Clone, Eq, PartialEq, Debug)]
+#[repr(u32)]
+#[non_exhaustive]
+pub enum MembarrierCommand {
+ /// `MEMBARRIER_CMD_GLOBAL`
+ #[doc(alias = "Shared")]
+ #[doc(alias = "MEMBARRIER_CMD_SHARED")]
+ Global = membarrier_cmd::MEMBARRIER_CMD_GLOBAL as _,
+ /// `MEMBARRIER_CMD_GLOBAL_EXPEDITED`
+ GlobalExpedited = membarrier_cmd::MEMBARRIER_CMD_GLOBAL_EXPEDITED as _,
+ /// `MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED`
+ RegisterGlobalExpedited = membarrier_cmd::MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED as _,
+ /// `MEMBARRIER_CMD_PRIVATE_EXPEDITED`
+ PrivateExpedited = membarrier_cmd::MEMBARRIER_CMD_PRIVATE_EXPEDITED as _,
+ /// `MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED`
+ RegisterPrivateExpedited = membarrier_cmd::MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED as _,
+ /// `MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE`
+ PrivateExpeditedSyncCore = membarrier_cmd::MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE as _,
+ /// `MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE`
+ RegisterPrivateExpeditedSyncCore =
+ membarrier_cmd::MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE as _,
+ /// `MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ` (since Linux 5.10)
+ PrivateExpeditedRseq = membarrier_cmd::MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ as _,
+ /// `MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ` (since Linux 5.10)
+ RegisterPrivateExpeditedRseq =
+ membarrier_cmd::MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ as _,
+}
+
+/// A CPU identifier as a raw integer.
+pub type RawCpuid = u32;
+
+#[repr(transparent)]
+#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
+pub(crate) struct RawCpuSet {
+ #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))]
+ pub(crate) bits: [u32; 32],
+ #[cfg(not(all(target_pointer_width = "32", not(target_arch = "x86_64"))))]
+ pub(crate) bits: [u64; 16],
+}
+
+#[inline]
+pub(crate) fn raw_cpu_set_new() -> RawCpuSet {
+ #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))]
+ {
+ RawCpuSet { bits: [0; 32] }
+ }
+ #[cfg(not(all(target_pointer_width = "32", not(target_arch = "x86_64"))))]
+ {
+ RawCpuSet { bits: [0; 16] }
+ }
+}
+
+pub(crate) const CPU_SETSIZE: usize = 8 * core::mem::size_of::<RawCpuSet>();
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/time/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/time/mod.rs
new file mode 100644
index 0000000..1e0181a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/time/mod.rs
@@ -0,0 +1,2 @@
+pub(crate) mod syscalls;
+pub(crate) mod types;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/time/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/time/syscalls.rs
new file mode 100644
index 0000000..58a969d
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/time/syscalls.rs
@@ -0,0 +1,238 @@
+//! linux_raw syscalls supporting `rustix::time`.
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use crate::backend::conv::{by_ref, ret, ret_infallible, ret_owned_fd};
+use crate::clockid::ClockId;
+use crate::fd::{BorrowedFd, OwnedFd};
+use crate::io;
+use crate::time::{Itimerspec, TimerfdClockId, TimerfdFlags, TimerfdTimerFlags};
+use crate::timespec::Timespec;
+use core::mem::MaybeUninit;
+#[cfg(target_pointer_width = "32")]
+use linux_raw_sys::general::itimerspec as __kernel_old_itimerspec;
+#[cfg(target_pointer_width = "32")]
+use linux_raw_sys::general::timespec as __kernel_old_timespec;
+
+// `clock_gettime` has special optimizations via the vDSO.
+pub(crate) use crate::backend::vdso_wrappers::{clock_gettime, clock_gettime_dynamic};
+
+#[inline]
+#[must_use]
+pub(crate) fn clock_getres(id: ClockId) -> Timespec {
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ let mut result = MaybeUninit::<Timespec>::uninit();
+ if let Err(err) = ret(syscall!(__NR_clock_getres_time64, id, &mut result)) {
+ // See the comments in `clock_gettime_via_syscall` about emulation.
+ debug_assert_eq!(err, io::Errno::NOSYS);
+ clock_getres_old(id, &mut result);
+ }
+ result.assume_init()
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ let mut result = MaybeUninit::<Timespec>::uninit();
+ ret_infallible(syscall!(__NR_clock_getres, id, &mut result));
+ result.assume_init()
+ }
+}
+
+#[cfg(target_pointer_width = "32")]
+unsafe fn clock_getres_old(id: ClockId, result: &mut MaybeUninit<Timespec>) {
+ let mut old_result = MaybeUninit::<__kernel_old_timespec>::uninit();
+ ret_infallible(syscall!(__NR_clock_getres, id, &mut old_result));
+ let old_result = old_result.assume_init();
+ result.write(Timespec {
+ tv_sec: old_result.tv_sec.into(),
+ tv_nsec: old_result.tv_nsec.into(),
+ });
+}
+
+#[inline]
+pub(crate) fn clock_settime(id: ClockId, timespec: Timespec) -> io::Result<()> {
+ // `clock_settime64` was introduced in Linux 5.1. The old `clock_settime`
+ // syscall is not y2038-compatible on 32-bit architectures.
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ match ret(syscall_readonly!(
+ __NR_clock_settime64,
+ id,
+ by_ref(×pec)
+ )) {
+ Err(io::Errno::NOSYS) => clock_settime_old(id, timespec),
+ otherwise => otherwise,
+ }
+ }
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret(syscall_readonly!(__NR_clock_settime, id, by_ref(×pec)))
+ }
+}
+
+#[cfg(target_pointer_width = "32")]
+unsafe fn clock_settime_old(id: ClockId, timespec: Timespec) -> io::Result<()> {
+ let old_timespec = __kernel_old_timespec {
+ tv_sec: timespec
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: timespec.tv_nsec as _,
+ };
+ ret(syscall_readonly!(
+ __NR_clock_settime,
+ id,
+ by_ref(&old_timespec)
+ ))
+}
+
+#[inline]
+pub(crate) fn timerfd_create(clockid: TimerfdClockId, flags: TimerfdFlags) -> io::Result<OwnedFd> {
+ unsafe { ret_owned_fd(syscall_readonly!(__NR_timerfd_create, clockid, flags)) }
+}
+
+#[inline]
+pub(crate) fn timerfd_settime(
+ fd: BorrowedFd<'_>,
+ flags: TimerfdTimerFlags,
+ new_value: &Itimerspec,
+) -> io::Result<Itimerspec> {
+ let mut result = MaybeUninit::<Itimerspec>::uninit();
+
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret(syscall!(
+ __NR_timerfd_settime,
+ fd,
+ flags,
+ by_ref(new_value),
+ &mut result
+ ))?;
+ Ok(result.assume_init())
+ }
+
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret(syscall!(
+ __NR_timerfd_settime64,
+ fd,
+ flags,
+ by_ref(new_value),
+ &mut result
+ ))
+ .or_else(|err| {
+ // See the comments in `clock_gettime_via_syscall` about emulation.
+ if err == io::Errno::NOSYS {
+ timerfd_settime_old(fd, flags, new_value, &mut result)
+ } else {
+ Err(err)
+ }
+ })?;
+ Ok(result.assume_init())
+ }
+}
+
+#[cfg(target_pointer_width = "32")]
+unsafe fn timerfd_settime_old(
+ fd: BorrowedFd<'_>,
+ flags: TimerfdTimerFlags,
+ new_value: &Itimerspec,
+ result: &mut MaybeUninit<Itimerspec>,
+) -> io::Result<()> {
+ let mut old_result = MaybeUninit::<__kernel_old_itimerspec>::uninit();
+
+ // Convert `new_value` to the old `__kernel_old_itimerspec` format.
+ let old_new_value = __kernel_old_itimerspec {
+ it_interval: __kernel_old_timespec {
+ tv_sec: new_value
+ .it_interval
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: new_value
+ .it_interval
+ .tv_nsec
+ .try_into()
+ .map_err(|_| io::Errno::INVAL)?,
+ },
+ it_value: __kernel_old_timespec {
+ tv_sec: new_value
+ .it_value
+ .tv_sec
+ .try_into()
+ .map_err(|_| io::Errno::OVERFLOW)?,
+ tv_nsec: new_value
+ .it_value
+ .tv_nsec
+ .try_into()
+ .map_err(|_| io::Errno::INVAL)?,
+ },
+ };
+ ret(syscall!(
+ __NR_timerfd_settime,
+ fd,
+ flags,
+ by_ref(&old_new_value),
+ &mut old_result
+ ))?;
+ let old_result = old_result.assume_init();
+ result.write(Itimerspec {
+ it_interval: Timespec {
+ tv_sec: old_result.it_interval.tv_sec.into(),
+ tv_nsec: old_result.it_interval.tv_nsec.into(),
+ },
+ it_value: Timespec {
+ tv_sec: old_result.it_value.tv_sec.into(),
+ tv_nsec: old_result.it_value.tv_nsec.into(),
+ },
+ });
+ Ok(())
+}
+
+#[inline]
+pub(crate) fn timerfd_gettime(fd: BorrowedFd<'_>) -> io::Result<Itimerspec> {
+ let mut result = MaybeUninit::<Itimerspec>::uninit();
+
+ #[cfg(target_pointer_width = "64")]
+ unsafe {
+ ret(syscall!(__NR_timerfd_gettime, fd, &mut result))?;
+ Ok(result.assume_init())
+ }
+
+ #[cfg(target_pointer_width = "32")]
+ unsafe {
+ ret(syscall!(__NR_timerfd_gettime64, fd, &mut result)).or_else(|err| {
+ // See the comments in `clock_gettime_via_syscall` about emulation.
+ if err == io::Errno::NOSYS {
+ timerfd_gettime_old(fd, &mut result)
+ } else {
+ Err(err)
+ }
+ })?;
+ Ok(result.assume_init())
+ }
+}
+
+#[cfg(target_pointer_width = "32")]
+unsafe fn timerfd_gettime_old(
+ fd: BorrowedFd<'_>,
+ result: &mut MaybeUninit<Itimerspec>,
+) -> io::Result<()> {
+ let mut old_result = MaybeUninit::<__kernel_old_itimerspec>::uninit();
+ ret(syscall!(__NR_timerfd_gettime, fd, &mut old_result))?;
+ let old_result = old_result.assume_init();
+ result.write(Itimerspec {
+ it_interval: Timespec {
+ tv_sec: old_result.it_interval.tv_sec.into(),
+ tv_nsec: old_result.it_interval.tv_nsec.into(),
+ },
+ it_value: Timespec {
+ tv_sec: old_result.it_value.tv_sec.into(),
+ tv_nsec: old_result.it_value.tv_nsec.into(),
+ },
+ });
+ Ok(())
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/time/types.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/time/types.rs
new file mode 100644
index 0000000..ec6c91f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/time/types.rs
@@ -0,0 +1,93 @@
+use crate::ffi;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `TFD_*` flags for use with [`timerfd_create`].
+ ///
+ /// [`timerfd_create`]: crate::time::timerfd_create
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct TimerfdFlags: ffi::c_uint {
+ /// `TFD_NONBLOCK`
+ #[doc(alias = "TFD_NONBLOCK")]
+ const NONBLOCK = linux_raw_sys::general::TFD_NONBLOCK;
+
+ /// `TFD_CLOEXEC`
+ #[doc(alias = "TFD_CLOEXEC")]
+ const CLOEXEC = linux_raw_sys::general::TFD_CLOEXEC;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `TFD_TIMER_*` flags for use with [`timerfd_settime`].
+ ///
+ /// [`timerfd_settime`]: crate::time::timerfd_settime
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct TimerfdTimerFlags: ffi::c_uint {
+ /// `TFD_TIMER_ABSTIME`
+ #[doc(alias = "TFD_TIMER_ABSTIME")]
+ const ABSTIME = linux_raw_sys::general::TFD_TIMER_ABSTIME;
+
+ /// `TFD_TIMER_CANCEL_ON_SET`
+ #[doc(alias = "TFD_TIMER_CANCEL_ON_SET")]
+ const CANCEL_ON_SET = linux_raw_sys::general::TFD_TIMER_CANCEL_ON_SET;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `CLOCK_*` constants for use with [`timerfd_create`].
+///
+/// [`timerfd_create`]: crate::time::timerfd_create
+#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
+#[repr(u32)]
+#[non_exhaustive]
+pub enum TimerfdClockId {
+ /// `CLOCK_REALTIME`—A clock that tells the “real” time.
+ ///
+ /// This is a clock that tells the amount of time elapsed since the Unix
+ /// epoch, 1970-01-01T00:00:00Z. The clock is externally settable, so it is
+ /// not monotonic. Successive reads may see decreasing times, so it isn't
+ /// reliable for measuring durations.
+ #[doc(alias = "CLOCK_REALTIME")]
+ Realtime = linux_raw_sys::general::CLOCK_REALTIME,
+
+ /// `CLOCK_MONOTONIC`—A clock that tells an abstract time.
+ ///
+ /// Unlike `Realtime`, this clock is not based on a fixed known epoch, so
+ /// individual times aren't meaningful. However, since it isn't settable,
+ /// it is reliable for measuring durations.
+ ///
+ /// This clock does not advance while the system is suspended; see
+ /// `Boottime` for a clock that does.
+ #[doc(alias = "CLOCK_MONOTONIC")]
+ Monotonic = linux_raw_sys::general::CLOCK_MONOTONIC,
+
+ /// `CLOCK_BOOTTIME`—Like `Monotonic`, but advances while suspended.
+ ///
+ /// This clock is similar to `Monotonic`, but does advance while the system
+ /// is suspended.
+ #[doc(alias = "CLOCK_BOOTTIME")]
+ Boottime = linux_raw_sys::general::CLOCK_BOOTTIME,
+
+ /// `CLOCK_REALTIME_ALARM`—Like `Realtime`, but wakes a suspended system.
+ ///
+ /// This clock is like `Realtime`, but can wake up a suspended system.
+ ///
+ /// Use of this clock requires the `CAP_WAKE_ALARM` Linux capability.
+ #[doc(alias = "CLOCK_REALTIME_ALARM")]
+ RealtimeAlarm = linux_raw_sys::general::CLOCK_REALTIME_ALARM,
+
+ /// `CLOCK_BOOTTIME_ALARM`—Like `Boottime`, but wakes a suspended system.
+ ///
+ /// This clock is like `Boottime`, but can wake up a suspended system.
+ ///
+ /// Use of this clock requires the `CAP_WAKE_ALARM` Linux capability.
+ #[doc(alias = "CLOCK_BOOTTIME_ALARM")]
+ BoottimeAlarm = linux_raw_sys::general::CLOCK_BOOTTIME_ALARM,
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/ugid/mod.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/ugid/mod.rs
new file mode 100644
index 0000000..ef944f0
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/ugid/mod.rs
@@ -0,0 +1 @@
+pub(crate) mod syscalls;
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/ugid/syscalls.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/ugid/syscalls.rs
new file mode 100644
index 0000000..4aac5f2
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/ugid/syscalls.rs
@@ -0,0 +1,70 @@
+//! linux_raw syscalls for UIDs and GIDs
+//!
+//! # Safety
+//!
+//! See the `rustix::backend` module documentation for details.
+#![allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
+
+use crate::backend::c;
+use crate::backend::conv::ret_usize_infallible;
+use crate::ugid::{Gid, Uid};
+
+#[inline]
+#[must_use]
+pub(crate) fn getuid() -> Uid {
+ #[cfg(any(target_arch = "arm", target_arch = "sparc", target_arch = "x86"))]
+ unsafe {
+ let uid = ret_usize_infallible(syscall_readonly!(__NR_getuid32)) as c::uid_t;
+ Uid::from_raw(uid)
+ }
+ #[cfg(not(any(target_arch = "arm", target_arch = "sparc", target_arch = "x86")))]
+ unsafe {
+ let uid = ret_usize_infallible(syscall_readonly!(__NR_getuid)) as c::uid_t;
+ Uid::from_raw(uid)
+ }
+}
+
+#[inline]
+#[must_use]
+pub(crate) fn geteuid() -> Uid {
+ #[cfg(any(target_arch = "arm", target_arch = "sparc", target_arch = "x86"))]
+ unsafe {
+ let uid = ret_usize_infallible(syscall_readonly!(__NR_geteuid32)) as c::uid_t;
+ Uid::from_raw(uid)
+ }
+ #[cfg(not(any(target_arch = "arm", target_arch = "sparc", target_arch = "x86")))]
+ unsafe {
+ let uid = ret_usize_infallible(syscall_readonly!(__NR_geteuid)) as c::uid_t;
+ Uid::from_raw(uid)
+ }
+}
+
+#[inline]
+#[must_use]
+pub(crate) fn getgid() -> Gid {
+ #[cfg(any(target_arch = "arm", target_arch = "sparc", target_arch = "x86"))]
+ unsafe {
+ let gid = ret_usize_infallible(syscall_readonly!(__NR_getgid32)) as c::gid_t;
+ Gid::from_raw(gid)
+ }
+ #[cfg(not(any(target_arch = "arm", target_arch = "sparc", target_arch = "x86")))]
+ unsafe {
+ let gid = ret_usize_infallible(syscall_readonly!(__NR_getgid)) as c::gid_t;
+ Gid::from_raw(gid)
+ }
+}
+
+#[inline]
+#[must_use]
+pub(crate) fn getegid() -> Gid {
+ #[cfg(any(target_arch = "arm", target_arch = "sparc", target_arch = "x86"))]
+ unsafe {
+ let gid = ret_usize_infallible(syscall_readonly!(__NR_getegid32)) as c::gid_t;
+ Gid::from_raw(gid)
+ }
+ #[cfg(not(any(target_arch = "arm", target_arch = "sparc", target_arch = "x86")))]
+ unsafe {
+ let gid = ret_usize_infallible(syscall_readonly!(__NR_getegid)) as c::gid_t;
+ Gid::from_raw(gid)
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/vdso.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/vdso.rs
new file mode 100644
index 0000000..4fa1d1c
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/vdso.rs
@@ -0,0 +1,545 @@
+//! Parse the Linux vDSO.
+//!
+//! The following code is transliterated from
+//! tools/testing/selftests/vDSO/parse_vdso.c in Linux 6.13, which is licensed
+//! with Creative Commons Zero License, version 1.0,
+//! available at <https://creativecommons.org/publicdomain/zero/1.0/legalcode>
+//!
+//! It also incorporates the patch at:
+//! <https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git/commit/tools/testing/selftests/vDSO?h=next&id=01587d80b04f29747b6fd6d766c3bfa632f14eb0>,
+//! with changes to fix the pointer arithmetic on s390x.
+//!
+//! # Safety
+//!
+//! Parsing the vDSO involves a lot of raw pointer manipulation. This
+//! implementation follows Linux's reference implementation, and adds several
+//! additional safety checks.
+#![allow(unsafe_code)]
+
+use super::c;
+use crate::ffi::CStr;
+use crate::utils::check_raw_pointer;
+use core::ffi::c_void;
+use core::mem::size_of;
+use core::ptr::{null, null_mut};
+use linux_raw_sys::elf::*;
+
+#[cfg(target_arch = "s390x")]
+type ElfHashEntry = u64;
+#[cfg(not(target_arch = "s390x"))]
+type ElfHashEntry = u32;
+
+pub(super) struct Vdso {
+ // Load information
+ load_addr: *const Elf_Ehdr,
+ load_end: *const c_void, // the end of the `PT_LOAD` segment
+ pv_offset: usize, // recorded paddr - recorded vaddr
+
+ // Symbol table
+ symtab: *const Elf_Sym,
+ symstrings: *const u8,
+ gnu_hash: *const u32,
+ bucket: *const ElfHashEntry,
+ chain: *const ElfHashEntry,
+ nbucket: ElfHashEntry,
+ //nchain: ElfHashEntry,
+
+ // Version table
+ versym: *const u16,
+ verdef: *const Elf_Verdef,
+}
+
+/// Straight from the ELF specification…and then tweaked slightly, in order to
+/// avoid a few clang warnings.
+/// (And then translated to Rust).
+fn elf_hash(name: &CStr) -> u32 {
+ let mut h: u32 = 0;
+ for b in name.to_bytes() {
+ h = (h << 4).wrapping_add(u32::from(*b));
+ let g = h & 0xf000_0000;
+ if g != 0 {
+ h ^= g >> 24;
+ }
+ h &= !g;
+ }
+ h
+}
+
+fn gnu_hash(name: &CStr) -> u32 {
+ let mut h: u32 = 5381;
+ for s in name.to_bytes() {
+ h = h
+ .wrapping_add(h.wrapping_mul(32))
+ .wrapping_add(u32::from(*s));
+ }
+ h
+}
+
+/// Create a `Vdso` value by parsing the vDSO at the `sysinfo_ehdr` address.
+fn init_from_sysinfo_ehdr() -> Option<Vdso> {
+ // SAFETY: The auxv initialization code does extensive checks to ensure
+ // that the value we get really is an `AT_SYSINFO_EHDR` value from the
+ // kernel.
+ unsafe {
+ let hdr = super::param::auxv::sysinfo_ehdr();
+
+ // If the platform doesn't provide a `AT_SYSINFO_EHDR`, we can't locate
+ // the vDSO.
+ if hdr.is_null() {
+ return None;
+ }
+
+ let mut vdso = Vdso {
+ load_addr: hdr,
+ load_end: hdr.cast(),
+ pv_offset: 0,
+ symtab: null(),
+ symstrings: null(),
+ gnu_hash: null(),
+ bucket: null(),
+ chain: null(),
+ nbucket: 0,
+ //nchain: 0,
+ versym: null(),
+ verdef: null(),
+ };
+
+ let hdr = &*hdr;
+ let pt = check_raw_pointer::<Elf_Phdr>(vdso.base_plus(hdr.e_phoff)? as *mut _)?.as_ptr();
+ let mut dyn_: *const Elf_Dyn = null();
+ let mut num_dyn = 0;
+
+ // We need two things from the segment table: the load offset
+ // and the dynamic table.
+ let mut found_vaddr = false;
+ for i in 0..hdr.e_phnum {
+ let phdr = &*pt.add(i as usize);
+ if phdr.p_type == PT_LOAD && !found_vaddr {
+ // The segment should be readable and executable, because it
+ // contains the symbol table and the function bodies.
+ if phdr.p_flags & (PF_R | PF_X) != (PF_R | PF_X) {
+ return None;
+ }
+ found_vaddr = true;
+ vdso.load_end = vdso.base_plus(phdr.p_offset.checked_add(phdr.p_memsz)?)?;
+ vdso.pv_offset = phdr.p_offset.wrapping_sub(phdr.p_vaddr);
+ } else if phdr.p_type == PT_DYNAMIC {
+ // If `p_offset` is zero, it's more likely that we're looking
+ // at memory that has been zeroed than that the kernel has
+ // somehow aliased the `Ehdr` and the `Elf_Dyn` array.
+ if phdr.p_offset < size_of::<Elf_Ehdr>() {
+ return None;
+ }
+
+ dyn_ = check_raw_pointer::<Elf_Dyn>(vdso.base_plus(phdr.p_offset)? as *mut _)?
+ .as_ptr();
+ num_dyn = phdr.p_memsz / size_of::<Elf_Dyn>();
+ } else if phdr.p_type == PT_INTERP || phdr.p_type == PT_GNU_RELRO {
+ // Don't trust any ELF image that has an “interpreter” or
+ // that uses RELRO, which is likely to be a user ELF image
+ // rather and not the kernel vDSO.
+ return None;
+ }
+ }
+
+ if !found_vaddr || dyn_.is_null() {
+ return None; // Failed
+ }
+
+ // Fish out the useful bits of the dynamic table.
+ let mut hash: *const ElfHashEntry = null();
+ vdso.symstrings = null();
+ vdso.symtab = null();
+ vdso.versym = null();
+ vdso.verdef = null();
+ let mut i = 0;
+ loop {
+ if i == num_dyn {
+ return None;
+ }
+ let d = &*dyn_.add(i);
+ match d.d_tag {
+ DT_STRTAB => {
+ vdso.symstrings =
+ check_raw_pointer::<u8>(vdso.addr_from_elf(d.d_un.d_ptr)? as *mut _)?
+ .as_ptr();
+ }
+ DT_SYMTAB => {
+ vdso.symtab =
+ check_raw_pointer::<Elf_Sym>(vdso.addr_from_elf(d.d_un.d_ptr)? as *mut _)?
+ .as_ptr();
+ }
+ DT_HASH => {
+ hash = check_raw_pointer::<ElfHashEntry>(
+ vdso.addr_from_elf(d.d_un.d_ptr)? as *mut _
+ )?
+ .as_ptr();
+ }
+ DT_GNU_HASH => {
+ vdso.gnu_hash =
+ check_raw_pointer::<u32>(vdso.addr_from_elf(d.d_un.d_ptr)? as *mut _)?
+ .as_ptr()
+ }
+ DT_VERSYM => {
+ vdso.versym =
+ check_raw_pointer::<u16>(vdso.addr_from_elf(d.d_un.d_ptr)? as *mut _)?
+ .as_ptr();
+ }
+ DT_VERDEF => {
+ vdso.verdef = check_raw_pointer::<Elf_Verdef>(
+ vdso.addr_from_elf(d.d_un.d_ptr)? as *mut _,
+ )?
+ .as_ptr();
+ }
+ DT_SYMENT => {
+ if d.d_un.d_ptr != size_of::<Elf_Sym>() {
+ return None; // Failed
+ }
+ }
+ DT_NULL => break,
+ _ => {}
+ }
+ i = i.checked_add(1)?;
+ }
+ // `check_raw_pointer` will have checked these pointers for null,
+ // however they could still be null if the expected dynamic table
+ // entries are absent.
+ if vdso.symstrings.is_null()
+ || vdso.symtab.is_null()
+ || (hash.is_null() && vdso.gnu_hash.is_null())
+ {
+ return None; // Failed
+ }
+
+ if vdso.verdef.is_null() {
+ vdso.versym = null();
+ }
+
+ // Parse the hash table header.
+ if !vdso.gnu_hash.is_null() {
+ vdso.nbucket = ElfHashEntry::from(*vdso.gnu_hash);
+ // The bucket array is located after the header (4 uint32) and the
+ // bloom filter (size_t array of gnu_hash[2] elements).
+ vdso.bucket = vdso
+ .gnu_hash
+ .add(4)
+ .add(size_of::<c::size_t>() / 4 * *vdso.gnu_hash.add(2) as usize)
+ .cast();
+ } else {
+ vdso.nbucket = *hash.add(0);
+ //vdso.nchain = *hash.add(1);
+ vdso.bucket = hash.add(2);
+ vdso.chain = hash.add(vdso.nbucket as usize + 2);
+ }
+
+ // That's all we need.
+ Some(vdso)
+ }
+}
+
+impl Vdso {
+ /// Parse the vDSO.
+ ///
+ /// Returns `None` if the vDSO can't be located or if it doesn't conform to
+ /// our expectations.
+ #[inline]
+ pub(super) fn new() -> Option<Self> {
+ init_from_sysinfo_ehdr()
+ }
+
+ /// Check the version for a symbol.
+ ///
+ /// # Safety
+ ///
+ /// The raw pointers inside `self` must be valid.
+ unsafe fn match_version(&self, mut ver: u16, name: &CStr, hash: u32) -> bool {
+ // This is a helper function to check if the version indexed by
+ // ver matches name (which hashes to hash).
+ //
+ // The version definition table is a mess, and I don't know how
+ // to do this in better than linear time without allocating memory
+ // to build an index. I also don't know why the table has
+ // variable size entries in the first place.
+ //
+ // For added fun, I can't find a comprehensible specification of how
+ // to parse all the weird flags in the table.
+ //
+ // So I just parse the whole table every time.
+
+ // First step: find the version definition
+ ver &= 0x7fff; // Apparently bit 15 means "hidden"
+ let mut def = self.verdef;
+ loop {
+ if (*def).vd_version != VER_DEF_CURRENT {
+ return false; // Failed
+ }
+
+ if ((*def).vd_flags & VER_FLG_BASE) == 0 && ((*def).vd_ndx & 0x7fff) == ver {
+ break;
+ }
+
+ if (*def).vd_next == 0 {
+ return false; // No definition.
+ }
+
+ def = def
+ .cast::<u8>()
+ .add((*def).vd_next as usize)
+ .cast::<Elf_Verdef>();
+ }
+
+ // Now figure out whether it matches.
+ let aux = &*(def.cast::<u8>())
+ .add((*def).vd_aux as usize)
+ .cast::<Elf_Verdaux>();
+ (*def).vd_hash == hash
+ && (name == CStr::from_ptr(self.symstrings.add(aux.vda_name as usize).cast()))
+ }
+
+ /// Check to see if the symbol is the one we're looking for.
+ ///
+ /// # Safety
+ ///
+ /// The raw pointers inside `self` must be valid.
+ unsafe fn check_sym(
+ &self,
+ sym: &Elf_Sym,
+ i: ElfHashEntry,
+ name: &CStr,
+ version: &CStr,
+ ver_hash: u32,
+ ) -> bool {
+ // Check for a defined global or weak function w/ right name.
+ //
+ // Accept `STT_NOTYPE` in addition to `STT_FUNC` for the symbol
+ // type, for compatibility with some versions of Linux on
+ // PowerPC64. See [this commit] in Linux for more background.
+ //
+ // [this commit]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/tools/testing/selftests/vDSO/parse_vdso.c?id=0161bd38c24312853ed5ae9a425a1c41c4ac674a
+ if ELF_ST_TYPE(sym.st_info) != STT_FUNC && ELF_ST_TYPE(sym.st_info) != STT_NOTYPE {
+ return false;
+ }
+ if ELF_ST_BIND(sym.st_info) != STB_GLOBAL && ELF_ST_BIND(sym.st_info) != STB_WEAK {
+ return false;
+ }
+ if name != CStr::from_ptr(self.symstrings.add(sym.st_name as usize).cast()) {
+ return false;
+ }
+
+ // Check symbol version.
+ if !self.versym.is_null()
+ && !self.match_version(*self.versym.add(i as usize), version, ver_hash)
+ {
+ return false;
+ }
+
+ true
+ }
+
+ /// Look up a symbol in the vDSO.
+ pub(super) fn sym(&self, version: &CStr, name: &CStr) -> *mut c::c_void {
+ let ver_hash = elf_hash(version);
+
+ // SAFETY: The pointers in `self` must be valid.
+ unsafe {
+ if !self.gnu_hash.is_null() {
+ let mut h1: u32 = gnu_hash(name);
+
+ // Changes to fix the pointer arithmetic on s390x: cast
+ // `self.bucket` to `*const u32` here, because even though
+ // s390x's `ElfHashEntry` is 64-bit for `DT_HASH` tables,
+ // it uses 32-bit entries for `DT_GNU_HASH` tables.
+ let mut i = *self
+ .bucket
+ .cast::<u32>()
+ .add((ElfHashEntry::from(h1) % self.nbucket) as usize);
+ if i == 0 {
+ return null_mut();
+ }
+ h1 |= 1;
+ // Changes to fix the pointer arithmetic on s390x: As above,
+ // cast `self.bucket` to `*const u32`.
+ let mut hashval = self
+ .bucket
+ .cast::<u32>()
+ .add(self.nbucket as usize)
+ .add((i - *self.gnu_hash.add(1)) as usize);
+ loop {
+ let sym: &Elf_Sym = &*self.symtab.add(i as usize);
+ let h2 = *hashval;
+ hashval = hashval.add(1);
+ if h1 == (h2 | 1)
+ && self.check_sym(sym, ElfHashEntry::from(i), name, version, ver_hash)
+ {
+ let sum = self.addr_from_elf(sym.st_value).unwrap();
+ assert!(
+ sum as usize >= self.load_addr as usize
+ && sum as usize <= self.load_end as usize
+ );
+ return sum as *mut c::c_void;
+ }
+ if (h2 & 1) != 0 {
+ break;
+ }
+ i += 1;
+ }
+ } else {
+ let mut i = *self
+ .bucket
+ .add((ElfHashEntry::from(elf_hash(name)) % self.nbucket) as usize);
+ while i != 0 {
+ let sym: &Elf_Sym = &*self.symtab.add(i as usize);
+ if sym.st_shndx != SHN_UNDEF && self.check_sym(sym, i, name, version, ver_hash)
+ {
+ let sum = self.addr_from_elf(sym.st_value).unwrap();
+ assert!(
+ sum as usize >= self.load_addr as usize
+ && sum as usize <= self.load_end as usize
+ );
+ return sum as *mut c::c_void;
+ }
+ i = *self.chain.add(i as usize);
+ }
+ }
+ }
+
+ null_mut()
+ }
+
+ /// Add the given address to the vDSO base address.
+ unsafe fn base_plus(&self, offset: usize) -> Option<*const c_void> {
+ // Check for overflow.
+ let _ = (self.load_addr as usize).checked_add(offset)?;
+ // Add the offset to the base.
+ Some(self.load_addr.cast::<u8>().add(offset).cast())
+ }
+
+ /// Translate an ELF-address-space address into a usable virtual address.
+ unsafe fn addr_from_elf(&self, elf_addr: usize) -> Option<*const c_void> {
+ self.base_plus(elf_addr.wrapping_add(self.pv_offset))
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ // Disable on MIPS since QEMU on MIPS doesn't provide a vDSO.
+ #[cfg(linux_raw)]
+ #[test]
+ #[cfg_attr(any(target_arch = "mips", target_arch = "mips64"), ignore)]
+ #[allow(unused_variables)]
+ fn test_vdso() {
+ let vdso = Vdso::new().unwrap();
+ assert!(!vdso.symtab.is_null());
+ assert!(!vdso.symstrings.is_null());
+
+ {
+ #[cfg(target_arch = "x86_64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime"));
+ #[cfg(target_arch = "arm")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime64"));
+ #[cfg(target_arch = "aarch64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.39"), cstr!("__kernel_clock_gettime"));
+ #[cfg(target_arch = "x86")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime64"));
+ #[cfg(target_arch = "riscv64")]
+ let ptr = vdso.sym(cstr!("LINUX_4.15"), cstr!("__vdso_clock_gettime"));
+ #[cfg(target_arch = "powerpc")]
+ let _ptr = vdso.sym(cstr!("LINUX_5.11"), cstr!("__kernel_clock_gettime64"));
+ #[cfg(target_arch = "powerpc64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.15"), cstr!("__kernel_clock_gettime"));
+ #[cfg(target_arch = "s390x")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.29"), cstr!("__kernel_clock_gettime"));
+ #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime64"));
+ #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime"));
+
+ // On PowerPC, "__kernel_clock_gettime64" isn't available in
+ // Linux < 5.11.
+ // On x86, "__vdso_clock_gettime64" isn't available in
+ // Linux < 5.3.
+ #[cfg(not(any(target_arch = "powerpc", target_arch = "x86")))]
+ assert!(!ptr.is_null());
+ }
+
+ {
+ #[cfg(target_arch = "x86_64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_getres"));
+ #[cfg(target_arch = "arm")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_getres"));
+ #[cfg(target_arch = "aarch64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.39"), cstr!("__kernel_clock_getres"));
+ #[cfg(target_arch = "x86")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_getres"));
+ #[cfg(target_arch = "riscv64")]
+ let ptr = vdso.sym(cstr!("LINUX_4.15"), cstr!("__vdso_clock_getres"));
+ #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.15"), cstr!("__kernel_clock_getres"));
+ #[cfg(target_arch = "s390x")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.29"), cstr!("__kernel_clock_getres"));
+ #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_getres"));
+ #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_getres"));
+
+ // Some versions of Linux appear to lack "__vdso_clock_getres" on x86.
+ #[cfg(not(target_arch = "x86"))]
+ assert!(!ptr.is_null());
+ }
+
+ {
+ #[cfg(target_arch = "x86_64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_gettimeofday"));
+ #[cfg(target_arch = "arm")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_gettimeofday"));
+ #[cfg(target_arch = "aarch64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.39"), cstr!("__kernel_gettimeofday"));
+ #[cfg(target_arch = "x86")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_gettimeofday"));
+ #[cfg(target_arch = "riscv64")]
+ let ptr = vdso.sym(cstr!("LINUX_4.15"), cstr!("__vdso_gettimeofday"));
+ #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.15"), cstr!("__kernel_gettimeofday"));
+ #[cfg(target_arch = "s390x")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.29"), cstr!("__kernel_gettimeofday"));
+ #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_gettimeofday"));
+ #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_gettimeofday"));
+
+ // Some versions of Linux appear to lack "__vdso_gettimeofday" on x86.
+ #[cfg(not(target_arch = "x86"))]
+ assert!(!ptr.is_null());
+ }
+
+ #[cfg(any(
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "s390x",
+ ))]
+ {
+ #[cfg(target_arch = "x86_64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_getcpu"));
+ #[cfg(target_arch = "x86")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_getcpu"));
+ #[cfg(target_arch = "riscv64")]
+ let ptr = vdso.sym(cstr!("LINUX_4.15"), cstr!("__vdso_getcpu"));
+ #[cfg(target_arch = "powerpc")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.15"), cstr!("__kernel_getcpu"));
+ #[cfg(target_arch = "powerpc64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.15"), cstr!("__kernel_getcpu"));
+ #[cfg(target_arch = "s390x")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.29"), cstr!("__kernel_getcpu"));
+
+ // On PowerPC, "__kernel_getcpu" isn't available in 32-bit kernels.
+ // Some versions of Linux appear to lack "__vdso_getcpu" on x86.
+ #[cfg(not(any(target_arch = "powerpc", target_arch = "x86")))]
+ assert!(!ptr.is_null());
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/backend/linux_raw/vdso_wrappers.rs b/vendor/rustix-1.0.8/src/backend/linux_raw/vdso_wrappers.rs
new file mode 100644
index 0000000..338f454
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/backend/linux_raw/vdso_wrappers.rs
@@ -0,0 +1,623 @@
+//! Implement syscalls using the vDSO.
+//!
+//! <https://man7.org/linux/man-pages/man7/vdso.7.html>
+//!
+//! # Safety
+//!
+//! Similar to syscalls.rs, this file performs raw system calls, and sometimes
+//! passes them uninitialized memory buffers. This file also calls vDSO
+//! functions.
+#![allow(unsafe_code)]
+#![allow(clippy::missing_transmute_annotations)]
+
+#[cfg(target_arch = "x86")]
+use super::reg::{ArgReg, RetReg, SyscallNumber, A0, A1, A2, A3, A4, A5, R0};
+use super::vdso;
+#[cfg(target_arch = "x86")]
+use core::arch::global_asm;
+#[cfg(feature = "thread")]
+#[cfg(any(
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "s390x",
+))]
+use core::ffi::c_void;
+use core::mem::transmute;
+use core::ptr::null_mut;
+use core::sync::atomic::AtomicPtr;
+use core::sync::atomic::Ordering::Relaxed;
+#[cfg(target_pointer_width = "32")]
+#[cfg(feature = "time")]
+use linux_raw_sys::general::timespec as __kernel_old_timespec;
+#[cfg(any(
+ all(
+ feature = "thread",
+ any(
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "s390x"
+ )
+ ),
+ feature = "time"
+))]
+use {super::c, super::conv::ret, core::mem::MaybeUninit};
+#[cfg(feature = "time")]
+use {
+ super::conv::c_int,
+ crate::clockid::{ClockId, DynamicClockId},
+ crate::io,
+ crate::timespec::Timespec,
+ linux_raw_sys::general::__kernel_clockid_t,
+};
+
+#[cfg(feature = "time")]
+#[inline]
+#[must_use]
+pub(crate) fn clock_gettime(id: ClockId) -> Timespec {
+ // SAFETY: `CLOCK_GETTIME` contains either null or the address of a
+ // function with an ABI like libc `clock_gettime`, and calling it has the
+ // side effect of writing to the result buffer, and no others.
+ unsafe {
+ let mut result = MaybeUninit::<Timespec>::uninit();
+ let callee = match transmute(CLOCK_GETTIME.load(Relaxed)) {
+ Some(callee) => callee,
+ None => init_clock_gettime(),
+ };
+ let r0 = callee(id as c::c_int, result.as_mut_ptr());
+ // The `ClockId` enum only contains clocks which never fail. It may be
+ // tempting to change this to `debug_assert_eq`, however they can still
+ // fail on uncommon kernel configs, so we leave this in place to ensure
+ // that we don't execute undefined behavior if they ever do fail.
+ assert_eq!(r0, 0);
+ result.assume_init()
+ }
+}
+
+#[cfg(feature = "time")]
+#[inline]
+pub(crate) fn clock_gettime_dynamic(id: DynamicClockId<'_>) -> io::Result<Timespec> {
+ let id = match id {
+ DynamicClockId::Known(id) => id as __kernel_clockid_t,
+
+ DynamicClockId::Dynamic(fd) => {
+ // See `FD_TO_CLOCKID` in Linux's `clock_gettime` documentation.
+ use crate::backend::fd::AsRawFd as _;
+ const CLOCKFD: i32 = 3;
+ ((!fd.as_raw_fd() << 3) | CLOCKFD) as __kernel_clockid_t
+ }
+
+ DynamicClockId::RealtimeAlarm => c::CLOCK_REALTIME_ALARM as __kernel_clockid_t,
+ DynamicClockId::Tai => c::CLOCK_TAI as __kernel_clockid_t,
+ DynamicClockId::Boottime => c::CLOCK_BOOTTIME as __kernel_clockid_t,
+ DynamicClockId::BoottimeAlarm => c::CLOCK_BOOTTIME_ALARM as __kernel_clockid_t,
+ };
+
+ // SAFETY: `CLOCK_GETTIME` contains either null or the address of a
+ // function with an ABI like libc `clock_gettime`, and calling it has the
+ // side effect of writing to the result buffer, and no others.
+ unsafe {
+ const EINVAL: c::c_int = -(c::EINVAL as c::c_int);
+ let mut timespec = MaybeUninit::<Timespec>::uninit();
+ let callee = match transmute(CLOCK_GETTIME.load(Relaxed)) {
+ Some(callee) => callee,
+ None => init_clock_gettime(),
+ };
+ match callee(id, timespec.as_mut_ptr()) {
+ 0 => (),
+ EINVAL => return Err(io::Errno::INVAL),
+ _ => _clock_gettime_via_syscall(id, timespec.as_mut_ptr())?,
+ }
+ Ok(timespec.assume_init())
+ }
+}
+
+#[cfg(feature = "thread")]
+#[cfg(any(
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "s390x",
+))]
+#[inline]
+pub(crate) fn sched_getcpu() -> usize {
+ // SAFETY: `GETCPU` contains either null or the address of a function with
+ // an ABI like libc `getcpu`, and calling it has the side effect of writing
+ // to the result buffers, and no others.
+ unsafe {
+ let mut cpu = MaybeUninit::<u32>::uninit();
+ let callee = match transmute(GETCPU.load(Relaxed)) {
+ Some(callee) => callee,
+ None => init_getcpu(),
+ };
+ let r0 = callee(cpu.as_mut_ptr(), null_mut(), null_mut());
+ debug_assert_eq!(r0, 0);
+ cpu.assume_init() as usize
+ }
+}
+
+#[cfg(target_arch = "x86")]
+pub(super) mod x86_via_vdso {
+ use super::{transmute, ArgReg, Relaxed, RetReg, SyscallNumber, A0, A1, A2, A3, A4, A5, R0};
+ use crate::backend::arch::asm;
+
+ #[inline]
+ pub(in crate::backend) unsafe fn syscall0(nr: SyscallNumber<'_>) -> RetReg<R0> {
+ let callee = match transmute(super::SYSCALL.load(Relaxed)) {
+ Some(callee) => callee,
+ None => super::init_syscall(),
+ };
+ asm::indirect_syscall0(callee, nr)
+ }
+
+ #[inline]
+ pub(in crate::backend) unsafe fn syscall1<'a>(
+ nr: SyscallNumber<'a>,
+ a0: ArgReg<'a, A0>,
+ ) -> RetReg<R0> {
+ let callee = match transmute(super::SYSCALL.load(Relaxed)) {
+ Some(callee) => callee,
+ None => super::init_syscall(),
+ };
+ asm::indirect_syscall1(callee, nr, a0)
+ }
+
+ #[inline]
+ pub(in crate::backend) unsafe fn syscall1_noreturn<'a>(
+ nr: SyscallNumber<'a>,
+ a0: ArgReg<'a, A0>,
+ ) -> ! {
+ let callee = match transmute(super::SYSCALL.load(Relaxed)) {
+ Some(callee) => callee,
+ None => super::init_syscall(),
+ };
+ asm::indirect_syscall1_noreturn(callee, nr, a0)
+ }
+
+ #[inline]
+ pub(in crate::backend) unsafe fn syscall2<'a>(
+ nr: SyscallNumber<'a>,
+ a0: ArgReg<'a, A0>,
+ a1: ArgReg<'a, A1>,
+ ) -> RetReg<R0> {
+ let callee = match transmute(super::SYSCALL.load(Relaxed)) {
+ Some(callee) => callee,
+ None => super::init_syscall(),
+ };
+ asm::indirect_syscall2(callee, nr, a0, a1)
+ }
+
+ #[inline]
+ pub(in crate::backend) unsafe fn syscall3<'a>(
+ nr: SyscallNumber<'a>,
+ a0: ArgReg<'a, A0>,
+ a1: ArgReg<'a, A1>,
+ a2: ArgReg<'a, A2>,
+ ) -> RetReg<R0> {
+ let callee = match transmute(super::SYSCALL.load(Relaxed)) {
+ Some(callee) => callee,
+ None => super::init_syscall(),
+ };
+ asm::indirect_syscall3(callee, nr, a0, a1, a2)
+ }
+
+ #[inline]
+ pub(in crate::backend) unsafe fn syscall4<'a>(
+ nr: SyscallNumber<'a>,
+ a0: ArgReg<'a, A0>,
+ a1: ArgReg<'a, A1>,
+ a2: ArgReg<'a, A2>,
+ a3: ArgReg<'a, A3>,
+ ) -> RetReg<R0> {
+ let callee = match transmute(super::SYSCALL.load(Relaxed)) {
+ Some(callee) => callee,
+ None => super::init_syscall(),
+ };
+ asm::indirect_syscall4(callee, nr, a0, a1, a2, a3)
+ }
+
+ #[inline]
+ pub(in crate::backend) unsafe fn syscall5<'a>(
+ nr: SyscallNumber<'a>,
+ a0: ArgReg<'a, A0>,
+ a1: ArgReg<'a, A1>,
+ a2: ArgReg<'a, A2>,
+ a3: ArgReg<'a, A3>,
+ a4: ArgReg<'a, A4>,
+ ) -> RetReg<R0> {
+ let callee = match transmute(super::SYSCALL.load(Relaxed)) {
+ Some(callee) => callee,
+ None => super::init_syscall(),
+ };
+ asm::indirect_syscall5(callee, nr, a0, a1, a2, a3, a4)
+ }
+
+ #[inline]
+ pub(in crate::backend) unsafe fn syscall6<'a>(
+ nr: SyscallNumber<'a>,
+ a0: ArgReg<'a, A0>,
+ a1: ArgReg<'a, A1>,
+ a2: ArgReg<'a, A2>,
+ a3: ArgReg<'a, A3>,
+ a4: ArgReg<'a, A4>,
+ a5: ArgReg<'a, A5>,
+ ) -> RetReg<R0> {
+ let callee = match transmute(super::SYSCALL.load(Relaxed)) {
+ Some(callee) => callee,
+ None => super::init_syscall(),
+ };
+ asm::indirect_syscall6(callee, nr, a0, a1, a2, a3, a4, a5)
+ }
+
+ // With the indirect call, it isn't meaningful to do a separate
+ // `_readonly` optimization.
+ #[allow(unused_imports)]
+ pub(in crate::backend) use {
+ syscall0 as syscall0_readonly, syscall1 as syscall1_readonly,
+ syscall2 as syscall2_readonly, syscall3 as syscall3_readonly,
+ syscall4 as syscall4_readonly, syscall5 as syscall5_readonly,
+ syscall6 as syscall6_readonly,
+ };
+}
+
+#[cfg(feature = "time")]
+type ClockGettimeType = unsafe extern "C" fn(c::c_int, *mut Timespec) -> c::c_int;
+
+#[cfg(feature = "thread")]
+#[cfg(any(
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "s390x",
+))]
+type GetcpuType = unsafe extern "C" fn(*mut u32, *mut u32, *mut c_void) -> c::c_int;
+
+/// The underlying syscall functions are only called from asm, using the
+/// special syscall calling convention to pass arguments and return values,
+/// which the signature here doesn't reflect.
+#[cfg(target_arch = "x86")]
+pub(super) type SyscallType = unsafe extern "C" fn();
+
+/// Initialize `CLOCK_GETTIME` and return its value.
+#[cfg(feature = "time")]
+#[cold]
+fn init_clock_gettime() -> ClockGettimeType {
+ init();
+ // SAFETY: Load the function address from static storage that we just
+ // initialized.
+ unsafe { transmute(CLOCK_GETTIME.load(Relaxed)) }
+}
+
+/// Initialize `GETCPU` and return its value.
+#[cfg(feature = "thread")]
+#[cfg(any(
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "s390x",
+))]
+#[cold]
+fn init_getcpu() -> GetcpuType {
+ init();
+ // SAFETY: Load the function address from static storage that we just
+ // initialized.
+ unsafe { transmute(GETCPU.load(Relaxed)) }
+}
+
+/// Initialize `SYSCALL` and return its value.
+#[cfg(target_arch = "x86")]
+#[cold]
+fn init_syscall() -> SyscallType {
+ init();
+ // SAFETY: Load the function address from static storage that we just
+ // initialized.
+ unsafe { transmute(SYSCALL.load(Relaxed)) }
+}
+
+/// `AtomicPtr` can't hold a `fn` pointer, so we use a `*` pointer to this
+/// placeholder type, and cast it as needed.
+struct Function;
+#[cfg(feature = "time")]
+static CLOCK_GETTIME: AtomicPtr<Function> = AtomicPtr::new(null_mut());
+#[cfg(feature = "thread")]
+#[cfg(any(
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "s390x",
+))]
+static GETCPU: AtomicPtr<Function> = AtomicPtr::new(null_mut());
+#[cfg(target_arch = "x86")]
+static SYSCALL: AtomicPtr<Function> = AtomicPtr::new(null_mut());
+
+#[cfg(feature = "time")]
+#[must_use]
+unsafe extern "C" fn clock_gettime_via_syscall(clockid: c::c_int, res: *mut Timespec) -> c::c_int {
+ match _clock_gettime_via_syscall(clockid, res) {
+ Ok(()) => 0,
+ Err(err) => err.raw_os_error().wrapping_neg(),
+ }
+}
+
+#[cfg(feature = "time")]
+#[cfg(target_pointer_width = "32")]
+unsafe fn _clock_gettime_via_syscall(clockid: c::c_int, res: *mut Timespec) -> io::Result<()> {
+ let r0 = syscall!(__NR_clock_gettime64, c_int(clockid), res);
+ match ret(r0) {
+ Err(io::Errno::NOSYS) => _clock_gettime_via_syscall_old(clockid, res),
+ otherwise => otherwise,
+ }
+}
+
+#[cfg(feature = "time")]
+#[cfg(target_pointer_width = "32")]
+unsafe fn _clock_gettime_via_syscall_old(clockid: c::c_int, res: *mut Timespec) -> io::Result<()> {
+ // Ordinarily `rustix` doesn't like to emulate system calls, but in the
+ // case of time APIs, it's specific to Linux, specific to 32-bit
+ // architectures *and* specific to old kernel versions, and it's not that
+ // hard to fix up here, so that no other code needs to worry about this.
+ let mut old_result = MaybeUninit::<__kernel_old_timespec>::uninit();
+ let r0 = syscall!(__NR_clock_gettime, c_int(clockid), &mut old_result);
+ match ret(r0) {
+ Ok(()) => {
+ let old_result = old_result.assume_init();
+ *res = Timespec {
+ tv_sec: old_result.tv_sec.into(),
+ tv_nsec: old_result.tv_nsec.into(),
+ };
+ Ok(())
+ }
+ otherwise => otherwise,
+ }
+}
+
+#[cfg(feature = "time")]
+#[cfg(target_pointer_width = "64")]
+unsafe fn _clock_gettime_via_syscall(clockid: c::c_int, res: *mut Timespec) -> io::Result<()> {
+ ret(syscall!(__NR_clock_gettime, c_int(clockid), res))
+}
+
+#[cfg(feature = "thread")]
+#[cfg(any(
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "s390x",
+))]
+unsafe extern "C" fn getcpu_via_syscall(
+ cpu: *mut u32,
+ node: *mut u32,
+ unused: *mut c_void,
+) -> c::c_int {
+ match ret(syscall!(__NR_getcpu, cpu, node, unused)) {
+ Ok(()) => 0,
+ Err(err) => err.raw_os_error().wrapping_neg(),
+ }
+}
+
+#[cfg(target_arch = "x86")]
+extern "C" {
+ /// A symbol pointing to an x86 `int 0x80` instruction. This “function”
+ /// is only called from assembly, and only with the x86 syscall calling
+ /// convention, so its signature here is not its true signature.
+ ///
+ /// This extern block and the `global_asm!` below can be replaced with
+ /// `#[naked]` if it's stabilized.
+ fn rustix_x86_int_0x80();
+}
+
+// This uses `.weak` so that it doesn't conflict if multiple versions of rustix
+// are linked in in non-lto builds, and `.ifndef` so that it doesn't conflict
+// if multiple versions of rustix are linked in in lto builds.
+#[cfg(target_arch = "x86")]
+global_asm!(
+ r#"
+ .ifndef rustix_x86_int_0x80
+ .section .text.rustix_x86_int_0x80,"ax",@progbits
+ .p2align 4
+ .weak rustix_x86_int_0x80
+ .hidden rustix_x86_int_0x80
+ .type rustix_x86_int_0x80, @function
+rustix_x86_int_0x80:
+ .cfi_startproc
+ int 0x80
+ ret
+ .cfi_endproc
+ .size rustix_x86_int_0x80, .-rustix_x86_int_0x80
+ .endif
+"#
+);
+
+fn minimal_init() {
+ // Store default function addresses in static storage so that if we
+ // end up making any system calls while we read the vDSO, they'll work. If
+ // the memory happens to already be initialized, this is redundant, but not
+ // harmful.
+ #[cfg(feature = "time")]
+ {
+ CLOCK_GETTIME
+ .compare_exchange(
+ null_mut(),
+ clock_gettime_via_syscall as *mut Function,
+ Relaxed,
+ Relaxed,
+ )
+ .ok();
+ }
+
+ #[cfg(feature = "thread")]
+ #[cfg(any(
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "s390x",
+ ))]
+ {
+ GETCPU
+ .compare_exchange(
+ null_mut(),
+ getcpu_via_syscall as *mut Function,
+ Relaxed,
+ Relaxed,
+ )
+ .ok();
+ }
+
+ #[cfg(target_arch = "x86")]
+ {
+ SYSCALL
+ .compare_exchange(
+ null_mut(),
+ rustix_x86_int_0x80 as *mut Function,
+ Relaxed,
+ Relaxed,
+ )
+ .ok();
+ }
+}
+
+fn init() {
+ minimal_init();
+
+ if let Some(vdso) = vdso::Vdso::new() {
+ #[cfg(feature = "time")]
+ {
+ // Look up the platform-specific `clock_gettime` symbol as
+ // documented [here], except on 32-bit platforms where we look up
+ // the `64`-suffixed variant and fail if we don't find it.
+ //
+ // [here]: https://man7.org/linux/man-pages/man7/vdso.7.html
+ #[cfg(target_arch = "x86_64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime"));
+ #[cfg(target_arch = "arm")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime64"));
+ #[cfg(target_arch = "aarch64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.39"), cstr!("__kernel_clock_gettime"));
+ #[cfg(target_arch = "x86")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime64"));
+ #[cfg(target_arch = "riscv64")]
+ let ptr = vdso.sym(cstr!("LINUX_4.15"), cstr!("__vdso_clock_gettime"));
+ #[cfg(target_arch = "powerpc")]
+ let ptr = vdso.sym(cstr!("LINUX_5.11"), cstr!("__kernel_clock_gettime64"));
+ #[cfg(target_arch = "powerpc64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.15"), cstr!("__kernel_clock_gettime"));
+ #[cfg(target_arch = "s390x")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.29"), cstr!("__kernel_clock_gettime"));
+ #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime64"));
+ #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime"));
+
+ // On all 64-bit platforms, the 64-bit `clock_gettime` symbols are
+ // always available.
+ #[cfg(target_pointer_width = "64")]
+ let ok = true;
+
+ // On some 32-bit platforms, the 64-bit `clock_gettime` symbols are
+ // not available on older kernel versions.
+ #[cfg(any(
+ target_arch = "arm",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "powerpc",
+ target_arch = "x86"
+ ))]
+ let ok = !ptr.is_null();
+
+ if ok {
+ assert!(!ptr.is_null());
+
+ // Store the computed function addresses in static storage so
+ // that we don't need to compute them again (but if we do, it
+ // doesn't hurt anything).
+ CLOCK_GETTIME.store(ptr.cast(), Relaxed);
+ }
+ }
+
+ #[cfg(feature = "thread")]
+ #[cfg(any(
+ target_arch = "x86_64",
+ target_arch = "x86",
+ target_arch = "riscv64",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "s390x",
+ ))]
+ {
+ // Look up the platform-specific `getcpu` symbol as documented
+ // [here].
+ //
+ // [here]: https://man7.org/linux/man-pages/man7/vdso.7.html
+ #[cfg(target_arch = "x86_64")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_getcpu"));
+ #[cfg(target_arch = "x86")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_getcpu"));
+ #[cfg(target_arch = "riscv64")]
+ let ptr = vdso.sym(cstr!("LINUX_4.15"), cstr!("__vdso_getcpu"));
+ #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.15"), cstr!("__kernel_getcpu"));
+ #[cfg(target_arch = "s390x")]
+ let ptr = vdso.sym(cstr!("LINUX_2.6.29"), cstr!("__kernel_getcpu"));
+
+ #[cfg(any(
+ target_arch = "x86_64",
+ target_arch = "riscv64",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "s390x"
+ ))]
+ let ok = true;
+
+ // On 32-bit x86, the symbol doesn't appear present sometimes.
+ #[cfg(target_arch = "x86")]
+ let ok = !ptr.is_null();
+
+ #[cfg(any(
+ target_arch = "aarch64",
+ target_arch = "arm",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ ))]
+ let ok = false;
+
+ if ok {
+ assert!(!ptr.is_null());
+
+ // Store the computed function addresses in static storage so
+ // that we don't need to compute them again (but if we do, it
+ // doesn't hurt anything).
+ GETCPU.store(ptr.cast(), Relaxed);
+ }
+ }
+
+ // On x86, also look up the vsyscall entry point.
+ #[cfg(target_arch = "x86")]
+ {
+ let ptr = vdso.sym(cstr!("LINUX_2.5"), cstr!("__kernel_vsyscall"));
+ assert!(!ptr.is_null());
+
+ // As above, store the computed function addresses in
+ // static storage.
+ SYSCALL.store(ptr.cast(), Relaxed);
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/bitcast.rs b/vendor/rustix-1.0.8/src/bitcast.rs
new file mode 100644
index 0000000..db17c7c
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/bitcast.rs
@@ -0,0 +1,39 @@
+//! The `bitcast` and `bitflags_bits` macros.
+
+#![allow(unused_macros)]
+
+// Ensure that the source and destination types are both primitive integer
+// types and the same size, and then bitcast.
+macro_rules! bitcast {
+ ($x:expr) => {{
+ if false {
+ // Ensure the source and destinations are primitive integer types.
+ let _ = !$x;
+ let _ = $x as u8;
+ 0
+ } else if false {
+ // Ensure that the source and destinations are the same size.
+ #[allow(
+ unsafe_code,
+ unused_unsafe,
+ clippy::useless_transmute,
+ clippy::missing_transmute_annotations
+ )]
+ // SAFETY: This code is under an `if false`.
+ unsafe {
+ ::core::mem::transmute($x)
+ }
+ } else {
+ // Do the conversion.
+ $x as _
+ }
+ }};
+}
+
+/// Return a [`bitcast`] of the value of `$x.bits()`, where `$x` is a
+/// `bitflags` type.
+macro_rules! bitflags_bits {
+ ($x:expr) => {{
+ bitcast!($x.bits())
+ }};
+}
diff --git a/vendor/rustix-1.0.8/src/buffer.rs b/vendor/rustix-1.0.8/src/buffer.rs
new file mode 100644
index 0000000..6c86826
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/buffer.rs
@@ -0,0 +1,448 @@
+//! Utilities for functions that return data via buffers.
+
+#![allow(unsafe_code)]
+
+#[cfg(feature = "alloc")]
+use alloc::vec::Vec;
+use core::mem::MaybeUninit;
+use core::slice;
+
+/// A memory buffer that may be uninitialized.
+///
+/// There are three types that implement the `Buffer` trait, and the type you
+/// use determines the return type of the functions that use it:
+///
+/// | If you pass a… | You get back a… |
+/// | ------------------------ | --------------- |
+/// | `&mut [u8]` | `usize`, indicating the number of elements initialized. |
+/// | `&mut [MaybeUninit<u8>]` | `(&mut [u8], &mut [MaybeUninit<u8>])`, holding the initialized and uninitialized subslices. |
+/// | [`SpareCapacity`] | `usize`, indicating the number of elements initialized. And the `Vec` is extended. |
+///
+/// # Examples
+///
+/// Passing a `&mut [u8]`:
+///
+/// ```
+/// # use rustix::io::read;
+/// # fn example(fd: rustix::fd::BorrowedFd) -> rustix::io::Result<()> {
+/// let mut buf = [0_u8; 64];
+/// let nread = read(fd, &mut buf)?;
+/// // `nread` is the number of bytes read.
+/// # Ok(())
+/// # }
+/// ```
+///
+/// Passing a `&mut [MaybeUninit<u8>]`:
+///
+/// ```
+/// # use rustix::io::read;
+/// # use std::mem::MaybeUninit;
+/// # fn example(fd: rustix::fd::BorrowedFd) -> rustix::io::Result<()> {
+/// let mut buf = [MaybeUninit::<u8>::uninit(); 64];
+/// let (init, uninit) = read(fd, &mut buf)?;
+/// // `init` is a `&mut [u8]` with the initialized bytes.
+/// // `uninit` is a `&mut [MaybeUninit<u8>]` with the remaining bytes.
+/// # Ok(())
+/// # }
+/// ```
+///
+/// Passing a [`SpareCapacity`], via the [`spare_capacity`] helper function:
+///
+/// ```
+/// # use rustix::io::read;
+/// # use rustix::buffer::spare_capacity;
+/// # fn example(fd: rustix::fd::BorrowedFd) -> rustix::io::Result<()> {
+/// let mut buf = Vec::with_capacity(64);
+/// let nread = read(fd, spare_capacity(&mut buf))?;
+/// // `nread` is the number of bytes read.
+/// // Also, `buf.len()` is now `nread` elements longer than it was before.
+/// # Ok(())
+/// # }
+/// ```
+///
+/// # Guide to error messages
+///
+/// Sometimes code using `Buffer` can encounter non-obvious error messages.
+/// Here are some we've encountered, along with ways to fix them.
+///
+/// If you see errors like
+/// "cannot move out of `self` which is behind a mutable reference"
+/// and
+/// "move occurs because `x` has type `&mut [u8]`, which does not implement the `Copy` trait",
+/// replace `x` with `&mut *x`. See `error_buffer_wrapper` in
+/// examples/buffer_errors.rs.
+///
+/// If you see errors like
+/// "type annotations needed"
+/// and
+/// "cannot infer type of the type parameter `Buf` declared on the function `read`",
+/// you may need to change a `&mut []` to `&mut [0_u8; 0]`. See
+/// `error_empty_slice` in examples/buffer_errors.rs.
+///
+/// If you see errors like
+/// "the trait bound `[MaybeUninit<u8>; 1]: Buffer<u8>` is not satisfied",
+/// add a `&mut` to pass the array by reference instead of by value. See
+/// `error_array_by_value` in examples/buffer_errors.rs.
+///
+/// If you see errors like
+/// "cannot move out of `x`, a captured variable in an `FnMut` closure",
+/// try replacing `x` with `&mut *x`, or, if that doesn't work, try moving a
+/// `let` into the closure body. See `error_retry_closure` and
+/// `error_retry_indirect_closure` in examples/buffer_errors.rs.
+///
+/// If you see errors like
+/// "captured variable cannot escape `FnMut` closure body",
+/// use an explicit loop instead of `retry_on_intr`, assuming you're using
+/// that. See `error_retry_closure_uninit` in examples/buffer_errors.rs.
+pub trait Buffer<T>: private::Sealed<T> {}
+
+// Implement `Buffer` for all the types that implement `Sealed`.
+impl<T> Buffer<T> for &mut [T] {}
+impl<T, const N: usize> Buffer<T> for &mut [T; N] {}
+#[cfg(feature = "alloc")]
+impl<T> Buffer<T> for &mut Vec<T> {}
+impl<T> Buffer<T> for &mut [MaybeUninit<T>] {}
+impl<T, const N: usize> Buffer<T> for &mut [MaybeUninit<T>; N] {}
+#[cfg(feature = "alloc")]
+impl<T> Buffer<T> for &mut Vec<MaybeUninit<T>> {}
+#[cfg(feature = "alloc")]
+impl<'a, T> Buffer<T> for SpareCapacity<'a, T> {}
+
+impl<T> private::Sealed<T> for &mut [T] {
+ type Output = usize;
+
+ #[inline]
+ fn parts_mut(&mut self) -> (*mut T, usize) {
+ (self.as_mut_ptr(), self.len())
+ }
+
+ #[inline]
+ unsafe fn assume_init(self, len: usize) -> Self::Output {
+ len
+ }
+}
+
+impl<T, const N: usize> private::Sealed<T> for &mut [T; N] {
+ type Output = usize;
+
+ #[inline]
+ fn parts_mut(&mut self) -> (*mut T, usize) {
+ (self.as_mut_ptr(), N)
+ }
+
+ #[inline]
+ unsafe fn assume_init(self, len: usize) -> Self::Output {
+ len
+ }
+}
+
+// `Vec` implements `DerefMut` to `&mut [T]`, however it doesn't get
+// auto-derefed in a `impl Buffer<u8>`, so we add this `impl` so that our users
+// don't have to add an extra `*` in these situations.
+#[cfg(feature = "alloc")]
+impl<T> private::Sealed<T> for &mut Vec<T> {
+ type Output = usize;
+
+ #[inline]
+ fn parts_mut(&mut self) -> (*mut T, usize) {
+ (self.as_mut_ptr(), self.len())
+ }
+
+ #[inline]
+ unsafe fn assume_init(self, len: usize) -> Self::Output {
+ len
+ }
+}
+
+impl<'a, T> private::Sealed<T> for &'a mut [MaybeUninit<T>] {
+ type Output = (&'a mut [T], &'a mut [MaybeUninit<T>]);
+
+ #[inline]
+ fn parts_mut(&mut self) -> (*mut T, usize) {
+ (self.as_mut_ptr().cast(), self.len())
+ }
+
+ #[inline]
+ unsafe fn assume_init(self, len: usize) -> Self::Output {
+ let (init, uninit) = self.split_at_mut(len);
+
+ // SAFETY: The user asserts that the slice is now initialized.
+ let init = slice::from_raw_parts_mut(init.as_mut_ptr().cast::<T>(), init.len());
+
+ (init, uninit)
+ }
+}
+
+impl<'a, T, const N: usize> private::Sealed<T> for &'a mut [MaybeUninit<T>; N] {
+ type Output = (&'a mut [T], &'a mut [MaybeUninit<T>]);
+
+ #[inline]
+ fn parts_mut(&mut self) -> (*mut T, usize) {
+ (self.as_mut_ptr().cast(), self.len())
+ }
+
+ #[inline]
+ unsafe fn assume_init(self, len: usize) -> Self::Output {
+ let (init, uninit) = self.split_at_mut(len);
+
+ // SAFETY: The user asserts that the slice is now initialized.
+ let init = slice::from_raw_parts_mut(init.as_mut_ptr().cast::<T>(), init.len());
+
+ (init, uninit)
+ }
+}
+
+#[cfg(feature = "alloc")]
+impl<'a, T> private::Sealed<T> for &'a mut Vec<MaybeUninit<T>> {
+ type Output = (&'a mut [T], &'a mut [MaybeUninit<T>]);
+
+ #[inline]
+ fn parts_mut(&mut self) -> (*mut T, usize) {
+ (self.as_mut_ptr().cast(), self.len())
+ }
+
+ #[inline]
+ unsafe fn assume_init(self, len: usize) -> Self::Output {
+ let (init, uninit) = self.split_at_mut(len);
+
+ // SAFETY: The user asserts that the slice is now initialized.
+ let init = slice::from_raw_parts_mut(init.as_mut_ptr().cast::<T>(), init.len());
+
+ (init, uninit)
+ }
+}
+
+/// A type that implements [`Buffer`] by appending to a `Vec`, up to its
+/// capacity.
+///
+/// To use this, use the [`spare_capacity`] function.
+///
+/// Because this uses the capacity, and never reallocates, the `Vec` should
+/// have some non-empty spare capacity.
+#[cfg(feature = "alloc")]
+#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
+pub struct SpareCapacity<'a, T>(&'a mut Vec<T>);
+
+/// Construct an [`SpareCapacity`], which implements [`Buffer`].
+///
+/// This wraps a `Vec` and uses the spare capacity of the `Vec` as the buffer
+/// to receive data in, automatically calling `set_len` on the `Vec` to set the
+/// length to include the received elements.
+///
+/// This uses the existing capacity, and never allocates, so the `Vec` should
+/// have some non-empty spare capacity!
+///
+/// # Examples
+///
+/// ```
+/// # fn test(input: rustix::fd::BorrowedFd) -> rustix::io::Result<()> {
+/// use rustix::buffer::spare_capacity;
+/// use rustix::io::{read, Errno};
+///
+/// let mut buf = Vec::with_capacity(1024);
+/// match read(input, spare_capacity(&mut buf)) {
+/// Ok(0) => { /* end of stream */ }
+/// Ok(n) => { /* `buf` is now `n` bytes longer */ }
+/// Err(Errno::INTR) => { /* `buf` is unmodified */ }
+/// Err(e) => {
+/// return Err(e);
+/// }
+/// }
+///
+/// # Ok(())
+/// # }
+/// ```
+#[cfg(feature = "alloc")]
+#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
+pub fn spare_capacity<'a, T>(v: &'a mut Vec<T>) -> SpareCapacity<'a, T> {
+ debug_assert_ne!(
+ v.capacity(),
+ 0,
+ "`extend` uses spare capacity, and never allocates new memory, so the `Vec` passed to it \
+ should have some spare capacity."
+ );
+
+ SpareCapacity(v)
+}
+
+#[cfg(feature = "alloc")]
+impl<'a, T> private::Sealed<T> for SpareCapacity<'a, T> {
+ /// The mutated `Vec` reflects the number of bytes read. We also return
+ /// this number, and a value of 0 indicates the end of the stream has
+ /// been reached.
+ type Output = usize;
+
+ #[inline]
+ fn parts_mut(&mut self) -> (*mut T, usize) {
+ let spare = self.0.spare_capacity_mut();
+ (spare.as_mut_ptr().cast(), spare.len())
+ }
+
+ #[inline]
+ unsafe fn assume_init(self, len: usize) -> Self::Output {
+ // We initialized `len` elements; extend the `Vec` to include them.
+ self.0.set_len(self.0.len() + len);
+ len
+ }
+}
+
+mod private {
+ pub trait Sealed<T> {
+ /// The result of the process operation.
+ type Output;
+
+ /// Return a pointer and length for this buffer.
+ ///
+ /// The length is the number of elements of type `T`, not a number of
+ /// bytes.
+ ///
+ /// It's tempting to have this return `&mut [MaybeUninit<T>]` instead,
+ /// however that would require this function to be `unsafe`, because
+ /// callers could use the `&mut [MaybeUninit<T>]` slice to set elements
+ /// to `MaybeUninit::<T>::uninit()`, which would be a problem if `Self`
+ /// is `&mut [T]` or similar.
+ fn parts_mut(&mut self) -> (*mut T, usize);
+
+ /// Convert a finished buffer pointer into its result.
+ ///
+ /// # Safety
+ ///
+ /// At least `len` elements of the buffer must now be initialized.
+ #[must_use]
+ unsafe fn assume_init(self, len: usize) -> Self::Output;
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ #[allow(unused_imports)]
+ use super::*;
+
+ #[cfg(not(windows))]
+ #[test]
+ fn test_compilation() {
+ use crate::io::read;
+ use core::mem::MaybeUninit;
+
+ // We need to obtain input stream, so open our own source file.
+ let input = std::fs::File::open("src/buffer.rs").unwrap();
+
+ let mut buf = vec![0_u8; 3];
+ buf.reserve(32);
+ let _x: usize = read(&input, spare_capacity(&mut buf)).unwrap();
+ let _x: (&mut [u8], &mut [MaybeUninit<u8>]) =
+ read(&input, buf.spare_capacity_mut()).unwrap();
+ let _x: usize = read(&input, &mut buf).unwrap();
+ let _x: usize = read(&input, &mut *buf).unwrap();
+ let _x: usize = read(&input, &mut buf[..]).unwrap();
+ let _x: usize = read(&input, &mut (*buf)[..]).unwrap();
+
+ let mut buf = [0, 0, 0];
+ let _x: usize = read(&input, &mut buf).unwrap();
+ let _x: usize = read(&input, &mut buf[..]).unwrap();
+
+ let mut buf = [
+ MaybeUninit::uninit(),
+ MaybeUninit::uninit(),
+ MaybeUninit::uninit(),
+ ];
+ let _x: (&mut [u8], &mut [MaybeUninit<u8>]) = read(&input, &mut buf).unwrap();
+ let _x: (&mut [u8], &mut [MaybeUninit<u8>]) = read(&input, &mut buf[..]).unwrap();
+
+ let mut buf = vec![
+ MaybeUninit::uninit(),
+ MaybeUninit::uninit(),
+ MaybeUninit::uninit(),
+ ];
+ let _x: (&mut [u8], &mut [MaybeUninit<u8>]) = read(&input, &mut buf).unwrap();
+ let _x: (&mut [u8], &mut [MaybeUninit<u8>]) = read(&input, &mut buf[..]).unwrap();
+ }
+
+ #[cfg(not(windows))]
+ #[test]
+ fn test_slice() {
+ use crate::io::read;
+ use std::io::{Seek, SeekFrom};
+
+ // We need to obtain input stream with contents that we can compare
+ // against, so open our own source file.
+ let mut input = std::fs::File::open("src/buffer.rs").unwrap();
+
+ let mut buf = [0_u8; 64];
+ let nread = read(&input, &mut buf).unwrap();
+ assert_eq!(nread, buf.len());
+ assert_eq!(
+ &buf[..58],
+ b"//! Utilities for functions that return data via buffers.\n"
+ );
+ input.seek(SeekFrom::End(-1)).unwrap();
+ let nread = read(&input, &mut buf).unwrap();
+ assert_eq!(nread, 1);
+ input.seek(SeekFrom::End(0)).unwrap();
+ let nread = read(&input, &mut buf).unwrap();
+ assert_eq!(nread, 0);
+ }
+
+ #[cfg(not(windows))]
+ #[test]
+ fn test_slice_uninit() {
+ use crate::io::read;
+ use core::mem::MaybeUninit;
+ use std::io::{Seek, SeekFrom};
+
+ // We need to obtain input stream with contents that we can compare
+ // against, so open our own source file.
+ let mut input = std::fs::File::open("src/buffer.rs").unwrap();
+
+ let mut buf = [MaybeUninit::<u8>::uninit(); 64];
+ let (init, uninit) = read(&input, &mut buf).unwrap();
+ assert_eq!(uninit.len(), 0);
+ assert_eq!(
+ &init[..58],
+ b"//! Utilities for functions that return data via buffers.\n"
+ );
+ assert_eq!(init.len(), buf.len());
+ assert_eq!(
+ unsafe { core::mem::transmute::<&mut [MaybeUninit<u8>], &mut [u8]>(&mut buf[..58]) },
+ b"//! Utilities for functions that return data via buffers.\n"
+ );
+ input.seek(SeekFrom::End(-1)).unwrap();
+ let (init, uninit) = read(&input, &mut buf).unwrap();
+ assert_eq!(init.len(), 1);
+ assert_eq!(uninit.len(), buf.len() - 1);
+ input.seek(SeekFrom::End(0)).unwrap();
+ let (init, uninit) = read(&input, &mut buf).unwrap();
+ assert_eq!(init.len(), 0);
+ assert_eq!(uninit.len(), buf.len());
+ }
+
+ #[cfg(not(windows))]
+ #[test]
+ fn test_spare_capacity() {
+ use crate::io::read;
+ use std::io::{Seek, SeekFrom};
+
+ // We need to obtain input stream with contents that we can compare
+ // against, so open our own source file.
+ let mut input = std::fs::File::open("src/buffer.rs").unwrap();
+
+ let mut buf = Vec::with_capacity(64);
+ let nread = read(&input, spare_capacity(&mut buf)).unwrap();
+ assert_eq!(nread, buf.capacity());
+ assert_eq!(nread, buf.len());
+ assert_eq!(
+ &buf[..58],
+ b"//! Utilities for functions that return data via buffers.\n"
+ );
+ buf.clear();
+ input.seek(SeekFrom::End(-1)).unwrap();
+ let nread = read(&input, spare_capacity(&mut buf)).unwrap();
+ assert_eq!(nread, 1);
+ assert_eq!(buf.len(), 1);
+ buf.clear();
+ input.seek(SeekFrom::End(0)).unwrap();
+ let nread = read(&input, spare_capacity(&mut buf)).unwrap();
+ assert_eq!(nread, 0);
+ assert!(buf.is_empty());
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/check_types.rs b/vendor/rustix-1.0.8/src/check_types.rs
new file mode 100644
index 0000000..fb7e7a2
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/check_types.rs
@@ -0,0 +1,135 @@
+//! Macros for checking that types have the same layout as other types.
+
+#![allow(unused_macros)]
+
+/// Check that the size and alignment of a type match the `sys` bindings.
+macro_rules! check_type {
+ ($struct:ident) => {
+ assert_eq_size!($struct, c::$struct);
+ assert_eq_align!($struct, c::$struct);
+ };
+}
+
+/// The same as `check_type`, but for unions and anonymous structs we've
+/// renamed to avoid having types like `bindgen_ty_1` in the API.
+macro_rules! check_renamed_type {
+ ($to:ident, $from:ident) => {
+ assert_eq_size!($to, c::$from);
+ assert_eq_align!($to, c::$from);
+ };
+}
+
+/// Check that the field of a struct has the same offset as the corresponding
+/// field in the `sys` bindings.
+macro_rules! check_struct_field {
+ ($struct:ident, $field:ident) => {
+ const_assert_eq!(
+ memoffset::offset_of!($struct, $field),
+ memoffset::offset_of!(c::$struct, $field)
+ );
+
+ // This can't use `const_assert_eq` because `span_of` returns a
+ // `Range`, which can't be compared in const contexts.
+ assert_eq!(
+ memoffset::span_of!($struct, $field),
+ memoffset::span_of!(c::$struct, $field)
+ );
+ };
+}
+
+/// The same as `check_struct_field`, but for unions and anonymous structs
+/// we've renamed to avoid having types like `bindgen_ty_1` in the API.
+macro_rules! check_struct_renamed_field {
+ ($struct:ident, $to:ident, $from:ident) => {
+ const_assert_eq!(
+ memoffset::offset_of!($struct, $to),
+ memoffset::offset_of!(c::$struct, $from)
+ );
+
+ // As above, this can't use `const_assert_eq`.
+ assert_eq!(
+ memoffset::span_of!($struct, $to),
+ memoffset::span_of!(c::$struct, $from)
+ );
+ };
+}
+
+/// The same as `check_struct_field`, but for when the struct is renamed
+/// but the field is not.
+macro_rules! check_renamed_struct_field {
+ ($to_struct:ident, $from_struct:ident, $field:ident) => {
+ const_assert_eq!(
+ memoffset::offset_of!($to_struct, $field),
+ memoffset::offset_of!(c::$from_struct, $field)
+ );
+
+ // As above, this can't use `const_assert_eq`.
+ assert_eq!(
+ memoffset::span_of!($to_struct, $field),
+ memoffset::span_of!(c::$from_struct, $field)
+ );
+ };
+}
+
+/// The same as `check_struct_renamed_field`, but for when both the struct and
+/// a field are renamed.
+macro_rules! check_renamed_struct_renamed_field {
+ ($to_struct:ident, $from_struct:ident, $to:ident, $from:ident) => {
+ const_assert_eq!(
+ memoffset::offset_of!($to_struct, $to),
+ memoffset::offset_of!(c::$from_struct, $from)
+ );
+
+ // As above, this can't use `const_assert_eq`.
+ assert_eq!(
+ memoffset::span_of!($to_struct, $to),
+ memoffset::span_of!(c::$from_struct, $from)
+ );
+ };
+}
+
+/// For the common case of no renaming, check all fields of a struct.
+macro_rules! check_struct {
+ ($name:ident, $($field:ident),*) => {
+ // Check the size and alignment.
+ check_type!($name);
+
+ // Check that we have all the fields.
+ if false {
+ #[allow(unreachable_code)]
+ let _test = $name {
+ $($field: panic!()),*
+ };
+ #[allow(unreachable_code)]
+ let _test = c::$name {
+ $($field: panic!()),*
+ };
+ }
+
+ // Check that the fields have the right sizes and offsets.
+ $(check_struct_field!($name, $field));*
+ };
+}
+
+/// For the case of renaming, check all fields of a struct.
+macro_rules! check_renamed_struct {
+ ($to_struct:ident, $from_struct:ident, $($field:ident),*) => {
+ // Check the size and alignment.
+ check_renamed_type!($to_struct, $from_struct);
+
+ // Check that we have all the fields.
+ if false {
+ #[allow(unreachable_code)]
+ let _test = $to_struct {
+ $($field: panic!()),*
+ };
+ #[allow(unreachable_code)]
+ let _test = c::$from_struct {
+ $($field: panic!()),*
+ };
+ }
+
+ // Check that the fields have the right sizes and offsets.
+ $(check_renamed_struct_field!($to_struct, $from_struct, $field));*
+ };
+}
diff --git a/vendor/rustix-1.0.8/src/clockid.rs b/vendor/rustix-1.0.8/src/clockid.rs
new file mode 100644
index 0000000..ae300f2
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/clockid.rs
@@ -0,0 +1,171 @@
+use crate::backend::c;
+use crate::fd::BorrowedFd;
+
+/// `CLOCK_*` constants for use with [`clock_gettime`].
+///
+/// These constants are always supported at runtime, so `clock_gettime` never
+/// has to fail with `INVAL` due to an unsupported clock. See
+/// [`DynamicClockId`] for a greater set of clocks, with the caveat that not
+/// all of them are always supported.
+///
+/// [`clock_gettime`]: crate::time::clock_gettime
+#[cfg(not(any(apple, target_os = "wasi")))]
+#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
+#[cfg_attr(
+ not(any(target_os = "aix", target_os = "cygwin", target_os = "dragonfly")),
+ repr(i32)
+)]
+#[cfg_attr(any(target_os = "cygwin", target_os = "dragonfly"), repr(u64))]
+#[cfg_attr(target_os = "aix", repr(i64))]
+#[non_exhaustive]
+pub enum ClockId {
+ /// `CLOCK_REALTIME`
+ #[doc(alias = "CLOCK_REALTIME")]
+ Realtime = bitcast!(c::CLOCK_REALTIME),
+
+ /// `CLOCK_MONOTONIC`
+ #[doc(alias = "CLOCK_MONOTONIC")]
+ Monotonic = bitcast!(c::CLOCK_MONOTONIC),
+
+ /// `CLOCK_UPTIME`
+ ///
+ /// On FreeBSD, this is an alias for [`Self::Boottime`].
+ ///
+ /// On OpenBSD, this differs from `Self::Boottime`; it only advances when
+ /// the system is not suspended.
+ ///
+ /// [`Self::Uptime`]: https://docs.rs/rustix/*/x86_64-unknown-freebsd/rustix/time/enum.ClockId.html#variant.Uptime
+ #[cfg(any(freebsdlike, target_os = "openbsd"))]
+ #[doc(alias = "CLOCK_UPTIME")]
+ Uptime = c::CLOCK_UPTIME,
+
+ /// `CLOCK_PROCESS_CPUTIME_ID`
+ #[cfg(not(any(
+ solarish,
+ target_os = "horizon",
+ target_os = "netbsd",
+ target_os = "redox",
+ target_os = "vita"
+ )))]
+ #[doc(alias = "CLOCK_PROCESS_CPUTIME_ID")]
+ ProcessCPUTime = c::CLOCK_PROCESS_CPUTIME_ID,
+
+ /// `CLOCK_THREAD_CPUTIME_ID`
+ #[cfg(not(any(
+ solarish,
+ target_os = "horizon",
+ target_os = "netbsd",
+ target_os = "redox",
+ target_os = "vita"
+ )))]
+ #[doc(alias = "CLOCK_THREAD_CPUTIME_ID")]
+ ThreadCPUTime = c::CLOCK_THREAD_CPUTIME_ID,
+
+ /// `CLOCK_REALTIME_COARSE`
+ #[cfg(any(linux_kernel, target_os = "freebsd"))]
+ #[doc(alias = "CLOCK_REALTIME_COARSE")]
+ RealtimeCoarse = c::CLOCK_REALTIME_COARSE,
+
+ /// `CLOCK_MONOTONIC_COARSE`
+ #[cfg(any(linux_kernel, target_os = "freebsd"))]
+ #[doc(alias = "CLOCK_MONOTONIC_COARSE")]
+ MonotonicCoarse = c::CLOCK_MONOTONIC_COARSE,
+
+ /// `CLOCK_MONOTONIC_RAW`
+ #[cfg(linux_kernel)]
+ #[doc(alias = "CLOCK_MONOTONIC_RAW")]
+ MonotonicRaw = c::CLOCK_MONOTONIC_RAW,
+
+ /// `CLOCK_REALTIME_ALARM`
+ #[cfg(linux_kernel)]
+ #[doc(alias = "CLOCK_REALTIME_ALARM")]
+ RealtimeAlarm = bitcast!(c::CLOCK_REALTIME_ALARM),
+
+ /// `CLOCK_TAI`, available on Linux ≥ 3.10
+ #[cfg(all(linux_kernel, feature = "linux_4_11"))]
+ #[doc(alias = "CLOCK_TAI")]
+ Tai = bitcast!(c::CLOCK_TAI),
+
+ /// `CLOCK_BOOTTIME`
+ #[cfg(any(linux_kernel, target_os = "fuchsia", target_os = "openbsd"))]
+ #[doc(alias = "CLOCK_BOOTTIME")]
+ Boottime = bitcast!(c::CLOCK_BOOTTIME),
+
+ /// `CLOCK_BOOTTIME_ALARM`
+ #[cfg(any(linux_kernel, target_os = "fuchsia"))]
+ #[doc(alias = "CLOCK_BOOTTIME_ALARM")]
+ BoottimeAlarm = bitcast!(c::CLOCK_BOOTTIME_ALARM),
+}
+
+/// `CLOCK_*` constants for use with [`clock_gettime`].
+///
+/// These constants are always supported at runtime, so `clock_gettime` never
+/// has to fail with `INVAL` due to an unsupported clock. See
+/// [`DynamicClockId`] for a greater set of clocks, with the caveat that not
+/// all of them are always supported.
+///
+/// [`clock_gettime`]: crate::time::clock_gettime
+#[cfg(apple)]
+#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
+#[repr(u32)]
+#[non_exhaustive]
+pub enum ClockId {
+ /// `CLOCK_REALTIME`
+ #[doc(alias = "CLOCK_REALTIME")]
+ Realtime = c::CLOCK_REALTIME,
+
+ /// `CLOCK_MONOTONIC`
+ #[doc(alias = "CLOCK_MONOTONIC")]
+ Monotonic = c::CLOCK_MONOTONIC,
+
+ /// `CLOCK_PROCESS_CPUTIME_ID`
+ #[doc(alias = "CLOCK_PROCESS_CPUTIME_ID")]
+ ProcessCPUTime = c::CLOCK_PROCESS_CPUTIME_ID,
+
+ /// `CLOCK_THREAD_CPUTIME_ID`
+ #[doc(alias = "CLOCK_THREAD_CPUTIME_ID")]
+ ThreadCPUTime = c::CLOCK_THREAD_CPUTIME_ID,
+}
+
+/// `CLOCK_*` constants for use with [`clock_gettime_dynamic`].
+///
+/// These constants may be unsupported at runtime, depending on the OS version,
+/// and `clock_gettime_dynamic` may fail with `INVAL`. See [`ClockId`] for
+/// clocks which are always supported at runtime.
+///
+/// [`clock_gettime_dynamic`]: crate::time::clock_gettime_dynamic
+#[cfg(not(target_os = "wasi"))]
+#[derive(Debug, Copy, Clone)]
+#[non_exhaustive]
+pub enum DynamicClockId<'a> {
+ /// `ClockId` values that are always supported at runtime.
+ Known(ClockId),
+
+ /// Linux dynamic clocks.
+ Dynamic(BorrowedFd<'a>),
+
+ /// `CLOCK_REALTIME_ALARM`
+ #[cfg(linux_kernel)]
+ #[doc(alias = "CLOCK_REALTIME_ALARM")]
+ RealtimeAlarm,
+
+ /// `CLOCK_TAI`, available on Linux ≥ 3.10
+ #[cfg(linux_kernel)]
+ #[doc(alias = "CLOCK_TAI")]
+ Tai,
+
+ /// `CLOCK_BOOTTIME`
+ #[cfg(any(
+ linux_kernel,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "openbsd"
+ ))]
+ #[doc(alias = "CLOCK_BOOTTIME")]
+ Boottime,
+
+ /// `CLOCK_BOOTTIME_ALARM`
+ #[cfg(any(linux_kernel, target_os = "fuchsia"))]
+ #[doc(alias = "CLOCK_BOOTTIME_ALARM")]
+ BoottimeAlarm,
+}
diff --git a/vendor/rustix-1.0.8/src/cstr.rs b/vendor/rustix-1.0.8/src/cstr.rs
new file mode 100644
index 0000000..75eb61b
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/cstr.rs
@@ -0,0 +1,86 @@
+/// A macro for [`CStr`] literals.
+///
+/// This can make passing string literals to rustix APIs more efficient, since
+/// most underlying system calls with string arguments expect NUL-terminated
+/// strings, and passing strings to rustix as `CStr`s means that rustix doesn't
+/// need to copy them into a separate buffer to NUL-terminate them.
+///
+/// In Rust ≥ 1.77, users can use [C-string literals] instead of this macro.
+///
+/// [`CStr`]: crate::ffi::CStr
+/// [C-string literals]: https://blog.rust-lang.org/2024/03/21/Rust-1.77.0.html#c-string-literals
+///
+/// # Examples
+///
+/// ```
+/// # #[cfg(feature = "fs")]
+/// # fn main() -> rustix::io::Result<()> {
+/// use rustix::cstr;
+/// use rustix::fs::{statat, AtFlags, CWD};
+///
+/// let metadata = statat(CWD, cstr!("Cargo.toml"), AtFlags::empty())?;
+/// # Ok(())
+/// # }
+/// # #[cfg(not(feature = "fs"))]
+/// # fn main() {}
+/// ```
+#[allow(unused_macros)]
+#[macro_export]
+macro_rules! cstr {
+ ($str:literal) => {{
+ // Check for NUL manually, to ensure safety.
+ //
+ // In release builds, with strings that don't contain NULs, this
+ // constant-folds away.
+ //
+ // We don't use std's `CStr::from_bytes_with_nul`; as of this writing,
+ // that function isn't defined as `#[inline]` in std and doesn't
+ // constant-fold away.
+ assert!(
+ !$str.bytes().any(|b| b == b'\0'),
+ "cstr argument contains embedded NUL bytes",
+ );
+
+ #[allow(unsafe_code, unused_unsafe)]
+ {
+ // Now that we know the string doesn't have embedded NULs, we can
+ // call `from_bytes_with_nul_unchecked`, which as of this writing
+ // is defined as `#[inline]` and completely optimizes away.
+ //
+ // SAFETY: We have manually checked that the string does not
+ // contain embedded NULs above, and we append or own NUL terminator
+ // here.
+ unsafe {
+ $crate::ffi::CStr::from_bytes_with_nul_unchecked(concat!($str, "\0").as_bytes())
+ }
+ }
+ }};
+}
+
+#[cfg(test)]
+mod tests {
+ #[allow(unused_imports)]
+ use super::*;
+
+ #[test]
+ fn test_cstr() {
+ use crate::ffi::CString;
+ use alloc::borrow::ToOwned as _;
+ assert_eq!(cstr!(""), &*CString::new("").unwrap());
+ assert_eq!(cstr!("").to_owned(), CString::new("").unwrap());
+ assert_eq!(cstr!("hello"), &*CString::new("hello").unwrap());
+ assert_eq!(cstr!("hello").to_owned(), CString::new("hello").unwrap());
+ }
+
+ #[test]
+ #[should_panic]
+ fn test_invalid_cstr() {
+ let _ = cstr!("hello\0world");
+ }
+
+ #[test]
+ #[should_panic]
+ fn test_invalid_empty_cstr() {
+ let _ = cstr!("\0");
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/event/epoll.rs b/vendor/rustix-1.0.8/src/event/epoll.rs
new file mode 100644
index 0000000..839f05d
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/event/epoll.rs
@@ -0,0 +1,347 @@
+//! Linux `epoll` support.
+//!
+//! # Examples
+//!
+//! ```no_run
+//! # #[cfg(feature = "net")]
+//! # fn main() -> std::io::Result<()> {
+//! use rustix::buffer::spare_capacity;
+//! use rustix::event::epoll;
+//! use rustix::fd::AsFd;
+//! use rustix::io::{ioctl_fionbio, read, write};
+//! use rustix::net::{
+//! accept, bind, listen, socket, AddressFamily, Ipv4Addr, SocketAddrV4, SocketType,
+//! };
+//! use std::collections::HashMap;
+//! use std::os::unix::io::AsRawFd;
+//!
+//! // Create a socket and listen on it.
+//! let listen_sock = socket(AddressFamily::INET, SocketType::STREAM, None)?;
+//! bind(&listen_sock, &SocketAddrV4::new(Ipv4Addr::LOCALHOST, 0))?;
+//! listen(&listen_sock, 1)?;
+//!
+//! // Create an epoll object. Using `Owning` here means the epoll object will
+//! // take ownership of the file descriptors registered with it.
+//! let epoll = epoll::create(epoll::CreateFlags::CLOEXEC)?;
+//!
+//! // Register the socket with the epoll object.
+//! epoll::add(
+//! &epoll,
+//! &listen_sock,
+//! epoll::EventData::new_u64(1),
+//! epoll::EventFlags::IN,
+//! )?;
+//!
+//! // Keep track of the sockets we've opened.
+//! let mut next_id = epoll::EventData::new_u64(2);
+//! let mut sockets = HashMap::new();
+//!
+//! // Process events.
+//! let mut event_list = Vec::with_capacity(4);
+//! loop {
+//! epoll::wait(&epoll, spare_capacity(&mut event_list), None)?;
+//! for event in event_list.drain(..) {
+//! let target = event.data;
+//! if target.u64() == 1 {
+//! // Accept a new connection, set it to non-blocking, and
+//! // register to be notified when it's ready to write to.
+//! let conn_sock = accept(&listen_sock)?;
+//! ioctl_fionbio(&conn_sock, true)?;
+//! epoll::add(
+//! &epoll,
+//! &conn_sock,
+//! next_id,
+//! epoll::EventFlags::OUT | epoll::EventFlags::ET,
+//! )?;
+//!
+//! // Keep track of the socket.
+//! sockets.insert(next_id, conn_sock);
+//! next_id = epoll::EventData::new_u64(next_id.u64() + 1);
+//! } else {
+//! // Write a message to the stream and then unregister it.
+//! let target = sockets.remove(&target).unwrap();
+//! write(&target, b"hello\n")?;
+//! let _ = epoll::delete(&epoll, &target)?;
+//! }
+//! }
+//! }
+//! # }
+//! # #[cfg(not(feature = "net"))]
+//! # fn main() {}
+//! ```
+
+#![allow(unsafe_code)]
+#![allow(unused_qualifications)]
+
+use super::epoll;
+pub use crate::backend::event::epoll::*;
+use crate::backend::event::syscalls;
+use crate::buffer::Buffer;
+use crate::fd::{AsFd, OwnedFd};
+use crate::io;
+use crate::timespec::Timespec;
+use core::ffi::c_void;
+use core::hash::{Hash, Hasher};
+
+/// `epoll_create1(flags)`—Creates a new epoll object.
+///
+/// Use the [`epoll::CreateFlags::CLOEXEC`] flag to prevent the resulting file
+/// descriptor from being implicitly passed across `exec` boundaries.
+///
+/// # References
+/// - [Linux]
+/// - [illumos]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/epoll_create.2.html
+/// [illumos]: https://www.illumos.org/man/3C/epoll_create
+#[inline]
+#[doc(alias = "epoll_create1")]
+pub fn create(flags: epoll::CreateFlags) -> io::Result<OwnedFd> {
+ syscalls::epoll_create(flags)
+}
+
+/// `epoll_ctl(self, EPOLL_CTL_ADD, data, event)`—Adds an element to an epoll
+/// object.
+///
+/// This registers interest in any of the events set in `event_flags` occurring
+/// on the file descriptor associated with `data`.
+///
+/// `close`ing a file descriptor does not necessarily unregister interest which
+/// can lead to spurious events being returned from [`epoll::wait`]. If a file
+/// descriptor is an `Arc<dyn SystemResource>`, then `epoll` can be thought to
+/// maintain a `Weak<dyn SystemResource>` to the file descriptor. Check the
+/// [faq] for details.
+///
+/// # References
+/// - [Linux]
+/// - [illumos]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/epoll_ctl.2.html
+/// [illumos]: https://www.illumos.org/man/3C/epoll_ctl
+/// [faq]: https://man7.org/linux/man-pages/man7/epoll.7.html#:~:text=Will%20closing%20a%20file%20descriptor%20cause%20it%20to%20be%20removed%20from%20all%0A%20%20%20%20%20%20%20%20%20%20epoll%20interest%20lists%3F
+#[doc(alias = "epoll_ctl")]
+#[inline]
+pub fn add<EpollFd: AsFd, SourceFd: AsFd>(
+ epoll: EpollFd,
+ source: SourceFd,
+ data: epoll::EventData,
+ event_flags: epoll::EventFlags,
+) -> io::Result<()> {
+ syscalls::epoll_add(
+ epoll.as_fd(),
+ source.as_fd(),
+ &Event {
+ flags: event_flags,
+ data,
+ #[cfg(all(libc, target_os = "redox"))]
+ _pad: 0,
+ },
+ )
+}
+
+/// `epoll_ctl(self, EPOLL_CTL_MOD, target, event)`—Modifies an element in a
+/// given epoll object.
+///
+/// This sets the events of interest with `target` to `events`.
+///
+/// # References
+/// - [Linux]
+/// - [illumos]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/epoll_ctl.2.html
+/// [illumos]: https://www.illumos.org/man/3C/epoll_ctl
+#[doc(alias = "epoll_ctl")]
+#[inline]
+pub fn modify<EpollFd: AsFd, SourceFd: AsFd>(
+ epoll: EpollFd,
+ source: SourceFd,
+ data: epoll::EventData,
+ event_flags: epoll::EventFlags,
+) -> io::Result<()> {
+ syscalls::epoll_mod(
+ epoll.as_fd(),
+ source.as_fd(),
+ &Event {
+ flags: event_flags,
+ data,
+ #[cfg(all(libc, target_os = "redox"))]
+ _pad: 0,
+ },
+ )
+}
+
+/// `epoll_ctl(self, EPOLL_CTL_DEL, target, NULL)`—Removes an element in a
+/// given epoll object.
+///
+/// # References
+/// - [Linux]
+/// - [illumos]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/epoll_ctl.2.html
+/// [illumos]: https://www.illumos.org/man/3C/epoll_ctl
+#[doc(alias = "epoll_ctl")]
+#[inline]
+pub fn delete<EpollFd: AsFd, SourceFd: AsFd>(epoll: EpollFd, source: SourceFd) -> io::Result<()> {
+ syscalls::epoll_del(epoll.as_fd(), source.as_fd())
+}
+
+/// `epoll_wait(self, events, timeout)`—Waits for registered events of
+/// interest.
+///
+/// For each event of interest, an element is written to `events`.
+///
+/// Linux versions older than 5.11 (those that don't support `epoll_pwait2`)
+/// don't support timeouts greater than `c_int::MAX` milliseconds; if an
+/// unsupported timeout is passed, this function fails with
+/// [`io::Errno::INVAL`]. Enable the "linux_5_11" feature to enable the full
+/// range of timeouts.
+///
+/// # References
+/// - [Linux]
+/// - [illumos]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/epoll_wait.2.html
+/// [illumos]: https://www.illumos.org/man/3C/epoll_wait
+#[doc(alias = "epoll_wait")]
+#[inline]
+pub fn wait<EpollFd: AsFd, Buf: Buffer<Event>>(
+ epoll: EpollFd,
+ mut event_list: Buf,
+ timeout: Option<&Timespec>,
+) -> io::Result<Buf::Output> {
+ // SAFETY: `epoll_wait` behaves.
+ let nfds = unsafe { syscalls::epoll_wait(epoll.as_fd(), event_list.parts_mut(), timeout)? };
+ // SAFETY: `epoll_wait` behaves.
+ unsafe { Ok(event_list.assume_init(nfds)) }
+}
+
+/// A record of an event that occurred.
+#[repr(C)]
+#[cfg_attr(all(not(libc), target_arch = "x86_64"), repr(packed))]
+#[cfg_attr(
+ all(
+ libc,
+ linux_kernel,
+ any(
+ all(
+ target_arch = "x86",
+ not(target_env = "musl"),
+ not(target_os = "android"),
+ ),
+ target_arch = "x86_64",
+ )
+ ),
+ repr(packed)
+)]
+#[cfg_attr(
+ all(solarish, any(target_arch = "x86", target_arch = "x86_64")),
+ repr(packed(4))
+)]
+#[derive(Copy, Clone, Eq, PartialEq, Hash)]
+pub struct Event {
+ /// Which specific event(s) occurred.
+ pub flags: EventFlags,
+ /// User data.
+ pub data: EventData,
+
+ #[cfg(all(libc, target_os = "redox"))]
+ _pad: u64,
+}
+
+/// Data associated with an [`epoll::Event`]. This can either be a 64-bit
+/// integer value or a pointer which preserves pointer provenance.
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union EventData {
+ /// A 64-bit integer value.
+ as_u64: u64,
+
+ /// A `*mut c_void` which preserves pointer provenance, extended to be
+ /// 64-bit so that if we read the value as a `u64` union field, we don't
+ /// get uninitialized memory.
+ sixty_four_bit_pointer: SixtyFourBitPointer,
+}
+
+impl EventData {
+ /// Construct a new value containing a `u64`.
+ #[inline]
+ pub const fn new_u64(value: u64) -> Self {
+ Self { as_u64: value }
+ }
+
+ /// Construct a new value containing a `*mut c_void`.
+ #[inline]
+ pub const fn new_ptr(value: *mut c_void) -> Self {
+ Self {
+ sixty_four_bit_pointer: SixtyFourBitPointer {
+ pointer: value,
+ #[cfg(target_pointer_width = "32")]
+ _padding: 0,
+ },
+ }
+ }
+
+ /// Return the value as a `u64`.
+ ///
+ /// If the stored value was a pointer, the pointer is zero-extended to a
+ /// `u64`.
+ #[inline]
+ pub fn u64(self) -> u64 {
+ unsafe { self.as_u64 }
+ }
+
+ /// Return the value as a `*mut c_void`.
+ ///
+ /// If the stored value was a `u64`, the least-significant bits of the
+ /// `u64` are returned as a pointer value.
+ #[inline]
+ pub fn ptr(self) -> *mut c_void {
+ unsafe { self.sixty_four_bit_pointer.pointer }
+ }
+}
+
+impl PartialEq for EventData {
+ #[inline]
+ fn eq(&self, other: &Self) -> bool {
+ self.u64() == other.u64()
+ }
+}
+
+impl Eq for EventData {}
+
+impl Hash for EventData {
+ #[inline]
+ fn hash<H: Hasher>(&self, state: &mut H) {
+ self.u64().hash(state)
+ }
+}
+
+#[repr(C)]
+#[derive(Copy, Clone)]
+struct SixtyFourBitPointer {
+ #[cfg(target_endian = "big")]
+ #[cfg(target_pointer_width = "32")]
+ _padding: u32,
+
+ pointer: *mut c_void,
+
+ #[cfg(target_endian = "little")]
+ #[cfg(target_pointer_width = "32")]
+ _padding: u32,
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use crate::backend::c;
+
+ #[test]
+ fn test_epoll_layouts() {
+ check_renamed_type!(Event, epoll_event);
+ check_renamed_struct_renamed_field!(Event, epoll_event, flags, events);
+ #[cfg(libc)]
+ check_renamed_struct_renamed_field!(Event, epoll_event, data, u64);
+ #[cfg(not(libc))]
+ check_renamed_struct_renamed_field!(Event, epoll_event, data, data);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/event/eventfd.rs b/vendor/rustix-1.0.8/src/event/eventfd.rs
new file mode 100644
index 0000000..a76f2cf
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/event/eventfd.rs
@@ -0,0 +1,20 @@
+use crate::fd::OwnedFd;
+use crate::{backend, io};
+
+pub use backend::event::types::EventfdFlags;
+
+/// `eventfd(initval, flags)`—Creates a file descriptor for event
+/// notification.
+///
+/// # References
+/// - [Linux]
+/// - [FreeBSD]
+/// - [illumos]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/eventfd.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?eventfd
+/// [illumos]: https://illumos.org/man/3C/eventfd
+#[inline]
+pub fn eventfd(initval: u32, flags: EventfdFlags) -> io::Result<OwnedFd> {
+ backend::event::syscalls::eventfd(initval, flags)
+}
diff --git a/vendor/rustix-1.0.8/src/event/kqueue.rs b/vendor/rustix-1.0.8/src/event/kqueue.rs
new file mode 100644
index 0000000..897d939
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/event/kqueue.rs
@@ -0,0 +1,466 @@
+//! An API for interfacing with `kqueue`.
+
+use crate::buffer::Buffer;
+use crate::fd::{AsFd, OwnedFd, RawFd};
+use crate::pid::Pid;
+use crate::signal::Signal;
+use crate::timespec::Timespec;
+use crate::{backend, io};
+
+use backend::c::{self, intptr_t, kevent as kevent_t, uintptr_t};
+use backend::event::syscalls;
+
+use core::mem::zeroed;
+use core::time::Duration;
+
+/// A `kqueue` event for use with [`kevent`].
+#[repr(transparent)]
+#[derive(Copy, Clone)]
+pub struct Event {
+ // The layout varies between BSDs and macOS.
+ inner: kevent_t,
+}
+
+impl Event {
+ /// Create a new `Event`.
+ #[allow(clippy::needless_update)]
+ pub fn new(filter: EventFilter, flags: EventFlags, udata: *mut c::c_void) -> Event {
+ let (ident, data, filter, fflags) = match filter {
+ EventFilter::Read(fd) => (fd as uintptr_t, 0, c::EVFILT_READ, 0),
+ EventFilter::Write(fd) => (fd as _, 0, c::EVFILT_WRITE, 0),
+ #[cfg(target_os = "freebsd")]
+ EventFilter::Empty(fd) => (fd as _, 0, c::EVFILT_EMPTY, 0),
+ EventFilter::Vnode { vnode, flags } => (vnode as _, 0, c::EVFILT_VNODE, flags.bits()),
+ EventFilter::Proc { pid, flags } => {
+ (Pid::as_raw(Some(pid)) as _, 0, c::EVFILT_PROC, flags.bits())
+ }
+ EventFilter::Signal { signal, times: _ } => {
+ (signal.as_raw() as _, 0, c::EVFILT_SIGNAL, 0)
+ }
+ EventFilter::Timer { ident, timer } => {
+ #[cfg(any(apple, target_os = "freebsd", target_os = "netbsd"))]
+ let (data, fflags) = match timer {
+ Some(timer) => {
+ if timer.subsec_millis() == 0 {
+ (timer.as_secs() as _, c::NOTE_SECONDS)
+ } else if timer.subsec_nanos() == 0 {
+ (timer.as_micros() as _, c::NOTE_USECONDS)
+ } else {
+ (timer.as_nanos() as _, c::NOTE_NSECONDS)
+ }
+ }
+ None => (intptr_t::MAX, c::NOTE_SECONDS),
+ };
+ #[cfg(any(target_os = "dragonfly", target_os = "openbsd"))]
+ let (data, fflags) = match timer {
+ Some(timer) => (timer.as_millis() as _, 0),
+ None => (intptr_t::MAX, 0),
+ };
+
+ (ident as _, data, c::EVFILT_TIMER, fflags)
+ }
+ #[cfg(any(apple, freebsdlike))]
+ EventFilter::User {
+ ident,
+ flags,
+ user_flags,
+ } => (ident as _, 0, c::EVFILT_USER, flags.bits() | user_flags.0),
+ EventFilter::Unknown => panic!("unknown filter"),
+ };
+
+ Event {
+ inner: kevent_t {
+ ident,
+ filter: filter as _,
+ flags: flags.bits() as _,
+ fflags,
+ data: {
+ // On OpenBSD, data is an `i64` and not an `isize`.
+ data as _
+ },
+ udata: {
+ // On NetBSD, udata is an `isize` and not a pointer.
+ udata as _
+ },
+ ..unsafe { zeroed() }
+ },
+ }
+ }
+
+ /// Get the event flags for this event.
+ pub fn flags(&self) -> EventFlags {
+ EventFlags::from_bits_retain(self.inner.flags as _)
+ }
+
+ /// Get the user data for this event.
+ pub fn udata(&self) -> *mut c::c_void {
+ // On NetBSD, udata is an isize and not a pointer.
+ self.inner.udata as _
+ }
+
+ /// Get the raw data for this event.
+ pub fn data(&self) -> i64 {
+ // On some BSDs, data is an `isize` and not an `i64`.
+ self.inner.data as _
+ }
+
+ /// Get the filter of this event.
+ pub fn filter(&self) -> EventFilter {
+ match self.inner.filter as _ {
+ c::EVFILT_READ => EventFilter::Read(self.inner.ident as _),
+ c::EVFILT_WRITE => EventFilter::Write(self.inner.ident as _),
+ #[cfg(target_os = "freebsd")]
+ c::EVFILT_EMPTY => EventFilter::Empty(self.inner.ident as _),
+ c::EVFILT_VNODE => EventFilter::Vnode {
+ vnode: self.inner.ident as _,
+ flags: VnodeEvents::from_bits_retain(self.inner.fflags),
+ },
+ c::EVFILT_PROC => EventFilter::Proc {
+ pid: Pid::from_raw(self.inner.ident as _).unwrap(),
+ flags: ProcessEvents::from_bits_retain(self.inner.fflags),
+ },
+ c::EVFILT_SIGNAL => EventFilter::Signal {
+ // SAFETY: `EventFilter::new` requires a valid `Signal`.
+ signal: unsafe { Signal::from_raw_unchecked(self.inner.ident as _) },
+ times: self.inner.data as _,
+ },
+ c::EVFILT_TIMER => EventFilter::Timer {
+ ident: self.inner.ident as _,
+ timer: {
+ let (data, fflags) = (self.inner.data, self.inner.fflags);
+ #[cfg(not(any(apple, target_os = "freebsd", target_os = "netbsd")))]
+ let _ = fflags;
+ #[cfg(any(apple, target_os = "freebsd", target_os = "netbsd"))]
+ match fflags as _ {
+ c::NOTE_SECONDS => Some(Duration::from_secs(data as _)),
+ c::NOTE_USECONDS => Some(Duration::from_micros(data as _)),
+ c::NOTE_NSECONDS => Some(Duration::from_nanos(data as _)),
+ _ => {
+ // Unknown timer flags.
+ None
+ }
+ }
+ #[cfg(any(target_os = "dragonfly", target_os = "openbsd"))]
+ Some(Duration::from_millis(data as _))
+ },
+ },
+ #[cfg(any(apple, freebsdlike))]
+ c::EVFILT_USER => EventFilter::User {
+ ident: self.inner.ident as _,
+ flags: UserFlags::from_bits_retain(self.inner.fflags),
+ user_flags: UserDefinedFlags(self.inner.fflags & EVFILT_USER_FLAGS),
+ },
+ _ => EventFilter::Unknown,
+ }
+ }
+}
+
+/// Bottom 24 bits of a `u32`.
+#[cfg(any(apple, freebsdlike))]
+const EVFILT_USER_FLAGS: u32 = 0x00ff_ffff;
+
+/// The possible filters for a `kqueue`.
+#[repr(i16)]
+#[non_exhaustive]
+pub enum EventFilter {
+ /// A read filter.
+ Read(RawFd),
+
+ /// A write filter.
+ Write(RawFd),
+
+ /// An empty filter.
+ #[cfg(target_os = "freebsd")]
+ Empty(RawFd),
+
+ /// A VNode filter.
+ Vnode {
+ /// The file descriptor we looked for events in.
+ vnode: RawFd,
+
+ /// The flags for this event.
+ flags: VnodeEvents,
+ },
+
+ /// A process filter.
+ Proc {
+ /// The process ID we waited on.
+ pid: Pid,
+
+ /// The flags for this event.
+ flags: ProcessEvents,
+ },
+
+ /// A signal filter.
+ Signal {
+ /// The signal number we waited on.
+ signal: Signal,
+
+ /// The number of times the signal has been received since the last
+ /// call to kevent.
+ times: usize,
+ },
+
+ /// A timer filter.
+ Timer {
+ /// The identifier for this event.
+ ident: intptr_t,
+
+ /// The duration for this event.
+ timer: Option<Duration>,
+ },
+
+ /// A user filter.
+ #[cfg(any(apple, freebsdlike))]
+ User {
+ /// The identifier for this event.
+ ident: intptr_t,
+
+ /// The flags for this event.
+ flags: UserFlags,
+
+ /// The user-defined flags for this event.
+ user_flags: UserDefinedFlags,
+ },
+
+ /// This filter is unknown.
+ ///
+ /// # Panics
+ ///
+ /// Passing this into `Event::new()` will result in a panic.
+ Unknown,
+}
+
+bitflags::bitflags! {
+ /// The flags for a `kqueue` event specifying actions to perform.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct EventFlags: u16 {
+ /// Add the event to the `kqueue`.
+ const ADD = c::EV_ADD as _;
+
+ /// Enable the event.
+ const ENABLE = c::EV_ENABLE as _;
+
+ /// Disable the event.
+ const DISABLE = c::EV_DISABLE as _;
+
+ /// Delete the event from the `kqueue`.
+ const DELETE = c::EV_DELETE as _;
+
+ /// TODO
+ const RECEIPT = c::EV_RECEIPT as _;
+
+ /// Clear the event after it is triggered.
+ const ONESHOT = c::EV_ONESHOT as _;
+
+ /// TODO
+ const CLEAR = c::EV_CLEAR as _;
+
+ /// TODO
+ const EOF = c::EV_EOF as _;
+
+ /// TODO
+ const ERROR = c::EV_ERROR as _;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// The flags for a virtual node event.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct VnodeEvents: u32 {
+ /// The file was deleted.
+ const DELETE = c::NOTE_DELETE;
+
+ /// The file was written to.
+ const WRITE = c::NOTE_WRITE;
+
+ /// The file was extended.
+ const EXTEND = c::NOTE_EXTEND;
+
+ /// The file had its attributes changed.
+ const ATTRIBUTES = c::NOTE_ATTRIB;
+
+ /// The file was renamed.
+ const RENAME = c::NOTE_RENAME;
+
+ /// Access to the file was revoked.
+ const REVOKE = c::NOTE_REVOKE;
+
+ /// The link count of the file has changed.
+ const LINK = c::NOTE_LINK;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// The flags for a process event.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ProcessEvents: u32 {
+ /// The process exited.
+ const EXIT = c::NOTE_EXIT;
+
+ /// The process forked itself.
+ const FORK = c::NOTE_FORK;
+
+ /// The process executed a new process.
+ const EXEC = c::NOTE_EXEC;
+
+ /// Follow the process through `fork` calls (write only).
+ const TRACK = c::NOTE_TRACK;
+
+ /// An error has occurred with following the process.
+ const TRACKERR = c::NOTE_TRACKERR;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(any(apple, freebsdlike))]
+bitflags::bitflags! {
+ /// The flags for a user event.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct UserFlags: u32 {
+ /// Ignore the user input flags.
+ #[doc(alias = "NOP")]
+ const NOINPUT = c::NOTE_FFNOP;
+
+ /// Bitwise AND `fflags`.
+ const AND = c::NOTE_FFAND;
+
+ /// Bitwise OR `fflags`.
+ const OR = c::NOTE_FFOR;
+
+ /// Copy `fflags`.
+ const COPY = c::NOTE_FFCOPY;
+
+ /// Control mask for operations.
+ const CTRLMASK = c::NOTE_FFCTRLMASK;
+
+ /// User defined flags for masks.
+ const UDFMASK = c::NOTE_FFLAGSMASK;
+
+ /// Trigger the event.
+ const TRIGGER = c::NOTE_TRIGGER;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// User-defined flags.
+///
+/// Only the lower 24 bits are used in this struct.
+#[repr(transparent)]
+#[cfg(any(apple, freebsdlike))]
+#[derive(Clone, Copy, Debug, Eq, PartialEq)]
+pub struct UserDefinedFlags(u32);
+
+#[cfg(any(apple, freebsdlike))]
+impl UserDefinedFlags {
+ /// Create a new `UserDefinedFlags` from a `u32`.
+ pub fn new(flags: u32) -> Self {
+ Self(flags & EVFILT_USER_FLAGS)
+ }
+
+ /// Get the underlying `u32`.
+ pub fn get(self) -> u32 {
+ self.0
+ }
+}
+
+/// `kqueue()`—Create a new `kqueue` file descriptor.
+///
+/// # References
+/// - [Apple]
+/// - [FreeBSD]
+/// - [OpenBSD]
+/// - [NetBSD]
+/// - [DragonFly BSD]
+///
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/kqueue.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2
+/// [OpenBSD]: https://man.openbsd.org/kqueue.2
+/// [NetBSD]: https://man.netbsd.org/kqueue.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=kqueue§ion=2
+pub fn kqueue() -> io::Result<OwnedFd> {
+ syscalls::kqueue()
+}
+
+/// `kevent(kqueue, changelist, eventlist, timeout)`—Wait for events on a
+/// `kqueue`.
+///
+/// If an unsupported timeout is passed, this function fails with
+/// [`io::Errno::INVAL`].
+///
+/// # Safety
+///
+/// The file descriptors referred to by the `Event` structs must be valid for
+/// the lifetime of the `kqueue` file descriptor.
+///
+/// # References
+/// - [Apple]
+/// - [FreeBSD]
+/// - [OpenBSD]
+/// - [NetBSD]
+/// - [DragonFly BSD]
+///
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/kevent.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=kevent&sektion=2
+/// [OpenBSD]: https://man.openbsd.org/kevent.2
+/// [NetBSD]: https://man.netbsd.org/kevent.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=kevent§ion=2
+pub unsafe fn kevent_timespec<Fd: AsFd, Buf: Buffer<Event>>(
+ kqueue: Fd,
+ changelist: &[Event],
+ mut eventlist: Buf,
+ timeout: Option<&Timespec>,
+) -> io::Result<Buf::Output> {
+ // Populate the event list with events.
+ let len = syscalls::kevent(kqueue.as_fd(), changelist, eventlist.parts_mut(), timeout)
+ .map(|res| res as _)?;
+
+ Ok(eventlist.assume_init(len))
+}
+
+/// `kevent(kqueue, changelist, eventlist, timeout)`—Wait for events on a
+/// `kqueue`.
+///
+/// This is a wrapper around [`kevent_timespec`] which takes a `Duration`
+/// instead of a `Timespec` for the timemout value. `Timespec` has a signed
+/// `i64` seconds field; if converting `Duration` to `Timespec` overflows,
+/// `None` is passed as the timeout instead, such such a large timeout would
+/// be effectively infinite in practice.
+///
+/// # Safety
+///
+/// The file descriptors referred to by the `Event` structs must be valid for
+/// the lifetime of the `kqueue` file descriptor.
+pub unsafe fn kevent<Fd: AsFd, Buf: Buffer<Event>>(
+ kqueue: Fd,
+ changelist: &[Event],
+ eventlist: Buf,
+ timeout: Option<Duration>,
+) -> io::Result<Buf::Output> {
+ let timeout = match timeout {
+ Some(timeout) => match timeout.as_secs().try_into() {
+ Ok(tv_sec) => Some(Timespec {
+ tv_sec,
+ tv_nsec: timeout.subsec_nanos() as _,
+ }),
+ Err(_) => None,
+ },
+ None => None,
+ };
+
+ kevent_timespec(kqueue, changelist, eventlist, timeout.as_ref())
+}
diff --git a/vendor/rustix-1.0.8/src/event/mod.rs b/vendor/rustix-1.0.8/src/event/mod.rs
new file mode 100644
index 0000000..29dfc22
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/event/mod.rs
@@ -0,0 +1,34 @@
+//! Event operations.
+
+#[cfg(any(linux_kernel, target_os = "illumos", target_os = "redox"))]
+pub mod epoll;
+#[cfg(any(
+ linux_kernel,
+ target_os = "freebsd",
+ target_os = "illumos",
+ target_os = "espidf"
+))]
+mod eventfd;
+#[cfg(bsd)]
+pub mod kqueue;
+#[cfg(not(any(windows, target_os = "redox", target_os = "wasi")))]
+mod pause;
+mod poll;
+#[cfg(solarish)]
+pub mod port;
+#[cfg(any(bsd, linux_kernel, windows, target_os = "wasi"))]
+mod select;
+
+pub use crate::timespec::{Nsecs, Secs, Timespec};
+#[cfg(any(
+ linux_kernel,
+ target_os = "freebsd",
+ target_os = "illumos",
+ target_os = "espidf"
+))]
+pub use eventfd::{eventfd, EventfdFlags};
+#[cfg(not(any(windows, target_os = "redox", target_os = "wasi")))]
+pub use pause::*;
+pub use poll::{poll, PollFd, PollFlags};
+#[cfg(any(bsd, linux_kernel, windows, target_os = "wasi"))]
+pub use select::*;
diff --git a/vendor/rustix-1.0.8/src/event/pause.rs b/vendor/rustix-1.0.8/src/event/pause.rs
new file mode 100644
index 0000000..4110301
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/event/pause.rs
@@ -0,0 +1,31 @@
+use crate::backend;
+
+/// `pause()`—Sleep until interrupted by a signal.
+///
+/// The POSIX `pause` interface returns an error code, but the only thing
+/// `pause` does is sleep until interrupted by a signal. If it were exposed in
+/// the API here it would always return `Errno::INTR`, so for simplicity the
+/// return value is omitted.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/pause.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/pause.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/pause.3.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=pause&sektion=3
+/// [NetBSD]: https://man.netbsd.org/pause.3
+/// [OpenBSD]: https://man.openbsd.org/pause.3
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=pause§ion=3
+/// [illumos]: https://illumos.org/man/2/pause
+#[inline]
+pub fn pause() {
+ backend::event::syscalls::pause()
+}
diff --git a/vendor/rustix-1.0.8/src/event/poll.rs b/vendor/rustix-1.0.8/src/event/poll.rs
new file mode 100644
index 0000000..bf25fd5
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/event/poll.rs
@@ -0,0 +1,47 @@
+use crate::event::Timespec;
+use crate::{backend, io};
+
+pub use backend::event::poll_fd::{PollFd, PollFlags};
+
+/// `poll(self.fds, timeout)`—Wait for events on lists of file descriptors.
+///
+/// Some platforms (those that don't support `ppoll`) don't support timeouts
+/// greater than `c_int::MAX` milliseconds; if an unsupported timeout is
+/// passed, this function fails with [`io::Errno::INVAL`].
+///
+/// On macOS, `poll` doesn't work on fds for /dev/tty or /dev/null, however
+/// [`select`] is available and does work on these fds.
+///
+/// [`select`]: crate::event::select()
+///
+/// This function does not use the [`Buffer`] trait because the `fds` list is
+/// both an input and output buffer.
+///
+/// [`Buffer`]: crate::buffer::Buffer
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+///
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/slightly-advanced-techniques.html#poll
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/poll.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/poll.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/poll.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsapoll
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=poll&sektion=2
+/// [NetBSD]: https://man.netbsd.org/poll.2
+/// [OpenBSD]: https://man.openbsd.org/poll.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=poll§ion=2
+/// [illumos]: https://illumos.org/man/2/poll
+#[inline]
+pub fn poll(fds: &mut [PollFd<'_>], timeout: Option<&Timespec>) -> io::Result<usize> {
+ backend::event::syscalls::poll(fds, timeout)
+}
diff --git a/vendor/rustix-1.0.8/src/event/port.rs b/vendor/rustix-1.0.8/src/event/port.rs
new file mode 100644
index 0000000..7cc5f93
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/event/port.rs
@@ -0,0 +1,197 @@
+//! Solaris/illumos event ports.
+//!
+//! # Examples
+//!
+//! ```
+//! # fn test() -> std::io::Result<()> {
+//! use rustix::event::port;
+//! use rustix::stdio::stdout;
+//! use std::io;
+//!
+//! let some_fd = stdout();
+//! let some_userdata = 7 as *mut _;
+//!
+//! // Create a port.
+//! let port = port::create()?;
+//!
+//! // Associate `some_fd` with the port.
+//! unsafe {
+//! port::associate_fd(&port, some_fd, port::PollFlags::IN, some_userdata)?;
+//! }
+//!
+//! // Get a single event.
+//! let event = port::get(&port, None)?;
+//!
+//! assert_eq!(event.userdata(), some_userdata);
+//! # Ok(())
+//! # }
+//! ```
+
+use crate::backend::c;
+use crate::backend::event::syscalls;
+use crate::buffer::Buffer;
+use crate::fd::{AsFd, AsRawFd, OwnedFd};
+use crate::timespec::Timespec;
+use crate::{ffi, io};
+
+pub use super::PollFlags;
+
+/// The structure representing a port event.
+#[repr(transparent)]
+#[doc(alias = "port_event")]
+pub struct Event(pub(crate) c::port_event);
+
+impl Event {
+ /// Get the events associated with this event.
+ pub fn events(&self) -> i32 {
+ self.0.portev_events
+ }
+
+ /// Get the event source associated with this event.
+ pub fn object(&self) -> usize {
+ self.0.portev_object
+ }
+
+ /// Get the userdata associated with this event.
+ pub fn userdata(&self) -> *mut ffi::c_void {
+ self.0.portev_user
+ }
+}
+
+/// `port_create()`—Creates a new port.
+///
+/// # References
+/// - [OpenSolaris]
+/// - [illumos]
+///
+/// [OpenSolaris]: https://www.unix.com/man-page/opensolaris/3C/port_create/
+/// [illumos]: https://illumos.org/man/3C/port_create
+#[doc(alias = "port_create")]
+pub fn create() -> io::Result<OwnedFd> {
+ syscalls::port_create()
+}
+
+/// `port_associate(_, PORT_SOURCE_FD, _, _, _)`—Associates a file descriptor
+/// with a port.
+///
+/// # Safety
+///
+/// Any `object`s passed into the `port` must be valid for the lifetime of the
+/// `port`. Logically, `port` keeps a borrowed reference to the `object` until
+/// it is removed via [`dissociate_fd`].
+///
+/// # References
+/// - [OpenSolaris]
+/// - [illumos]
+///
+/// [OpenSolaris]: https://www.unix.com/man-page/opensolaris/3C/port_associate/
+/// [illumos]: https://illumos.org/man/3C/port_associate
+#[doc(alias = "port_associate")]
+pub unsafe fn associate_fd<Fd: AsFd, RawFd: AsRawFd>(
+ port: Fd,
+ object: RawFd,
+ events: PollFlags,
+ userdata: *mut ffi::c_void,
+) -> io::Result<()> {
+ syscalls::port_associate(
+ port.as_fd(),
+ c::PORT_SOURCE_FD,
+ object.as_raw_fd() as _,
+ events.bits() as _,
+ userdata.cast(),
+ )
+}
+
+/// `port_dissociate(_, PORT_SOURCE_FD, _)`—Dissociates a file descriptor
+/// from a port.
+///
+/// # Safety
+///
+/// The file descriptor passed into this function must have been previously
+/// associated with the port via [`associate_fd`].
+///
+/// # References
+/// - [OpenSolaris]
+/// - [illumos]
+///
+/// [OpenSolaris]: https://www.unix.com/man-page/opensolaris/3C/port_dissociate
+/// [illumos]: https://illumos.org/man/3C/port_dissociate
+#[doc(alias = "port_dissociate")]
+pub unsafe fn dissociate_fd<Fd: AsFd, RawFd: AsRawFd>(port: Fd, object: RawFd) -> io::Result<()> {
+ syscalls::port_dissociate(port.as_fd(), c::PORT_SOURCE_FD, object.as_raw_fd() as _)
+}
+
+/// `port_get(port, timeout)`—Gets an event from a port.
+///
+/// If an unsupported timeout is passed, this function fails with
+/// [`io::Errno::INVAL`].
+///
+/// # References
+/// - [OpenSolaris]
+/// - [illumos]
+///
+/// [OpenSolaris]: https://www.unix.com/man-page/opensolaris/3C/port_get/
+/// [illumos]: https://illumos.org/man/3C/port_get
+#[doc(alias = "port_get")]
+pub fn get<Fd: AsFd>(port: Fd, timeout: Option<&Timespec>) -> io::Result<Event> {
+ syscalls::port_get(port.as_fd(), timeout)
+}
+
+/// `port_getn(port, events, min_events, timeout)`—Gets multiple events from
+/// a port.
+///
+/// If `events` is empty, this does nothing and returns immediately.
+///
+/// To query the number of events without retrieving any, use [`getn_query`].
+///
+/// If an unsupported timeout is passed, this function fails with
+/// [`io::Errno::INVAL`].
+///
+/// # References
+/// - [OpenSolaris]
+/// - [illumos]
+///
+/// [OpenSolaris]: https://www.unix.com/man-page/opensolaris/3C/port_getn/
+/// [illumos]: https://illumos.org/man/3C/port_getn
+#[doc(alias = "port_getn")]
+pub fn getn<Fd: AsFd, Buf: Buffer<Event>>(
+ port: Fd,
+ mut events: Buf,
+ min_events: u32,
+ timeout: Option<&Timespec>,
+) -> io::Result<Buf::Output> {
+ // SAFETY: `port_getn` behaves.
+ let nevents =
+ unsafe { syscalls::port_getn(port.as_fd(), events.parts_mut(), min_events, timeout)? };
+ // SAFETY: `port_getn` behaves.
+ unsafe { Ok(events.assume_init(nevents)) }
+}
+
+/// `port_getn(port, NULL, 0, NULL)`—Queries the number of events
+/// available from a port.
+///
+/// To retrieve the events, use [`getn`].
+///
+/// # References
+/// - [OpenSolaris]
+/// - [illumos]
+///
+/// [OpenSolaris]: https://www.unix.com/man-page/opensolaris/3C/port_getn/
+/// [illumos]: https://illumos.org/man/3C/port_getn
+#[doc(alias = "port_getn")]
+pub fn getn_query<Fd: AsFd>(port: Fd) -> io::Result<u32> {
+ syscalls::port_getn_query(port.as_fd())
+}
+
+/// `port_send(port, events, userdata)`—Sends an event to a port.
+///
+/// # References
+/// - [OpenSolaris]
+/// - [illumos]
+///
+/// [OpenSolaris]: https://www.unix.com/man-page/opensolaris/3C/port_send/
+/// [illumos]: https://illumos.org/man/3C/port_send
+#[doc(alias = "port_send")]
+pub fn send<Fd: AsFd>(port: Fd, events: i32, userdata: *mut ffi::c_void) -> io::Result<()> {
+ syscalls::port_send(port.as_fd(), events, userdata.cast())
+}
diff --git a/vendor/rustix-1.0.8/src/event/select.rs b/vendor/rustix-1.0.8/src/event/select.rs
new file mode 100644
index 0000000..6bb93b5
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/event/select.rs
@@ -0,0 +1,391 @@
+//! The `select` function.
+//!
+//! # Safety
+//!
+//! `select` is unsafe due to I/O safety.
+#![allow(unsafe_code)]
+
+#[cfg(any(linux_like, target_os = "wasi"))]
+use crate::backend::c;
+use crate::event::Timespec;
+use crate::fd::RawFd;
+use crate::{backend, io};
+#[cfg(any(windows, target_os = "wasi"))]
+use core::mem::align_of;
+use core::mem::size_of;
+
+/// wasi-libc's `fd_set` type. The libc bindings for it have private fields, so
+/// we redeclare it for ourselves so that we can access the fields. They're
+/// publicly exposed in wasi-libc.
+#[cfg(target_os = "wasi")]
+#[repr(C)]
+struct FD_SET {
+ /// The wasi-libc headers call this `__nfds`.
+ fd_count: usize,
+ /// The wasi-libc headers call this `__fds`.
+ fd_array: [i32; c::FD_SETSIZE],
+}
+
+#[cfg(windows)]
+use windows_sys::Win32::Networking::WinSock::FD_SET;
+
+/// Storage element type for use with [`select`].
+#[cfg(all(
+ target_pointer_width = "64",
+ any(windows, target_os = "freebsd", target_os = "dragonfly")
+))]
+#[repr(transparent)]
+#[derive(Copy, Clone, Default)]
+pub struct FdSetElement(pub(crate) u64);
+
+/// Storage element type for use with [`select`].
+#[cfg(linux_like)]
+#[repr(transparent)]
+#[derive(Copy, Clone, Default)]
+pub struct FdSetElement(pub(crate) c::c_ulong);
+
+/// Storage element type for use with [`select`].
+#[cfg(not(any(
+ linux_like,
+ target_os = "wasi",
+ all(
+ target_pointer_width = "64",
+ any(windows, target_os = "freebsd", target_os = "dragonfly")
+ )
+)))]
+#[repr(transparent)]
+#[derive(Copy, Clone, Default)]
+pub struct FdSetElement(pub(crate) u32);
+
+/// Storage element type for use with [`select`].
+#[cfg(target_os = "wasi")]
+#[repr(transparent)]
+#[derive(Copy, Clone, Default)]
+pub struct FdSetElement(pub(crate) usize);
+
+/// `select(nfds, readfds, writefds, exceptfds, timeout)`—Wait for events on
+/// sets of file descriptors.
+///
+/// `readfds`, `writefds`, `exceptfds` must point to arrays of `FdSetElement`
+/// containing at least `nfds.div_ceil(size_of::<FdSetElement>())` elements.
+///
+/// If an unsupported timeout is passed, this function fails with
+/// [`io::Errno::INVAL`].
+///
+/// This `select` wrapper differs from POSIX in that `nfds` is not limited to
+/// `FD_SETSIZE`. Instead of using the fixed-sized `fd_set` type, this function
+/// takes raw pointers to arrays of `fd_set_num_elements(max_fd + 1, num_fds)`,
+/// where `max_fd` is the maximum value of any fd that will be inserted into
+/// the set, and `num_fds` is the maximum number of fds that will be inserted
+/// into the set.
+///
+/// In particular, on Apple platforms, this function behaves as if
+/// `_DARWIN_UNLIMITED_SELECT` were predefined.
+///
+/// On illumos, this function is not defined because the `select` function on
+/// this platform always has an `FD_SETSIZE` limitation, following POSIX. This
+/// platform's documentation recommends using [`poll`] instead.
+///
+/// [`fd_set_insert`], [`fd_set_remove`], and [`FdSetIter`] are provided for
+/// setting, clearing, and iterating with sets.
+///
+/// [`poll`]: crate::event::poll()
+///
+/// # Safety
+///
+/// All fds in all the sets must correspond to open file descriptors.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [Winsock]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/select.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/select.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/select.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=select&sektion=2
+/// [NetBSD]: https://man.netbsd.org/select.2
+/// [OpenBSD]: https://man.openbsd.org/select.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=select§ion=2
+/// [Winsock]: https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-select
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Waiting-for-I_002fO.html#index-select
+pub unsafe fn select(
+ nfds: i32,
+ readfds: Option<&mut [FdSetElement]>,
+ writefds: Option<&mut [FdSetElement]>,
+ exceptfds: Option<&mut [FdSetElement]>,
+ timeout: Option<&Timespec>,
+) -> io::Result<i32> {
+ backend::event::syscalls::select(nfds, readfds, writefds, exceptfds, timeout)
+}
+
+#[cfg(not(any(windows, target_os = "wasi")))]
+const BITS: usize = size_of::<FdSetElement>() * 8;
+
+/// Set `fd` in the set pointed to by `fds`.
+#[doc(alias = "FD_SET")]
+#[inline]
+pub fn fd_set_insert(fds: &mut [FdSetElement], fd: RawFd) {
+ #[cfg(not(any(windows, target_os = "wasi")))]
+ {
+ let fd = fd as usize;
+ fds[fd / BITS].0 |= 1 << (fd % BITS);
+ }
+
+ #[cfg(any(windows, target_os = "wasi"))]
+ {
+ let set = unsafe { &mut *fds.as_mut_ptr().cast::<FD_SET>() };
+ let fd_count = set.fd_count;
+ let fd_array = &set.fd_array[..fd_count as usize];
+
+ if !fd_array.contains(&(fd as _)) {
+ let fd_array = &mut set.fd_array[..fd_count as usize + 1];
+ set.fd_count = fd_count + 1;
+ fd_array[fd_count as usize] = fd as _;
+ }
+ }
+}
+
+/// Clear `fd` in the set pointed to by `fds`.
+#[doc(alias = "FD_CLR")]
+#[inline]
+pub fn fd_set_remove(fds: &mut [FdSetElement], fd: RawFd) {
+ #[cfg(not(any(windows, target_os = "wasi")))]
+ {
+ let fd = fd as usize;
+ fds[fd / BITS].0 &= !(1 << (fd % BITS));
+ }
+
+ #[cfg(any(windows, target_os = "wasi"))]
+ {
+ let set = unsafe { &mut *fds.as_mut_ptr().cast::<FD_SET>() };
+ let fd_count = set.fd_count;
+ let fd_array = &set.fd_array[..fd_count as usize];
+
+ if let Some(pos) = fd_array.iter().position(|p| *p as RawFd == fd) {
+ set.fd_count = fd_count - 1;
+ set.fd_array[pos] = *set.fd_array.last().unwrap();
+ }
+ }
+}
+
+/// Compute the minimum `nfds` value needed for the set pointed to by `fds`.
+#[inline]
+pub fn fd_set_bound(fds: &[FdSetElement]) -> RawFd {
+ #[cfg(not(any(windows, target_os = "wasi")))]
+ {
+ if let Some(position) = fds.iter().rposition(|element| element.0 != 0) {
+ let element = fds[position].0;
+ (position * BITS + (BITS - element.leading_zeros() as usize)) as RawFd
+ } else {
+ 0
+ }
+ }
+
+ #[cfg(any(windows, target_os = "wasi"))]
+ {
+ let set = unsafe { &*fds.as_ptr().cast::<FD_SET>() };
+ let fd_count = set.fd_count;
+ let fd_array = &set.fd_array[..fd_count as usize];
+ let mut max = 0;
+ for fd in fd_array {
+ if *fd >= max {
+ max = *fd + 1;
+ }
+ }
+ max as RawFd
+ }
+}
+
+/// Compute the number of `FdSetElement`s needed to hold a set which can
+/// contain up to `set_count` file descriptors with values less than `nfds`.
+#[inline]
+pub fn fd_set_num_elements(set_count: usize, nfds: RawFd) -> usize {
+ #[cfg(any(windows, target_os = "wasi"))]
+ {
+ let _ = nfds;
+
+ fd_set_num_elements_for_fd_array(set_count)
+ }
+
+ #[cfg(not(any(windows, target_os = "wasi")))]
+ {
+ let _ = set_count;
+
+ fd_set_num_elements_for_bitvector(nfds)
+ }
+}
+
+/// `fd_set_num_elements` implementation on platforms with fd array
+/// implementations.
+#[cfg(any(windows, target_os = "wasi"))]
+#[inline]
+pub(crate) fn fd_set_num_elements_for_fd_array(set_count: usize) -> usize {
+ // Ensure that we always have a big enough set to dereference an `FD_SET`.
+ core::cmp::max(
+ fd_set_num_elements_for_fd_array_raw(set_count),
+ div_ceil(size_of::<FD_SET>(), size_of::<FdSetElement>()),
+ )
+}
+
+/// Compute the raw `fd_set_num_elements` value, before ensuring the value is
+/// big enough to dereference an `FD_SET`.
+#[cfg(any(windows, target_os = "wasi"))]
+#[inline]
+fn fd_set_num_elements_for_fd_array_raw(set_count: usize) -> usize {
+ // Allocate space for an `fd_count` field, plus `set_count` elements
+ // for the `fd_array` field.
+ div_ceil(
+ core::cmp::max(align_of::<FD_SET>(), align_of::<RawFd>()) + set_count * size_of::<RawFd>(),
+ size_of::<FdSetElement>(),
+ )
+}
+
+/// `fd_set_num_elements` implementation on platforms with bitvector
+/// implementations.
+#[cfg(not(any(windows, target_os = "wasi")))]
+#[inline]
+pub(crate) fn fd_set_num_elements_for_bitvector(nfds: RawFd) -> usize {
+ // Allocate space for a dense bitvector for `nfds` bits.
+ let nfds = nfds as usize;
+ div_ceil(nfds, BITS)
+}
+
+fn div_ceil(lhs: usize, rhs: usize) -> usize {
+ let d = lhs / rhs;
+ let r = lhs % rhs;
+ if r > 0 {
+ d + 1
+ } else {
+ d
+ }
+}
+
+/// An iterator over the fds in a set.
+#[doc(alias = "FD_ISSET")]
+#[cfg(not(any(windows, target_os = "wasi")))]
+pub struct FdSetIter<'a> {
+ current: RawFd,
+ fds: &'a [FdSetElement],
+}
+
+/// An iterator over the fds in a set.
+#[doc(alias = "FD_ISSET")]
+#[cfg(any(windows, target_os = "wasi"))]
+pub struct FdSetIter<'a> {
+ current: usize,
+ fds: &'a [FdSetElement],
+}
+
+impl<'a> FdSetIter<'a> {
+ /// Construct a `FdSetIter` for the given set.
+ pub fn new(fds: &'a [FdSetElement]) -> Self {
+ Self { current: 0, fds }
+ }
+}
+
+#[cfg(not(any(windows, target_os = "wasi")))]
+impl<'a> Iterator for FdSetIter<'a> {
+ type Item = RawFd;
+
+ fn next(&mut self) -> Option<Self::Item> {
+ if let Some(element) = self.fds.get(self.current as usize / BITS) {
+ // Test whether the current element has more bits set.
+ let shifted = element.0 >> ((self.current as usize % BITS) as u32);
+ if shifted != 0 {
+ let fd = self.current + shifted.trailing_zeros() as RawFd;
+ self.current = fd + 1;
+ return Some(fd);
+ }
+
+ // Search through the array for the next element with bits set.
+ if let Some(index) = self.fds[(self.current as usize / BITS) + 1..]
+ .iter()
+ .position(|element| element.0 != 0)
+ {
+ let index = index + (self.current as usize / BITS) + 1;
+ let element = self.fds[index].0;
+ let fd = (index * BITS) as RawFd + element.trailing_zeros() as RawFd;
+ self.current = fd + 1;
+ return Some(fd);
+ }
+ }
+ None
+ }
+}
+
+#[cfg(any(windows, target_os = "wasi"))]
+impl<'a> Iterator for FdSetIter<'a> {
+ type Item = RawFd;
+
+ fn next(&mut self) -> Option<Self::Item> {
+ let current = self.current;
+
+ let set = unsafe { &*self.fds.as_ptr().cast::<FD_SET>() };
+ let fd_count = set.fd_count;
+ let fd_array = &set.fd_array[..fd_count as usize];
+
+ if current == fd_count as usize {
+ return None;
+ }
+ let fd = fd_array[current as usize];
+ self.current = current + 1;
+ Some(fd as RawFd)
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use core::mem::{align_of, size_of};
+
+ #[test]
+ #[cfg(any(windows, target_os = "wasi"))]
+ fn layouts() {
+ // The `FdSetElement` array should be suitably aligned.
+ assert_eq!(align_of::<FdSetElement>(), align_of::<FD_SET>());
+
+ // The layout of `FD_SET` should match our layout of a set of the same
+ // size.
+ assert_eq!(
+ fd_set_num_elements_for_fd_array_raw(
+ memoffset::span_of!(FD_SET, fd_array).len() / size_of::<RawFd>()
+ ) * size_of::<FdSetElement>(),
+ size_of::<FD_SET>()
+ );
+ assert_eq!(
+ fd_set_num_elements_for_fd_array(
+ memoffset::span_of!(FD_SET, fd_array).len() / size_of::<RawFd>()
+ ) * size_of::<FdSetElement>(),
+ size_of::<FD_SET>()
+ );
+
+ // Don't create fd sets smaller than `FD_SET`.
+ assert_eq!(
+ fd_set_num_elements_for_fd_array(0) * size_of::<FdSetElement>(),
+ size_of::<FD_SET>()
+ );
+ }
+
+ #[test]
+ #[cfg(any(bsd, linux_kernel))]
+ fn layouts() {
+ use crate::backend::c;
+
+ // The `FdSetElement` array should be suitably aligned.
+ assert_eq!(align_of::<FdSetElement>(), align_of::<c::fd_set>());
+
+ // The layout of `fd_set` should match our layout of a set of the same
+ // size.
+ assert_eq!(
+ fd_set_num_elements_for_bitvector(c::FD_SETSIZE as RawFd) * size_of::<FdSetElement>(),
+ size_of::<c::fd_set>()
+ );
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/ffi.rs b/vendor/rustix-1.0.8/src/ffi.rs
new file mode 100644
index 0000000..073b6b1
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/ffi.rs
@@ -0,0 +1,23 @@
+//! Utilities related to FFI bindings.
+
+// If we have std, use it.
+#[cfg(not(windows))]
+#[cfg(feature = "std")]
+pub use std::ffi::{CStr, CString, FromBytesWithNulError, NulError};
+#[cfg(feature = "std")]
+pub use std::os::raw::{
+ c_char, c_int, c_long, c_longlong, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, c_void,
+};
+
+// If we don't have std, we can depend on core and alloc having these features
+// in Rust 1.64+.
+#[cfg(not(windows))]
+#[cfg(all(feature = "alloc", not(feature = "std")))]
+pub use alloc::ffi::{CString, NulError};
+#[cfg(not(feature = "std"))]
+pub use core::ffi::{
+ c_char, c_int, c_long, c_longlong, c_short, c_uint, c_ulong, c_ulonglong, c_ushort, c_void,
+};
+#[cfg(not(windows))]
+#[cfg(not(feature = "std"))]
+pub use core::ffi::{CStr, FromBytesWithNulError};
diff --git a/vendor/rustix-1.0.8/src/fs/abs.rs b/vendor/rustix-1.0.8/src/fs/abs.rs
new file mode 100644
index 0000000..236a833
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/abs.rs
@@ -0,0 +1,304 @@
+//! POSIX-style filesystem functions which operate on bare paths.
+
+use crate::fd::OwnedFd;
+#[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "vita")))]
+use crate::fs::Access;
+#[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "netbsd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+use crate::fs::StatFs;
+#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "wasi")))]
+use crate::fs::StatVfs;
+use crate::fs::{Mode, OFlags, Stat};
+#[cfg(not(target_os = "wasi"))]
+use crate::ugid::{Gid, Uid};
+use crate::{backend, io, path};
+#[cfg(feature = "alloc")]
+use {
+ crate::ffi::{CStr, CString},
+ crate::path::SMALL_PATH_BUFFER_SIZE,
+ alloc::vec::Vec,
+};
+
+/// `open(path, oflags, mode)`—Opens a file.
+///
+/// POSIX guarantees that `open` will use the lowest unused file descriptor,
+/// however it is not safe in general to rely on this, as file descriptors may
+/// be unexpectedly allocated on other threads or in libraries.
+///
+/// The `Mode` argument is only significant when creating a file.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/open.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/open.2.html
+#[inline]
+pub fn open<P: path::Arg>(path: P, flags: OFlags, mode: Mode) -> io::Result<OwnedFd> {
+ path.into_with_c_str(|path| backend::fs::syscalls::open(path, flags, mode))
+}
+
+/// `chmod(path, mode)`—Sets file or directory permissions.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/chmod.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/chmod.2.html
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+pub fn chmod<P: path::Arg>(path: P, mode: Mode) -> io::Result<()> {
+ path.into_with_c_str(|path| backend::fs::syscalls::chmod(path, mode))
+}
+
+/// `stat(path)`—Queries metadata for a file or directory.
+///
+/// [`Mode::from_raw_mode`] and [`FileType::from_raw_mode`] may be used to
+/// interpret the `st_mode` field.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/stat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/stat.2.html
+/// [`Mode::from_raw_mode`]: crate::fs::Mode::from_raw_mode
+/// [`FileType::from_raw_mode`]: crate::fs::FileType::from_raw_mode
+#[inline]
+pub fn stat<P: path::Arg>(path: P) -> io::Result<Stat> {
+ path.into_with_c_str(backend::fs::syscalls::stat)
+}
+
+/// `lstat(path)`—Queries metadata for a file or directory, without following
+/// symlinks.
+///
+/// [`Mode::from_raw_mode`] and [`FileType::from_raw_mode`] may be used to
+/// interpret the `st_mode` field.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/lstat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/lstat.2.html
+/// [`Mode::from_raw_mode`]: crate::fs::Mode::from_raw_mode
+/// [`FileType::from_raw_mode`]: crate::fs::FileType::from_raw_mode
+#[inline]
+pub fn lstat<P: path::Arg>(path: P) -> io::Result<Stat> {
+ path.into_with_c_str(backend::fs::syscalls::lstat)
+}
+
+/// `readlink(path)`—Reads the contents of a symlink.
+///
+/// If `reuse` is non-empty, reuse its buffer to store the result if possible.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/readlink.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/readlink.2.html
+#[cfg(feature = "alloc")]
+#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
+#[inline]
+pub fn readlink<P: path::Arg, B: Into<Vec<u8>>>(path: P, reuse: B) -> io::Result<CString> {
+ path.into_with_c_str(|path| _readlink(path, reuse.into()))
+}
+
+#[cfg(feature = "alloc")]
+fn _readlink(path: &CStr, mut buffer: Vec<u8>) -> io::Result<CString> {
+ // This code would benefit from having a better way to read into
+ // uninitialized memory, but that requires `unsafe`.
+ buffer.clear();
+ buffer.reserve(SMALL_PATH_BUFFER_SIZE);
+ buffer.resize(buffer.capacity(), 0_u8);
+
+ loop {
+ let nread = backend::fs::syscalls::readlink(path, &mut buffer)?;
+
+ let nread = nread as usize;
+ assert!(nread <= buffer.len());
+ if nread < buffer.len() {
+ buffer.resize(nread, 0_u8);
+ return Ok(CString::new(buffer).unwrap());
+ }
+ // Use `Vec` reallocation strategy to grow capacity exponentially.
+ buffer.reserve(1);
+ buffer.resize(buffer.capacity(), 0_u8);
+ }
+}
+
+/// `rename(old_path, new_path)`—Renames a file or directory.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/rename.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/rename.2.html
+#[inline]
+pub fn rename<P: path::Arg, Q: path::Arg>(old_path: P, new_path: Q) -> io::Result<()> {
+ old_path.into_with_c_str(|old_path| {
+ new_path.into_with_c_str(|new_path| backend::fs::syscalls::rename(old_path, new_path))
+ })
+}
+
+/// `unlink(path)`—Unlinks a file.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/unlink.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/unlink.2.html
+#[inline]
+pub fn unlink<P: path::Arg>(path: P) -> io::Result<()> {
+ path.into_with_c_str(backend::fs::syscalls::unlink)
+}
+
+/// `rmdir(path)`—Removes a directory.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/rmdir.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/rmdir.2.html
+#[inline]
+pub fn rmdir<P: path::Arg>(path: P) -> io::Result<()> {
+ path.into_with_c_str(backend::fs::syscalls::rmdir)
+}
+
+/// `link(old_path, new_path)`—Creates a hard link.
+///
+/// POSIX leaves it implementation-defined whether `link` follows a symlink in
+/// `old_path`, or creates a new link to the symbolic link itself. On platforms
+/// which have it, [`linkat`] avoids this problem since it has an [`AtFlags`]
+/// parameter and the [`AtFlags::SYMLINK_FOLLOW`] flag determines whether
+/// symlinks should be followed.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/link.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/link.2.html
+/// [`linkat`]: crate::fs::linkat
+/// [`AtFlags`]: crate::fs::AtFlags
+/// [`AtFlags::SYMLINK_FOLLOW`]: crate::fs::AtFlags::SYMLINK_FOLLOW
+#[inline]
+pub fn link<P: path::Arg, Q: path::Arg>(old_path: P, new_path: Q) -> io::Result<()> {
+ old_path.into_with_c_str(|old_path| {
+ new_path.into_with_c_str(|new_path| backend::fs::syscalls::link(old_path, new_path))
+ })
+}
+
+/// `symlink(old_path, new_path)`—Creates a symlink.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/symlink.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/symlink.2.html
+#[inline]
+pub fn symlink<P: path::Arg, Q: path::Arg>(old_path: P, new_path: Q) -> io::Result<()> {
+ old_path.into_with_c_str(|old_path| {
+ new_path.into_with_c_str(|new_path| backend::fs::syscalls::symlink(old_path, new_path))
+ })
+}
+
+/// `mkdir(path, mode)`—Creates a directory.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/mkdir.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/mkdir.2.html
+#[inline]
+pub fn mkdir<P: path::Arg>(path: P, mode: Mode) -> io::Result<()> {
+ path.into_with_c_str(|path| backend::fs::syscalls::mkdir(path, mode))
+}
+
+/// `access(path, access)`—Tests permissions for a file or directory.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/access.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/access.2.html
+#[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "vita")))]
+#[inline]
+pub fn access<P: path::Arg>(path: P, access: Access) -> io::Result<()> {
+ path.into_with_c_str(|path| backend::fs::syscalls::access(path, access))
+}
+
+/// `statfs`—Queries filesystem metadata.
+///
+/// Compared to [`statvfs`], this function often provides more information,
+/// though it's less portable.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/statfs.2.html
+#[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "netbsd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+#[inline]
+pub fn statfs<P: path::Arg>(path: P) -> io::Result<StatFs> {
+ path.into_with_c_str(backend::fs::syscalls::statfs)
+}
+
+/// `statvfs`—Queries filesystem metadata, POSIX version.
+///
+/// Compared to [`statfs`], this function often provides less information, but
+/// it is more portable. But even so, filesystems are very diverse and not all
+/// the fields are meaningful for every filesystem. And `f_fsid` doesn't seem
+/// to have a clear meaning anywhere.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/statvfs.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/statvfs.2.html
+#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "wasi")))]
+#[inline]
+pub fn statvfs<P: path::Arg>(path: P) -> io::Result<StatVfs> {
+ path.into_with_c_str(backend::fs::syscalls::statvfs)
+}
+
+/// `chown(path, owner, group)`—Sets open file or directory ownership.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/chown.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/chown.2.html
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+pub fn chown<P: path::Arg>(path: P, owner: Option<Uid>, group: Option<Gid>) -> io::Result<()> {
+ path.into_with_c_str(|path| backend::fs::syscalls::chown(path, owner, group))
+}
diff --git a/vendor/rustix-1.0.8/src/fs/at.rs b/vendor/rustix-1.0.8/src/fs/at.rs
new file mode 100644
index 0000000..4ad2df8
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/at.rs
@@ -0,0 +1,494 @@
+//! POSIX-style `*at` functions.
+//!
+//! The `dirfd` argument to these functions may be a file descriptor for a
+//! directory, the special value [`CWD`], or the special value [`ABS`].
+//!
+//! [`CWD`]: crate::fs::CWD
+//! [`ABS`]: crate::fs::ABS
+
+#![allow(unsafe_code)]
+
+use crate::buffer::Buffer;
+use crate::fd::OwnedFd;
+#[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "vita")))]
+use crate::fs::Access;
+#[cfg(not(target_os = "espidf"))]
+use crate::fs::AtFlags;
+#[cfg(apple)]
+use crate::fs::CloneFlags;
+#[cfg(any(linux_kernel, apple))]
+use crate::fs::RenameFlags;
+#[cfg(not(target_os = "espidf"))]
+use crate::fs::Stat;
+#[cfg(not(any(apple, target_os = "espidf", target_os = "vita", target_os = "wasi")))]
+use crate::fs::{Dev, FileType};
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+use crate::fs::{Gid, Uid};
+use crate::fs::{Mode, OFlags};
+use crate::{backend, io, path};
+use backend::fd::AsFd;
+#[cfg(feature = "alloc")]
+use {
+ crate::ffi::{CStr, CString},
+ crate::path::SMALL_PATH_BUFFER_SIZE,
+ alloc::vec::Vec,
+ backend::fd::BorrowedFd,
+};
+#[cfg(not(any(target_os = "espidf", target_os = "vita")))]
+use {crate::fs::Timestamps, crate::timespec::Nsecs};
+
+/// `UTIME_NOW` for use with [`utimensat`].
+///
+/// [`utimensat`]: crate::fs::utimensat
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+pub const UTIME_NOW: Nsecs = backend::c::UTIME_NOW as Nsecs;
+
+/// `UTIME_OMIT` for use with [`utimensat`].
+///
+/// [`utimensat`]: crate::fs::utimensat
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+pub const UTIME_OMIT: Nsecs = backend::c::UTIME_OMIT as Nsecs;
+
+/// `openat(dirfd, path, oflags, mode)`—Opens a file.
+///
+/// POSIX guarantees that `openat` will use the lowest unused file descriptor,
+/// however it is not safe in general to rely on this, as file descriptors may
+/// be unexpectedly allocated on other threads or in libraries.
+///
+/// The `Mode` argument is only significant when creating a file.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/openat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/openat.2.html
+#[inline]
+pub fn openat<P: path::Arg, Fd: AsFd>(
+ dirfd: Fd,
+ path: P,
+ oflags: OFlags,
+ create_mode: Mode,
+) -> io::Result<OwnedFd> {
+ path.into_with_c_str(|path| {
+ backend::fs::syscalls::openat(dirfd.as_fd(), path, oflags, create_mode)
+ })
+}
+
+/// `readlinkat(fd, path)`—Reads the contents of a symlink.
+///
+/// If `reuse` already has available capacity, reuse it if possible.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/readlinkat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/readlinkat.2.html
+#[cfg(feature = "alloc")]
+#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
+#[inline]
+pub fn readlinkat<P: path::Arg, Fd: AsFd, B: Into<Vec<u8>>>(
+ dirfd: Fd,
+ path: P,
+ reuse: B,
+) -> io::Result<CString> {
+ path.into_with_c_str(|path| _readlinkat(dirfd.as_fd(), path, reuse.into()))
+}
+
+#[cfg(feature = "alloc")]
+#[allow(unsafe_code)]
+fn _readlinkat(dirfd: BorrowedFd<'_>, path: &CStr, mut buffer: Vec<u8>) -> io::Result<CString> {
+ buffer.clear();
+ buffer.reserve(SMALL_PATH_BUFFER_SIZE);
+
+ loop {
+ let buf = buffer.spare_capacity_mut();
+
+ // SAFETY: `readlinkat` behaves.
+ let nread = unsafe {
+ backend::fs::syscalls::readlinkat(
+ dirfd.as_fd(),
+ path,
+ (buf.as_mut_ptr().cast(), buf.len()),
+ )?
+ };
+
+ debug_assert!(nread <= buffer.capacity());
+ if nread < buffer.capacity() {
+ // SAFETY: From the [documentation]: “On success, these calls
+ // return the number of bytes placed in buf.”
+ //
+ // [documentation]: https://man7.org/linux/man-pages/man2/readlinkat.2.html
+ unsafe {
+ buffer.set_len(nread);
+ }
+
+ // SAFETY:
+ // - “readlink places the contents of the symbolic link pathname
+ // in the buffer buf”
+ // - [POSIX definition 3.271: Pathname]: “A string that is used
+ // to identify a file.”
+ // - [POSIX definition 3.375: String]: “A contiguous sequence of
+ // bytes terminated by and including the first null byte.”
+ // - “readlink does not append a terminating null byte to buf.”
+ //
+ // Thus, there will be no NUL bytes in the string.
+ //
+ // [POSIX definition 3.271: Pathname]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap03.html#tag_03_271
+ // [POSIX definition 3.375: String]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap03.html#tag_03_375
+ unsafe {
+ return Ok(CString::from_vec_unchecked(buffer));
+ }
+ }
+
+ // Use `Vec` reallocation strategy to grow capacity exponentially.
+ buffer.reserve(buffer.capacity() + 1);
+ }
+}
+
+/// `readlinkat(fd, path)`—Reads the contents of a symlink, without
+/// allocating.
+///
+/// This is the "raw" version which avoids allocating, but which truncates the
+/// string if it doesn't fit in the provided buffer, and doesn't NUL-terminate
+/// the string.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/readlinkat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/readlinkat.2.html
+#[inline]
+pub fn readlinkat_raw<P: path::Arg, Fd: AsFd, Buf: Buffer<u8>>(
+ dirfd: Fd,
+ path: P,
+ mut buf: Buf,
+) -> io::Result<Buf::Output> {
+ // SAFETY: `readlinkat` behaves.
+ let len = path.into_with_c_str(|path| unsafe {
+ backend::fs::syscalls::readlinkat(dirfd.as_fd(), path, buf.parts_mut())
+ })?;
+ // SAFETY: `readlinkat` behaves.
+ unsafe { Ok(buf.assume_init(len)) }
+}
+
+/// `mkdirat(fd, path, mode)`—Creates a directory.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/mkdirat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/mkdirat.2.html
+#[inline]
+pub fn mkdirat<P: path::Arg, Fd: AsFd>(dirfd: Fd, path: P, mode: Mode) -> io::Result<()> {
+ path.into_with_c_str(|path| backend::fs::syscalls::mkdirat(dirfd.as_fd(), path, mode))
+}
+
+/// `linkat(old_dirfd, old_path, new_dirfd, new_path, flags)`—Creates a hard
+/// link.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/linkat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/linkat.2.html
+#[cfg(not(target_os = "espidf"))]
+#[inline]
+pub fn linkat<P: path::Arg, Q: path::Arg, PFd: AsFd, QFd: AsFd>(
+ old_dirfd: PFd,
+ old_path: P,
+ new_dirfd: QFd,
+ new_path: Q,
+ flags: AtFlags,
+) -> io::Result<()> {
+ old_path.into_with_c_str(|old_path| {
+ new_path.into_with_c_str(|new_path| {
+ backend::fs::syscalls::linkat(
+ old_dirfd.as_fd(),
+ old_path,
+ new_dirfd.as_fd(),
+ new_path,
+ flags,
+ )
+ })
+ })
+}
+
+/// `unlinkat(fd, path, flags)`—Unlinks a file or remove a directory.
+///
+/// With the [`REMOVEDIR`] flag, this removes a directory. This is in place of
+/// a `rmdirat` function.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [`REMOVEDIR`]: AtFlags::REMOVEDIR
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/unlinkat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/unlinkat.2.html
+#[cfg(not(target_os = "espidf"))]
+#[inline]
+pub fn unlinkat<P: path::Arg, Fd: AsFd>(dirfd: Fd, path: P, flags: AtFlags) -> io::Result<()> {
+ path.into_with_c_str(|path| backend::fs::syscalls::unlinkat(dirfd.as_fd(), path, flags))
+}
+
+/// `renameat(old_dirfd, old_path, new_dirfd, new_path)`—Renames a file or
+/// directory.
+///
+/// See [`renameat_with`] to pass additional flags.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/renameat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/renameat.2.html
+#[inline]
+pub fn renameat<P: path::Arg, Q: path::Arg, PFd: AsFd, QFd: AsFd>(
+ old_dirfd: PFd,
+ old_path: P,
+ new_dirfd: QFd,
+ new_path: Q,
+) -> io::Result<()> {
+ old_path.into_with_c_str(|old_path| {
+ new_path.into_with_c_str(|new_path| {
+ backend::fs::syscalls::renameat(
+ old_dirfd.as_fd(),
+ old_path,
+ new_dirfd.as_fd(),
+ new_path,
+ )
+ })
+ })
+}
+
+/// `renameat2(old_dirfd, old_path, new_dirfd, new_path, flags)`—Renames a
+/// file or directory.
+///
+/// `renameat_with` is the same as [`renameat`] but adds an additional
+/// flags operand.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/renameat2.2.html
+#[cfg(any(apple, linux_kernel))]
+#[inline]
+#[doc(alias = "renameat2")]
+#[doc(alias = "renameatx_np")]
+pub fn renameat_with<P: path::Arg, Q: path::Arg, PFd: AsFd, QFd: AsFd>(
+ old_dirfd: PFd,
+ old_path: P,
+ new_dirfd: QFd,
+ new_path: Q,
+ flags: RenameFlags,
+) -> io::Result<()> {
+ old_path.into_with_c_str(|old_path| {
+ new_path.into_with_c_str(|new_path| {
+ backend::fs::syscalls::renameat2(
+ old_dirfd.as_fd(),
+ old_path,
+ new_dirfd.as_fd(),
+ new_path,
+ flags,
+ )
+ })
+ })
+}
+
+/// `symlinkat(old_path, new_dirfd, new_path)`—Creates a symlink.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/symlinkat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/symlinkat.2.html
+#[inline]
+pub fn symlinkat<P: path::Arg, Q: path::Arg, Fd: AsFd>(
+ old_path: P,
+ new_dirfd: Fd,
+ new_path: Q,
+) -> io::Result<()> {
+ old_path.into_with_c_str(|old_path| {
+ new_path.into_with_c_str(|new_path| {
+ backend::fs::syscalls::symlinkat(old_path, new_dirfd.as_fd(), new_path)
+ })
+ })
+}
+
+/// `fstatat(dirfd, path, flags)`—Queries metadata for a file or directory.
+///
+/// [`Mode::from_raw_mode`] and [`FileType::from_raw_mode`] may be used to
+/// interpret the `st_mode` field.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fstatat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fstatat.2.html
+/// [`Mode::from_raw_mode`]: crate::fs::Mode::from_raw_mode
+/// [`FileType::from_raw_mode`]: crate::fs::FileType::from_raw_mode
+#[cfg(not(target_os = "espidf"))]
+#[inline]
+#[doc(alias = "fstatat")]
+pub fn statat<P: path::Arg, Fd: AsFd>(dirfd: Fd, path: P, flags: AtFlags) -> io::Result<Stat> {
+ path.into_with_c_str(|path| backend::fs::syscalls::statat(dirfd.as_fd(), path, flags))
+}
+
+/// `faccessat(dirfd, path, access, flags)`—Tests permissions for a file or
+/// directory.
+///
+/// On Linux before 5.8, this function uses the `faccessat` system call which
+/// doesn't support any flags. This function emulates support for the
+/// [`AtFlags::EACCESS`] flag by checking whether the uid and gid of the
+/// process match the effective uid and gid, in which case the `EACCESS` flag
+/// can be ignored. In Linux 5.8 and beyond `faccessat2` is used, which
+/// supports flags.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/faccessat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/faccessat.2.html
+#[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "vita")))]
+#[inline]
+#[doc(alias = "faccessat")]
+pub fn accessat<P: path::Arg, Fd: AsFd>(
+ dirfd: Fd,
+ path: P,
+ access: Access,
+ flags: AtFlags,
+) -> io::Result<()> {
+ path.into_with_c_str(|path| backend::fs::syscalls::accessat(dirfd.as_fd(), path, access, flags))
+}
+
+/// `utimensat(dirfd, path, times, flags)`—Sets file or directory timestamps.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/utimensat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/utimensat.2.html
+#[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "vita")))]
+#[inline]
+pub fn utimensat<P: path::Arg, Fd: AsFd>(
+ dirfd: Fd,
+ path: P,
+ times: &Timestamps,
+ flags: AtFlags,
+) -> io::Result<()> {
+ path.into_with_c_str(|path| backend::fs::syscalls::utimensat(dirfd.as_fd(), path, times, flags))
+}
+
+/// `fchmodat(dirfd, path, mode, flags)`—Sets file or directory permissions.
+///
+/// Platform support for flags varies widely, for example on Linux
+/// [`AtFlags::SYMLINK_NOFOLLOW`] is not implemented and therefore
+/// [`io::Errno::OPNOTSUPP`] will be returned.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fchmodat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fchmodat.2.html
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+#[inline]
+#[doc(alias = "fchmodat")]
+pub fn chmodat<P: path::Arg, Fd: AsFd>(
+ dirfd: Fd,
+ path: P,
+ mode: Mode,
+ flags: AtFlags,
+) -> io::Result<()> {
+ path.into_with_c_str(|path| backend::fs::syscalls::chmodat(dirfd.as_fd(), path, mode, flags))
+}
+
+/// `fclonefileat(src, dst_dir, dst, flags)`—Efficiently copies between files.
+///
+/// # References
+/// - [Apple]
+///
+/// [Apple]: https://github.com/apple-oss-distributions/xnu/blob/main/bsd/man/man2/clonefile.2
+#[cfg(apple)]
+#[inline]
+pub fn fclonefileat<Fd: AsFd, DstFd: AsFd, P: path::Arg>(
+ src: Fd,
+ dst_dir: DstFd,
+ dst: P,
+ flags: CloneFlags,
+) -> io::Result<()> {
+ dst.into_with_c_str(|dst| {
+ backend::fs::syscalls::fclonefileat(src.as_fd(), dst_dir.as_fd(), dst, flags)
+ })
+}
+
+/// `mknodat(dirfd, path, mode, dev)`—Creates special or normal files.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/mknodat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/mknodat.2.html
+#[cfg(not(any(
+ apple,
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+pub fn mknodat<P: path::Arg, Fd: AsFd>(
+ dirfd: Fd,
+ path: P,
+ file_type: FileType,
+ mode: Mode,
+ dev: Dev,
+) -> io::Result<()> {
+ path.into_with_c_str(|path| {
+ backend::fs::syscalls::mknodat(dirfd.as_fd(), path, file_type, mode, dev)
+ })
+}
+
+/// `fchownat(dirfd, path, owner, group, flags)`—Sets file or directory
+/// ownership.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fchownat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fchownat.2.html
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+#[inline]
+#[doc(alias = "fchownat")]
+pub fn chownat<P: path::Arg, Fd: AsFd>(
+ dirfd: Fd,
+ path: P,
+ owner: Option<Uid>,
+ group: Option<Gid>,
+ flags: AtFlags,
+) -> io::Result<()> {
+ path.into_with_c_str(|path| {
+ backend::fs::syscalls::chownat(dirfd.as_fd(), path, owner, group, flags)
+ })
+}
diff --git a/vendor/rustix-1.0.8/src/fs/constants.rs b/vendor/rustix-1.0.8/src/fs/constants.rs
new file mode 100644
index 0000000..5f10634
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/constants.rs
@@ -0,0 +1,355 @@
+//! Filesystem API constants, translated into `bitflags` constants.
+
+use crate::backend;
+
+pub use crate::timespec::{Nsecs, Secs, Timespec};
+pub use backend::fs::types::*;
+
+impl FileType {
+ /// Returns `true` if this `FileType` is a regular file.
+ pub fn is_file(self) -> bool {
+ self == Self::RegularFile
+ }
+
+ /// Returns `true` if this `FileType` is a directory.
+ pub fn is_dir(self) -> bool {
+ self == Self::Directory
+ }
+
+ /// Returns `true` if this `FileType` is a symlink.
+ pub fn is_symlink(self) -> bool {
+ self == Self::Symlink
+ }
+
+ /// Returns `true` if this `FileType` is a fifo.
+ #[cfg(not(target_os = "wasi"))]
+ pub fn is_fifo(self) -> bool {
+ self == Self::Fifo
+ }
+
+ /// Returns `true` if this `FileType` is a socket.
+ #[cfg(not(target_os = "wasi"))]
+ pub fn is_socket(self) -> bool {
+ self == Self::Socket
+ }
+
+ /// Returns `true` if this `FileType` is a character device.
+ pub fn is_char_device(self) -> bool {
+ self == Self::CharacterDevice
+ }
+
+ /// Returns `true` if this `FileType` is a block device.
+ pub fn is_block_device(self) -> bool {
+ self == Self::BlockDevice
+ }
+}
+
+#[cfg(test)]
+#[allow(unused_imports)]
+#[allow(unsafe_code)]
+mod tests {
+ use super::*;
+ use crate::backend::c;
+ // Rust's libc crate lacks statx for Non-glibc targets.
+ #[cfg(all(target_os = "linux", target_env = "gnu"))]
+ use crate::fs::{Statx, StatxTimestamp};
+
+ #[test]
+ fn test_layouts() {
+ #[cfg(linux_kernel)]
+ assert_eq_size!(FsWord, linux_raw_sys::general::__fsword_t);
+
+ // Don't test against `__kernel_mode_t` on platforms where it's a
+ // `u16`.
+ #[cfg(linux_kernel)]
+ #[cfg(not(any(
+ target_arch = "x86",
+ target_arch = "sparc",
+ target_arch = "avr",
+ target_arch = "arm",
+ )))]
+ assert_eq_size!(RawMode, linux_raw_sys::general::__kernel_mode_t);
+
+ #[cfg(linux_kernel)]
+ #[cfg(any(
+ target_arch = "x86",
+ target_arch = "sparc",
+ target_arch = "avr",
+ target_arch = "arm",
+ ))]
+ assert_eq_size!(u16, linux_raw_sys::general::__kernel_mode_t);
+
+ let some_stat: Stat = unsafe { core::mem::zeroed() };
+
+ // Ensure that seconds fields are 64-bit on non-y2038-bug platforms, and
+ // on Linux where we use statx.
+ #[cfg(any(linux_kernel, not(fix_y2038)))]
+ {
+ assert_eq!(some_stat.st_atime, 0_i64);
+ assert_eq!(some_stat.st_mtime, 0_i64);
+ assert_eq!(some_stat.st_ctime, 0_i64);
+ }
+
+ // Ensure that file offsets are 64-bit.
+ assert_eq!(some_stat.st_size, 0_i64);
+
+ // Check that various fields match expected types.
+ assert_eq!(some_stat.st_mode, 0 as RawMode);
+ assert_eq!(some_stat.st_dev, 0 as Dev);
+ assert_eq!(some_stat.st_rdev, 0 as Dev);
+ assert_eq!(some_stat.st_uid, 0 as crate::ugid::RawUid);
+ assert_eq!(some_stat.st_gid, 0 as crate::ugid::RawGid);
+
+ // `Stat` should match `c::stat` or `c::stat64` unless we need y2038
+ // fixes and are using a different layout.
+ #[cfg(not(any(
+ all(libc, linux_kernel, target_pointer_width = "32"),
+ all(
+ linux_raw,
+ any(
+ target_pointer_width = "32",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )
+ )
+ )))]
+ {
+ // Check that `Stat` matches `c::stat`.
+ #[cfg(not(all(
+ libc,
+ any(
+ all(linux_kernel, target_pointer_width = "64"),
+ target_os = "hurd",
+ target_os = "emscripten",
+ target_os = "l4re",
+ )
+ )))]
+ {
+ check_renamed_type!(Stat, stat);
+ check_renamed_struct_field!(Stat, stat, st_dev);
+ check_renamed_struct_field!(Stat, stat, st_ino);
+ check_renamed_struct_field!(Stat, stat, st_nlink);
+ check_renamed_struct_field!(Stat, stat, st_mode);
+ check_renamed_struct_field!(Stat, stat, st_uid);
+ check_renamed_struct_field!(Stat, stat, st_gid);
+ #[cfg(all(
+ linux_raw,
+ not(any(
+ target_arch = "aarch64",
+ target_arch = "powerpc64",
+ target_arch = "riscv64",
+ target_arch = "s390x"
+ ))
+ ))]
+ check_renamed_struct_field!(Stat, stat, __pad0);
+ check_renamed_struct_field!(Stat, stat, st_rdev);
+ #[cfg(all(linux_raw, not(any(target_arch = "powerpc64", target_arch = "x86_64"))))]
+ check_renamed_struct_field!(Stat, stat, __pad1);
+ check_renamed_struct_field!(Stat, stat, st_size);
+ check_renamed_struct_field!(Stat, stat, st_blksize);
+ #[cfg(all(
+ linux_raw,
+ not(any(
+ target_arch = "powerpc64",
+ target_arch = "s390x",
+ target_arch = "x86_64"
+ ))
+ ))]
+ check_renamed_struct_field!(Stat, stat, __pad2);
+ check_renamed_struct_field!(Stat, stat, st_blocks);
+ check_renamed_struct_field!(Stat, stat, st_atime);
+ #[cfg(not(target_os = "netbsd"))]
+ check_renamed_struct_field!(Stat, stat, st_atime_nsec);
+ #[cfg(target_os = "netbsd")]
+ check_renamed_struct_renamed_field!(Stat, stat, st_atime_nsec, st_atimensec);
+ check_renamed_struct_field!(Stat, stat, st_mtime);
+ #[cfg(not(target_os = "netbsd"))]
+ check_renamed_struct_field!(Stat, stat, st_mtime_nsec);
+ #[cfg(target_os = "netbsd")]
+ check_renamed_struct_renamed_field!(Stat, stat, st_mtime_nsec, st_mtimensec);
+ check_renamed_struct_field!(Stat, stat, st_ctime);
+ #[cfg(not(target_os = "netbsd"))]
+ check_renamed_struct_field!(Stat, stat, st_ctime_nsec);
+ #[cfg(target_os = "netbsd")]
+ check_renamed_struct_renamed_field!(Stat, stat, st_ctime_nsec, st_ctimensec);
+ #[cfg(all(
+ linux_raw,
+ not(any(
+ target_arch = "aarch64",
+ target_arch = "powerpc64",
+ target_arch = "riscv64"
+ ))
+ ))]
+ check_renamed_struct_field!(Stat, stat, __unused);
+ #[cfg(all(linux_raw, not(any(target_arch = "s390x", target_arch = "x86_64"))))]
+ check_renamed_struct_field!(Stat, stat, __unused4);
+ #[cfg(all(linux_raw, not(any(target_arch = "s390x", target_arch = "x86_64"))))]
+ check_renamed_struct_field!(Stat, stat, __unused5);
+ #[cfg(all(
+ linux_raw,
+ not(any(
+ target_arch = "aarch64",
+ target_arch = "riscv64",
+ target_arch = "s390x",
+ target_arch = "x86_64"
+ ))
+ ))]
+ check_renamed_struct_field!(Stat, stat, __unused6);
+ }
+
+ // Check that `Stat` matches `c::stat64`.
+ #[cfg(all(
+ libc,
+ any(
+ all(linux_kernel, target_pointer_width = "64"),
+ target_os = "hurd",
+ target_os = "emscripten",
+ target_os = "l4re",
+ )
+ ))]
+ {
+ check_renamed_type!(Stat, stat64);
+ check_renamed_struct_field!(Stat, stat64, st_dev);
+ check_renamed_struct_field!(Stat, stat64, st_ino);
+ check_renamed_struct_field!(Stat, stat64, st_nlink);
+ check_renamed_struct_field!(Stat, stat64, st_mode);
+ check_renamed_struct_field!(Stat, stat64, st_uid);
+ check_renamed_struct_field!(Stat, stat64, st_gid);
+ #[cfg(all(
+ linux_raw,
+ not(any(
+ target_arch = "aarch64",
+ target_arch = "powerpc64",
+ target_arch = "riscv64",
+ target_arch = "s390x"
+ ))
+ ))]
+ check_renamed_struct_field!(Stat, stat64, __pad0);
+ check_renamed_struct_field!(Stat, stat64, st_rdev);
+ #[cfg(all(linux_raw, not(any(target_arch = "powerpc64", target_arch = "x86_64"))))]
+ check_renamed_struct_field!(Stat, stat64, __pad1);
+ check_renamed_struct_field!(Stat, stat64, st_size);
+ check_renamed_struct_field!(Stat, stat64, st_blksize);
+ #[cfg(all(
+ linux_raw,
+ not(any(
+ target_arch = "powerpc64",
+ target_arch = "s390x",
+ target_arch = "x86_64"
+ ))
+ ))]
+ check_renamed_struct_field!(Stat, stat64, __pad2);
+ check_renamed_struct_field!(Stat, stat64, st_blocks);
+ check_renamed_struct_field!(Stat, stat64, st_atime);
+ check_renamed_struct_field!(Stat, stat64, st_atime_nsec);
+ check_renamed_struct_field!(Stat, stat64, st_mtime);
+ check_renamed_struct_field!(Stat, stat64, st_mtime_nsec);
+ check_renamed_struct_field!(Stat, stat64, st_ctime);
+ check_renamed_struct_field!(Stat, stat64, st_ctime_nsec);
+ #[cfg(all(
+ linux_raw,
+ not(any(
+ target_arch = "aarch64",
+ target_arch = "powerpc64",
+ target_arch = "riscv64"
+ ))
+ ))]
+ check_renamed_struct_field!(Stat, stat64, __unused);
+ #[cfg(all(linux_raw, not(any(target_arch = "s390x", target_arch = "x86_64"))))]
+ check_renamed_struct_field!(Stat, stat64, __unused4);
+ #[cfg(all(linux_raw, not(any(target_arch = "s390x", target_arch = "x86_64"))))]
+ check_renamed_struct_field!(Stat, stat64, __unused5);
+ #[cfg(all(
+ linux_raw,
+ not(any(
+ target_arch = "aarch64",
+ target_arch = "riscv64",
+ target_arch = "s390x",
+ target_arch = "x86_64"
+ ))
+ ))]
+ check_renamed_struct_field!(Stat, stat64, __unused6);
+ }
+ }
+
+ #[cfg(not(any(
+ solarish,
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "wasi",
+ )))]
+ {
+ check_renamed_type!(Fsid, fsid_t);
+ #[cfg(not(libc))] // libc hides the `val` field
+ check_renamed_struct_field!(Fsid, fsid_t, val);
+ }
+
+ #[cfg(linux_like)]
+ {
+ check_renamed_type!(StatFs, statfs64);
+ check_renamed_struct_field!(StatFs, statfs64, f_type);
+ check_renamed_struct_field!(StatFs, statfs64, f_bsize);
+ check_renamed_struct_field!(StatFs, statfs64, f_blocks);
+ check_renamed_struct_field!(StatFs, statfs64, f_bfree);
+ check_renamed_struct_field!(StatFs, statfs64, f_bavail);
+ check_renamed_struct_field!(StatFs, statfs64, f_files);
+ check_renamed_struct_field!(StatFs, statfs64, f_ffree);
+ check_renamed_struct_field!(StatFs, statfs64, f_fsid);
+ check_renamed_struct_field!(StatFs, statfs64, f_namelen);
+ check_renamed_struct_field!(StatFs, statfs64, f_frsize);
+ check_renamed_struct_field!(StatFs, statfs64, f_flags);
+ #[cfg(linux_raw)]
+ check_renamed_struct_field!(StatFs, statfs64, f_spare);
+ }
+
+ // Rust's libc crate lacks statx for Non-glibc targets.
+ #[cfg(all(target_os = "linux", target_env = "gnu"))]
+ {
+ check_renamed_type!(StatxTimestamp, statx_timestamp);
+ check_renamed_struct_field!(StatxTimestamp, statx_timestamp, tv_sec);
+ check_renamed_struct_field!(StatxTimestamp, statx_timestamp, tv_nsec);
+ #[cfg(linux_raw)]
+ check_renamed_struct_field!(StatxTimestamp, statx_timestamp, __reserved);
+
+ check_renamed_type!(Statx, statx);
+ check_renamed_struct_field!(Statx, statx, stx_mask);
+ check_renamed_struct_field!(Statx, statx, stx_blksize);
+ check_renamed_struct_field!(Statx, statx, stx_attributes);
+ check_renamed_struct_field!(Statx, statx, stx_nlink);
+ check_renamed_struct_field!(Statx, statx, stx_uid);
+ check_renamed_struct_field!(Statx, statx, stx_gid);
+ check_renamed_struct_field!(Statx, statx, stx_mode);
+ #[cfg(linux_raw)]
+ check_renamed_struct_field!(Statx, statx, __spare0);
+ check_renamed_struct_field!(Statx, statx, stx_ino);
+ check_renamed_struct_field!(Statx, statx, stx_size);
+ check_renamed_struct_field!(Statx, statx, stx_blocks);
+ check_renamed_struct_field!(Statx, statx, stx_attributes_mask);
+ check_renamed_struct_field!(Statx, statx, stx_atime);
+ check_renamed_struct_field!(Statx, statx, stx_btime);
+ check_renamed_struct_field!(Statx, statx, stx_ctime);
+ check_renamed_struct_field!(Statx, statx, stx_mtime);
+ check_renamed_struct_field!(Statx, statx, stx_rdev_major);
+ check_renamed_struct_field!(Statx, statx, stx_rdev_minor);
+ check_renamed_struct_field!(Statx, statx, stx_dev_major);
+ check_renamed_struct_field!(Statx, statx, stx_dev_minor);
+ check_renamed_struct_field!(Statx, statx, stx_mnt_id);
+ check_renamed_struct_field!(Statx, statx, stx_dio_mem_align);
+ check_renamed_struct_field!(Statx, statx, stx_dio_offset_align);
+ #[cfg(not(libc))] // not in libc yet
+ check_renamed_struct_field!(Statx, statx, stx_subvol);
+ #[cfg(not(libc))] // not in libc yet
+ check_renamed_struct_field!(Statx, statx, stx_atomic_write_unit_min);
+ #[cfg(not(libc))] // not in libc yet
+ check_renamed_struct_field!(Statx, statx, stx_atomic_write_unit_max);
+ #[cfg(not(libc))] // not in libc yet
+ check_renamed_struct_field!(Statx, statx, stx_atomic_write_segments_max);
+ #[cfg(linux_raw)]
+ check_renamed_struct_field!(Statx, statx, __spare1);
+ #[cfg(linux_raw)]
+ check_renamed_struct_field!(Statx, statx, __spare3);
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/fs/copy_file_range.rs b/vendor/rustix-1.0.8/src/fs/copy_file_range.rs
new file mode 100644
index 0000000..b927d57
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/copy_file_range.rs
@@ -0,0 +1,20 @@
+use crate::{backend, io};
+use backend::fd::AsFd;
+
+/// `copy_file_range(fd_in, off_in, fd_out, off_out, len, 0)`—Copies data
+/// from one file to another.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/copy_file_range.2.html
+#[inline]
+pub fn copy_file_range<InFd: AsFd, OutFd: AsFd>(
+ fd_in: InFd,
+ off_in: Option<&mut u64>,
+ fd_out: OutFd,
+ off_out: Option<&mut u64>,
+ len: usize,
+) -> io::Result<usize> {
+ backend::fs::syscalls::copy_file_range(fd_in.as_fd(), off_in, fd_out.as_fd(), off_out, len)
+}
diff --git a/vendor/rustix-1.0.8/src/fs/dir.rs b/vendor/rustix-1.0.8/src/fs/dir.rs
new file mode 100644
index 0000000..b3e1e3b
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/dir.rs
@@ -0,0 +1,5 @@
+//! `Dir` and `DirEntry`.
+
+use crate::backend;
+
+pub use backend::fs::dir::{Dir, DirEntry};
diff --git a/vendor/rustix-1.0.8/src/fs/fadvise.rs b/vendor/rustix-1.0.8/src/fs/fadvise.rs
new file mode 100644
index 0000000..93d8e08
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/fadvise.rs
@@ -0,0 +1,28 @@
+use crate::{backend, io};
+use backend::fd::AsFd;
+use backend::fs::types::Advice;
+use core::num::NonZeroU64;
+
+/// `posix_fadvise(fd, offset, len, advice)`—Declares an expected access
+/// pattern for a file.
+///
+/// If `len` is `None`, the advice extends to the end of the file.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_fadvise.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/posix_fadvise.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=posix_fadvise&sektion=2
+#[inline]
+#[doc(alias = "posix_fadvise")]
+pub fn fadvise<Fd: AsFd>(
+ fd: Fd,
+ offset: u64,
+ len: Option<NonZeroU64>,
+ advice: Advice,
+) -> io::Result<()> {
+ backend::fs::syscalls::fadvise(fd.as_fd(), offset, len, advice)
+}
diff --git a/vendor/rustix-1.0.8/src/fs/fcntl.rs b/vendor/rustix-1.0.8/src/fs/fcntl.rs
new file mode 100644
index 0000000..ba5368c
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/fcntl.rs
@@ -0,0 +1,107 @@
+//! The Unix `fcntl` function is effectively lots of different functions hidden
+//! behind a single dynamic dispatch interface. In order to provide a type-safe
+//! API, rustix makes them all separate functions so that they can have
+//! dedicated static type signatures.
+
+#[cfg(not(any(
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+use crate::fs::FlockOperation;
+use crate::{backend, io};
+use backend::fd::AsFd;
+use backend::fs::types::OFlags;
+
+/// `fcntl(fd, F_GETFL)`—Returns a file descriptor's access mode and status.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fcntl.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html
+#[inline]
+#[doc(alias = "F_GETFL")]
+pub fn fcntl_getfl<Fd: AsFd>(fd: Fd) -> io::Result<OFlags> {
+ backend::fs::syscalls::fcntl_getfl(fd.as_fd())
+}
+
+/// `fcntl(fd, F_SETFL, flags)`—Sets a file descriptor's status.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fcntl.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html
+#[inline]
+#[doc(alias = "F_SETFL")]
+pub fn fcntl_setfl<Fd: AsFd>(fd: Fd, flags: OFlags) -> io::Result<()> {
+ backend::fs::syscalls::fcntl_setfl(fd.as_fd(), flags)
+}
+
+/// `fcntl(fd, F_GET_SEALS)`—Return the seals for `fd`'s inode.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html
+#[cfg(any(linux_kernel, target_os = "freebsd", target_os = "fuchsia"))]
+#[inline]
+#[doc(alias = "F_GET_SEALS")]
+pub fn fcntl_get_seals<Fd: AsFd>(fd: Fd) -> io::Result<SealFlags> {
+ backend::fs::syscalls::fcntl_get_seals(fd.as_fd())
+}
+
+#[cfg(any(linux_kernel, target_os = "freebsd", target_os = "fuchsia"))]
+use backend::fs::types::SealFlags;
+
+/// `fcntl(fd, F_ADD_SEALS)`—Add seals to `fd`'s inode.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html
+#[cfg(any(linux_kernel, target_os = "freebsd", target_os = "fuchsia"))]
+#[inline]
+#[doc(alias = "F_ADD_SEALS")]
+pub fn fcntl_add_seals<Fd: AsFd>(fd: Fd, seals: SealFlags) -> io::Result<()> {
+ backend::fs::syscalls::fcntl_add_seals(fd.as_fd(), seals)
+}
+
+/// `fcntl(fd, F_SETLK)`—Acquire or release an `fcntl`-style lock.
+///
+/// This function doesn't currently have an offset or len; it currently always
+/// sets the `l_len` field to 0, which is a special case that means the entire
+/// file should be locked.
+///
+/// Unlike `flock`-style locks, `fcntl`-style locks are process-associated,
+/// meaning that they don't guard against being acquired by two threads in the
+/// same process.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fcntl.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html
+#[cfg(not(any(
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+#[doc(alias = "F_SETLK")]
+#[doc(alias = "F_SETLKW")]
+pub fn fcntl_lock<Fd: AsFd>(fd: Fd, operation: FlockOperation) -> io::Result<()> {
+ backend::fs::syscalls::fcntl_lock(fd.as_fd(), operation)
+}
diff --git a/vendor/rustix-1.0.8/src/fs/fcntl_apple.rs b/vendor/rustix-1.0.8/src/fs/fcntl_apple.rs
new file mode 100644
index 0000000..a32e46d
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/fcntl_apple.rs
@@ -0,0 +1,66 @@
+use crate::{backend, io};
+use backend::fd::AsFd;
+
+/// `fcntl(fd, F_RDADVISE, radvisory { offset, len })`
+///
+/// # References
+/// - [Apple]
+///
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html
+#[doc(alias = "F_RDADVISE")]
+#[inline]
+pub fn fcntl_rdadvise<Fd: AsFd>(fd: Fd, offset: u64, len: u64) -> io::Result<()> {
+ backend::fs::syscalls::fcntl_rdadvise(fd.as_fd(), offset, len)
+}
+
+/// `fcntl(fd, F_FULLFSYNC)`
+///
+/// # References
+/// - [Apple]
+///
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html
+#[doc(alias = "F_FULLSYNC")]
+#[inline]
+pub fn fcntl_fullfsync<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ backend::fs::syscalls::fcntl_fullfsync(fd.as_fd())
+}
+
+/// `fcntl(fd, F_NOCACHE, value)`—Turn data caching off or on for a file
+/// descriptor.
+///
+/// See [this mailing list post] for additional information about the meanings
+/// of `F_NOCACHE` and `F_GLOBAL_NOCACHE`.
+///
+/// [this mailing list post]: https://lists.apple.com/archives/filesystem-dev/2007/Sep/msg00010.html
+///
+/// See also [`fcntl_global_nocache`].
+///
+/// # References
+/// - [Apple]
+///
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html
+#[doc(alias = "F_NOCACHE")]
+#[inline]
+pub fn fcntl_nocache<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::fs::syscalls::fcntl_nocache(fd.as_fd(), value)
+}
+
+/// `fcntl(fd, F_GLOBAL_NOCACHE, value)`—Turn data caching off or on for all
+/// file descriptors.
+///
+/// See [this mailing list post] for additional information about the meanings
+/// of `F_NOCACHE` and `F_GLOBAL_NOCACHE`.
+///
+/// [this mailing list post]: https://lists.apple.com/archives/filesystem-dev/2007/Sep/msg00010.html
+///
+/// See also [`fcntl_nocache`].
+///
+/// # References
+/// - [Apple]
+///
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html
+#[doc(alias = "F_GLOBAL_NOCACHE")]
+#[inline]
+pub fn fcntl_global_nocache<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::fs::syscalls::fcntl_global_nocache(fd.as_fd(), value)
+}
diff --git a/vendor/rustix-1.0.8/src/fs/fcopyfile.rs b/vendor/rustix-1.0.8/src/fs/fcopyfile.rs
new file mode 100644
index 0000000..e8f26ff
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/fcopyfile.rs
@@ -0,0 +1,88 @@
+use crate::fs::CopyfileFlags;
+use crate::{backend, io};
+use backend::fd::AsFd;
+use backend::fs::types::copyfile_state_t;
+
+/// `fcopyfile(from, to, state, flags)`
+///
+/// # Safety
+///
+/// The `state` operand must be allocated with `copyfile_state_alloc` and not
+/// yet freed with `copyfile_state_free`.
+///
+/// # References
+/// - [Apple]
+///
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/fcopyfile.3.html
+#[inline]
+pub unsafe fn fcopyfile<FromFd: AsFd, ToFd: AsFd>(
+ from: FromFd,
+ to: ToFd,
+ state: copyfile_state_t,
+ flags: CopyfileFlags,
+) -> io::Result<()> {
+ backend::fs::syscalls::fcopyfile(from.as_fd(), to.as_fd(), state, flags)
+}
+
+/// `copyfile_state_alloc()`
+///
+/// # References
+/// - [Apple]
+///
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/fcopyfile.3.html
+#[inline]
+pub fn copyfile_state_alloc() -> io::Result<copyfile_state_t> {
+ backend::fs::syscalls::copyfile_state_alloc()
+}
+
+/// `copyfile_state_free(state)`
+///
+/// # Safety
+///
+/// The `state` operand must be allocated with `copyfile_state_alloc` and not
+/// yet freed with `copyfile_state_free`.
+///
+/// # References
+/// - [Apple]
+///
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/fcopyfile.3.html
+#[inline]
+pub unsafe fn copyfile_state_free(state: copyfile_state_t) -> io::Result<()> {
+ backend::fs::syscalls::copyfile_state_free(state)
+}
+
+/// `copyfile_state_get(state, COPYFILE_STATE_COPIED)`
+///
+/// # Safety
+///
+/// The `state` operand must be allocated with `copyfile_state_alloc` and not
+/// yet freed with `copyfile_state_free`.
+///
+/// # References
+/// - [Apple]
+///
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/fcopyfile.3.html
+#[inline]
+pub unsafe fn copyfile_state_get_copied(state: copyfile_state_t) -> io::Result<u64> {
+ backend::fs::syscalls::copyfile_state_get_copied(state)
+}
+
+/// `copyfile_state_get(state, flags, dst)`
+///
+/// # Safety
+///
+/// The `state` operand must be allocated with `copyfile_state_alloc` and not
+/// yet freed with `copyfile_state_free`.
+///
+/// # References
+/// - [Apple]
+///
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/fcopyfile.3.html
+#[inline]
+pub unsafe fn copyfile_state_get(
+ state: copyfile_state_t,
+ flag: u32,
+ dst: *mut core::ffi::c_void,
+) -> io::Result<()> {
+ backend::fs::syscalls::copyfile_state_get(state, flag, dst)
+}
diff --git a/vendor/rustix-1.0.8/src/fs/fd.rs b/vendor/rustix-1.0.8/src/fs/fd.rs
new file mode 100644
index 0000000..7ce1b3a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/fd.rs
@@ -0,0 +1,331 @@
+//! Functions which operate on file descriptors.
+
+#[cfg(not(target_os = "wasi"))]
+use crate::fs::Mode;
+#[cfg(not(target_os = "wasi"))]
+use crate::fs::{Gid, Uid};
+use crate::fs::{SeekFrom, Timespec};
+use crate::{backend, io};
+use backend::fd::AsFd;
+#[cfg(not(any(
+ netbsdlike,
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+)))]
+use backend::fs::types::FallocateFlags;
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "solaris",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+use backend::fs::types::FlockOperation;
+#[cfg(linux_kernel)]
+use backend::fs::types::FsWord;
+use backend::fs::types::Stat;
+#[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "netbsd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+use backend::fs::types::StatFs;
+#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "wasi")))]
+use backend::fs::types::StatVfs;
+
+/// Timestamps used by [`utimensat`] and [`futimens`].
+///
+/// [`utimensat`]: crate::fs::utimensat
+/// [`futimens`]: crate::fs::futimens
+// This is `repr(C)` and specifically laid out to match the representation used
+// by `utimensat` and `futimens`, which expect 2-element arrays of timestamps.
+#[repr(C)]
+#[derive(Debug, Clone)]
+pub struct Timestamps {
+ /// The timestamp of the last access to a filesystem object.
+ pub last_access: Timespec,
+
+ /// The timestamp of the last modification of a filesystem object.
+ pub last_modification: Timespec,
+}
+
+/// The filesystem magic number for procfs.
+///
+/// See [the `fstatfs` manual page] for more information.
+///
+/// [the `fstatfs` manual page]: https://man7.org/linux/man-pages/man2/fstatfs.2.html#DESCRIPTION
+#[cfg(linux_kernel)]
+pub const PROC_SUPER_MAGIC: FsWord = backend::c::PROC_SUPER_MAGIC as FsWord;
+
+/// The filesystem magic number for NFS.
+///
+/// See [the `fstatfs` manual page] for more information.
+///
+/// [the `fstatfs` manual page]: https://man7.org/linux/man-pages/man2/fstatfs.2.html#DESCRIPTION
+#[cfg(linux_kernel)]
+pub const NFS_SUPER_MAGIC: FsWord = backend::c::NFS_SUPER_MAGIC as FsWord;
+
+/// `lseek(fd, offset, whence)`—Repositions a file descriptor within a file.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/lseek.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/lseek.2.html
+#[inline]
+#[doc(alias = "lseek")]
+pub fn seek<Fd: AsFd>(fd: Fd, pos: SeekFrom) -> io::Result<u64> {
+ backend::fs::syscalls::seek(fd.as_fd(), pos)
+}
+
+/// `lseek(fd, 0, SEEK_CUR)`—Returns the current position within a file.
+///
+/// Return the current position of the file descriptor. This is a subset of
+/// the functionality of `seek`, but this interface makes it easier for users
+/// to declare their intent not to mutate any state.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/lseek.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/lseek.2.html
+#[inline]
+#[doc(alias = "lseek")]
+pub fn tell<Fd: AsFd>(fd: Fd) -> io::Result<u64> {
+ backend::fs::syscalls::tell(fd.as_fd())
+}
+
+/// `fchmod(fd, mode)`—Sets open file or directory permissions.
+///
+/// This implementation does not support [`OFlags::PATH`] file descriptors,
+/// even on platforms where the host libc emulates it.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fchmod.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fchmod.2.html
+/// [`OFlags::PATH`]: crate::fs::OFlags::PATH
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+pub fn fchmod<Fd: AsFd>(fd: Fd, mode: Mode) -> io::Result<()> {
+ backend::fs::syscalls::fchmod(fd.as_fd(), mode)
+}
+
+/// `fchown(fd, owner, group)`—Sets open file or directory ownership.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fchown.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fchown.2.html
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+pub fn fchown<Fd: AsFd>(fd: Fd, owner: Option<Uid>, group: Option<Gid>) -> io::Result<()> {
+ backend::fs::syscalls::fchown(fd.as_fd(), owner, group)
+}
+
+/// `fstat(fd)`—Queries metadata for an open file or directory.
+///
+/// [`Mode::from_raw_mode`] and [`FileType::from_raw_mode`] may be used to
+/// interpret the `st_mode` field.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fstat.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fstat.2.html
+/// [`Mode::from_raw_mode`]: Mode::from_raw_mode
+/// [`FileType::from_raw_mode`]: crate::fs::FileType::from_raw_mode
+#[inline]
+pub fn fstat<Fd: AsFd>(fd: Fd) -> io::Result<Stat> {
+ backend::fs::syscalls::fstat(fd.as_fd())
+}
+
+/// `fstatfs(fd)`—Queries filesystem statistics for an open file or directory.
+///
+/// Compared to [`fstatvfs`], this function often provides more information,
+/// though it's less portable.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/fstatfs.2.html
+#[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "netbsd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+#[inline]
+pub fn fstatfs<Fd: AsFd>(fd: Fd) -> io::Result<StatFs> {
+ backend::fs::syscalls::fstatfs(fd.as_fd())
+}
+
+/// `fstatvfs(fd)`—Queries filesystem statistics for an open file or
+/// directory, POSIX version.
+///
+/// Compared to [`fstatfs`], this function often provides less information,
+/// but it is more portable. But even so, filesystems are very diverse and not
+/// all the fields are meaningful for every filesystem. And `f_fsid` doesn't
+/// seem to have a clear meaning anywhere.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fstatvfs.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fstatvfs.2.html
+#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "wasi")))]
+#[inline]
+pub fn fstatvfs<Fd: AsFd>(fd: Fd) -> io::Result<StatVfs> {
+ backend::fs::syscalls::fstatvfs(fd.as_fd())
+}
+
+/// `futimens(fd, times)`—Sets timestamps for an open file or directory.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/futimens.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/utimensat.2.html
+#[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "vita")))]
+#[inline]
+pub fn futimens<Fd: AsFd>(fd: Fd, times: &Timestamps) -> io::Result<()> {
+ backend::fs::syscalls::futimens(fd.as_fd(), times)
+}
+
+/// `fallocate(fd, mode, offset, len)`—Adjusts file allocation.
+///
+/// This is a more general form of `posix_fallocate`, adding a `mode` argument
+/// which modifies the behavior. On platforms which only support
+/// `posix_fallocate` and not the more general form, no `FallocateFlags` values
+/// are defined so it will always be empty.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux `fallocate`]
+/// - [Linux `posix_fallocate`]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_fallocate.html
+/// [Linux `fallocate`]: https://man7.org/linux/man-pages/man2/fallocate.2.html
+/// [Linux `posix_fallocate`]: https://man7.org/linux/man-pages/man3/posix_fallocate.3.html
+#[cfg(not(any(
+ netbsdlike,
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+)))] // not implemented in libc for NetBSD yet
+#[inline]
+#[doc(alias = "posix_fallocate")]
+pub fn fallocate<Fd: AsFd>(fd: Fd, mode: FallocateFlags, offset: u64, len: u64) -> io::Result<()> {
+ backend::fs::syscalls::fallocate(fd.as_fd(), mode, offset, len)
+}
+
+/// `fsync(fd)`—Ensures that file data and metadata is written to the
+/// underlying storage device.
+///
+/// On iOS and macOS this isn't sufficient to ensure that data has reached
+/// persistent storage; use [`fcntl_fullfsync`] to ensure that.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fsync.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fsync.2.html
+/// [`fcntl_fullfsync`]: https://docs.rs/rustix/*/x86_64-apple-darwin/rustix/fs/fn.fcntl_fullfsync.html
+#[inline]
+pub fn fsync<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ backend::fs::syscalls::fsync(fd.as_fd())
+}
+
+/// `fdatasync(fd)`—Ensures that file data is written to the underlying
+/// storage device.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fdatasync.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fdatasync.2.html
+#[cfg(not(any(
+ apple,
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+)))]
+#[inline]
+pub fn fdatasync<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ backend::fs::syscalls::fdatasync(fd.as_fd())
+}
+
+/// `ftruncate(fd, length)`—Sets the length of a file.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/ftruncate.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/ftruncate.2.html
+#[inline]
+pub fn ftruncate<Fd: AsFd>(fd: Fd, length: u64) -> io::Result<()> {
+ backend::fs::syscalls::ftruncate(fd.as_fd(), length)
+}
+
+/// `flock(fd, operation)`—Acquire or release an advisory lock on an open file.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/flock.2.html
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "solaris",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+pub fn flock<Fd: AsFd>(fd: Fd, operation: FlockOperation) -> io::Result<()> {
+ backend::fs::syscalls::flock(fd.as_fd(), operation)
+}
+
+/// `syncfs(fd)`—Flush cached filesystem data.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/syncfs.2.html
+#[cfg(linux_kernel)]
+#[inline]
+pub fn syncfs<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ backend::fs::syscalls::syncfs(fd.as_fd())
+}
diff --git a/vendor/rustix-1.0.8/src/fs/getpath.rs b/vendor/rustix-1.0.8/src/fs/getpath.rs
new file mode 100644
index 0000000..8e14ff2
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/getpath.rs
@@ -0,0 +1,14 @@
+use crate::ffi::CString;
+use crate::{backend, io};
+use backend::fd::AsFd;
+
+/// `fcntl(fd, F_GETPATH)`
+///
+/// # References
+/// - [Apple]
+///
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html
+#[inline]
+pub fn getpath<Fd: AsFd>(fd: Fd) -> io::Result<CString> {
+ backend::fs::syscalls::getpath(fd.as_fd())
+}
diff --git a/vendor/rustix-1.0.8/src/fs/id.rs b/vendor/rustix-1.0.8/src/fs/id.rs
new file mode 100644
index 0000000..1fc2ef8
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/id.rs
@@ -0,0 +1 @@
+pub use crate::ugid::{Gid, Uid};
diff --git a/vendor/rustix-1.0.8/src/fs/inotify.rs b/vendor/rustix-1.0.8/src/fs/inotify.rs
new file mode 100644
index 0000000..ad03dfa
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/inotify.rs
@@ -0,0 +1,219 @@
+//! inotify support for working with inotify objects.
+//!
+//! # Examples
+//!
+//! ```
+//! use rustix::fs::inotify;
+//! use rustix::io;
+//! use std::mem::MaybeUninit;
+//!
+//! # fn test() -> io::Result<()> {
+//! // Create an inotify object. In this example, we use `NONBLOCK` so that the
+//! // reader fails with `WOULDBLOCK` when no events are ready. Otherwise it
+//! // will block until at least one event is ready.
+//! let inotify = inotify::init(inotify::CreateFlags::NONBLOCK)?;
+//!
+//! // Add a directory to watch.
+//! inotify::add_watch(
+//! &inotify,
+//! "/path/to/some/directory/to/watch",
+//! inotify::WatchFlags::ALL_EVENTS,
+//! )?;
+//!
+//! // Generate some events in the watched directory…
+//!
+//! // Loop over pending events.
+//! let mut buf = [MaybeUninit::uninit(); 512];
+//! let mut iter = inotify::Reader::new(inotify, &mut buf);
+//! loop {
+//! let entry = match iter.next() {
+//! // Stop iterating if there are no more events for now.
+//! Err(io::Errno::WOULDBLOCK) => break,
+//! Err(e) => return Err(e),
+//! Ok(entry) => entry,
+//! };
+//!
+//! // Use `entry`…
+//! }
+//!
+//! # Ok(())
+//! # }
+
+#![allow(unused_qualifications)]
+
+use super::inotify;
+pub use crate::backend::fs::inotify::{CreateFlags, ReadFlags, WatchFlags};
+use crate::backend::fs::syscalls;
+use crate::fd::{AsFd, OwnedFd};
+use crate::ffi::CStr;
+use crate::io;
+use crate::io::{read, Errno};
+use core::mem::{align_of, size_of, MaybeUninit};
+use linux_raw_sys::general::inotify_event;
+
+/// `inotify_init1(flags)`—Creates a new inotify object.
+///
+/// Use the [`CreateFlags::CLOEXEC`] flag to prevent the resulting file
+/// descriptor from being implicitly passed across `exec` boundaries.
+#[doc(alias = "inotify_init1")]
+#[inline]
+pub fn init(flags: inotify::CreateFlags) -> io::Result<OwnedFd> {
+ syscalls::inotify_init1(flags)
+}
+
+/// `inotify_add_watch(self, path, flags)`—Adds a watch to inotify.
+///
+/// This registers or updates a watch for the filesystem path `path` and
+/// returns a watch descriptor corresponding to this watch.
+///
+/// Note: Due to the existence of hardlinks, providing two different paths to
+/// this method may result in it returning the same watch descriptor. An
+/// application should keep track of this externally to avoid logic errors.
+#[doc(alias = "inotify_add_watch")]
+#[inline]
+pub fn add_watch<P: crate::path::Arg, Fd: AsFd>(
+ inot: Fd,
+ path: P,
+ flags: inotify::WatchFlags,
+) -> io::Result<i32> {
+ path.into_with_c_str(|path| syscalls::inotify_add_watch(inot.as_fd(), path, flags))
+}
+
+/// `inotify_rm_watch(self, wd)`—Removes a watch from this inotify.
+///
+/// The watch descriptor provided should have previously been returned by
+/// [`inotify::add_watch`] and not previously have been removed.
+#[doc(alias = "inotify_rm_watch")]
+#[inline]
+pub fn remove_watch<Fd: AsFd>(inot: Fd, wd: i32) -> io::Result<()> {
+ syscalls::inotify_rm_watch(inot.as_fd(), wd)
+}
+
+/// An inotify event iterator implemented with the read syscall.
+///
+/// See the [`RawDir`] API for more details and usage examples as this API is
+/// based on it.
+///
+/// [`RawDir`]: crate::fs::raw_dir::RawDir
+pub struct Reader<'buf, Fd: AsFd> {
+ fd: Fd,
+ buf: &'buf mut [MaybeUninit<u8>],
+ initialized: usize,
+ offset: usize,
+}
+
+impl<'buf, Fd: AsFd> Reader<'buf, Fd> {
+ /// Create a new iterator from the given file descriptor and buffer.
+ pub fn new(fd: Fd, buf: &'buf mut [MaybeUninit<u8>]) -> Self {
+ Self {
+ fd,
+ buf: {
+ let offset = buf.as_ptr().align_offset(align_of::<inotify_event>());
+ if offset < buf.len() {
+ &mut buf[offset..]
+ } else {
+ &mut []
+ }
+ },
+ initialized: 0,
+ offset: 0,
+ }
+ }
+}
+
+/// An inotify event.
+#[doc(alias = "inotify_event")]
+#[derive(Debug)]
+pub struct Event<'a> {
+ wd: i32,
+ events: ReadFlags,
+ cookie: u32,
+ file_name: Option<&'a CStr>,
+}
+
+impl<'a> Event<'a> {
+ /// Returns the watch for which this event occurs.
+ #[inline]
+ pub fn wd(&self) -> i32 {
+ self.wd
+ }
+
+ /// Returns a description of the events.
+ #[inline]
+ #[doc(alias = "mask")]
+ pub fn events(&self) -> ReadFlags {
+ self.events
+ }
+
+ /// Returns the unique cookie associating related events.
+ #[inline]
+ pub fn cookie(&self) -> u32 {
+ self.cookie
+ }
+
+ /// Returns the file name of this event, if any.
+ #[inline]
+ pub fn file_name(&self) -> Option<&CStr> {
+ self.file_name
+ }
+}
+
+impl<'buf, Fd: AsFd> Reader<'buf, Fd> {
+ /// Read the next inotify event.
+ ///
+ /// This is similar to [`Iterator::next`] except that it doesn't return an
+ /// `Option`, because the stream doesn't have an ending. It always returns
+ /// events or errors.
+ ///
+ /// If there are no events in the buffer and none ready to be read:
+ /// - If the file descriptor was opened with
+ /// [`inotify::CreateFlags::NONBLOCK`], this will fail with
+ /// [`Errno::AGAIN`].
+ /// - Otherwise this will block until at least one event is ready or an
+ /// error occurs.
+ #[allow(unsafe_code)]
+ #[allow(clippy::should_implement_trait)]
+ pub fn next(&mut self) -> io::Result<Event<'_>> {
+ if self.is_buffer_empty() {
+ match read(self.fd.as_fd(), &mut *self.buf).map(|(init, _)| init.len()) {
+ Ok(0) => return Err(Errno::INVAL),
+ Ok(bytes_read) => {
+ self.initialized = bytes_read;
+ self.offset = 0;
+ }
+ Err(e) => return Err(e),
+ }
+ }
+
+ let ptr = self.buf[self.offset..].as_ptr();
+
+ // SAFETY:
+ // - This data is initialized by the check above.
+ // - Assumption: the kernel will not give us partial structs.
+ // - Assumption: the kernel uses proper alignment between structs.
+ // - The starting pointer is aligned (performed in `Reader::new`).
+ let event = unsafe { &*ptr.cast::<inotify_event>() };
+
+ self.offset += size_of::<inotify_event>() + usize::try_from(event.len).unwrap();
+
+ Ok(Event {
+ wd: event.wd,
+ events: ReadFlags::from_bits_retain(event.mask),
+ cookie: event.cookie,
+ file_name: if event.len > 0 {
+ // SAFETY: The kernel guarantees a NUL-terminated string.
+ Some(unsafe { CStr::from_ptr(event.name.as_ptr().cast()) })
+ } else {
+ None
+ },
+ })
+ }
+
+ /// Returns true if the internal buffer is empty and will be refilled when
+ /// calling [`next`]. This is useful to avoid further blocking reads.
+ ///
+ /// [`next`]: Self::next
+ pub fn is_buffer_empty(&self) -> bool {
+ self.offset >= self.initialized
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/fs/ioctl.rs b/vendor/rustix-1.0.8/src/fs/ioctl.rs
new file mode 100644
index 0000000..c126fdd
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/ioctl.rs
@@ -0,0 +1,169 @@
+//! Filesystem-oriented `ioctl` functions.
+
+#![allow(unsafe_code)]
+
+#[cfg(linux_kernel)]
+use {
+ crate::backend::c,
+ crate::fd::AsFd,
+ crate::{backend, ffi, io, ioctl},
+};
+
+use bitflags::bitflags;
+
+#[cfg(all(linux_kernel, not(any(target_arch = "sparc", target_arch = "sparc64"))))]
+use crate::fd::{AsRawFd as _, BorrowedFd};
+
+/// `ioctl(fd, BLKSSZGET)`—Returns the logical block size of a block device.
+///
+/// This is mentioned in the [Linux `openat` manual page].
+///
+/// [Linux `openat` manual page]: https://man7.org/linux/man-pages/man2/openat.2.html
+#[cfg(linux_kernel)]
+#[inline]
+#[doc(alias = "BLKSSZGET")]
+pub fn ioctl_blksszget<Fd: AsFd>(fd: Fd) -> io::Result<u32> {
+ // SAFETY: `BLZSSZGET` is a getter opcode that gets a `u32`.
+ unsafe {
+ let ctl = ioctl::Getter::<{ c::BLKSSZGET }, c::c_uint>::new();
+ ioctl::ioctl(fd, ctl)
+ }
+}
+
+/// `ioctl(fd, BLKPBSZGET)`—Returns the physical block size of a block device.
+#[cfg(linux_kernel)]
+#[inline]
+#[doc(alias = "BLKPBSZGET")]
+pub fn ioctl_blkpbszget<Fd: AsFd>(fd: Fd) -> io::Result<u32> {
+ // SAFETY: `BLKPBSZGET` is a getter opcode that gets a `u32`.
+ unsafe {
+ let ctl = ioctl::Getter::<{ c::BLKPBSZGET }, c::c_uint>::new();
+ ioctl::ioctl(fd, ctl)
+ }
+}
+
+/// `ioctl(fd, FICLONE, src_fd)`—Share data between open files.
+///
+/// This ioctl is not available on SPARC platforms.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/ioctl_ficlone.2.html
+#[cfg(all(linux_kernel, not(any(target_arch = "sparc", target_arch = "sparc64"))))]
+#[inline]
+#[doc(alias = "FICLONE")]
+pub fn ioctl_ficlone<Fd: AsFd, SrcFd: AsFd>(fd: Fd, src_fd: SrcFd) -> io::Result<()> {
+ unsafe { ioctl::ioctl(fd, Ficlone(src_fd.as_fd())) }
+}
+
+/// `ioctl(fd, EXT4_IOC_RESIZE_FS, blocks)`—Resize ext4 filesystem on fd.
+#[cfg(linux_kernel)]
+#[inline]
+#[doc(alias = "EXT4_IOC_RESIZE_FS")]
+pub fn ext4_ioc_resize_fs<Fd: AsFd>(fd: Fd, blocks: u64) -> io::Result<()> {
+ // SAFETY: `EXT4_IOC_RESIZE_FS` is a pointer setter opcode.
+ unsafe {
+ let ctl = ioctl::Setter::<{ backend::fs::EXT4_IOC_RESIZE_FS }, u64>::new(blocks);
+ ioctl::ioctl(fd, ctl)
+ }
+}
+
+#[cfg(all(linux_kernel, not(any(target_arch = "sparc", target_arch = "sparc64"))))]
+struct Ficlone<'a>(BorrowedFd<'a>);
+
+#[cfg(all(linux_kernel, not(any(target_arch = "sparc", target_arch = "sparc64"))))]
+unsafe impl ioctl::Ioctl for Ficlone<'_> {
+ type Output = ();
+
+ const IS_MUTATING: bool = false;
+
+ fn opcode(&self) -> ioctl::Opcode {
+ c::FICLONE as ioctl::Opcode
+ }
+
+ fn as_ptr(&mut self) -> *mut c::c_void {
+ self.0.as_raw_fd() as *mut c::c_void
+ }
+
+ unsafe fn output_from_ptr(
+ _: ioctl::IoctlOutput,
+ _: *mut c::c_void,
+ ) -> io::Result<Self::Output> {
+ Ok(())
+ }
+}
+
+#[cfg(linux_kernel)]
+bitflags! {
+ /// `FS_*` constants for use with [`ioctl_getflags`].
+ ///
+ /// [`ioctl_getflags`]: crate::fs::ioctl::ioctl_getflags
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IFlags: ffi::c_uint {
+ /// `FS_APPEND_FL`
+ const APPEND = linux_raw_sys::general::FS_APPEND_FL;
+ /// `FS_COMPR_FL`
+ const COMPRESSED = linux_raw_sys::general::FS_COMPR_FL;
+ /// `FS_DIRSYNC_FL`
+ const DIRSYNC = linux_raw_sys::general::FS_DIRSYNC_FL;
+ /// `FS_IMMUTABLE_FL`
+ const IMMUTABLE = linux_raw_sys::general::FS_IMMUTABLE_FL;
+ /// `FS_JOURNAL_DATA_FL`
+ const JOURNALING = linux_raw_sys::general::FS_JOURNAL_DATA_FL;
+ /// `FS_NOATIME_FL`
+ const NOATIME = linux_raw_sys::general::FS_NOATIME_FL;
+ /// `FS_NOCOW_FL`
+ const NOCOW = linux_raw_sys::general::FS_NOCOW_FL;
+ /// `FS_NODUMP_FL`
+ const NODUMP = linux_raw_sys::general::FS_NODUMP_FL;
+ /// `FS_NOTAIL_FL`
+ const NOTAIL = linux_raw_sys::general::FS_NOTAIL_FL;
+ /// `FS_PROJINHERIT_FL`
+ const PROJECT_INHERIT = linux_raw_sys::general::FS_PROJINHERIT_FL;
+ /// `FS_SECRM_FL`
+ const SECURE_REMOVAL = linux_raw_sys::general::FS_SECRM_FL;
+ /// `FS_SYNC_FL`
+ const SYNC = linux_raw_sys::general::FS_SYNC_FL;
+ /// `FS_TOPDIR_FL`
+ const TOPDIR = linux_raw_sys::general::FS_TOPDIR_FL;
+ /// `FS_UNRM_FL`
+ const UNRM = linux_raw_sys::general::FS_UNRM_FL;
+ }
+}
+
+/// `ioctl(fd, FS_IOC_GETFLAGS)`—Returns the [inode flags] attributes
+///
+/// [inode flags]: https://man7.org/linux/man-pages/man2/ioctl_iflags.2.html
+#[cfg(linux_kernel)]
+#[inline]
+#[doc(alias = "FS_IOC_GETFLAGS")]
+pub fn ioctl_getflags<Fd: AsFd>(fd: Fd) -> io::Result<IFlags> {
+ unsafe {
+ #[cfg(target_pointer_width = "32")]
+ let ctl = ioctl::Getter::<{ c::FS_IOC32_GETFLAGS }, u32>::new();
+ #[cfg(target_pointer_width = "64")]
+ let ctl = ioctl::Getter::<{ c::FS_IOC_GETFLAGS }, u32>::new();
+
+ ioctl::ioctl(fd, ctl).map(IFlags::from_bits_retain)
+ }
+}
+
+/// `ioctl(fd, FS_IOC_SETFLAGS)`—Modify the [inode flags] attributes
+///
+/// [inode flags]: https://man7.org/linux/man-pages/man2/ioctl_iflags.2.html
+#[cfg(linux_kernel)]
+#[inline]
+#[doc(alias = "FS_IOC_SETFLAGS")]
+pub fn ioctl_setflags<Fd: AsFd>(fd: Fd, flags: IFlags) -> io::Result<()> {
+ unsafe {
+ #[cfg(target_pointer_width = "32")]
+ let ctl = ioctl::Setter::<{ c::FS_IOC32_SETFLAGS }, u32>::new(flags.bits());
+
+ #[cfg(target_pointer_width = "64")]
+ let ctl = ioctl::Setter::<{ c::FS_IOC_SETFLAGS }, u32>::new(flags.bits());
+
+ ioctl::ioctl(fd, ctl)
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/fs/makedev.rs b/vendor/rustix-1.0.8/src/fs/makedev.rs
new file mode 100644
index 0000000..e6cf5c0
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/makedev.rs
@@ -0,0 +1,35 @@
+use crate::backend;
+use crate::fs::Dev;
+
+/// `makedev(maj, min)`—Compute a device ID from a given major and minor ID.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man3/makedev.3.html
+#[inline]
+pub fn makedev(maj: u32, min: u32) -> Dev {
+ backend::fs::makedev::makedev(maj, min)
+}
+
+/// `minor(dev)`—Compute the minor ID of a given device ID.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man3/minor.3.html
+#[inline]
+pub fn minor(dev: Dev) -> u32 {
+ backend::fs::makedev::minor(dev)
+}
+
+/// `major(dev)`—Compute the major ID of a given device ID.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man3/major.3.html
+#[inline]
+pub fn major(dev: Dev) -> u32 {
+ backend::fs::makedev::major(dev)
+}
diff --git a/vendor/rustix-1.0.8/src/fs/memfd_create.rs b/vendor/rustix-1.0.8/src/fs/memfd_create.rs
new file mode 100644
index 0000000..6e49771
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/memfd_create.rs
@@ -0,0 +1,22 @@
+use crate::fd::OwnedFd;
+use crate::{backend, io, path};
+use backend::fs::types::MemfdFlags;
+
+/// `memfd_create(name, flags)`—Create an anonymous file.
+///
+/// For a higher-level API to this functionality, see the [memfd] crate.
+///
+/// [memfd]: https://crates.io/crates/memfd
+///
+/// # References
+/// - [Linux]
+/// - [glibc]
+/// - [FreeBSD]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/memfd_create.2.html
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Memory_002dmapped-I_002fO.html#index-memfd_005fcreate
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?memfd_create
+#[inline]
+pub fn memfd_create<P: path::Arg>(name: P, flags: MemfdFlags) -> io::Result<OwnedFd> {
+ name.into_with_c_str(|name| backend::fs::syscalls::memfd_create(name, flags))
+}
diff --git a/vendor/rustix-1.0.8/src/fs/mod.rs b/vendor/rustix-1.0.8/src/fs/mod.rs
new file mode 100644
index 0000000..505925f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/mod.rs
@@ -0,0 +1,141 @@
+//! Filesystem operations.
+
+mod abs;
+#[cfg(not(target_os = "redox"))]
+mod at;
+mod constants;
+#[cfg(linux_kernel)]
+mod copy_file_range;
+#[cfg(all(feature = "alloc", not(any(target_os = "espidf", target_os = "redox"))))]
+mod dir;
+#[cfg(not(any(
+ apple,
+ netbsdlike,
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "solaris",
+ target_os = "vita",
+)))]
+mod fadvise;
+pub(crate) mod fcntl;
+#[cfg(apple)]
+mod fcntl_apple;
+#[cfg(apple)]
+mod fcopyfile;
+pub(crate) mod fd;
+#[cfg(all(apple, feature = "alloc"))]
+mod getpath;
+#[cfg(not(target_os = "wasi"))] // WASI doesn't have get[gpu]id.
+mod id;
+#[cfg(linux_kernel)]
+pub mod inotify;
+#[cfg(linux_kernel)]
+mod ioctl;
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+mod makedev;
+#[cfg(any(linux_kernel, target_os = "freebsd"))]
+mod memfd_create;
+#[cfg(linux_kernel)]
+mod openat2;
+#[cfg(linux_kernel)]
+mod raw_dir;
+mod seek_from;
+#[cfg(target_os = "linux")]
+mod sendfile;
+#[cfg(not(any(target_os = "espidf", target_os = "redox")))]
+mod special;
+#[cfg(linux_kernel)]
+mod statx;
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+mod sync;
+#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
+mod xattr;
+
+pub use abs::*;
+#[cfg(not(target_os = "redox"))]
+pub use at::*;
+pub use constants::*;
+#[cfg(linux_kernel)]
+pub use copy_file_range::copy_file_range;
+#[cfg(all(feature = "alloc", not(any(target_os = "espidf", target_os = "redox"))))]
+pub use dir::{Dir, DirEntry};
+#[cfg(not(any(
+ apple,
+ netbsdlike,
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "solaris",
+ target_os = "vita",
+)))]
+pub use fadvise::fadvise;
+pub use fcntl::*;
+#[cfg(apple)]
+pub use fcntl_apple::*;
+#[cfg(apple)]
+pub use fcopyfile::*;
+pub use fd::*;
+#[cfg(all(apple, feature = "alloc"))]
+pub use getpath::getpath;
+#[cfg(not(target_os = "wasi"))]
+pub use id::*;
+#[cfg(linux_kernel)]
+pub use ioctl::*;
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+pub use makedev::*;
+#[cfg(any(linux_kernel, target_os = "freebsd"))]
+pub use memfd_create::memfd_create;
+#[cfg(linux_kernel)]
+pub use openat2::openat2;
+#[cfg(linux_kernel)]
+pub use raw_dir::{RawDir, RawDirEntry};
+pub use seek_from::SeekFrom;
+#[cfg(target_os = "linux")]
+pub use sendfile::sendfile;
+#[cfg(not(any(target_os = "espidf", target_os = "redox")))]
+pub use special::*;
+#[cfg(linux_kernel)]
+pub use statx::*;
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+pub use sync::sync;
+#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
+pub use xattr::*;
+
+/// Re-export types common to POSIX-ish platforms.
+#[cfg(feature = "std")]
+#[cfg(unix)]
+pub use std::os::unix::fs::{DirEntryExt, FileExt, FileTypeExt, MetadataExt, OpenOptionsExt};
+#[cfg(feature = "std")]
+#[cfg(all(wasi_ext, target_os = "wasi"))]
+pub use std::os::wasi::fs::{DirEntryExt, FileExt, FileTypeExt, MetadataExt, OpenOptionsExt};
diff --git a/vendor/rustix-1.0.8/src/fs/openat2.rs b/vendor/rustix-1.0.8/src/fs/openat2.rs
new file mode 100644
index 0000000..0a0e1d1
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/openat2.rs
@@ -0,0 +1,24 @@
+use crate::fd::OwnedFd;
+use crate::{backend, io, path};
+use backend::fd::AsFd;
+use backend::fs::types::{Mode, OFlags, ResolveFlags};
+
+/// `openat2(dirfd, path, OpenHow { oflags, mode, resolve }, sizeof(OpenHow))`—
+/// Opens a file with more options.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/openat2.2.html
+#[inline]
+pub fn openat2<Fd: AsFd, P: path::Arg>(
+ dirfd: Fd,
+ path: P,
+ oflags: OFlags,
+ mode: Mode,
+ resolve: ResolveFlags,
+) -> io::Result<OwnedFd> {
+ path.into_with_c_str(|path| {
+ backend::fs::syscalls::openat2(dirfd.as_fd(), path, oflags, mode, resolve)
+ })
+}
diff --git a/vendor/rustix-1.0.8/src/fs/raw_dir.rs b/vendor/rustix-1.0.8/src/fs/raw_dir.rs
new file mode 100644
index 0000000..7fec6fd
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/raw_dir.rs
@@ -0,0 +1,236 @@
+//! `RawDir` and `RawDirEntry`.
+
+use crate::backend::fs::syscalls::getdents_uninit;
+use crate::fd::AsFd;
+use crate::ffi::CStr;
+use crate::fs::FileType;
+use crate::io;
+use core::fmt;
+use core::mem::{align_of, MaybeUninit};
+use linux_raw_sys::general::linux_dirent64;
+
+/// A directory iterator implemented with getdents.
+///
+/// Note: This implementation does not handle growing the buffer. If this
+/// functionality is necessary, you'll need to drop the current iterator,
+/// resize the buffer, and then re-create the iterator. The iterator is
+/// guaranteed to continue where it left off provided the file descriptor isn't
+/// changed. See the example in [`RawDir::new`].
+pub struct RawDir<'buf, Fd: AsFd> {
+ fd: Fd,
+ buf: &'buf mut [MaybeUninit<u8>],
+ initialized: usize,
+ offset: usize,
+}
+
+impl<'buf, Fd: AsFd> RawDir<'buf, Fd> {
+ /// Create a new iterator from the given file descriptor and buffer.
+ ///
+ /// Note: the buffer size may be trimmed to accommodate alignment
+ /// requirements.
+ ///
+ /// # Examples
+ ///
+ /// ## Simple but non-portable
+ ///
+ /// These examples are non-portable, because file systems may not have a
+ /// maximum file name length. If you can make assumptions that bound
+ /// this length, then these examples may suffice.
+ ///
+ /// Using the heap:
+ ///
+ /// ```
+ /// # use std::mem::MaybeUninit;
+ /// # use rustix::fs::{CWD, Mode, OFlags, openat, RawDir};
+ /// # use rustix::cstr;
+ ///
+ /// let fd = openat(
+ /// CWD,
+ /// cstr!("."),
+ /// OFlags::RDONLY | OFlags::DIRECTORY | OFlags::CLOEXEC,
+ /// Mode::empty(),
+ /// )
+ /// .unwrap();
+ ///
+ /// let mut buf = Vec::with_capacity(8192);
+ /// let mut iter = RawDir::new(fd, buf.spare_capacity_mut());
+ /// while let Some(entry) = iter.next() {
+ /// let entry = entry.unwrap();
+ /// dbg!(&entry);
+ /// }
+ /// ```
+ ///
+ /// Using the stack:
+ ///
+ /// ```
+ /// # use std::mem::MaybeUninit;
+ /// # use rustix::fs::{CWD, Mode, OFlags, openat, RawDir};
+ /// # use rustix::cstr;
+ ///
+ /// let fd = openat(
+ /// CWD,
+ /// cstr!("."),
+ /// OFlags::RDONLY | OFlags::DIRECTORY | OFlags::CLOEXEC,
+ /// Mode::empty(),
+ /// )
+ /// .unwrap();
+ ///
+ /// let mut buf = [MaybeUninit::uninit(); 2048];
+ /// let mut iter = RawDir::new(fd, &mut buf);
+ /// while let Some(entry) = iter.next() {
+ /// let entry = entry.unwrap();
+ /// dbg!(&entry);
+ /// }
+ /// ```
+ ///
+ /// ## Portable
+ ///
+ /// Heap allocated growing buffer for supporting directory entries with
+ /// arbitrarily large file names:
+ ///
+ /// ```ignore
+ /// # // The `ignore` above can be removed when we can depend on Rust 1.65.
+ /// # use std::mem::MaybeUninit;
+ /// # use rustix::fs::{CWD, Mode, OFlags, openat, RawDir};
+ /// # use rustix::io::Errno;
+ /// # use rustix::cstr;
+ ///
+ /// let fd = openat(
+ /// CWD,
+ /// cstr!("."),
+ /// OFlags::RDONLY | OFlags::DIRECTORY | OFlags::CLOEXEC,
+ /// Mode::empty(),
+ /// )
+ /// .unwrap();
+ ///
+ /// let mut buf = Vec::with_capacity(8192);
+ /// 'read: loop {
+ /// 'resize: {
+ /// let mut iter = RawDir::new(&fd, buf.spare_capacity_mut());
+ /// while let Some(entry) = iter.next() {
+ /// let entry = match entry {
+ /// Err(Errno::INVAL) => break 'resize,
+ /// r => r.unwrap(),
+ /// };
+ /// dbg!(&entry);
+ /// }
+ /// break 'read;
+ /// }
+ ///
+ /// let new_capacity = buf.capacity() * 2;
+ /// buf.reserve(new_capacity);
+ /// }
+ /// ```
+ pub fn new(fd: Fd, buf: &'buf mut [MaybeUninit<u8>]) -> Self {
+ Self {
+ fd,
+ buf: {
+ let offset = buf.as_ptr().align_offset(align_of::<linux_dirent64>());
+ if offset < buf.len() {
+ &mut buf[offset..]
+ } else {
+ &mut []
+ }
+ },
+ initialized: 0,
+ offset: 0,
+ }
+ }
+}
+
+/// A raw directory entry, similar to [`std::fs::DirEntry`].
+///
+/// Unlike the std version, this may represent the `.` or `..` entries.
+pub struct RawDirEntry<'a> {
+ file_name: &'a CStr,
+ file_type: u8,
+ inode_number: u64,
+ next_entry_cookie: i64,
+}
+
+impl<'a> fmt::Debug for RawDirEntry<'a> {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ let mut f = f.debug_struct("RawDirEntry");
+ f.field("file_name", &self.file_name());
+ f.field("file_type", &self.file_type());
+ f.field("ino", &self.ino());
+ f.field("next_entry_cookie", &self.next_entry_cookie());
+ f.finish()
+ }
+}
+
+impl<'a> RawDirEntry<'a> {
+ /// Returns the file name of this directory entry.
+ #[inline]
+ pub fn file_name(&self) -> &CStr {
+ self.file_name
+ }
+
+ /// Returns the type of this directory entry.
+ #[inline]
+ pub fn file_type(&self) -> FileType {
+ FileType::from_dirent_d_type(self.file_type)
+ }
+
+ /// Returns the inode number of this directory entry.
+ #[inline]
+ #[doc(alias = "inode_number")]
+ pub fn ino(&self) -> u64 {
+ self.inode_number
+ }
+
+ /// Returns the seek cookie to the next directory entry.
+ #[inline]
+ #[doc(alias = "off")]
+ pub fn next_entry_cookie(&self) -> u64 {
+ self.next_entry_cookie as u64
+ }
+}
+
+impl<'buf, Fd: AsFd> RawDir<'buf, Fd> {
+ /// Identical to [`Iterator::next`] except that [`Iterator::Item`] borrows
+ /// from self.
+ ///
+ /// Note: this interface will be broken to implement a stdlib iterator API
+ /// with GAT support once one becomes available.
+ #[allow(unsafe_code)]
+ #[allow(clippy::should_implement_trait)]
+ pub fn next(&mut self) -> Option<io::Result<RawDirEntry<'_>>> {
+ if self.is_buffer_empty() {
+ match getdents_uninit(self.fd.as_fd(), self.buf) {
+ Ok(0) => return None,
+ Ok(bytes_read) => {
+ self.initialized = bytes_read;
+ self.offset = 0;
+ }
+ Err(e) => return Some(Err(e)),
+ }
+ }
+
+ let dirent_ptr = self.buf[self.offset..].as_ptr();
+ // SAFETY:
+ // - This data is initialized by the check above.
+ // - Assumption: the kernel will not give us partial structs.
+ // - Assumption: the kernel uses proper alignment between structs.
+ // - The starting pointer is aligned (performed in `RawDir::new`).
+ let dirent = unsafe { &*dirent_ptr.cast::<linux_dirent64>() };
+
+ self.offset += usize::from(dirent.d_reclen);
+
+ Some(Ok(RawDirEntry {
+ file_type: dirent.d_type,
+ inode_number: dirent.d_ino.into(),
+ next_entry_cookie: dirent.d_off.into(),
+ // SAFETY: The kernel guarantees a NUL-terminated string.
+ file_name: unsafe { CStr::from_ptr(dirent.d_name.as_ptr().cast()) },
+ }))
+ }
+
+ /// Returns true if the internal buffer is empty and will be refilled when
+ /// calling [`next`].
+ ///
+ /// [`next`]: Self::next
+ pub fn is_buffer_empty(&self) -> bool {
+ self.offset >= self.initialized
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/fs/seek_from.rs b/vendor/rustix-1.0.8/src/fs/seek_from.rs
new file mode 100644
index 0000000..bc0907c
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/seek_from.rs
@@ -0,0 +1,53 @@
+//! The following is derived from Rust's
+//! library/std/src/io/mod.rs at revision
+//! dca3f1b786efd27be3b325ed1e01e247aa589c3b.
+
+/// Enumeration of possible methods to seek within an I/O object.
+///
+/// It is used by the [`seek`] function.
+///
+/// This is similar to [`std::io::SeekFrom`], however it adds platform-specific
+/// seek options.
+///
+/// [`seek`]: crate::fs::seek
+#[derive(Copy, PartialEq, Eq, Clone, Debug)]
+#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))]
+pub enum SeekFrom {
+ /// Sets the offset to the provided number of bytes.
+ #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))]
+ Start(#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] u64),
+
+ /// Sets the offset to the size of this object plus the specified number of
+ /// bytes.
+ ///
+ /// It is possible to seek beyond the end of an object, but it's an error
+ /// to seek before byte 0.
+ #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))]
+ End(#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] i64),
+
+ /// Sets the offset to the current position plus the specified number of
+ /// bytes.
+ ///
+ /// It is possible to seek beyond the end of an object, but it's an error
+ /// to seek before byte 0.
+ #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))]
+ Current(#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] i64),
+
+ /// Sets the offset to the current position plus the specified number of
+ /// bytes, plus the distance to the next byte which is not in a hole.
+ ///
+ /// If the offset is in a hole at the end of the file, the seek will fail
+ /// with [`Errno::NXIO`].
+ ///
+ /// [`Errno::NXIO`]: crate::io::Errno::NXIO
+ #[cfg(any(apple, freebsdlike, linux_kernel, solarish))]
+ Data(u64),
+
+ /// Sets the offset to the current position plus the specified number of
+ /// bytes, plus the distance to the next byte which is in a hole.
+ ///
+ /// If there is no hole past the offset, it will be set to the end of the
+ /// file i.e. there is an implicit hole at the end of any file.
+ #[cfg(any(apple, freebsdlike, linux_kernel, solarish))]
+ Hole(u64),
+}
diff --git a/vendor/rustix-1.0.8/src/fs/sendfile.rs b/vendor/rustix-1.0.8/src/fs/sendfile.rs
new file mode 100644
index 0000000..db3d602
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/sendfile.rs
@@ -0,0 +1,20 @@
+use crate::{backend, io};
+use backend::fd::AsFd;
+
+/// `sendfile(out_fd, in_fd, offset, count)`—Transfer data between file
+/// descriptors.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/sendfile.2.html
+#[cfg(linux_kernel)]
+#[inline]
+pub fn sendfile<OutFd: AsFd, InFd: AsFd>(
+ out_fd: OutFd,
+ in_fd: InFd,
+ offset: Option<&mut u64>,
+ count: usize,
+) -> io::Result<usize> {
+ backend::fs::syscalls::sendfile(out_fd.as_fd(), in_fd.as_fd(), offset, count)
+}
diff --git a/vendor/rustix-1.0.8/src/fs/special.rs b/vendor/rustix-1.0.8/src/fs/special.rs
new file mode 100644
index 0000000..276a775
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/special.rs
@@ -0,0 +1,80 @@
+//! The `CWD` and `ABS` constants, representing the current working directory
+//! and absolute-only paths, respectively.
+//!
+//! # Safety
+//!
+//! This file uses `AT_FDCWD`, which is a raw file descriptor, but which is
+//! always valid, and `-EBADF`, which is an undocumented by commonly used
+//! convention of passing a value which will always fail if the accompanying
+//! path isn't absolute.
+
+#![allow(unsafe_code)]
+
+use crate::backend;
+use backend::c;
+use backend::fd::{BorrowedFd, RawFd};
+
+/// `AT_FDCWD`—A handle representing the current working directory.
+///
+/// This is a file descriptor which refers to the process current directory
+/// which can be used as the directory argument in `*at` functions such as
+/// [`openat`].
+///
+/// # References
+/// - [POSIX]
+///
+/// [`openat`]: crate::fs::openat
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/fcntl.h.html
+// SAFETY: `AT_FDCWD` is a reserved value that is never dynamically
+// allocated, so it'll remain valid for the duration of `'static`.
+#[cfg(not(target_os = "horizon"))]
+#[doc(alias = "AT_FDCWD")]
+pub const CWD: BorrowedFd<'static> =
+ unsafe { BorrowedFd::<'static>::borrow_raw(c::AT_FDCWD as RawFd) };
+
+/// `-EBADF`—A handle that requires paths to be absolute.
+///
+/// This is a file descriptor which refers to no directory, which can be used
+/// as the directory argument in `*at` functions such as [`openat`], which
+/// causes them to fail with [`BADF`] if the accompanying path is not absolute.
+///
+/// This corresponds to the undocumented by commonly used convention of
+/// passing `-EBADF` as the `dirfd` argument, which is ignored if the path is
+/// absolute, and evokes an `EBADF` error otherwise.
+///
+/// [`openat`]: crate::fs::openat
+/// [`BADF`]: crate::io::Errno::BADF
+// SAFETY: This `-EBADF` convention is commonly used, such as in lxc, so OS's
+// aren't going to break it.
+pub const ABS: BorrowedFd<'static> =
+ unsafe { BorrowedFd::<'static>::borrow_raw(c::EBADF.wrapping_neg() as RawFd) };
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use crate::fd::AsRawFd as _;
+
+ #[test]
+ fn test_cwd() {
+ assert!(CWD.as_raw_fd() != -1);
+ assert!(CWD.as_raw_fd() != c::STDIN_FILENO);
+ assert!(CWD.as_raw_fd() != c::STDOUT_FILENO);
+ assert!(CWD.as_raw_fd() != c::STDERR_FILENO);
+ #[cfg(linux_kernel)]
+ #[cfg(feature = "io_uring")]
+ assert!(CWD.as_raw_fd() != crate::io_uring::IORING_REGISTER_FILES_SKIP.as_raw_fd());
+ }
+
+ #[test]
+ fn test_abs() {
+ assert!(ABS.as_raw_fd() < 0);
+ assert!(ABS.as_raw_fd() != -1);
+ assert!(ABS.as_raw_fd() != c::AT_FDCWD);
+ assert!(ABS.as_raw_fd() != c::STDIN_FILENO);
+ assert!(ABS.as_raw_fd() != c::STDOUT_FILENO);
+ assert!(ABS.as_raw_fd() != c::STDERR_FILENO);
+ #[cfg(linux_kernel)]
+ #[cfg(feature = "io_uring")]
+ assert!(ABS.as_raw_fd() != crate::io_uring::IORING_REGISTER_FILES_SKIP.as_raw_fd());
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/fs/statx.rs b/vendor/rustix-1.0.8/src/fs/statx.rs
new file mode 100644
index 0000000..f1d995e
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/statx.rs
@@ -0,0 +1,275 @@
+//! Linux `statx`.
+
+use crate::fd::AsFd;
+use crate::fs::AtFlags;
+use crate::{backend, io, path};
+use backend::c;
+use bitflags::bitflags;
+
+#[cfg(feature = "linux_4_11")]
+use backend::fs::syscalls::statx as _statx;
+#[cfg(not(feature = "linux_4_11"))]
+use compat::statx as _statx;
+
+/// `struct statx` for use with [`statx`].
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+#[allow(missing_docs)]
+#[non_exhaustive]
+pub struct Statx {
+ pub stx_mask: u32,
+ pub stx_blksize: u32,
+ pub stx_attributes: StatxAttributes,
+ pub stx_nlink: u32,
+ pub stx_uid: u32,
+ pub stx_gid: u32,
+ pub stx_mode: u16,
+ pub(crate) __spare0: [u16; 1],
+ pub stx_ino: u64,
+ pub stx_size: u64,
+ pub stx_blocks: u64,
+ pub stx_attributes_mask: StatxAttributes,
+ pub stx_atime: StatxTimestamp,
+ pub stx_btime: StatxTimestamp,
+ pub stx_ctime: StatxTimestamp,
+ pub stx_mtime: StatxTimestamp,
+ 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 stx_subvol: u64,
+ pub stx_atomic_write_unit_min: u32,
+ pub stx_atomic_write_unit_max: u32,
+ pub stx_atomic_write_segments_max: u32,
+ pub(crate) __spare1: [u32; 1],
+ pub(crate) __spare3: [u64; 9],
+}
+
+/// `struct statx_timestamp` for use with [`Statx`].
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+#[non_exhaustive]
+pub struct StatxTimestamp {
+ /// Seconds.
+ pub tv_sec: i64,
+
+ /// Nanoseconds. Must be less than 1_000_000_000.
+ pub tv_nsec: u32,
+
+ pub(crate) __reserved: i32,
+}
+
+bitflags! {
+ /// `STATX_*` constants for use with [`statx`].
+ ///
+ /// [`statx`]: crate::fs::statx
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct StatxFlags: u32 {
+ /// `STATX_TYPE`
+ const TYPE = c::STATX_TYPE;
+
+ /// `STATX_MODE`
+ const MODE = c::STATX_MODE;
+
+ /// `STATX_NLINK`
+ const NLINK = c::STATX_NLINK;
+
+ /// `STATX_UID`
+ const UID = c::STATX_UID;
+
+ /// `STATX_GID`
+ const GID = c::STATX_GID;
+
+ /// `STATX_ATIME`
+ const ATIME = c::STATX_ATIME;
+
+ /// `STATX_MTIME`
+ const MTIME = c::STATX_MTIME;
+
+ /// `STATX_CTIME`
+ const CTIME = c::STATX_CTIME;
+
+ /// `STATX_INO`
+ const INO = c::STATX_INO;
+
+ /// `STATX_SIZE`
+ const SIZE = c::STATX_SIZE;
+
+ /// `STATX_BLOCKS`
+ const BLOCKS = c::STATX_BLOCKS;
+
+ /// `STATX_BASIC_STATS`
+ const BASIC_STATS = c::STATX_BASIC_STATS;
+
+ /// `STATX_BTIME`
+ const BTIME = c::STATX_BTIME;
+
+ /// `STATX_MNT_ID` (since Linux 5.8)
+ const MNT_ID = c::STATX_MNT_ID;
+
+ /// `STATX_DIOALIGN` (since Linux 6.1)
+ const DIOALIGN = c::STATX_DIOALIGN;
+
+ /// `STATX_ALL`
+ const ALL = c::STATX_ALL;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// `STATX_ATTR_*` flags for use with [`Statx`].
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct StatxAttributes: u64 {
+ /// `STATX_ATTR_COMPRESSED`
+ const COMPRESSED = c::STATX_ATTR_COMPRESSED as u64;
+
+ /// `STATX_ATTR_IMMUTABLE`
+ const IMMUTABLE = c::STATX_ATTR_IMMUTABLE as u64;
+
+ /// `STATX_ATTR_APPEND`
+ const APPEND = c::STATX_ATTR_APPEND as u64;
+
+ /// `STATX_ATTR_NODUMP`
+ const NODUMP = c::STATX_ATTR_NODUMP as u64;
+
+ /// `STATX_ATTR_ENCRYPTED`
+ const ENCRYPTED = c::STATX_ATTR_ENCRYPTED as u64;
+
+ /// `STATX_ATTR_AUTOMOUNT`
+ const AUTOMOUNT = c::STATX_ATTR_AUTOMOUNT as u64;
+
+ /// `STATX_ATTR_MOUNT_ROOT`
+ const MOUNT_ROOT = c::STATX_ATTR_MOUNT_ROOT as u64;
+
+ /// `STATX_ATTR_VERITY`
+ const VERITY = c::STATX_ATTR_VERITY as u64;
+
+ /// `STATX_ATTR_DAX`
+ const DAX = c::STATX_ATTR_DAX as u64;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `statx(dirfd, path, flags, mask, statxbuf)`—Extended `stat`.
+///
+/// This function returns [`io::Errno::NOSYS`] if `statx` is not available on
+/// the platform, such as Linux before 4.11. This also includes older Docker
+/// versions where the actual syscall fails with different error codes; rustix
+/// handles this and translates them into `NOSYS`.
+///
+/// # References
+/// - [Linux]
+///
+/// # Examples
+///
+/// ```
+/// # use std::path::Path;
+/// # use std::io;
+/// # use rustix::fs::{AtFlags, StatxFlags};
+/// # use rustix::fd::BorrowedFd;
+/// /// Try to determine if the provided path is a mount root. Will return
+/// /// `Ok(None)` if the kernel is not new enough to support `statx` or
+/// /// [`StatxAttributes::MOUNT_ROOT`].
+/// fn is_mountpoint(root: BorrowedFd<'_>, path: &Path) -> io::Result<Option<bool>> {
+/// use rustix::fs::{AtFlags, StatxAttributes, StatxFlags};
+///
+/// match rustix::fs::statx(
+/// root,
+/// path,
+/// AtFlags::NO_AUTOMOUNT | AtFlags::SYMLINK_NOFOLLOW,
+/// StatxFlags::empty(),
+/// ) {
+/// Ok(r) => {
+/// let present = r.stx_attributes_mask.contains(StatxAttributes::MOUNT_ROOT);
+/// Ok(present.then(|| r.stx_attributes.contains(StatxAttributes::MOUNT_ROOT)))
+/// }
+/// Err(rustix::io::Errno::NOSYS) => Ok(None),
+/// Err(e) => Err(e.into()),
+/// }
+/// }
+/// ```
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/statx.2.html
+#[inline]
+pub fn statx<P: path::Arg, Fd: AsFd>(
+ dirfd: Fd,
+ path: P,
+ flags: AtFlags,
+ mask: StatxFlags,
+) -> io::Result<Statx> {
+ path.into_with_c_str(|path| _statx(dirfd.as_fd(), path, flags, mask))
+}
+
+#[cfg(not(feature = "linux_4_11"))]
+mod compat {
+ use crate::fd::BorrowedFd;
+ use crate::ffi::CStr;
+ use crate::fs::{AtFlags, Statx, StatxFlags};
+ use crate::{backend, io};
+ use core::sync::atomic::{AtomicU8, Ordering};
+
+ // Linux kernel prior to 4.11 and old versions of Docker don't support
+ // `statx`. We store the availability in a global to avoid unnecessary
+ // syscalls.
+ //
+ // 0: Unknown
+ // 1: Not available
+ // 2: Available
+ static STATX_STATE: AtomicU8 = AtomicU8::new(0);
+
+ #[inline]
+ pub fn statx(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ flags: AtFlags,
+ mask: StatxFlags,
+ ) -> io::Result<Statx> {
+ match STATX_STATE.load(Ordering::Relaxed) {
+ 0 => statx_init(dirfd, path, flags, mask),
+ 1 => Err(io::Errno::NOSYS),
+ _ => backend::fs::syscalls::statx(dirfd, path, flags, mask),
+ }
+ }
+
+ /// The first `statx` call. We don't know if `statx` is available yet.
+ fn statx_init(
+ dirfd: BorrowedFd<'_>,
+ path: &CStr,
+ flags: AtFlags,
+ mask: StatxFlags,
+ ) -> io::Result<Statx> {
+ match backend::fs::syscalls::statx(dirfd, path, flags, mask) {
+ Err(err) => statx_error(err),
+ result => {
+ STATX_STATE.store(2, Ordering::Relaxed);
+ result
+ }
+ }
+ }
+
+ /// The first `statx` call failed. We can get a variety of error codes
+ /// from seccomp configs or faulty FUSE drivers, so we don't trust
+ /// `ENOSYS` or `EPERM` to tell us whether statx is available.
+ #[cold]
+ fn statx_error(err: io::Errno) -> io::Result<Statx> {
+ if backend::fs::syscalls::is_statx_available() {
+ // Statx is available. Record this, and fail with the error
+ // code of the initial `statx` call.
+ STATX_STATE.store(2, Ordering::Relaxed);
+ Err(err)
+ } else {
+ // Statx is not available. Record this, and fail with `NOSYS`.
+ STATX_STATE.store(1, Ordering::Relaxed);
+ Err(io::Errno::NOSYS)
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/fs/sync.rs b/vendor/rustix-1.0.8/src/fs/sync.rs
new file mode 100644
index 0000000..cb5f070
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/sync.rs
@@ -0,0 +1,14 @@
+use crate::backend;
+
+/// `sync`—Flush cached filesystem data for all filesystems.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/sync.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/sync.2.html
+#[inline]
+pub fn sync() {
+ backend::fs::syscalls::sync();
+}
diff --git a/vendor/rustix-1.0.8/src/fs/xattr.rs b/vendor/rustix-1.0.8/src/fs/xattr.rs
new file mode 100644
index 0000000..ea0eaea
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/fs/xattr.rs
@@ -0,0 +1,256 @@
+//! Extended attribute functions.
+
+#![allow(unsafe_code)]
+
+use crate::buffer::Buffer;
+use crate::{backend, ffi, io, path};
+use backend::c;
+use backend::fd::AsFd;
+use bitflags::bitflags;
+
+bitflags! {
+ /// `XATTR_*` constants for use with [`setxattr`], and other `*setxattr`
+ /// functions.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct XattrFlags: ffi::c_uint {
+ /// `XATTR_CREATE`
+ const CREATE = c::XATTR_CREATE as c::c_uint;
+
+ /// `XATTR_REPLACE`
+ const REPLACE = c::XATTR_REPLACE as c::c_uint;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `getxattr(path, name, value)`—Get extended filesystem attributes.
+///
+/// For a higher-level API to xattr functionality, see the [xattr] crate.
+///
+/// [xattr]: https://crates.io/crates/xattr
+///
+/// # References
+/// - [Linux]
+/// - [Apple]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/getxattr.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/getxattr.2.html
+#[inline]
+pub fn getxattr<P: path::Arg, Name: path::Arg, Buf: Buffer<u8>>(
+ path: P,
+ name: Name,
+ mut value: Buf,
+) -> io::Result<Buf::Output> {
+ path.into_with_c_str(|path| {
+ name.into_with_c_str(|name| {
+ // SAFETY: `getxattr` behaves.
+ let len = unsafe { backend::fs::syscalls::getxattr(path, name, value.parts_mut())? };
+ // SAFETY: `getxattr` behaves.
+ unsafe { Ok(value.assume_init(len)) }
+ })
+ })
+}
+
+/// `lgetxattr(path, name, value.as_ptr(), value.len())`—Get extended
+/// filesystem attributes, without following symlinks in the last path
+/// component.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/lgetxattr.2.html
+#[inline]
+pub fn lgetxattr<P: path::Arg, Name: path::Arg, Buf: Buffer<u8>>(
+ path: P,
+ name: Name,
+ mut value: Buf,
+) -> io::Result<Buf::Output> {
+ path.into_with_c_str(|path| {
+ name.into_with_c_str(|name| {
+ // SAFETY: `lgetxattr` behaves.
+ let len = unsafe { backend::fs::syscalls::lgetxattr(path, name, value.parts_mut())? };
+ // SAFETY: `lgetxattr` behaves.
+ unsafe { Ok(value.assume_init(len)) }
+ })
+ })
+}
+
+/// `fgetxattr(fd, name, value.as_ptr(), value.len())`—Get extended
+/// filesystem attributes on an open file descriptor.
+///
+/// # References
+/// - [Linux]
+/// - [Apple]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/fgetxattr.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fgetxattr.2.html
+#[inline]
+pub fn fgetxattr<Fd: AsFd, Name: path::Arg, Buf: Buffer<u8>>(
+ fd: Fd,
+ name: Name,
+ mut value: Buf,
+) -> io::Result<Buf::Output> {
+ name.into_with_c_str(|name| {
+ // SAFETY: `fgetxattr` behaves.
+ let len = unsafe { backend::fs::syscalls::fgetxattr(fd.as_fd(), name, value.parts_mut())? };
+ // SAFETY: `fgetxattr` behaves.
+ unsafe { Ok(value.assume_init(len)) }
+ })
+}
+
+/// `setxattr(path, name, value.as_ptr(), value.len(), flags)`—Set extended
+/// filesystem attributes.
+///
+/// # References
+/// - [Linux]
+/// - [Apple]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/setxattr.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/setxattr.2.html
+#[inline]
+pub fn setxattr<P: path::Arg, Name: path::Arg>(
+ path: P,
+ name: Name,
+ value: &[u8],
+ flags: XattrFlags,
+) -> io::Result<()> {
+ path.into_with_c_str(|path| {
+ name.into_with_c_str(|name| backend::fs::syscalls::setxattr(path, name, value, flags))
+ })
+}
+
+/// `setxattr(path, name, value.as_ptr(), value.len(), flags)`—Set extended
+/// filesystem attributes, without following symlinks in the last path
+/// component.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/lsetxattr.2.html
+#[inline]
+pub fn lsetxattr<P: path::Arg, Name: path::Arg>(
+ path: P,
+ name: Name,
+ value: &[u8],
+ flags: XattrFlags,
+) -> io::Result<()> {
+ path.into_with_c_str(|path| {
+ name.into_with_c_str(|name| backend::fs::syscalls::lsetxattr(path, name, value, flags))
+ })
+}
+
+/// `fsetxattr(fd, name, value.as_ptr(), value.len(), flags)`—Set extended
+/// filesystem attributes on an open file descriptor.
+///
+/// # References
+/// - [Linux]
+/// - [Apple]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/fsetxattr.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fsetxattr.2.html
+#[inline]
+pub fn fsetxattr<Fd: AsFd, Name: path::Arg>(
+ fd: Fd,
+ name: Name,
+ value: &[u8],
+ flags: XattrFlags,
+) -> io::Result<()> {
+ name.into_with_c_str(|name| backend::fs::syscalls::fsetxattr(fd.as_fd(), name, value, flags))
+}
+
+/// `listxattr(path, list.as_ptr(), list.len())`—List extended filesystem
+/// attributes.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/listxattr.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/listxattr.2.html
+#[inline]
+pub fn listxattr<P: path::Arg, Buf: Buffer<u8>>(path: P, mut list: Buf) -> io::Result<Buf::Output> {
+ path.into_with_c_str(|path| {
+ // SAFETY: `listxattr` behaves.
+ let len = unsafe { backend::fs::syscalls::listxattr(path, list.parts_mut())? };
+ // SAFETY: `listxattr` behaves.
+ unsafe { Ok(list.assume_init(len)) }
+ })
+}
+
+/// `llistxattr(path, list.as_ptr(), list.len())`—List extended filesystem
+/// attributes, without following symlinks in the last path component.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/llistxattr.2.html
+#[inline]
+pub fn llistxattr<P: path::Arg, Buf: Buffer<u8>>(
+ path: P,
+ mut list: Buf,
+) -> io::Result<Buf::Output> {
+ path.into_with_c_str(|path| {
+ // SAFETY: `flistxattr` behaves.
+ let len = unsafe { backend::fs::syscalls::llistxattr(path, list.parts_mut())? };
+ // SAFETY: `flistxattr` behaves.
+ unsafe { Ok(list.assume_init(len)) }
+ })
+}
+
+/// `flistxattr(fd, list.as_ptr(), list.len())`—List extended filesystem
+/// attributes on an open file descriptor.
+///
+/// # References
+/// - [Linux]
+/// - [Apple]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/flistxattr.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/flistxattr.2.html
+#[inline]
+pub fn flistxattr<Fd: AsFd, Buf: Buffer<u8>>(fd: Fd, mut list: Buf) -> io::Result<Buf::Output> {
+ // SAFETY: `flistxattr` behaves.
+ let len = unsafe { backend::fs::syscalls::flistxattr(fd.as_fd(), list.parts_mut())? };
+ // SAFETY: `flistxattr` behaves.
+ unsafe { Ok(list.assume_init(len)) }
+}
+
+/// `removexattr(path, name)`—Remove an extended filesystem attribute.
+///
+/// # References
+/// - [Linux]
+/// - [Apple]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/removexattr.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/removexattr.2.html
+pub fn removexattr<P: path::Arg, Name: path::Arg>(path: P, name: Name) -> io::Result<()> {
+ path.into_with_c_str(|path| {
+ name.into_with_c_str(|name| backend::fs::syscalls::removexattr(path, name))
+ })
+}
+
+/// `lremovexattr(path, name)`—Remove an extended filesystem attribute,
+/// without following symlinks in the last path component.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/lremovexattr.2.html
+pub fn lremovexattr<P: path::Arg, Name: path::Arg>(path: P, name: Name) -> io::Result<()> {
+ path.into_with_c_str(|path| {
+ name.into_with_c_str(|name| backend::fs::syscalls::lremovexattr(path, name))
+ })
+}
+
+/// `fremovexattr(fd, name)`—Remove an extended filesystem attribute on an
+/// open file descriptor.
+///
+/// # References
+/// - [Linux]
+/// - [Apple]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/fremovexattr.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fremovexattr.2.html
+pub fn fremovexattr<Fd: AsFd, Name: path::Arg>(fd: Fd, name: Name) -> io::Result<()> {
+ name.into_with_c_str(|name| backend::fs::syscalls::fremovexattr(fd.as_fd(), name))
+}
diff --git a/vendor/rustix-1.0.8/src/io/close.rs b/vendor/rustix-1.0.8/src/io/close.rs
new file mode 100644
index 0000000..9317edf
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/io/close.rs
@@ -0,0 +1,71 @@
+//! The unsafe `close` for raw file descriptors.
+//!
+//! # Safety
+//!
+//! Operating on raw file descriptors is unsafe.
+#![allow(unsafe_code)]
+
+use crate::backend;
+use backend::fd::RawFd;
+
+/// `close(raw_fd)`—Closes a `RawFd` directly.
+///
+/// Most users won't need to use this, as [`OwnedFd`] automatically closes its
+/// file descriptor on `Drop`.
+///
+/// This function does not return a `Result`, as it is the [responsibility] of
+/// filesystem designers to not return errors from `close`. Users who chose to
+/// use NFS or similar filesystems should take care to monitor for problems
+/// externally.
+///
+/// [responsibility]: https://lwn.net/Articles/576518/
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [`OwnedFd`]: crate::fd::OwnedFd
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/system-calls-or-bust.html#close-and-shutdownget-outta-my-face
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/close.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/close.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/close.2.html#//apple_ref/doc/man/2/close
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-closesocket
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=close&sektion=2
+/// [NetBSD]: https://man.netbsd.org/close.2
+/// [OpenBSD]: https://man.openbsd.org/close.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=close§ion=2
+/// [illumos]: https://illumos.org/man/2/close
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Opening-and-Closing-Files.html#index-close
+///
+/// # Safety
+///
+/// This function takes a `RawFd`, which must be valid before the call, and is
+/// not valid after the call.
+#[inline]
+pub unsafe fn close(raw_fd: RawFd) {
+ backend::io::syscalls::close(raw_fd)
+}
+
+/// `close(raw_fd)`—Closes a `RawFd` directly, and report any errors returned
+/// by the OS.
+///
+/// The rustix developers do not intend the existence of this feature to imply
+/// that anyone should use it.
+///
+/// # Safety
+///
+/// This function takes a `RawFd`, which must be valid before the call, and is
+/// not valid after the call, even if it fails.
+#[cfg(feature = "try_close")]
+pub unsafe fn try_close(raw_fd: RawFd) -> crate::io::Result<()> {
+ backend::io::syscalls::try_close(raw_fd)
+}
diff --git a/vendor/rustix-1.0.8/src/io/dup.rs b/vendor/rustix-1.0.8/src/io/dup.rs
new file mode 100644
index 0000000..1d1a485
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/io/dup.rs
@@ -0,0 +1,125 @@
+//! Functions which duplicate file descriptors.
+
+use crate::fd::OwnedFd;
+use crate::{backend, io};
+use backend::fd::AsFd;
+
+#[cfg(not(target_os = "wasi"))]
+pub use backend::io::types::DupFlags;
+
+/// `dup(fd)`—Creates a new `OwnedFd` instance that shares the same
+/// underlying [file description] as `fd`.
+///
+/// This function does not set the `O_CLOEXEC` flag. To do a `dup` that does
+/// set `O_CLOEXEC`, use [`fcntl_dupfd_cloexec`].
+///
+/// POSIX guarantees that `dup` will use the lowest unused file descriptor,
+/// however it is not safe in general to rely on this, as file descriptors may
+/// be unexpectedly allocated on other threads or in libraries.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [file description]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap03.html#tag_03_258
+/// [`fcntl_dupfd_cloexec`]: crate::io::fcntl_dupfd_cloexec
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/dup.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/dup.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/dup.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=dup&sektion=2
+/// [NetBSD]: https://man.netbsd.org/dup.2
+/// [OpenBSD]: https://man.openbsd.org/dup.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=dup§ion=2
+/// [illumos]: https://illumos.org/man/2/dup
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Duplicating-Descriptors.html
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+pub fn dup<Fd: AsFd>(fd: Fd) -> io::Result<OwnedFd> {
+ backend::io::syscalls::dup(fd.as_fd())
+}
+
+/// `dup2(fd, new)`—Changes the [file description] of a file descriptor.
+///
+/// `dup2` conceptually closes `new` and then sets the file description for
+/// `new` to be the same as the one for `fd`. This is a very unusual operation,
+/// and should only be used on file descriptors where you know how `new` will
+/// be subsequently used.
+///
+/// This function does not set the `O_CLOEXEC` flag. To do a `dup2` that does
+/// set `O_CLOEXEC`, use [`dup3`] with [`DupFlags::CLOEXEC`] on platforms which
+/// support it, or [`fcntl_dupfd_cloexec`].
+///
+/// For `dup2` to stdin, stdout, and stderr, see [`stdio::dup2_stdin`],
+/// [`stdio::dup2_stdout`], and [`stdio::dup2_stderr`].
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [file description]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap03.html#tag_03_258
+/// [`fcntl_dupfd_cloexec`]: crate::io::fcntl_dupfd_cloexec
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/dup2.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/dup2.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/dup2.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=dup2&sektion=2
+/// [NetBSD]: https://man.netbsd.org/dup2.2
+/// [OpenBSD]: https://man.openbsd.org/dup2.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=dup2§ion=2
+/// [illumos]: https://illumos.org/man/2/dup
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Duplicating-Descriptors.html
+/// [`stdio::dup2_stdin`]: crate::stdio::dup2_stdin
+/// [`stdio::dup2_stdout`]: crate::stdio::dup2_stdout
+/// [`stdio::dup2_stderr`]: crate::stdio::dup2_stderr
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+pub fn dup2<Fd: AsFd>(fd: Fd, new: &mut OwnedFd) -> io::Result<()> {
+ backend::io::syscalls::dup2(fd.as_fd(), new)
+}
+
+/// `dup3(fd, new, flags)`—Changes the [file description] of a file
+/// descriptor, with flags.
+///
+/// `dup3` is the same as [`dup2`] but adds an additional flags operand, and it
+/// fails in the case that `fd` and `new` have the same file descriptor value.
+/// This additional difference is the reason this function isn't named
+/// `dup2_with`.
+///
+/// # References
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+///
+/// [file description]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap03.html#tag_03_258
+/// [Linux]: https://man7.org/linux/man-pages/man2/dup3.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=dup3&sektion=3
+/// [NetBSD]: https://man.netbsd.org/dup3.2
+/// [OpenBSD]: https://man.openbsd.org/dup3.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=dup3§ion=3
+#[cfg(not(any(
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+pub fn dup3<Fd: AsFd>(fd: Fd, new: &mut OwnedFd, flags: DupFlags) -> io::Result<()> {
+ backend::io::syscalls::dup3(fd.as_fd(), new, flags)
+}
diff --git a/vendor/rustix-1.0.8/src/io/errno.rs b/vendor/rustix-1.0.8/src/io/errno.rs
new file mode 100644
index 0000000..7d3eadf
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/io/errno.rs
@@ -0,0 +1,74 @@
+//! The `Errno` type, which is a minimal wrapper around an error code.
+//!
+//! We define the error constants as individual `const`s instead of an enum
+//! because we may not know about all of the host's error values and we don't
+//! want unrecognized values to create undefined behavior.
+
+use crate::backend;
+#[cfg(all(not(feature = "std"), error_in_core))]
+use core::error;
+use core::{fmt, result};
+#[cfg(feature = "std")]
+use std::error;
+
+/// A specialized [`Result`] type for `rustix` APIs.
+pub type Result<T> = result::Result<T, Errno>;
+
+pub use backend::io::errno::Errno;
+
+impl Errno {
+ /// Shorthand for `std::io::Error::from(self).kind()`.
+ #[cfg(feature = "std")]
+ #[inline]
+ pub fn kind(self) -> std::io::ErrorKind {
+ std::io::Error::from(self).kind()
+ }
+}
+
+impl fmt::Display for Errno {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ #[cfg(feature = "std")]
+ {
+ std::io::Error::from(*self).fmt(f)
+ }
+ #[cfg(not(feature = "std"))]
+ {
+ write!(f, "os error {}", self.raw_os_error())
+ }
+ }
+}
+
+impl fmt::Debug for Errno {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ #[cfg(feature = "std")]
+ {
+ std::io::Error::from(*self).fmt(f)
+ }
+ #[cfg(not(feature = "std"))]
+ {
+ write!(f, "os error {}", self.raw_os_error())
+ }
+ }
+}
+
+#[cfg(any(feature = "std", error_in_core))]
+impl error::Error for Errno {}
+
+#[cfg(feature = "std")]
+impl From<Errno> for std::io::Error {
+ #[inline]
+ fn from(err: Errno) -> Self {
+ Self::from_raw_os_error(err.raw_os_error() as _)
+ }
+}
+
+/// Call `f` until it either succeeds or fails other than [`Errno::INTR`].
+#[inline]
+pub fn retry_on_intr<T, F: FnMut() -> Result<T>>(mut f: F) -> Result<T> {
+ loop {
+ match f() {
+ Err(Errno::INTR) => (),
+ result => return result,
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/io/fcntl.rs b/vendor/rustix-1.0.8/src/io/fcntl.rs
new file mode 100644
index 0000000..fcb63a3
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/io/fcntl.rs
@@ -0,0 +1,143 @@
+//! The Unix `fcntl` function is effectively lots of different functions hidden
+//! behind a single dynamic dispatch interface. In order to provide a type-safe
+//! API, rustix makes them all separate functions so that they can have
+//! dedicated static type signatures.
+//!
+//! `fcntl` functions which are not specific to files or directories live in
+//! the [`io`] module instead.
+//!
+//! [`io`]: crate::io
+
+use crate::{backend, io};
+use backend::fd::{AsFd, OwnedFd, RawFd};
+
+pub use backend::io::types::FdFlags;
+
+/// `fcntl(fd, F_GETFD)`—Returns a file descriptor's flags.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fcntl.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=fcntl&sektion=2
+/// [NetBSD]: https://man.netbsd.org/fcntl.2
+/// [OpenBSD]: https://man.openbsd.org/fcntl.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=fcntl§ion=2
+/// [illumos]: https://illumos.org/man/2/fcntl
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Control-Operations.html#index-fcntl-function
+#[inline]
+#[doc(alias = "F_GETFD")]
+pub fn fcntl_getfd<Fd: AsFd>(fd: Fd) -> io::Result<FdFlags> {
+ backend::io::syscalls::fcntl_getfd(fd.as_fd())
+}
+
+/// `fcntl(fd, F_SETFD, flags)`—Sets a file descriptor's flags.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fcntl.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=fcntl&sektion=2
+/// [NetBSD]: https://man.netbsd.org/fcntl.2
+/// [OpenBSD]: https://man.openbsd.org/fcntl.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=fcntl§ion=2
+/// [illumos]: https://illumos.org/man/2/fcntl
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Control-Operations.html#index-fcntl-function
+#[inline]
+#[doc(alias = "F_SETFD")]
+pub fn fcntl_setfd<Fd: AsFd>(fd: Fd, flags: FdFlags) -> io::Result<()> {
+ backend::io::syscalls::fcntl_setfd(fd.as_fd(), flags)
+}
+
+/// `fcntl(fd, F_DUPFD_CLOEXEC)`—Creates a new `OwnedFd` instance, with value
+/// at least `min`, that has `O_CLOEXEC` set and that shares the same
+/// underlying [file description] as `fd`.
+///
+/// POSIX guarantees that `F_DUPFD_CLOEXEC` will use the lowest unused file
+/// descriptor which is at least `min`, however it is not safe in general to
+/// rely on this, as file descriptors may be unexpectedly allocated on other
+/// threads or in libraries.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fcntl.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=fcntl&sektion=2
+/// [NetBSD]: https://man.netbsd.org/fcntl.2
+/// [OpenBSD]: https://man.openbsd.org/fcntl.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=fcntl§ion=2
+/// [illumos]: https://illumos.org/man/2/fcntl
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Control-Operations.html#index-fcntl-function
+/// [file description]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap03.html#tag_03_258
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+#[inline]
+#[doc(alias = "F_DUPFD_CLOEXEC")]
+pub fn fcntl_dupfd_cloexec<Fd: AsFd>(fd: Fd, min: RawFd) -> io::Result<OwnedFd> {
+ backend::io::syscalls::fcntl_dupfd_cloexec(fd.as_fd(), min)
+}
+
+/// `fcntl(fd, F_DUPFD)`—Creates a new `OwnedFd` instance, with value at
+/// least `min`, that shares the same underlying [file description] as `fd`.
+///
+/// POSIX guarantees that `F_DUPFD` will use the lowest unused file descriptor
+/// which is at least `min`, however it is not safe in general to rely on this,
+/// as file descriptors may be unexpectedly allocated on other threads or in
+/// libraries.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fcntl.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=fcntl&sektion=2
+/// [NetBSD]: https://man.netbsd.org/fcntl.2
+/// [OpenBSD]: https://man.openbsd.org/fcntl.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=fcntl§ion=2
+/// [illumos]: https://illumos.org/man/2/fcntl
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Control-Operations.html#index-fcntl-function
+/// [file description]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap03.html#tag_03_258
+#[cfg(target_os = "espidf")]
+#[inline]
+#[doc(alias = "F_DUPFD")]
+pub fn fcntl_dupfd<Fd: AsFd>(fd: Fd, min: RawFd) -> io::Result<OwnedFd> {
+ backend::io::syscalls::fcntl_dupfd(fd.as_fd(), min)
+}
diff --git a/vendor/rustix-1.0.8/src/io/ioctl.rs b/vendor/rustix-1.0.8/src/io/ioctl.rs
new file mode 100644
index 0000000..b47269f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/io/ioctl.rs
@@ -0,0 +1,77 @@
+//! The Unix `ioctl` function is effectively lots of different functions hidden
+//! behind a single dynamic dispatch interface. In order to provide a type-safe
+//! API, rustix makes them all separate functions so that they can have
+//! dedicated static type signatures.
+//!
+//! Some ioctls, such as those related to filesystems, terminals, and
+//! processes, live in other top-level API modules.
+
+#![allow(unsafe_code)]
+
+use crate::{backend, io, ioctl};
+use backend::c;
+use backend::fd::AsFd;
+
+/// `ioctl(fd, FIOCLEX, NULL)`—Set the close-on-exec flag.
+///
+/// This is similar to `fcntl(fd, F_SETFD, FD_CLOEXEC)`, except that it avoids
+/// clearing any other flags that might be set.
+#[cfg(apple)]
+#[inline]
+#[doc(alias = "FIOCLEX")]
+#[doc(alias = "FD_CLOEXEC")]
+pub fn ioctl_fioclex<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ // SAFETY: `FIOCLEX` is a no-argument setter opcode.
+ unsafe {
+ let ctl = ioctl::NoArg::<{ c::FIOCLEX }>::new();
+ ioctl::ioctl(fd, ctl)
+ }
+}
+
+/// `ioctl(fd, FIONBIO, &value)`—Enables or disables non-blocking mode.
+///
+/// # References
+/// - [Winsock]
+/// - [NetBSD]
+/// - [OpenBSD]
+///
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/winsock/winsock-ioctls#unix-ioctl-codes
+/// [NetBSD]: https://man.netbsd.org/ioctl.2#GENERIC%20IOCTLS
+/// [OpenBSD]: https://man.openbsd.org/ioctl.2#GENERIC_IOCTLS
+#[inline]
+#[doc(alias = "FIONBIO")]
+pub fn ioctl_fionbio<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ // SAFETY: `FIONBIO` is a pointer setter opcode.
+ unsafe {
+ let ctl = ioctl::Setter::<{ c::FIONBIO }, c::c_int>::new(value.into());
+ ioctl::ioctl(fd, ctl)
+ }
+}
+
+/// `ioctl(fd, FIONREAD)`—Returns the number of bytes ready to be read.
+///
+/// The result of this function gets silently coerced into a C `int` by the OS,
+/// so it may contain a wrapped value.
+///
+/// # References
+/// - [Linux]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/ioctl_tty.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/winsock/winsock-ioctls#unix-ioctl-codes
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=ioctl&sektion=2#GENERIC%09IOCTLS
+/// [NetBSD]: https://man.netbsd.org/ioctl.2#GENERIC%20IOCTLS
+/// [OpenBSD]: https://man.openbsd.org/ioctl.2#GENERIC_IOCTLS
+#[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "vita")))]
+#[inline]
+#[doc(alias = "FIONREAD")]
+pub fn ioctl_fionread<Fd: AsFd>(fd: Fd) -> io::Result<u64> {
+ // SAFETY: `FIONREAD` is a getter opcode that gets a `c_int`.
+ unsafe {
+ let ctl = ioctl::Getter::<{ c::FIONREAD }, c::c_int>::new();
+ ioctl::ioctl(fd, ctl).map(|n| n as u64)
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/io/mod.rs b/vendor/rustix-1.0.8/src/io/mod.rs
new file mode 100644
index 0000000..a2994d7
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/io/mod.rs
@@ -0,0 +1,24 @@
+//! I/O operations.
+//!
+//! If you're looking for [`SeekFrom`], it's in the [`fs`] module.
+//!
+//! [`SeekFrom`]: crate::fs::SeekFrom
+//! [`fs`]: crate::fs
+
+mod close;
+#[cfg(not(windows))]
+mod dup;
+mod errno;
+#[cfg(not(windows))]
+mod fcntl;
+mod ioctl;
+mod read_write;
+
+pub use close::*;
+#[cfg(not(windows))]
+pub use dup::*;
+pub use errno::{retry_on_intr, Errno, Result};
+#[cfg(not(windows))]
+pub use fcntl::*;
+pub use ioctl::*;
+pub use read_write::*;
diff --git a/vendor/rustix-1.0.8/src/io/read_write.rs b/vendor/rustix-1.0.8/src/io/read_write.rs
new file mode 100644
index 0000000..572c7b6
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/io/read_write.rs
@@ -0,0 +1,310 @@
+//! `read` and `write`, optionally positioned, optionally vectored.
+
+#![allow(unsafe_code)]
+
+use crate::buffer::Buffer;
+use crate::{backend, io};
+use backend::fd::AsFd;
+
+// Declare `IoSlice` and `IoSliceMut`.
+#[cfg(not(windows))]
+pub use crate::maybe_polyfill::io::{IoSlice, IoSliceMut};
+
+#[cfg(linux_kernel)]
+pub use backend::io::types::ReadWriteFlags;
+
+/// `read(fd, buf)`—Reads from a stream.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/read.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/read.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/read.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=read&sektion=2
+/// [NetBSD]: https://man.netbsd.org/read.2
+/// [OpenBSD]: https://man.openbsd.org/read.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=read§ion=2
+/// [illumos]: https://illumos.org/man/2/read
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/I_002fO-Primitives.html#index-reading-from-a-file-descriptor
+#[inline]
+pub fn read<Fd: AsFd, Buf: Buffer<u8>>(fd: Fd, mut buf: Buf) -> io::Result<Buf::Output> {
+ // SAFETY: `read` behaves.
+ let len = unsafe { backend::io::syscalls::read(fd.as_fd(), buf.parts_mut())? };
+ // SAFETY: `read` behaves.
+ unsafe { Ok(buf.assume_init(len)) }
+}
+
+/// `write(fd, buf)`—Writes to a stream.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/write.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/write.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/write.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=write&sektion=2
+/// [NetBSD]: https://man.netbsd.org/write.2
+/// [OpenBSD]: https://man.openbsd.org/write.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=write§ion=2
+/// [illumos]: https://illumos.org/man/2/write
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/I_002fO-Primitives.html#index-writing-to-a-file-descriptor
+#[inline]
+pub fn write<Fd: AsFd>(fd: Fd, buf: &[u8]) -> io::Result<usize> {
+ backend::io::syscalls::write(fd.as_fd(), buf)
+}
+
+/// `pread(fd, buf, offset)`—Reads from a file at a given position.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/pread.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/pread.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/pread.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=pread&sektion=2
+/// [NetBSD]: https://man.netbsd.org/pread.2
+/// [OpenBSD]: https://man.openbsd.org/pread.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=pread§ion=2
+/// [illumos]: https://illumos.org/man/2/pread
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/I_002fO-Primitives.html#index-pread64
+#[cfg(not(windows))]
+#[inline]
+pub fn pread<Fd: AsFd, Buf: Buffer<u8>>(
+ fd: Fd,
+ mut buf: Buf,
+ offset: u64,
+) -> io::Result<Buf::Output> {
+ // SAFETY: `pread` behaves.
+ let len = unsafe { backend::io::syscalls::pread(fd.as_fd(), buf.parts_mut(), offset)? };
+ // SAFETY: `pread` behaves.
+ unsafe { Ok(buf.assume_init(len)) }
+}
+
+/// `pwrite(fd, bufs)`—Writes to a file at a given position.
+///
+/// Contrary to POSIX, on many popular platforms including Linux and FreeBSD,
+/// if the file is opened in append mode, this ignores the offset appends the
+/// data to the end of the file.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/pwrite.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/pwrite.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/pwrite.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=pwrite&sektion=2
+/// [NetBSD]: https://man.netbsd.org/pwrite.2
+/// [OpenBSD]: https://man.openbsd.org/pwrite.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=pwrite§ion=2
+/// [illumos]: https://illumos.org/man/2/pwrite
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/I_002fO-Primitives.html#index-pwrite64
+#[cfg(not(windows))]
+#[inline]
+pub fn pwrite<Fd: AsFd>(fd: Fd, buf: &[u8], offset: u64) -> io::Result<usize> {
+ backend::io::syscalls::pwrite(fd.as_fd(), buf, offset)
+}
+
+/// `readv(fd, bufs)`—Reads from a stream into multiple buffers.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/readv.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/readv.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/readv.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=readv&sektion=2
+/// [NetBSD]: https://man.netbsd.org/readv.2
+/// [OpenBSD]: https://man.openbsd.org/readv.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=readv§ion=2
+/// [illumos]: https://illumos.org/man/2/readv
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Scatter_002dGather.html#index-readv
+#[cfg(not(any(windows, target_os = "espidf", target_os = "horizon")))]
+#[inline]
+pub fn readv<Fd: AsFd>(fd: Fd, bufs: &mut [IoSliceMut<'_>]) -> io::Result<usize> {
+ backend::io::syscalls::readv(fd.as_fd(), bufs)
+}
+
+/// `writev(fd, bufs)`—Writes to a stream from multiple buffers.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/writev.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/writev.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/writev.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=writev&sektion=2
+/// [NetBSD]: https://man.netbsd.org/writev.2
+/// [OpenBSD]: https://man.openbsd.org/writev.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=writev§ion=2
+/// [illumos]: https://illumos.org/man/2/writev
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Scatter_002dGather.html#index-writev
+#[cfg(not(any(windows, target_os = "espidf", target_os = "horizon")))]
+#[inline]
+pub fn writev<Fd: AsFd>(fd: Fd, bufs: &[IoSlice<'_>]) -> io::Result<usize> {
+ backend::io::syscalls::writev(fd.as_fd(), bufs)
+}
+
+/// `preadv(fd, bufs, offset)`—Reads from a file at a given position into
+/// multiple buffers.
+///
+/// # References
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/preadv.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=preadv&sektion=2
+/// [NetBSD]: https://man.netbsd.org/preadv.2
+/// [OpenBSD]: https://man.openbsd.org/preadv.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=preadv§ion=2
+/// [illumos]: https://illumos.org/man/2/preadv
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Scatter_002dGather.html#index-preadv64
+#[cfg(not(any(
+ windows,
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "solaris",
+ target_os = "vita",
+)))]
+#[inline]
+pub fn preadv<Fd: AsFd>(fd: Fd, bufs: &mut [IoSliceMut<'_>], offset: u64) -> io::Result<usize> {
+ backend::io::syscalls::preadv(fd.as_fd(), bufs, offset)
+}
+
+/// `pwritev(fd, bufs, offset)`—Writes to a file at a given position from
+/// multiple buffers.
+///
+/// Contrary to POSIX, on many popular platforms including Linux and FreeBSD,
+/// if the file is opened in append mode, this ignores the offset appends the
+/// data to the end of the file.
+///
+/// # References
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/pwritev.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=pwritev&sektion=2
+/// [NetBSD]: https://man.netbsd.org/pwritev.2
+/// [OpenBSD]: https://man.openbsd.org/pwritev.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=pwritev§ion=2
+/// [illumos]: https://illumos.org/man/2/pwritev
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/I_002fO-Primitives.html#index-pwrite64
+#[cfg(not(any(
+ windows,
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "solaris",
+ target_os = "vita",
+)))]
+#[inline]
+pub fn pwritev<Fd: AsFd>(fd: Fd, bufs: &[IoSlice<'_>], offset: u64) -> io::Result<usize> {
+ backend::io::syscalls::pwritev(fd.as_fd(), bufs, offset)
+}
+
+/// `preadv2(fd, bufs, offset, flags)`—Reads data, with several options.
+///
+/// An `offset` of `u64::MAX` means to use and update the current file offset.
+///
+/// # References
+/// - [Linux]
+/// - [glibc]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/preadv2.2.html
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Scatter_002dGather.html#index-preadv64v2
+#[cfg(linux_kernel)]
+#[inline]
+pub fn preadv2<Fd: AsFd>(
+ fd: Fd,
+ bufs: &mut [IoSliceMut<'_>],
+ offset: u64,
+ flags: ReadWriteFlags,
+) -> io::Result<usize> {
+ backend::io::syscalls::preadv2(fd.as_fd(), bufs, offset, flags)
+}
+
+/// `pwritev2(fd, bufs, offset, flags)`—Writes data, with several options.
+///
+/// An `offset` of `u64::MAX` means to use and update the current file offset.
+///
+/// # References
+/// - [Linux]
+/// - [glibc]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/pwritev2.2.html
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Scatter_002dGather.html#index-pwritev64v2
+#[cfg(linux_kernel)]
+#[inline]
+pub fn pwritev2<Fd: AsFd>(
+ fd: Fd,
+ bufs: &[IoSlice<'_>],
+ offset: u64,
+ flags: ReadWriteFlags,
+) -> io::Result<usize> {
+ backend::io::syscalls::pwritev2(fd.as_fd(), bufs, offset, flags)
+}
diff --git a/vendor/rustix-1.0.8/src/io_uring/bindgen_types.rs b/vendor/rustix-1.0.8/src/io_uring/bindgen_types.rs
new file mode 100644
index 0000000..c45aefb
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/io_uring/bindgen_types.rs
@@ -0,0 +1,101 @@
+//! Local versions of types that bindgen would use.
+
+use crate::utils::{as_mut_ptr, as_ptr};
+
+/// This represents an incomplete array field at the end of a struct.
+///
+/// This is called `__IncompleteArrayField` in bindgen bindings.
+#[repr(C)]
+#[derive(Default)]
+pub struct IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
+
+#[allow(missing_docs)]
+impl<T> IncompleteArrayField<T> {
+ #[inline]
+ pub const fn new() -> Self {
+ Self(::core::marker::PhantomData, [])
+ }
+
+ #[inline]
+ pub fn as_ptr(&self) -> *const T {
+ as_ptr(self).cast::<T>()
+ }
+
+ #[inline]
+ pub fn as_mut_ptr(&mut self) -> *mut T {
+ as_mut_ptr(self).cast::<T>()
+ }
+
+ #[inline]
+ pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+ ::core::slice::from_raw_parts(self.as_ptr(), len)
+ }
+
+ #[inline]
+ pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+ ::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+ }
+}
+
+impl<T> ::core::fmt::Debug for IncompleteArrayField<T> {
+ fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+ fmt.write_str("IncompleteArrayField")
+ }
+}
+
+/// This represents a toplevel union field.
+///
+/// This is called `__BindgenUnionField` in bindgen bindings.
+pub struct UnionField<T>(::core::marker::PhantomData<T>);
+
+#[allow(missing_docs)]
+impl<T> UnionField<T> {
+ #[inline]
+ pub const fn new() -> Self {
+ Self(::core::marker::PhantomData)
+ }
+
+ #[inline]
+ pub unsafe fn as_ref(&self) -> &T {
+ ::core::mem::transmute(self)
+ }
+
+ #[inline]
+ pub unsafe fn as_mut(&mut self) -> &mut T {
+ ::core::mem::transmute(self)
+ }
+}
+
+impl<T> ::core::default::Default for UnionField<T> {
+ #[inline]
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
+impl<T> ::core::clone::Clone for UnionField<T> {
+ #[inline]
+ fn clone(&self) -> Self {
+ *self
+ }
+}
+
+impl<T> ::core::marker::Copy for UnionField<T> {}
+
+impl<T> ::core::fmt::Debug for UnionField<T> {
+ fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
+ fmt.write_str("UnionField")
+ }
+}
+
+impl<T> ::core::hash::Hash for UnionField<T> {
+ fn hash<H: ::core::hash::Hasher>(&self, _state: &mut H) {}
+}
+
+impl<T> ::core::cmp::PartialEq for UnionField<T> {
+ fn eq(&self, _other: &Self) -> bool {
+ true
+ }
+}
+
+impl<T> ::core::cmp::Eq for UnionField<T> {}
diff --git a/vendor/rustix-1.0.8/src/io_uring/mod.rs b/vendor/rustix-1.0.8/src/io_uring/mod.rs
new file mode 100644
index 0000000..5e37568
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/io_uring/mod.rs
@@ -0,0 +1,2207 @@
+//! Linux [io_uring].
+//!
+//! This API is very low-level. The main adaptations it makes from the raw
+//! Linux io_uring API are the use of appropriately-sized `bitflags`, `enum`,
+//! `Result`, `OwnedFd`, `AsFd`, `RawFd`, and `*mut c_void` in place of plain
+//! integers.
+//!
+//! For a higher-level API built on top of this, see the [rustix-uring] crate.
+//!
+//! # Safety
+//!
+//! io_uring operates on raw pointers and raw file descriptors. Rustix does not
+//! attempt to provide a safe API for these, because the abstraction level is
+//! too low for this to be practical. Safety should be introduced in
+//! higher-level abstraction layers.
+//!
+//! # References
+//! - [Linux]
+//! - [io_uring header]
+//!
+//! [Linux]: https://www.man7.org/linux/man-pages/man7/io_uring.7.html
+//! [io_uring]: https://en.wikipedia.org/wiki/Io_uring
+//! [io_uring header]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/io_uring.h?h=v6.13
+//! [rustix-uring]: https://crates.io/crates/rustix-uring
+#![allow(unsafe_code)]
+
+mod bindgen_types;
+
+use crate::fd::{AsFd, BorrowedFd, OwnedFd, RawFd};
+use crate::utils::option_as_ptr;
+use crate::{backend, io};
+use bindgen_types::*;
+use core::cmp::Ordering;
+use core::ffi::c_void;
+use core::hash::{Hash, Hasher};
+use core::mem::size_of;
+use core::ptr::null_mut;
+use linux_raw_sys::net;
+
+// Export types used in io_uring APIs.
+pub use crate::clockid::ClockId;
+pub use crate::event::epoll::{
+ Event as EpollEvent, EventData as EpollEventData, EventFlags as EpollEventFlags,
+};
+pub use crate::ffi::c_char;
+pub use crate::fs::{
+ Advice, AtFlags, Mode, OFlags, RenameFlags, ResolveFlags, Statx, StatxFlags, XattrFlags,
+};
+pub use crate::io::ReadWriteFlags;
+pub use crate::kernel_sigset::KernelSigSet;
+pub use crate::net::addr::{SocketAddrLen, SocketAddrOpaque, SocketAddrStorage};
+pub use crate::net::{RecvFlags, SendFlags, SocketFlags};
+pub use crate::signal::Signal;
+pub use crate::thread::futex::{
+ Wait as FutexWait, WaitFlags as FutexWaitFlags, WaitPtr as FutexWaitPtr,
+ WaitvFlags as FutexWaitvFlags,
+};
+pub use crate::timespec::{Nsecs, Secs, Timespec};
+
+mod sys {
+ pub(super) use linux_raw_sys::io_uring::*;
+ #[cfg(test)]
+ pub(super) use {
+ crate::backend::c::iovec, linux_raw_sys::general::open_how, linux_raw_sys::net::msghdr,
+ };
+}
+
+/// `msghdr`
+#[allow(missing_docs)]
+#[repr(C)]
+pub struct MsgHdr {
+ pub msg_name: *mut c_void,
+ pub msg_namelen: SocketAddrLen,
+ pub msg_iov: *mut iovec,
+ pub msg_iovlen: usize,
+ pub msg_control: *mut c_void,
+ pub msg_controllen: usize,
+ pub msg_flags: RecvFlags,
+}
+
+/// `io_uring_setup(entries, params)`—Setup a context for performing
+/// asynchronous I/O.
+///
+/// # Safety
+///
+/// If [`IoringSetupFlags::ATTACH_WQ`] is set, the `wq_fd` field of
+/// `io_uring_params` must be an open file descriptor.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.man7.org/linux/man-pages/man2/io_uring_setup.2.html
+#[inline]
+pub unsafe fn io_uring_setup(entries: u32, params: &mut io_uring_params) -> io::Result<OwnedFd> {
+ backend::io_uring::syscalls::io_uring_setup(entries, params)
+}
+
+/// `io_uring_register(fd, opcode, arg, nr_args)`—Register files or user
+/// buffers for asynchronous I/O.
+///
+/// To pass flags, use [`io_uring_register_with`].
+///
+/// # Safety
+///
+/// io_uring operates on raw pointers and raw file descriptors. Users are
+/// responsible for ensuring that memory and resources are only accessed in
+/// valid ways.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.man7.org/linux/man-pages/man2/io_uring_register.2.html
+#[inline]
+pub unsafe fn io_uring_register<Fd: AsFd>(
+ fd: Fd,
+ opcode: IoringRegisterOp,
+ arg: *const c_void,
+ nr_args: u32,
+) -> io::Result<u32> {
+ backend::io_uring::syscalls::io_uring_register(fd.as_fd(), opcode, arg, nr_args)
+}
+
+/// `io_uring_register_with(fd, opcode, flags, arg, nr_args)`—Register files or
+/// user buffers for asynchronous I/O.
+///
+/// # Safety
+///
+/// io_uring operates on raw pointers and raw file descriptors. Users are
+/// responsible for ensuring that memory and resources are only accessed in
+/// valid ways.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.man7.org/linux/man-pages/man2/io_uring_register.2.html
+#[inline]
+pub unsafe fn io_uring_register_with<Fd: AsFd>(
+ fd: Fd,
+ opcode: IoringRegisterOp,
+ flags: IoringRegisterFlags,
+ arg: *const c_void,
+ nr_args: u32,
+) -> io::Result<u32> {
+ backend::io_uring::syscalls::io_uring_register_with(fd.as_fd(), opcode, flags, arg, nr_args)
+}
+
+/// `io_uring_enter(fd, to_submit, min_complete, flags, 0, 0)`—Initiate
+/// and/or complete asynchronous I/O.
+///
+/// This version has no `arg` argument. To pass:
+/// - a signal mask, use [`io_uring_enter_sigmask`].
+/// - an [`io_uring_getevents_arg`], use [`io_uring_enter_arg`] (aka
+/// `io_uring_enter2`).
+///
+/// # Safety
+///
+/// io_uring operates on raw pointers and raw file descriptors. Users are
+/// responsible for ensuring that memory and resources are only accessed in
+/// valid ways.
+///
+/// And, `flags` must not have [`IoringEnterFlags::EXT_ARG`] or
+/// [`IoringEnterFlags::EXT_ARG_REG`] set.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.man7.org/linux/man-pages/man2/io_uring_enter.2.html
+#[doc(alias = "io_uring_enter2")]
+#[inline]
+pub unsafe fn io_uring_enter<Fd: AsFd>(
+ fd: Fd,
+ to_submit: u32,
+ min_complete: u32,
+ flags: IoringEnterFlags,
+) -> io::Result<u32> {
+ debug_assert!(!flags.contains(IoringEnterFlags::EXT_ARG));
+ debug_assert!(!flags.contains(IoringEnterFlags::EXT_ARG_REG));
+
+ backend::io_uring::syscalls::io_uring_enter(
+ fd.as_fd(),
+ to_submit,
+ min_complete,
+ flags,
+ null_mut(),
+ 0,
+ )
+}
+
+/// `io_uring_enter(fd, to_submit, min_complete, flags, sigmask,
+/// sizeof(*sigmask))`— Initiate and/or complete asynchronous I/O, with a
+/// signal mask.
+///
+/// # Safety
+///
+/// io_uring operates on raw pointers and raw file descriptors. Users are
+/// responsible for ensuring that memory and resources are only accessed in
+/// valid ways.
+///
+/// And, `flags` must not have [`IoringEnterFlags::EXT_ARG`] or
+/// [`IoringEnterFlags::EXT_ARG_REG`] set.
+///
+/// And, the `KernelSigSet` referred to by `arg` must not contain any signal
+/// numbers reserved by libc.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.man7.org/linux/man-pages/man2/io_uring_enter.2.html
+#[doc(alias = "io_uring_enter")]
+#[inline]
+pub unsafe fn io_uring_enter_sigmask<Fd: AsFd>(
+ fd: Fd,
+ to_submit: u32,
+ min_complete: u32,
+ flags: IoringEnterFlags,
+ sigmask: Option<&KernelSigSet>,
+) -> io::Result<u32> {
+ debug_assert!(!flags.contains(IoringEnterFlags::EXT_ARG));
+ debug_assert!(!flags.contains(IoringEnterFlags::EXT_ARG_REG));
+
+ backend::io_uring::syscalls::io_uring_enter(
+ fd.as_fd(),
+ to_submit,
+ min_complete,
+ flags,
+ option_as_ptr(sigmask).cast::<c_void>(),
+ size_of::<KernelSigSet>(),
+ )
+}
+
+/// `io_uring_enter2(fd, to_submit, min_complete, flags, arg, sizeof(*arg))`—
+/// Initiate and/or complete asynchronous I/O, with a signal mask and a
+/// timeout.
+///
+/// # Safety
+///
+/// io_uring operates on raw pointers and raw file descriptors. Users are
+/// responsible for ensuring that memory and resources are only accessed in
+/// valid ways.
+///
+/// And, `flags` must have [`IoringEnterFlags::EXT_ARG`] set, and must not have
+/// [`IoringEnterFlags::EXT_ARG_REG`] set.
+///
+/// And, the `KernelSigSet` pointed to by the `io_uring_getenvets_arg` referred
+/// to by `arg` must not contain any signal numbers reserved by libc.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.man7.org/linux/man-pages/man2/io_uring_enter.2.html
+#[doc(alias = "io_uring_enter")]
+#[doc(alias = "io_uring_enter2")]
+#[inline]
+pub unsafe fn io_uring_enter_arg<Fd: AsFd>(
+ fd: Fd,
+ to_submit: u32,
+ min_complete: u32,
+ flags: IoringEnterFlags,
+ arg: Option<&io_uring_getevents_arg>,
+) -> io::Result<u32> {
+ debug_assert!(flags.contains(IoringEnterFlags::EXT_ARG));
+ debug_assert!(!flags.contains(IoringEnterFlags::EXT_ARG_REG));
+
+ backend::io_uring::syscalls::io_uring_enter(
+ fd.as_fd(),
+ to_submit,
+ min_complete,
+ flags,
+ option_as_ptr(arg).cast::<c_void>(),
+ size_of::<io_uring_getevents_arg>(),
+ )
+}
+
+// TODO: Uncomment this when we support `IoringRegisterOp::CQWAIT_REG`.
+/*
+/// `io_uring_enter2(fd, to_submit, min_complete, flags, offset,
+/// sizeof(io_uring_reg_wait))`— Initiate and/or complete asynchronous I/O,
+/// using a previously registered `io_uring_reg_wait`.
+///
+/// `offset` is an offset into an area of wait regions previously registered
+/// with [`io_uring_register`] using the [`IoringRegisterOp::CQWAIT_REG`]
+/// operation.
+///
+/// # Safety
+///
+/// io_uring operates on raw pointers and raw file descriptors. Users are
+/// responsible for ensuring that memory and resources are only accessed in
+/// valid ways.
+///
+/// And, `flags` must have [`IoringEnterFlags::EXT_ARG_REG`] set, and must not
+/// have [`IoringEnterFlags::EXT_ARG`] set.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.man7.org/linux/man-pages/man2/io_uring_enter.2.html
+#[doc(alias = "io_uring_enter")]
+#[doc(alias = "io_uring_enter2")]
+#[inline]
+pub unsafe fn io_uring_enter_reg_wait<Fd: AsFd>(
+ fd: Fd,
+ to_submit: u32,
+ min_complete: u32,
+ flags: IoringEnterFlags,
+ reg_wait: usize,
+) -> io::Result<u32> {
+ debug_assert!(!flags.contains(IoringEnterFlags::EXT_ARG));
+ debug_assert!(flags.contains(IoringEnterFlags::EXT_ARG_REG));
+
+ backend::io_uring::syscalls::io_uring_enter(
+ fd.as_fd(),
+ to_submit,
+ min_complete,
+ flags,
+ reg_wait as *mut c_void,
+ size_of::<io_uring_reg_wait>(),
+ )
+}
+*/
+
+bitflags::bitflags! {
+ /// `IORING_ENTER_*` flags for use with [`io_uring_enter`].
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringEnterFlags: u32 {
+ /// `IORING_ENTER_GETEVENTS`
+ const GETEVENTS = sys::IORING_ENTER_GETEVENTS;
+
+ /// `IORING_ENTER_SQ_WAKEUP`
+ const SQ_WAKEUP = sys::IORING_ENTER_SQ_WAKEUP;
+
+ /// `IORING_ENTER_SQ_WAIT`
+ const SQ_WAIT = sys::IORING_ENTER_SQ_WAIT;
+
+ /// `IORING_ENTER_EXT_ARG` (since Linux 5.11)
+ const EXT_ARG = sys::IORING_ENTER_EXT_ARG;
+
+ /// `IORING_ENTER_REGISTERED_RING`
+ const REGISTERED_RING = sys::IORING_ENTER_REGISTERED_RING;
+
+ /// `IORING_ENTER_ABS_TIMER` (since Linux 6.12)
+ const ABS_TIMER = sys::IORING_ENTER_ABS_TIMER;
+
+ /// `IORING_ENTER_EXT_ARG_REG` (since Linux 6.12)
+ const EXT_ARG_REG = sys::IORING_ENTER_EXT_ARG_REG;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `IORING_REGISTER_*` and `IORING_UNREGISTER_*` constants for use with
+/// [`io_uring_register`].
+#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
+#[repr(u8)]
+#[non_exhaustive]
+pub enum IoringRegisterOp {
+ /// `IORING_REGISTER_BUFFERS`
+ RegisterBuffers = sys::io_uring_register_op::IORING_REGISTER_BUFFERS as _,
+
+ /// `IORING_UNREGISTER_BUFFERS`
+ UnregisterBuffers = sys::io_uring_register_op::IORING_UNREGISTER_BUFFERS as _,
+
+ /// `IORING_REGISTER_FILES`
+ RegisterFiles = sys::io_uring_register_op::IORING_REGISTER_FILES as _,
+
+ /// `IORING_UNREGISTER_FILES`
+ UnregisterFiles = sys::io_uring_register_op::IORING_UNREGISTER_FILES as _,
+
+ /// `IORING_REGISTER_EVENTFD`
+ RegisterEventfd = sys::io_uring_register_op::IORING_REGISTER_EVENTFD as _,
+
+ /// `IORING_UNREGISTER_EVENTFD`
+ UnregisterEventfd = sys::io_uring_register_op::IORING_UNREGISTER_EVENTFD as _,
+
+ /// `IORING_REGISTER_FILES_UPDATE`
+ RegisterFilesUpdate = sys::io_uring_register_op::IORING_REGISTER_FILES_UPDATE as _,
+
+ /// `IORING_REGISTER_EVENTFD_ASYNC`
+ RegisterEventfdAsync = sys::io_uring_register_op::IORING_REGISTER_EVENTFD_ASYNC as _,
+
+ /// `IORING_REGISTER_PROBE`
+ RegisterProbe = sys::io_uring_register_op::IORING_REGISTER_PROBE as _,
+
+ /// `IORING_REGISTER_PERSONALITY`
+ RegisterPersonality = sys::io_uring_register_op::IORING_REGISTER_PERSONALITY as _,
+
+ /// `IORING_UNREGISTER_PERSONALITY`
+ UnregisterPersonality = sys::io_uring_register_op::IORING_UNREGISTER_PERSONALITY as _,
+
+ /// `IORING_REGISTER_RESTRICTIONS`
+ RegisterRestrictions = sys::io_uring_register_op::IORING_REGISTER_RESTRICTIONS as _,
+
+ /// `IORING_REGISTER_ENABLE_RINGS`
+ RegisterEnableRings = sys::io_uring_register_op::IORING_REGISTER_ENABLE_RINGS as _,
+
+ /// `IORING_REGISTER_BUFFERS2`
+ RegisterBuffers2 = sys::io_uring_register_op::IORING_REGISTER_BUFFERS2 as _,
+
+ /// `IORING_REGISTER_BUFFERS_UPDATE`
+ RegisterBuffersUpdate = sys::io_uring_register_op::IORING_REGISTER_BUFFERS_UPDATE as _,
+
+ /// `IORING_REGISTER_FILES2`
+ RegisterFiles2 = sys::io_uring_register_op::IORING_REGISTER_FILES2 as _,
+
+ /// `IORING_REGISTER_FILES_UPDATE2`
+ RegisterFilesUpdate2 = sys::io_uring_register_op::IORING_REGISTER_FILES_UPDATE2 as _,
+
+ /// `IORING_REGISTER_IOWQ_AFF`
+ RegisterIowqAff = sys::io_uring_register_op::IORING_REGISTER_IOWQ_AFF as _,
+
+ /// `IORING_UNREGISTER_IOWQ_AFF`
+ UnregisterIowqAff = sys::io_uring_register_op::IORING_UNREGISTER_IOWQ_AFF as _,
+
+ /// `IORING_REGISTER_IOWQ_MAX_WORKERS`
+ RegisterIowqMaxWorkers = sys::io_uring_register_op::IORING_REGISTER_IOWQ_MAX_WORKERS as _,
+
+ /// `IORING_REGISTER_RING_FDS`
+ RegisterRingFds = sys::io_uring_register_op::IORING_REGISTER_RING_FDS as _,
+
+ /// `IORING_UNREGISTER_RING_FDS`
+ UnregisterRingFds = sys::io_uring_register_op::IORING_UNREGISTER_RING_FDS as _,
+
+ /// `IORING_REGISTER_PBUF_RING`
+ RegisterPbufRing = sys::io_uring_register_op::IORING_REGISTER_PBUF_RING as _,
+
+ /// `IORING_UNREGISTER_PBUF_RING`
+ UnregisterPbufRing = sys::io_uring_register_op::IORING_UNREGISTER_PBUF_RING as _,
+
+ /// `IORING_REGISTER_SYNC_CANCEL`
+ RegisterSyncCancel = sys::io_uring_register_op::IORING_REGISTER_SYNC_CANCEL as _,
+
+ /// `IORING_REGISTER_FILE_ALLOC_RANGE`
+ RegisterFileAllocRange = sys::io_uring_register_op::IORING_REGISTER_FILE_ALLOC_RANGE as _,
+
+ /// `IORING_REGISTER_PBUF_STATUS` (since Linux 6.8)
+ RegisterPbufStatus = sys::io_uring_register_op::IORING_REGISTER_PBUF_STATUS as _,
+
+ /// `IORING_REGISTER_NAPI` (since Linux 6.9)
+ RegisterNapi = sys::io_uring_register_op::IORING_REGISTER_NAPI as _,
+
+ /// `IORING_UNREGISTER_NAPI` (since Linux 6.9)
+ UnregisterNapi = sys::io_uring_register_op::IORING_UNREGISTER_NAPI as _,
+
+ /// `IORING_REGISTER_CLOCK` (since Linux 6.12)
+ RegisterClock = sys::io_uring_register_op::IORING_REGISTER_CLOCK as _,
+
+ /// `IORING_REGISTER_CLONE_BUFFERS ` (since Linux 6.12)
+ RegisterCloneBuffers = sys::io_uring_register_op::IORING_REGISTER_CLONE_BUFFERS as _,
+
+ /// `IORING_REGISTER_SEND_MSG_RING` (since Linux 6.12)
+ RegisterSendMsgRing = sys::io_uring_register_op::IORING_REGISTER_SEND_MSG_RING as _,
+
+ /// `IORING_REGISTER_RESIZE_RINGS`(since Linux 6.13)
+ RegisterResizeRings = sys::io_uring_register_op::IORING_REGISTER_RESIZE_RINGS as _,
+}
+
+bitflags::bitflags! {
+ /// `IORING_REGISTER_*` flags for use with [`io_uring_register_with`].
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringRegisterFlags: u32 {
+ /// `IORING_REGISTER_USE_REGISTERED_RING`
+ const USE_REGISTERED_RING = sys::io_uring_register_op::IORING_REGISTER_USE_REGISTERED_RING as u32;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `IORING_OP_*` constants for use with [`io_uring_sqe`].
+#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
+#[repr(u8)]
+#[non_exhaustive]
+pub enum IoringOp {
+ /// `IORING_OP_NOP`
+ Nop = sys::io_uring_op::IORING_OP_NOP as _,
+
+ /// `IORING_OP_ACCEPT`
+ Accept = sys::io_uring_op::IORING_OP_ACCEPT as _,
+
+ /// `IORING_OP_ASYNC_CANCEL`
+ AsyncCancel = sys::io_uring_op::IORING_OP_ASYNC_CANCEL as _,
+
+ /// `IORING_OP_CLOSE`
+ Close = sys::io_uring_op::IORING_OP_CLOSE as _,
+
+ /// `IORING_OP_CONNECT`
+ Connect = sys::io_uring_op::IORING_OP_CONNECT as _,
+
+ /// `IORING_OP_EPOLL_CTL`
+ EpollCtl = sys::io_uring_op::IORING_OP_EPOLL_CTL as _,
+
+ /// `IORING_OP_FADVISE`
+ Fadvise = sys::io_uring_op::IORING_OP_FADVISE as _,
+
+ /// `IORING_OP_FALLOCATE`
+ Fallocate = sys::io_uring_op::IORING_OP_FALLOCATE as _,
+
+ /// `IORING_OP_FILES_UPDATE`
+ FilesUpdate = sys::io_uring_op::IORING_OP_FILES_UPDATE as _,
+
+ /// `IORING_OP_FSYNC`
+ Fsync = sys::io_uring_op::IORING_OP_FSYNC as _,
+
+ /// `IORING_OP_LINKAT`
+ Linkat = sys::io_uring_op::IORING_OP_LINKAT as _,
+
+ /// `IORING_OP_LINK_TIMEOUT`
+ LinkTimeout = sys::io_uring_op::IORING_OP_LINK_TIMEOUT as _,
+
+ /// `IORING_OP_MADVISE`
+ Madvise = sys::io_uring_op::IORING_OP_MADVISE as _,
+
+ /// `IORING_OP_MKDIRAT`
+ Mkdirat = sys::io_uring_op::IORING_OP_MKDIRAT as _,
+
+ /// `IORING_OP_OPENAT`
+ Openat = sys::io_uring_op::IORING_OP_OPENAT as _,
+
+ /// `IORING_OP_OPENAT2`
+ Openat2 = sys::io_uring_op::IORING_OP_OPENAT2 as _,
+
+ /// `IORING_OP_POLL_ADD`
+ PollAdd = sys::io_uring_op::IORING_OP_POLL_ADD as _,
+
+ /// `IORING_OP_POLL_REMOVE`
+ PollRemove = sys::io_uring_op::IORING_OP_POLL_REMOVE as _,
+
+ /// `IORING_OP_PROVIDE_BUFFERS`
+ ProvideBuffers = sys::io_uring_op::IORING_OP_PROVIDE_BUFFERS as _,
+
+ /// `IORING_OP_READ`
+ Read = sys::io_uring_op::IORING_OP_READ as _,
+
+ /// `IORING_OP_READV`
+ Readv = sys::io_uring_op::IORING_OP_READV as _,
+
+ /// `IORING_OP_READ_FIXED`
+ ReadFixed = sys::io_uring_op::IORING_OP_READ_FIXED as _,
+
+ /// `IORING_OP_RECV`
+ Recv = sys::io_uring_op::IORING_OP_RECV as _,
+
+ /// `IORING_OP_RECVMSG`
+ Recvmsg = sys::io_uring_op::IORING_OP_RECVMSG as _,
+
+ /// `IORING_OP_REMOVE_BUFFERS`
+ RemoveBuffers = sys::io_uring_op::IORING_OP_REMOVE_BUFFERS as _,
+
+ /// `IORING_OP_RENAMEAT`
+ Renameat = sys::io_uring_op::IORING_OP_RENAMEAT as _,
+
+ /// `IORING_OP_SEND`
+ Send = sys::io_uring_op::IORING_OP_SEND as _,
+
+ /// `IORING_OP_SENDMSG`
+ Sendmsg = sys::io_uring_op::IORING_OP_SENDMSG as _,
+
+ /// `IORING_OP_SHUTDOWN`
+ Shutdown = sys::io_uring_op::IORING_OP_SHUTDOWN as _,
+
+ /// `IORING_OP_SPLICE`
+ Splice = sys::io_uring_op::IORING_OP_SPLICE as _,
+
+ /// `IORING_OP_STATX`
+ Statx = sys::io_uring_op::IORING_OP_STATX as _,
+
+ /// `IORING_OP_SYMLINKAT`
+ Symlinkat = sys::io_uring_op::IORING_OP_SYMLINKAT as _,
+
+ /// `IORING_OP_SYNC_FILE_RANGE`
+ SyncFileRange = sys::io_uring_op::IORING_OP_SYNC_FILE_RANGE as _,
+
+ /// `IORING_OP_TEE`
+ Tee = sys::io_uring_op::IORING_OP_TEE as _,
+
+ /// `IORING_OP_TIMEOUT`
+ Timeout = sys::io_uring_op::IORING_OP_TIMEOUT as _,
+
+ /// `IORING_OP_TIMEOUT_REMOVE`
+ TimeoutRemove = sys::io_uring_op::IORING_OP_TIMEOUT_REMOVE as _,
+
+ /// `IORING_OP_UNLINKAT`
+ Unlinkat = sys::io_uring_op::IORING_OP_UNLINKAT as _,
+
+ /// `IORING_OP_WRITE`
+ Write = sys::io_uring_op::IORING_OP_WRITE as _,
+
+ /// `IORING_OP_WRITEV`
+ Writev = sys::io_uring_op::IORING_OP_WRITEV as _,
+
+ /// `IORING_OP_WRITE_FIXED`
+ WriteFixed = sys::io_uring_op::IORING_OP_WRITE_FIXED as _,
+
+ /// `IORING_OP_MSG_RING`
+ MsgRing = sys::io_uring_op::IORING_OP_MSG_RING as _,
+
+ /// `IORING_OP_FSETXATTR`
+ Fsetxattr = sys::io_uring_op::IORING_OP_FSETXATTR as _,
+
+ /// `IORING_OP_SETXATTR`
+ Setxattr = sys::io_uring_op::IORING_OP_SETXATTR as _,
+
+ /// `IORING_OP_FGETXATTR`
+ Fgetxattr = sys::io_uring_op::IORING_OP_FGETXATTR as _,
+
+ /// `IORING_OP_GETXATTR`
+ Getxattr = sys::io_uring_op::IORING_OP_GETXATTR as _,
+
+ /// `IORING_OP_SOCKET`
+ Socket = sys::io_uring_op::IORING_OP_SOCKET as _,
+
+ /// `IORING_OP_URING_CMD`
+ UringCmd = sys::io_uring_op::IORING_OP_URING_CMD as _,
+
+ /// `IORING_OP_SEND_ZC`
+ SendZc = sys::io_uring_op::IORING_OP_SEND_ZC as _,
+
+ /// `IORING_OP_SENDMSG_ZC`
+ SendmsgZc = sys::io_uring_op::IORING_OP_SENDMSG_ZC as _,
+
+ /// `IORING_OP_READ_MULTISHOT` (since Linux 6.7)
+ ReadMultishot = sys::io_uring_op::IORING_OP_READ_MULTISHOT as _,
+
+ /// `IORING_OP_WAITID` (since Linux 6.5)
+ Waitid = sys::io_uring_op::IORING_OP_WAITID as _,
+
+ /// `IORING_OP_FUTEX_WAIT` (since Linux 6.7)
+ FutexWait = sys::io_uring_op::IORING_OP_FUTEX_WAIT as _,
+
+ /// `IORING_OP_FUTEX_WAKE` (since Linux 6.7)
+ FutexWake = sys::io_uring_op::IORING_OP_FUTEX_WAKE as _,
+
+ /// `IORING_OP_FUTEX_WAITV` (since Linux 6.7)
+ FutexWaitv = sys::io_uring_op::IORING_OP_FUTEX_WAITV as _,
+
+ /// `IORING_OP_FIXED_FD_INSTALL` (since Linux 6.8)
+ FixedFdInstall = sys::io_uring_op::IORING_OP_FIXED_FD_INSTALL as _,
+
+ /// `IORING_OP_FTRUNCATE` (since Linux 6.9)
+ Ftruncate = sys::io_uring_op::IORING_OP_FTRUNCATE as _,
+
+ /// `IORING_OP_BIND` (since Linux 6.11)
+ Bind = sys::io_uring_op::IORING_OP_BIND as _,
+
+ /// `IORING_OP_LISTEN` (since Linux 6.11)
+ Listen = sys::io_uring_op::IORING_OP_LISTEN as _,
+}
+
+impl Default for IoringOp {
+ #[inline]
+ fn default() -> Self {
+ Self::Nop
+ }
+}
+
+/// `IORING_RESTRICTION_*` constants for use with [`io_uring_restriction`].
+#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
+#[repr(u16)]
+#[non_exhaustive]
+pub enum IoringRestrictionOp {
+ /// `IORING_RESTRICTION_REGISTER_OP`
+ RegisterOp = sys::io_uring_register_restriction_op::IORING_RESTRICTION_REGISTER_OP as _,
+
+ /// `IORING_RESTRICTION_SQE_FLAGS_ALLOWED`
+ SqeFlagsAllowed =
+ sys::io_uring_register_restriction_op::IORING_RESTRICTION_SQE_FLAGS_ALLOWED as _,
+
+ /// `IORING_RESTRICTION_SQE_FLAGS_REQUIRED`
+ SqeFlagsRequired =
+ sys::io_uring_register_restriction_op::IORING_RESTRICTION_SQE_FLAGS_REQUIRED as _,
+
+ /// `IORING_RESTRICTION_SQE_OP`
+ SqeOp = sys::io_uring_register_restriction_op::IORING_RESTRICTION_SQE_OP as _,
+}
+
+impl Default for IoringRestrictionOp {
+ #[inline]
+ fn default() -> Self {
+ Self::RegisterOp
+ }
+}
+
+/// `IORING_MSG_*` constants which represent commands for use with
+/// [`IoringOp::MsgRing`], (`seq.addr`)
+#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
+#[repr(u64)]
+#[non_exhaustive]
+pub enum IoringMsgringCmds {
+ /// `IORING_MSG_DATA`
+ Data = sys::io_uring_msg_ring_flags::IORING_MSG_DATA as _,
+
+ /// `IORING_MSG_SEND_FD`
+ SendFd = sys::io_uring_msg_ring_flags::IORING_MSG_SEND_FD as _,
+}
+
+bitflags::bitflags! {
+ /// `IORING_SETUP_*` flags for use with [`io_uring_params`].
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringSetupFlags: u32 {
+ /// `IORING_SETUP_ATTACH_WQ`
+ const ATTACH_WQ = sys::IORING_SETUP_ATTACH_WQ;
+
+ /// `IORING_SETUP_CLAMP`
+ const CLAMP = sys::IORING_SETUP_CLAMP;
+
+ /// `IORING_SETUP_CQSIZE`
+ const CQSIZE = sys::IORING_SETUP_CQSIZE;
+
+ /// `IORING_SETUP_IOPOLL`
+ const IOPOLL = sys::IORING_SETUP_IOPOLL;
+
+ /// `IORING_SETUP_R_DISABLED`
+ const R_DISABLED = sys::IORING_SETUP_R_DISABLED;
+
+ /// `IORING_SETUP_SQPOLL`
+ const SQPOLL = sys::IORING_SETUP_SQPOLL;
+
+ /// `IORING_SETUP_SQ_AFF`
+ const SQ_AFF = sys::IORING_SETUP_SQ_AFF;
+
+ /// `IORING_SETUP_SQE128`
+ const SQE128 = sys::IORING_SETUP_SQE128;
+
+ /// `IORING_SETUP_CQE32`
+ const CQE32 = sys::IORING_SETUP_CQE32;
+
+ /// `IORING_SETUP_SUBMIT_ALL`
+ const SUBMIT_ALL = sys::IORING_SETUP_SUBMIT_ALL;
+
+ /// `IORING_SETUP_COOP_TRASKRUN`
+ const COOP_TASKRUN = sys::IORING_SETUP_COOP_TASKRUN;
+
+ /// `IORING_SETUP_TASKRUN_FLAG`
+ const TASKRUN_FLAG = sys::IORING_SETUP_TASKRUN_FLAG;
+
+ /// `IORING_SETUP_SINGLE_ISSUER`
+ const SINGLE_ISSUER = sys::IORING_SETUP_SINGLE_ISSUER;
+
+ /// `IORING_SETUP_DEFER_TASKRUN`
+ const DEFER_TASKRUN = sys::IORING_SETUP_DEFER_TASKRUN;
+
+ /// `IORING_SETUP_NO_MMAP`
+ const NO_MMAP = sys::IORING_SETUP_NO_MMAP;
+
+ /// `IORING_SETUP_REGISTERED_FD_ONLY`
+ const REGISTERED_FD_ONLY = sys::IORING_SETUP_REGISTERED_FD_ONLY;
+
+ /// `IORING_SETUP_NO_SQARRAY`
+ const NO_SQARRAY = sys::IORING_SETUP_NO_SQARRAY;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `IOSQE_*` flags for use with [`io_uring_sqe`].
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringSqeFlags: u8 {
+ /// `1 << IOSQE_ASYNC_BIT`
+ const ASYNC = 1 << sys::io_uring_sqe_flags_bit::IOSQE_ASYNC_BIT as u8;
+
+ /// `1 << IOSQE_BUFFER_SELECT_BIT`
+ const BUFFER_SELECT = 1 << sys::io_uring_sqe_flags_bit::IOSQE_BUFFER_SELECT_BIT as u8;
+
+ /// `1 << IOSQE_FIXED_FILE_BIT`
+ const FIXED_FILE = 1 << sys::io_uring_sqe_flags_bit::IOSQE_FIXED_FILE_BIT as u8;
+
+ /// 1 << `IOSQE_IO_DRAIN_BIT`
+ const IO_DRAIN = 1 << sys::io_uring_sqe_flags_bit::IOSQE_IO_DRAIN_BIT as u8;
+
+ /// `1 << IOSQE_IO_HARDLINK_BIT`
+ const IO_HARDLINK = 1 << sys::io_uring_sqe_flags_bit::IOSQE_IO_HARDLINK_BIT as u8;
+
+ /// `1 << IOSQE_IO_LINK_BIT`
+ const IO_LINK = 1 << sys::io_uring_sqe_flags_bit::IOSQE_IO_LINK_BIT as u8;
+
+ /// `1 << IOSQE_CQE_SKIP_SUCCESS_BIT`
+ const CQE_SKIP_SUCCESS = 1 << sys::io_uring_sqe_flags_bit::IOSQE_CQE_SKIP_SUCCESS_BIT as u8;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `IORING_CQE_F_*` flags for use with [`io_uring_cqe`].
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringCqeFlags: u32 {
+ /// `IORING_CQE_F_BUFFER`
+ const BUFFER = bitcast!(sys::IORING_CQE_F_BUFFER);
+
+ /// `IORING_CQE_F_MORE`
+ const MORE = bitcast!(sys::IORING_CQE_F_MORE);
+
+ /// `IORING_CQE_F_SOCK_NONEMPTY`
+ const SOCK_NONEMPTY = bitcast!(sys::IORING_CQE_F_SOCK_NONEMPTY);
+
+ /// `IORING_CQE_F_NOTIF`
+ const NOTIF = bitcast!(sys::IORING_CQE_F_NOTIF);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `IORING_FSYNC_*` flags for use with [`io_uring_sqe`].
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringFsyncFlags: u32 {
+ /// `IORING_FSYNC_DATASYNC`
+ const DATASYNC = sys::IORING_FSYNC_DATASYNC;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `IORING_TIMEOUT_*` and `IORING_LINK_TIMEOUT_UPDATE` flags for use with
+ /// [`io_uring_sqe`].
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringTimeoutFlags: u32 {
+ /// `IORING_TIMEOUT_ABS`
+ const ABS = sys::IORING_TIMEOUT_ABS;
+
+ /// `IORING_TIMEOUT_UPDATE`
+ const UPDATE = sys::IORING_TIMEOUT_UPDATE;
+
+ /// `IORING_TIMEOUT_BOOTTIME`
+ const BOOTTIME = sys::IORING_TIMEOUT_BOOTTIME;
+
+ /// `IORING_TIMEOUT_ETIME_SUCCESS`
+ const ETIME_SUCCESS = sys::IORING_TIMEOUT_ETIME_SUCCESS;
+
+ /// `IORING_TIMEOUT_REALTIME`
+ const REALTIME = sys::IORING_TIMEOUT_REALTIME;
+
+ /// `IORING_TIMEOUT_CLOCK_MASK`
+ const CLOCK_MASK = sys::IORING_TIMEOUT_CLOCK_MASK;
+
+ /// `IORING_TIMEOUT_UPDATE_MASK`
+ const UPDATE_MASK = sys::IORING_TIMEOUT_UPDATE_MASK;
+
+ /// `IORING_LINK_TIMEOUT_UPDATE`
+ const LINK_TIMEOUT_UPDATE = sys::IORING_LINK_TIMEOUT_UPDATE;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `SPLICE_F_*` flags for use with [`io_uring_sqe`].
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct SpliceFlags: u32 {
+ /// `SPLICE_F_FD_IN_FIXED`
+ const FD_IN_FIXED = sys::SPLICE_F_FD_IN_FIXED;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `IORING_MSG_RING_*` flags for use with [`io_uring_sqe`].
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringMsgringFlags: u32 {
+ /// `IORING_MSG_RING_CQE_SKIP`
+ const CQE_SKIP = sys::IORING_MSG_RING_CQE_SKIP;
+
+ /// `IORING_MSG_RING_FLAGS_PASS`
+ const FLAGS_PASS = sys::IORING_MSG_RING_FLAGS_PASS;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `IORING_URING_CMD_*` flags for use with [`io_uring_sqe`].
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringUringCmdFlags: u32 {
+ /// `IORING_URING_CMD_FIXED`
+ const FIXED = sys::IORING_URING_CMD_FIXED;
+
+ /// `IORING_URING_CMD_MASK`
+ const MASK = sys::IORING_URING_CMD_MASK;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `IORING_ASYNC_CANCEL_*` flags for use with [`io_uring_sqe`].
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringAsyncCancelFlags: u32 {
+ /// `IORING_ASYNC_CANCEL_ALL`
+ const ALL = sys::IORING_ASYNC_CANCEL_ALL;
+
+ /// `IORING_ASYNC_CANCEL_FD`
+ const FD = sys::IORING_ASYNC_CANCEL_FD;
+
+ /// `IORING_ASYNC_CANCEL_FD`
+ const ANY = sys::IORING_ASYNC_CANCEL_ANY;
+
+ /// `IORING_ASYNC_CANCEL_FD`
+ const FD_FIXED = sys::IORING_ASYNC_CANCEL_FD_FIXED;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `IORING_FIXED_FD_*` flags for use with [`io_uring_sqe`].
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringFixedFdFlags: u32 {
+ /// `IORING_FIXED_FD_NO_CLOEXEC`
+ const NO_CLOEXEC = sys::IORING_FIXED_FD_NO_CLOEXEC;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `IORING_FEAT_*` flags for use with [`io_uring_params`].
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringFeatureFlags: u32 {
+ /// `IORING_FEAT_CQE_SKIP`
+ const CQE_SKIP = sys::IORING_FEAT_CQE_SKIP;
+
+ /// `IORING_FEAT_CUR_PERSONALITY`
+ const CUR_PERSONALITY = sys::IORING_FEAT_CUR_PERSONALITY;
+
+ /// `IORING_FEAT_EXT_ARG`
+ const EXT_ARG = sys::IORING_FEAT_EXT_ARG;
+
+ /// `IORING_FEAT_FAST_POLL`
+ const FAST_POLL = sys::IORING_FEAT_FAST_POLL;
+
+ /// `IORING_FEAT_NATIVE_WORKERS`
+ const NATIVE_WORKERS = sys::IORING_FEAT_NATIVE_WORKERS;
+
+ /// `IORING_FEAT_NODROP`
+ const NODROP = sys::IORING_FEAT_NODROP;
+
+ /// `IORING_FEAT_POLL_32BITS`
+ const POLL_32BITS = sys::IORING_FEAT_POLL_32BITS;
+
+ /// `IORING_FEAT_RSRC_TAGS`
+ const RSRC_TAGS = sys::IORING_FEAT_RSRC_TAGS;
+
+ /// `IORING_FEAT_RW_CUR_POS`
+ const RW_CUR_POS = sys::IORING_FEAT_RW_CUR_POS;
+
+ /// `IORING_FEAT_SINGLE_MMAP`
+ const SINGLE_MMAP = sys::IORING_FEAT_SINGLE_MMAP;
+
+ /// `IORING_FEAT_SQPOLL_NONFIXED`
+ const SQPOLL_NONFIXED = sys::IORING_FEAT_SQPOLL_NONFIXED;
+
+ /// `IORING_FEAT_SUBMIT_STABLE`
+ const SUBMIT_STABLE = sys::IORING_FEAT_SUBMIT_STABLE;
+
+ /// `IORING_FEAT_LINKED_FILE`
+ const LINKED_FILE = sys::IORING_FEAT_LINKED_FILE;
+
+ /// `IORING_FEAT_REG_REG_RING`
+ const REG_REG_RING = sys::IORING_FEAT_REG_REG_RING;
+
+ /// `IORING_FEAT_RECVSEND_BUNDLE`
+ const RECVSEND_BUNDLE = sys::IORING_FEAT_RECVSEND_BUNDLE;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `IO_URING_OP_*` flags for use with [`io_uring_probe_op`].
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringOpFlags: u16 {
+ /// `IO_URING_OP_SUPPORTED`
+ const SUPPORTED = sys::IO_URING_OP_SUPPORTED as _;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `IORING_RSRC_*` flags for use with [`io_uring_rsrc_register`].
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringRsrcFlags: u32 {
+ /// `IORING_RSRC_REGISTER_SPARSE`
+ const REGISTER_SPARSE = sys::IORING_RSRC_REGISTER_SPARSE as _;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `IORING_SQ_*` flags.
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringSqFlags: u32 {
+ /// `IORING_SQ_NEED_WAKEUP`
+ const NEED_WAKEUP = sys::IORING_SQ_NEED_WAKEUP;
+
+ /// `IORING_SQ_CQ_OVERFLOW`
+ const CQ_OVERFLOW = sys::IORING_SQ_CQ_OVERFLOW;
+
+ /// `IORING_SQ_TASKRUN`
+ const TASKRUN = sys::IORING_SQ_TASKRUN;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `IORING_CQ_*` flags.
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringCqFlags: u32 {
+ /// `IORING_CQ_EVENTFD_DISABLED`
+ const EVENTFD_DISABLED = sys::IORING_CQ_EVENTFD_DISABLED;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// `IORING_POLL_*` flags.
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringPollFlags: u32 {
+ /// `IORING_POLL_ADD_MULTI`
+ const ADD_MULTI = sys::IORING_POLL_ADD_MULTI;
+
+ /// `IORING_POLL_UPDATE_EVENTS`
+ const UPDATE_EVENTS = sys::IORING_POLL_UPDATE_EVENTS;
+
+ /// `IORING_POLL_UPDATE_USER_DATA`
+ const UPDATE_USER_DATA = sys::IORING_POLL_UPDATE_USER_DATA;
+
+ /// `IORING_POLL_ADD_LEVEL`
+ const ADD_LEVEL = sys::IORING_POLL_ADD_LEVEL;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// send/sendmsg flags (`sqe.ioprio`)
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringSendFlags: u16 {
+ /// `IORING_RECVSEND_POLL_FIRST`.
+ ///
+ /// See also [`IoringRecvFlags::POLL_FIRST`].
+ const POLL_FIRST = sys::IORING_RECVSEND_POLL_FIRST as _;
+
+ /// `IORING_RECVSEND_FIXED_BUF`
+ ///
+ /// See also [`IoringRecvFlags::FIXED_BUF`].
+ const FIXED_BUF = sys::IORING_RECVSEND_FIXED_BUF as _;
+
+ /// `IORING_SEND_ZC_REPORT_USAGE` (since Linux 6.2)
+ const ZC_REPORT_USAGE = sys::IORING_SEND_ZC_REPORT_USAGE as _;
+
+ /// `IORING_RECVSEND_BUNDLE`
+ ///
+ /// See also [`IoringRecvFlags::BUNDLE`].
+ const BUNDLE = sys::IORING_RECVSEND_BUNDLE as _;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// recv/recvmsg flags (`sqe.ioprio`)
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringRecvFlags: u16 {
+ /// `IORING_RECVSEND_POLL_FIRST`
+ ///
+ /// See also [`IoringSendFlags::POLL_FIRST`].
+ const POLL_FIRST = sys::IORING_RECVSEND_POLL_FIRST as _;
+
+ /// `IORING_RECV_MULTISHOT`
+ const MULTISHOT = sys::IORING_RECV_MULTISHOT as _;
+
+ /// `IORING_RECVSEND_FIXED_BUF`
+ ///
+ /// See also [`IoringSendFlags::FIXED_BUF`].
+ const FIXED_BUF = sys::IORING_RECVSEND_FIXED_BUF as _;
+
+ /// `IORING_RECVSEND_BUNDLE`
+ ///
+ /// See also [`IoringSendFlags::BUNDLE`].
+ const BUNDLE = sys::IORING_RECVSEND_BUNDLE as _;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// accept flags (`sqe.ioprio`)
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct IoringAcceptFlags: u16 {
+ /// `IORING_ACCEPT_MULTISHOT`
+ const MULTISHOT = sys::IORING_ACCEPT_MULTISHOT as _;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags::bitflags! {
+ /// recvmsg out flags
+ #[repr(transparent)]
+ #[derive(Default, Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct RecvmsgOutFlags: u32 {
+ /// `MSG_EOR`
+ const EOR = net::MSG_EOR;
+
+ /// `MSG_TRUNC`
+ const TRUNC = net::MSG_TRUNC;
+
+ /// `MSG_CTRUNC`
+ const CTRUNC = net::MSG_CTRUNC;
+
+ /// `MSG_OOB`
+ const OOB = net::MSG_OOB;
+
+ /// `MSG_ERRQUEUE`
+ const ERRQUEUE = net::MSG_ERRQUEUE;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[allow(missing_docs)]
+pub const IORING_CQE_BUFFER_SHIFT: u32 = sys::IORING_CQE_BUFFER_SHIFT as _;
+#[allow(missing_docs)]
+pub const IORING_FILE_INDEX_ALLOC: i32 = sys::IORING_FILE_INDEX_ALLOC as _;
+
+// Re-export these as `u64`, which is the `offset` type in `rustix::io::mmap`.
+#[allow(missing_docs)]
+pub const IORING_OFF_SQ_RING: u64 = sys::IORING_OFF_SQ_RING as _;
+#[allow(missing_docs)]
+pub const IORING_OFF_CQ_RING: u64 = sys::IORING_OFF_CQ_RING as _;
+#[allow(missing_docs)]
+pub const IORING_OFF_SQES: u64 = sys::IORING_OFF_SQES as _;
+
+/// `IORING_REGISTER_FILES_SKIP`
+// SAFETY: `IORING_REGISTER_FILES_SKIP` is a reserved value that is never
+// dynamically allocated, so it'll remain valid for the duration of
+// `'static`.
+pub const IORING_REGISTER_FILES_SKIP: BorrowedFd<'static> =
+ unsafe { BorrowedFd::<'static>::borrow_raw(sys::IORING_REGISTER_FILES_SKIP as RawFd) };
+
+/// `IORING_NOTIF_USAGE_ZC_COPIED` (since Linux 6.2)
+pub const IORING_NOTIF_USAGE_ZC_COPIED: i32 = sys::IORING_NOTIF_USAGE_ZC_COPIED as _;
+
+/// A pointer in the io_uring API.
+///
+/// `io_uring`'s native API represents pointers as `u64` values. In order to
+/// preserve strict-provenance, use a `*mut c_void`. On platforms where
+/// pointers are narrower than 64 bits, this requires additional padding.
+#[repr(C)]
+#[cfg_attr(any(target_arch = "arm", target_arch = "powerpc"), repr(align(8)))]
+#[derive(Copy, Clone)]
+#[non_exhaustive]
+pub struct io_uring_ptr {
+ #[cfg(all(target_pointer_width = "32", target_endian = "big"))]
+ #[doc(hidden)]
+ pub __pad32: u32,
+ #[cfg(all(target_pointer_width = "16", target_endian = "big"))]
+ #[doc(hidden)]
+ pub __pad16: u16,
+
+ /// The pointer value.
+ pub ptr: *mut c_void,
+
+ #[cfg(all(target_pointer_width = "16", target_endian = "little"))]
+ #[doc(hidden)]
+ pub __pad16: u16,
+ #[cfg(all(target_pointer_width = "32", target_endian = "little"))]
+ #[doc(hidden)]
+ pub __pad32: u32,
+}
+
+impl io_uring_ptr {
+ /// Construct a null `io_uring_ptr`.
+ #[inline]
+ pub const fn null() -> Self {
+ Self::new(null_mut())
+ }
+
+ /// Construct a new `io_uring_ptr`.
+ #[inline]
+ pub const fn new(ptr: *mut c_void) -> Self {
+ Self {
+ ptr,
+
+ #[cfg(target_pointer_width = "16")]
+ __pad16: 0,
+ #[cfg(any(target_pointer_width = "16", target_pointer_width = "32"))]
+ __pad32: 0,
+ }
+ }
+}
+
+impl From<*mut c_void> for io_uring_ptr {
+ #[inline]
+ fn from(ptr: *mut c_void) -> Self {
+ Self::new(ptr)
+ }
+}
+
+impl PartialEq for io_uring_ptr {
+ #[inline]
+ fn eq(&self, other: &Self) -> bool {
+ self.ptr.eq(&other.ptr)
+ }
+}
+
+impl Eq for io_uring_ptr {}
+
+#[allow(clippy::non_canonical_partial_ord_impl)]
+impl PartialOrd for io_uring_ptr {
+ #[inline]
+ fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
+ self.ptr.partial_cmp(&other.ptr)
+ }
+}
+
+impl Ord for io_uring_ptr {
+ #[inline]
+ fn cmp(&self, other: &Self) -> Ordering {
+ self.ptr.cmp(&other.ptr)
+ }
+}
+
+impl Hash for io_uring_ptr {
+ #[inline]
+ fn hash<H: Hasher>(&self, state: &mut H) {
+ self.ptr.hash(state)
+ }
+}
+
+impl Default for io_uring_ptr {
+ #[inline]
+ fn default() -> Self {
+ Self::null()
+ }
+}
+
+impl core::fmt::Pointer for io_uring_ptr {
+ fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+ self.ptr.fmt(f)
+ }
+}
+
+impl core::fmt::Debug for io_uring_ptr {
+ fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+ self.ptr.fmt(f)
+ }
+}
+
+/// User data in the io_uring API.
+///
+/// `io_uring`'s native API represents `user_data` fields as `u64` values. In
+/// order to preserve strict-provenance, use a union which allows users to
+/// optionally store pointers.
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union io_uring_user_data {
+ /// An arbitrary `u64`.
+ pub u64_: u64,
+
+ /// A pointer.
+ pub ptr: io_uring_ptr,
+}
+
+impl io_uring_user_data {
+ /// Create a zero-initialized `Self`.
+ pub const fn zeroed() -> Self {
+ // Initialize the `u64_` field, which is the size of the full union.
+ // This can use `core::mem::zeroed` in Rust 1.75.
+ Self { u64_: 0 }
+ }
+
+ /// Return the `u64` value.
+ #[inline]
+ pub const fn u64_(self) -> u64 {
+ // SAFETY: All the fields have the same underlying representation.
+ unsafe { self.u64_ }
+ }
+
+ /// Create a `Self` from a `u64` value.
+ #[inline]
+ pub const fn from_u64(u64_: u64) -> Self {
+ Self { u64_ }
+ }
+
+ /// Return the `ptr` pointer value.
+ #[inline]
+ pub const fn ptr(self) -> *mut c_void {
+ // SAFETY: All the fields have the same underlying representation.
+ unsafe { self.ptr }.ptr
+ }
+
+ /// Create a `Self` from a pointer value.
+ #[inline]
+ pub const fn from_ptr(ptr: *mut c_void) -> Self {
+ Self {
+ ptr: io_uring_ptr::new(ptr),
+ }
+ }
+}
+
+impl From<u64> for io_uring_user_data {
+ #[inline]
+ fn from(u64_: u64) -> Self {
+ Self::from_u64(u64_)
+ }
+}
+
+impl From<*mut c_void> for io_uring_user_data {
+ #[inline]
+ fn from(ptr: *mut c_void) -> Self {
+ Self::from_ptr(ptr)
+ }
+}
+
+impl PartialEq for io_uring_user_data {
+ #[inline]
+ fn eq(&self, other: &Self) -> bool {
+ // SAFETY: `io_uring_ptr` and `u64` have the same layout.
+ unsafe { self.u64_.eq(&other.u64_) }
+ }
+}
+
+impl Eq for io_uring_user_data {}
+
+#[allow(clippy::non_canonical_partial_ord_impl)]
+impl PartialOrd for io_uring_user_data {
+ #[inline]
+ fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
+ // SAFETY: `io_uring_ptr` and `u64` have the same layout.
+ unsafe { self.u64_.partial_cmp(&other.u64_) }
+ }
+}
+
+impl Ord for io_uring_user_data {
+ #[inline]
+ fn cmp(&self, other: &Self) -> Ordering {
+ // SAFETY: `io_uring_ptr` and `u64` have the same layout.
+ unsafe { self.u64_.cmp(&other.u64_) }
+ }
+}
+
+impl Hash for io_uring_user_data {
+ #[inline]
+ fn hash<H: Hasher>(&self, state: &mut H) {
+ // SAFETY: `io_uring_ptr` and `u64` have the same layout.
+ unsafe { self.u64_.hash(state) }
+ }
+}
+
+impl Default for io_uring_user_data {
+ #[inline]
+ fn default() -> Self {
+ Self::zeroed()
+ }
+}
+
+impl core::fmt::Debug for io_uring_user_data {
+ fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+ // SAFETY: Just format as a `u64`, since formatting doesn't preserve
+ // provenance, and we don't have a discriminant.
+ unsafe { self.u64_.fmt(f) }
+ }
+}
+
+/// An io_uring Submission Queue Entry.
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Copy, Clone, Default)]
+pub struct io_uring_sqe {
+ pub opcode: IoringOp,
+ pub flags: IoringSqeFlags,
+ pub ioprio: ioprio_union,
+ pub fd: RawFd,
+ pub off_or_addr2: off_or_addr2_union,
+ pub addr_or_splice_off_in: addr_or_splice_off_in_union,
+ pub len: len_union,
+ pub op_flags: op_flags_union,
+ pub user_data: io_uring_user_data,
+ pub buf: buf_union,
+ pub personality: u16,
+ pub splice_fd_in_or_file_index_or_addr_len: splice_fd_in_or_file_index_or_addr_len_union,
+ pub addr3_or_cmd: addr3_or_cmd_union,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ioprio_union {
+ pub recv_flags: IoringRecvFlags,
+ pub send_flags: IoringSendFlags,
+ pub accept_flags: IoringAcceptFlags,
+ pub ioprio: u16,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union len_union {
+ pub poll_flags: IoringPollFlags,
+ pub len: u32,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union addr3_or_cmd_union {
+ pub addr3: addr3_struct,
+ pub cmd: [u8; 0],
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Copy, Clone, Default)]
+#[non_exhaustive]
+pub struct addr3_struct {
+ pub addr3: u64,
+ #[doc(hidden)]
+ pub __pad2: [u64; 1],
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union off_or_addr2_union {
+ pub off: u64,
+ pub addr2: io_uring_ptr,
+ pub cmd_op: cmd_op_struct,
+ pub user_data: io_uring_user_data,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Copy, Clone)]
+#[non_exhaustive]
+pub struct cmd_op_struct {
+ pub cmd_op: u32,
+ #[doc(hidden)]
+ pub __pad1: u32,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union addr_or_splice_off_in_union {
+ pub addr: io_uring_ptr,
+ pub splice_off_in: u64,
+ pub msgring_cmd: IoringMsgringCmds,
+ pub user_data: io_uring_user_data,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union op_flags_union {
+ pub rw_flags: crate::io::ReadWriteFlags,
+ pub fsync_flags: IoringFsyncFlags,
+ pub poll_events: u16,
+ pub poll32_events: u32,
+ pub sync_range_flags: u32,
+ /// `msg_flags` is split into `send_flags` and `recv_flags`.
+ #[doc(alias = "msg_flags")]
+ pub send_flags: SendFlags,
+ /// `msg_flags` is split into `send_flags` and `recv_flags`.
+ #[doc(alias = "msg_flags")]
+ pub recv_flags: RecvFlags,
+ pub timeout_flags: IoringTimeoutFlags,
+ pub accept_flags: SocketFlags,
+ pub cancel_flags: IoringAsyncCancelFlags,
+ pub open_flags: OFlags,
+ pub statx_flags: AtFlags,
+ pub fadvise_advice: Advice,
+ pub splice_flags: SpliceFlags,
+ pub rename_flags: RenameFlags,
+ pub unlink_flags: AtFlags,
+ pub hardlink_flags: AtFlags,
+ pub xattr_flags: XattrFlags,
+ pub msg_ring_flags: IoringMsgringFlags,
+ pub uring_cmd_flags: IoringUringCmdFlags,
+ pub futex_flags: FutexWaitvFlags,
+ pub install_fd_flags: IoringFixedFdFlags,
+}
+
+#[allow(missing_docs)]
+#[repr(C, packed)]
+#[derive(Copy, Clone)]
+pub union buf_union {
+ pub buf_index: u16,
+ pub buf_group: u16,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union splice_fd_in_or_file_index_or_addr_len_union {
+ pub splice_fd_in: i32,
+ pub file_index: u32,
+ pub addr_len: addr_len_struct,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Copy, Clone)]
+#[non_exhaustive]
+pub struct addr_len_struct {
+ pub addr_len: u16,
+ #[doc(hidden)]
+ pub __pad3: [u16; 1],
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Copy, Clone)]
+#[non_exhaustive]
+pub struct io_uring_sync_cancel_reg {
+ pub addr: io_uring_user_data,
+ pub fd: i32,
+ pub flags: IoringAsyncCancelFlags,
+ pub timeout: Timespec,
+ pub opcode: u8,
+ #[doc(hidden)]
+ pub pad: [u8; 7],
+ #[doc(hidden)]
+ pub pad2: [u64; 3],
+}
+
+impl Default for io_uring_sync_cancel_reg {
+ #[inline]
+ fn default() -> Self {
+ Self {
+ addr: Default::default(),
+ fd: Default::default(),
+ flags: Default::default(),
+ timeout: Timespec {
+ tv_sec: 0,
+ tv_nsec: 0,
+ },
+ opcode: Default::default(),
+ pad: Default::default(),
+ pad2: Default::default(),
+ }
+ }
+}
+
+/// An io_uring Completion Queue Entry.
+///
+/// This does not derive `Copy` or `Clone` because the `big_cqe` field is not
+/// automatically copyable.
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Default)]
+pub struct io_uring_cqe {
+ pub user_data: io_uring_user_data,
+ pub res: i32,
+ pub flags: IoringCqeFlags,
+ pub big_cqe: IncompleteArrayField<u64>,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Copy, Clone, Default)]
+#[non_exhaustive]
+pub struct io_uring_restriction {
+ pub opcode: IoringRestrictionOp,
+ pub register_or_sqe_op_or_sqe_flags: register_or_sqe_op_or_sqe_flags_union,
+ #[doc(hidden)]
+ pub resv: u8,
+ #[doc(hidden)]
+ pub resv2: [u32; 3],
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union register_or_sqe_op_or_sqe_flags_union {
+ pub register_op: IoringRegisterOp,
+ pub sqe_op: IoringOp,
+ pub sqe_flags: IoringSqeFlags,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Copy, Clone, Default)]
+#[non_exhaustive]
+pub struct io_uring_params {
+ pub sq_entries: u32,
+ pub cq_entries: u32,
+ pub flags: IoringSetupFlags,
+ pub sq_thread_cpu: u32,
+ pub sq_thread_idle: u32,
+ pub features: IoringFeatureFlags,
+ pub wq_fd: RawFd,
+ #[doc(hidden)]
+ pub resv: [u32; 3],
+ pub sq_off: io_sqring_offsets,
+ pub cq_off: io_cqring_offsets,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Copy, Clone, Default)]
+#[non_exhaustive]
+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,
+ #[doc(hidden)]
+ pub resv1: u32,
+ pub user_addr: io_uring_ptr,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Copy, Clone, Default)]
+#[non_exhaustive]
+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,
+ #[doc(hidden)]
+ pub resv1: u32,
+ pub user_addr: io_uring_ptr,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Default)]
+#[non_exhaustive]
+pub struct io_uring_probe {
+ pub last_op: IoringOp,
+ pub ops_len: u8,
+ #[doc(hidden)]
+ pub resv: u16,
+ #[doc(hidden)]
+ pub resv2: [u32; 3],
+ pub ops: IncompleteArrayField<io_uring_probe_op>,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Copy, Clone, Default)]
+#[non_exhaustive]
+pub struct io_uring_probe_op {
+ pub op: IoringOp,
+ #[doc(hidden)]
+ pub resv: u8,
+ pub flags: IoringOpFlags,
+ #[doc(hidden)]
+ pub resv2: u32,
+}
+
+#[allow(missing_docs)]
+#[repr(C, align(8))]
+#[derive(Debug, Copy, Clone, Default)]
+#[non_exhaustive]
+pub struct io_uring_files_update {
+ pub offset: u32,
+ #[doc(hidden)]
+ pub resv: u32,
+ pub fds: io_uring_ptr,
+}
+
+#[allow(missing_docs)]
+#[repr(C, align(8))]
+#[derive(Debug, Copy, Clone, Default)]
+#[non_exhaustive]
+pub struct io_uring_rsrc_register {
+ pub nr: u32,
+ pub flags: IoringRsrcFlags,
+ #[doc(hidden)]
+ pub resv2: u64,
+ pub data: io_uring_ptr,
+ pub tags: io_uring_ptr,
+}
+
+#[allow(missing_docs)]
+#[repr(C, align(8))]
+#[derive(Debug, Copy, Clone, Default)]
+#[non_exhaustive]
+pub struct io_uring_rsrc_update {
+ pub offset: u32,
+ #[doc(hidden)]
+ pub resv: u32,
+ pub data: io_uring_ptr,
+}
+
+#[allow(missing_docs)]
+#[repr(C, align(8))]
+#[derive(Debug, Copy, Clone, Default)]
+#[non_exhaustive]
+pub struct io_uring_rsrc_update2 {
+ pub offset: u32,
+ #[doc(hidden)]
+ pub resv: u32,
+ pub data: io_uring_ptr,
+ pub tags: io_uring_ptr,
+ pub nr: u32,
+ #[doc(hidden)]
+ pub resv2: u32,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Copy, Clone, Default)]
+pub struct io_uring_getevents_arg {
+ pub sigmask: io_uring_ptr,
+ pub sigmask_sz: u32,
+ pub min_wait_usec: u32,
+ pub ts: io_uring_ptr,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct io_uring_recvmsg_out {
+ pub namelen: SocketAddrLen,
+ pub controllen: u32,
+ pub payloadlen: u32,
+ pub flags: RecvmsgOutFlags,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+ pub iov_base: *mut c_void,
+ pub iov_len: usize,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Copy, Clone, Default)]
+#[non_exhaustive]
+pub struct open_how {
+ /// An [`OFlags`] value represented as a `u64`.
+ pub flags: u64,
+
+ /// A [`Mode`] value represented as a `u64`.
+ pub mode: u64,
+
+ pub resolve: ResolveFlags,
+}
+
+impl open_how {
+ /// Create a zero-initialized `Self`.
+ pub const fn zeroed() -> Self {
+ Self {
+ flags: 0,
+ mode: 0,
+ resolve: ResolveFlags::empty(),
+ }
+ }
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Copy, Clone, Default)]
+#[non_exhaustive]
+pub struct io_uring_buf_reg {
+ pub ring_addr: io_uring_ptr,
+ pub ring_entries: u32,
+ pub bgid: u16,
+ pub flags: u16,
+ #[doc(hidden)]
+ pub resv: [u64; 3_usize],
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Copy, Clone, Default)]
+#[non_exhaustive]
+pub struct io_uring_buf {
+ pub addr: io_uring_ptr,
+ pub len: u32,
+ pub bid: u16,
+ #[doc(hidden)]
+ pub resv: u16,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Copy, Clone, Default)]
+#[non_exhaustive]
+pub struct buf_ring_tail_struct {
+ #[doc(hidden)]
+ pub resv1: u64,
+ #[doc(hidden)]
+ pub resv2: u32,
+ #[doc(hidden)]
+ pub resv3: u16,
+ pub tail: u16,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Default)]
+pub struct buf_ring_bufs_struct {
+ pub bufs: IncompleteArrayField<io_uring_buf>,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Default)]
+pub struct tail_or_bufs_struct {
+ pub tail: UnionField<buf_ring_tail_struct>,
+ pub bufs: UnionField<buf_ring_bufs_struct>,
+ pub union_field: [u64; 2],
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Default)]
+pub struct io_uring_buf_ring {
+ pub tail_or_bufs: tail_or_bufs_struct,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Default)]
+#[non_exhaustive]
+pub struct io_uring_napi {
+ pub busy_poll_to: u32,
+ pub prefer_busy_poll: u8,
+ pub opcode: u8,
+ #[doc(hidden)]
+ pub pad: [u8; 2],
+ pub op_param: u32,
+ #[doc(hidden)]
+ pub resv: u32,
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Default)]
+#[non_exhaustive]
+pub struct io_uring_clone_buffers {
+ pub src_fd: u32,
+ pub flags: u32,
+ pub src_off: u32,
+ pub dst_off: u32,
+ pub nr: u32,
+ #[doc(hidden)]
+ pub pad: [u32; 3],
+}
+
+#[allow(missing_docs)]
+#[repr(C)]
+#[derive(Debug, Default)]
+#[non_exhaustive]
+pub struct io_uring_reg_wait {
+ pub ts: Timespec,
+ pub min_wait_usec: u32,
+ pub flags: u32,
+ pub sigmask: io_uring_ptr,
+ pub sigmask_sz: u32,
+ #[doc(hidden)]
+ pub pad: [u32; 3],
+ #[doc(hidden)]
+ pub pad2: [u64; 2],
+}
+
+impl Default for ioprio_union {
+ #[inline]
+ fn default() -> Self {
+ default_union!(ioprio_union, ioprio)
+ }
+}
+
+impl Default for len_union {
+ #[inline]
+ fn default() -> Self {
+ default_union!(len_union, len)
+ }
+}
+
+impl Default for off_or_addr2_union {
+ #[inline]
+ fn default() -> Self {
+ default_union!(off_or_addr2_union, off)
+ }
+}
+
+impl Default for addr_or_splice_off_in_union {
+ #[inline]
+ fn default() -> Self {
+ default_union!(addr_or_splice_off_in_union, splice_off_in)
+ }
+}
+
+impl Default for addr3_or_cmd_union {
+ #[inline]
+ fn default() -> Self {
+ default_union!(addr3_or_cmd_union, addr3)
+ }
+}
+
+impl Default for op_flags_union {
+ #[inline]
+ fn default() -> Self {
+ default_union!(op_flags_union, sync_range_flags)
+ }
+}
+
+impl Default for buf_union {
+ #[inline]
+ fn default() -> Self {
+ default_union!(buf_union, buf_index)
+ }
+}
+
+impl Default for splice_fd_in_or_file_index_or_addr_len_union {
+ #[inline]
+ fn default() -> Self {
+ default_union!(splice_fd_in_or_file_index_or_addr_len_union, splice_fd_in)
+ }
+}
+
+impl Default for register_or_sqe_op_or_sqe_flags_union {
+ #[inline]
+ fn default() -> Self {
+ default_union!(register_or_sqe_op_or_sqe_flags_union, sqe_flags)
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use crate::fd::AsRawFd as _;
+
+ /// Check that our custom structs and unions have the same layout as the
+ /// kernel's versions.
+ #[test]
+ fn io_uring_layouts() {
+ use sys as c;
+
+ // `io_uring_ptr` is a replacement for `u64`.
+ assert_eq_size!(io_uring_ptr, u64);
+ assert_eq_align!(io_uring_ptr, u64);
+
+ // Test that pointers are stored in `io_uring_ptr` in the way that
+ // io_uring stores them in a `u64`.
+ unsafe {
+ const MAGIC: u64 = !0x0123_4567_89ab_cdef;
+ let ptr = io_uring_ptr::new(MAGIC as usize as *mut c_void);
+ assert_eq!(ptr.ptr, MAGIC as usize as *mut c_void);
+ #[cfg(target_pointer_width = "16")]
+ assert_eq!(ptr.__pad16, 0);
+ #[cfg(any(target_pointer_width = "16", target_pointer_width = "32"))]
+ assert_eq!(ptr.__pad32, 0);
+ let int = core::mem::transmute::<io_uring_ptr, u64>(ptr);
+ assert_eq!(int, MAGIC as usize as u64);
+ }
+
+ // `io_uring_user_data` is a replacement for `u64`.
+ assert_eq_size!(io_uring_user_data, u64);
+ assert_eq_align!(io_uring_user_data, u64);
+
+ // Test that `u64`s and pointers are properly stored in
+ // `io_uring_user_data`.
+ unsafe {
+ const MAGIC: u64 = !0x0123_4567_89ab_cdef;
+ let user_data = io_uring_user_data::from_u64(MAGIC);
+ assert_eq!(user_data.u64_(), MAGIC);
+ assert_eq!(
+ core::mem::transmute::<io_uring_user_data, u64>(user_data),
+ MAGIC
+ );
+ let user_data = io_uring_user_data::from_ptr(MAGIC as usize as *mut c_void);
+ assert_eq!(user_data.ptr(), MAGIC as usize as *mut c_void);
+ assert_eq!(
+ core::mem::transmute::<io_uring_user_data, u64>(user_data),
+ MAGIC as usize as u64
+ );
+ }
+
+ check_renamed_type!(off_or_addr2_union, io_uring_sqe__bindgen_ty_1);
+ check_renamed_type!(addr_or_splice_off_in_union, io_uring_sqe__bindgen_ty_2);
+ check_renamed_type!(addr3_or_cmd_union, io_uring_sqe__bindgen_ty_6);
+ check_renamed_type!(op_flags_union, io_uring_sqe__bindgen_ty_3);
+ check_renamed_type!(buf_union, io_uring_sqe__bindgen_ty_4);
+ check_renamed_type!(
+ splice_fd_in_or_file_index_or_addr_len_union,
+ io_uring_sqe__bindgen_ty_5
+ );
+ check_renamed_type!(addr_len_struct, io_uring_sqe__bindgen_ty_5__bindgen_ty_1);
+ check_renamed_type!(
+ register_or_sqe_op_or_sqe_flags_union,
+ io_uring_restriction__bindgen_ty_1
+ );
+
+ check_renamed_type!(addr3_struct, io_uring_sqe__bindgen_ty_6__bindgen_ty_1);
+ check_renamed_type!(cmd_op_struct, io_uring_sqe__bindgen_ty_1__bindgen_ty_1);
+
+ check_type!(io_uring_sqe);
+ check_struct_field!(io_uring_sqe, opcode);
+ check_struct_field!(io_uring_sqe, flags);
+ check_struct_field!(io_uring_sqe, ioprio);
+ check_struct_field!(io_uring_sqe, fd);
+ check_struct_renamed_field!(io_uring_sqe, off_or_addr2, __bindgen_anon_1);
+ check_struct_renamed_field!(io_uring_sqe, addr_or_splice_off_in, __bindgen_anon_2);
+ check_struct_field!(io_uring_sqe, len);
+ check_struct_renamed_field!(io_uring_sqe, op_flags, __bindgen_anon_3);
+ check_struct_field!(io_uring_sqe, user_data);
+ check_struct_renamed_field!(io_uring_sqe, buf, __bindgen_anon_4);
+ check_struct_field!(io_uring_sqe, personality);
+ check_struct_renamed_field!(
+ io_uring_sqe,
+ splice_fd_in_or_file_index_or_addr_len,
+ __bindgen_anon_5
+ );
+ check_struct_renamed_field!(io_uring_sqe, addr3_or_cmd, __bindgen_anon_6);
+
+ check_type!(io_uring_restriction);
+ check_struct_field!(io_uring_restriction, opcode);
+ check_struct_renamed_field!(
+ io_uring_restriction,
+ register_or_sqe_op_or_sqe_flags,
+ __bindgen_anon_1
+ );
+ check_struct_field!(io_uring_restriction, resv);
+ check_struct_field!(io_uring_restriction, resv2);
+
+ check_struct!(io_uring_cqe, user_data, res, flags, big_cqe);
+ check_struct!(
+ io_uring_params,
+ sq_entries,
+ cq_entries,
+ flags,
+ sq_thread_cpu,
+ sq_thread_idle,
+ features,
+ wq_fd,
+ resv,
+ sq_off,
+ cq_off
+ );
+ check_struct!(
+ io_sqring_offsets,
+ head,
+ tail,
+ ring_mask,
+ ring_entries,
+ flags,
+ dropped,
+ array,
+ resv1,
+ user_addr
+ );
+ check_struct!(
+ io_cqring_offsets,
+ head,
+ tail,
+ ring_mask,
+ ring_entries,
+ overflow,
+ cqes,
+ flags,
+ resv1,
+ user_addr
+ );
+ check_struct!(io_uring_recvmsg_out, namelen, controllen, payloadlen, flags);
+ check_struct!(io_uring_probe, last_op, ops_len, resv, resv2, ops);
+ check_struct!(io_uring_probe_op, op, resv, flags, resv2);
+ check_struct!(io_uring_files_update, offset, resv, fds);
+ check_struct!(io_uring_rsrc_register, nr, flags, resv2, data, tags);
+ check_struct!(io_uring_rsrc_update, offset, resv, data);
+ check_struct!(io_uring_rsrc_update2, offset, resv, data, tags, nr, resv2);
+ check_struct!(
+ io_uring_getevents_arg,
+ sigmask,
+ sigmask_sz,
+ min_wait_usec,
+ ts
+ );
+ check_struct!(iovec, iov_base, iov_len);
+ check_struct!(open_how, flags, mode, resolve);
+ check_struct!(io_uring_buf_reg, ring_addr, ring_entries, bgid, flags, resv);
+ check_struct!(io_uring_buf, addr, len, bid, resv);
+ check_struct!(
+ io_uring_sync_cancel_reg,
+ addr,
+ fd,
+ flags,
+ timeout,
+ opcode,
+ pad,
+ pad2
+ );
+
+ check_renamed_type!(tail_or_bufs_struct, io_uring_buf_ring__bindgen_ty_1);
+ check_renamed_type!(
+ buf_ring_tail_struct,
+ io_uring_buf_ring__bindgen_ty_1__bindgen_ty_1
+ );
+ check_renamed_type!(
+ buf_ring_bufs_struct,
+ io_uring_buf_ring__bindgen_ty_1__bindgen_ty_2
+ );
+ check_struct_renamed_field!(io_uring_buf_ring, tail_or_bufs, __bindgen_anon_1);
+
+ check_struct!(
+ io_uring_napi,
+ busy_poll_to,
+ prefer_busy_poll,
+ opcode,
+ pad,
+ op_param,
+ resv
+ );
+ check_struct!(
+ io_uring_clone_buffers,
+ src_fd,
+ flags,
+ src_off,
+ dst_off,
+ nr,
+ pad
+ );
+ check_struct!(
+ io_uring_reg_wait,
+ ts,
+ min_wait_usec,
+ flags,
+ sigmask,
+ sigmask_sz,
+ pad,
+ pad2
+ );
+
+ check_renamed_struct!(
+ MsgHdr,
+ msghdr,
+ msg_name,
+ msg_namelen,
+ msg_iov,
+ msg_iovlen,
+ msg_control,
+ msg_controllen,
+ msg_flags
+ );
+ }
+
+ #[test]
+ fn test_io_uring_register_files_skip() {
+ use crate::backend::c;
+ assert!(IORING_REGISTER_FILES_SKIP.as_raw_fd() != -1);
+ assert!(IORING_REGISTER_FILES_SKIP.as_raw_fd() != c::STDIN_FILENO);
+ assert!(IORING_REGISTER_FILES_SKIP.as_raw_fd() != c::STDOUT_FILENO);
+ assert!(IORING_REGISTER_FILES_SKIP.as_raw_fd() != c::STDERR_FILENO);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/ioctl/bsd.rs b/vendor/rustix-1.0.8/src/ioctl/bsd.rs
new file mode 100644
index 0000000..965b31d
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/ioctl/bsd.rs
@@ -0,0 +1,27 @@
+//! `ioctl` opcode behavior for BSD platforms.
+
+use super::{Direction, Opcode};
+
+pub(super) const fn compose_opcode(
+ dir: Direction,
+ group: Opcode,
+ num: Opcode,
+ size: Opcode,
+) -> Opcode {
+ let dir = match dir {
+ Direction::None => NONE,
+ Direction::Read => READ,
+ Direction::Write => WRITE,
+ Direction::ReadWrite => READ | WRITE,
+ };
+
+ dir | num | (group << 8) | ((size & IOCPARAM_MASK) << 16)
+}
+
+// `IOC_VOID`
+pub const NONE: Opcode = 0x2000_0000;
+// `IOC_OUT` (“out” is from the perspective of the kernel)
+pub const READ: Opcode = 0x4000_0000;
+// `IOC_IN` (“in” is from the perspective of the kernel)
+pub const WRITE: Opcode = 0x8000_0000;
+pub const IOCPARAM_MASK: Opcode = 0x1FFF;
diff --git a/vendor/rustix-1.0.8/src/ioctl/linux.rs b/vendor/rustix-1.0.8/src/ioctl/linux.rs
new file mode 100644
index 0000000..7215228
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/ioctl/linux.rs
@@ -0,0 +1,124 @@
+//! `ioctl` opcode behavior for Linux platforms.
+
+use super::{Direction, Opcode};
+use consts::*;
+
+/// Compose an opcode from its component parts.
+pub(super) const fn compose_opcode(
+ dir: Direction,
+ group: Opcode,
+ num: Opcode,
+ size: Opcode,
+) -> Opcode {
+ macro_rules! mask_and_shift {
+ ($val:expr, $shift:expr, $mask:expr) => {{
+ ($val & $mask) << $shift
+ }};
+ }
+
+ let dir = match dir {
+ Direction::None => NONE,
+ Direction::Read => READ,
+ Direction::Write => WRITE,
+ Direction::ReadWrite => READ | WRITE,
+ };
+
+ mask_and_shift!(group, GROUP_SHIFT, GROUP_MASK)
+ | mask_and_shift!(num, NUM_SHIFT, NUM_MASK)
+ | mask_and_shift!(size, SIZE_SHIFT, SIZE_MASK)
+ | mask_and_shift!(dir, DIR_SHIFT, DIR_MASK)
+}
+
+const NUM_BITS: Opcode = 8;
+const GROUP_BITS: Opcode = 8;
+
+const NUM_SHIFT: Opcode = 0;
+const GROUP_SHIFT: Opcode = NUM_SHIFT + NUM_BITS;
+const SIZE_SHIFT: Opcode = GROUP_SHIFT + GROUP_BITS;
+const DIR_SHIFT: Opcode = SIZE_SHIFT + SIZE_BITS;
+
+const NUM_MASK: Opcode = (1 << NUM_BITS) - 1;
+const GROUP_MASK: Opcode = (1 << GROUP_BITS) - 1;
+const SIZE_MASK: Opcode = (1 << SIZE_BITS) - 1;
+const DIR_MASK: Opcode = (1 << DIR_BITS) - 1;
+
+#[cfg(any(
+ target_arch = "x86",
+ target_arch = "arm",
+ target_arch = "s390x",
+ target_arch = "x86_64",
+ target_arch = "aarch64",
+ target_arch = "riscv32",
+ target_arch = "riscv64",
+ target_arch = "loongarch64",
+ target_arch = "csky"
+))]
+mod consts {
+ use super::Opcode;
+
+ pub(super) const NONE: Opcode = 0;
+ pub(super) const READ: Opcode = 2;
+ pub(super) const WRITE: Opcode = 1;
+ pub(super) const SIZE_BITS: Opcode = 14;
+ pub(super) const DIR_BITS: Opcode = 2;
+}
+
+#[cfg(any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "powerpc",
+ target_arch = "powerpc64",
+ target_arch = "sparc",
+ target_arch = "sparc64"
+))]
+mod consts {
+ use super::Opcode;
+
+ pub(super) const NONE: Opcode = 1;
+ pub(super) const READ: Opcode = 2;
+ pub(super) const WRITE: Opcode = 4;
+ pub(super) const SIZE_BITS: Opcode = 13;
+ pub(super) const DIR_BITS: Opcode = 3;
+}
+
+#[cfg(test)]
+mod tests {
+ #[allow(unused_imports)]
+ use super::*;
+
+ #[cfg(not(any(
+ // These have no ioctl opcodes defined in linux_raw_sys so we can't use
+ // that as a known-good value for this test.
+ target_arch = "sparc",
+ target_arch = "sparc64"
+)))]
+ #[test]
+ fn check_known_opcodes() {
+ use crate::backend::c::{c_long, c_uint};
+ use core::mem::size_of;
+
+ // _IOR('U', 15, unsigned int)
+ assert_eq!(
+ compose_opcode(
+ Direction::Read,
+ b'U' as Opcode,
+ 15,
+ size_of::<c_uint>() as Opcode
+ ),
+ linux_raw_sys::ioctl::USBDEVFS_CLAIMINTERFACE as Opcode
+ );
+
+ // _IOW('v', 2, long)
+ assert_eq!(
+ compose_opcode(
+ Direction::Write,
+ b'v' as Opcode,
+ 2,
+ size_of::<c_long>() as Opcode
+ ),
+ linux_raw_sys::ioctl::FS_IOC_SETVERSION as Opcode
+ );
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/ioctl/mod.rs b/vendor/rustix-1.0.8/src/ioctl/mod.rs
new file mode 100644
index 0000000..e3e8f8e
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/ioctl/mod.rs
@@ -0,0 +1,376 @@
+//! Unsafe `ioctl` API.
+//!
+//! Unix systems expose a number of `ioctl`'s. `ioctl`s have been adopted as a
+//! general purpose system call for making calls into the kernel. In addition
+//! to the wide variety of system calls that are included by default in the
+//! kernel, many drivers expose their own `ioctl`'s for controlling their
+//! behavior, some of which are proprietary. Therefore it is impossible to make
+//! a safe interface for every `ioctl` call, as they all have wildly varying
+//! semantics.
+//!
+//! This module provides an unsafe interface to write your own `ioctl` API. To
+//! start, create a type that implements [`Ioctl`]. Then, pass it to [`ioctl`]
+//! to make the `ioctl` call.
+
+#![allow(unsafe_code)]
+
+use crate::fd::{AsFd, BorrowedFd};
+use crate::ffi as c;
+use crate::io::Result;
+
+#[cfg(any(linux_kernel, bsd))]
+use core::mem;
+
+pub use patterns::*;
+
+mod patterns;
+
+#[cfg(linux_kernel)]
+mod linux;
+
+#[cfg(bsd)]
+mod bsd;
+
+#[cfg(linux_kernel)]
+use linux as platform;
+
+#[cfg(bsd)]
+use bsd as platform;
+
+/// Perform an `ioctl` call.
+///
+/// `ioctl` was originally intended to act as a way of modifying the behavior
+/// of files, but has since been adopted as a general purpose system call for
+/// making calls into the kernel. In addition to the default calls exposed by
+/// generic file descriptors, many drivers expose their own `ioctl` calls for
+/// controlling their behavior, some of which are proprietary.
+///
+/// This crate exposes many other `ioctl` interfaces with safe and idiomatic
+/// wrappers, like [`ioctl_fionbio`] and [`ioctl_fionread`]. It is recommended
+/// to use those instead of this function, as they are safer and more
+/// idiomatic. For other cases, implement the [`Ioctl`] API and pass it to this
+/// function.
+///
+/// See documentation for [`Ioctl`] for more information.
+///
+/// [`ioctl_fionbio`]: crate::io::ioctl_fionbio
+/// [`ioctl_fionread`]: crate::io::ioctl_fionread
+///
+/// # Safety
+///
+/// While [`Ioctl`] takes much of the unsafety out of `ioctl` calls, callers
+/// must still ensure that the opcode value, operand type, and data access
+/// correctly reflect what's in the device driver servicing the call. `ioctl`
+/// calls form a protocol between the userspace `ioctl` callers and the device
+/// drivers in the kernel, and safety depends on both sides agreeing and
+/// upholding the expectations of the other.
+///
+/// And, `ioctl` calls can read and write arbitrary memory and have arbitrary
+/// side effects. Callers must ensure that any memory accesses and side effects
+/// are compatible with Rust language invariants.
+///
+/// # References
+/// - [Linux]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [Apple]
+/// - [Solaris]
+/// - [illumos]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/ioctl.2.html
+/// [Winsock]: https://learn.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-ioctlsocket
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=ioctl&sektion=2
+/// [NetBSD]: https://man.netbsd.org/ioctl.2
+/// [OpenBSD]: https://man.openbsd.org/ioctl.2
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/ioctl.2.html
+/// [Solaris]: https://docs.oracle.com/cd/E23824_01/html/821-1463/ioctl-2.html
+/// [illumos]: https://illumos.org/man/2/ioctl
+#[inline]
+pub unsafe fn ioctl<F: AsFd, I: Ioctl>(fd: F, mut ioctl: I) -> Result<I::Output> {
+ let fd = fd.as_fd();
+ let request = ioctl.opcode();
+ let arg = ioctl.as_ptr();
+
+ // SAFETY: The variant of `Ioctl` asserts that this is a valid IOCTL call
+ // to make.
+ let output = if I::IS_MUTATING {
+ _ioctl(fd, request, arg)?
+ } else {
+ _ioctl_readonly(fd, request, arg)?
+ };
+
+ // SAFETY: The variant of `Ioctl` asserts that this is a valid pointer to
+ // the output data.
+ I::output_from_ptr(output, arg)
+}
+
+unsafe fn _ioctl(fd: BorrowedFd<'_>, request: Opcode, arg: *mut c::c_void) -> Result<IoctlOutput> {
+ crate::backend::io::syscalls::ioctl(fd, request, arg)
+}
+
+unsafe fn _ioctl_readonly(
+ fd: BorrowedFd<'_>,
+ request: Opcode,
+ arg: *mut c::c_void,
+) -> Result<IoctlOutput> {
+ crate::backend::io::syscalls::ioctl_readonly(fd, request, arg)
+}
+
+/// A trait defining the properties of an `ioctl` command.
+///
+/// Objects implementing this trait can be passed to [`ioctl`] to make an
+/// `ioctl` call. The contents of the object represent the inputs to the
+/// `ioctl` call. The inputs must be convertible to a pointer through the
+/// `as_ptr` method. In most cases, this involves either casting a number to a
+/// pointer, or creating a pointer to the actual data. The latter case is
+/// necessary for `ioctl` calls that modify userspace data.
+///
+/// # Safety
+///
+/// This trait is unsafe to implement because it is impossible to guarantee
+/// that the `ioctl` call is safe. The `ioctl` call may be proprietary, or it
+/// may be unsafe to call in certain circumstances.
+///
+/// By implementing this trait, you guarantee that:
+///
+/// - The `ioctl` call expects the input provided by `as_ptr` and produces the
+/// output as indicated by `output`.
+/// - That `output_from_ptr` can safely take the pointer from `as_ptr` and
+/// cast it to the correct type, *only* after the `ioctl` call.
+/// - That the return value of `opcode` uniquely identifies the `ioctl` call.
+/// - That, for whatever platforms you are targeting, the `ioctl` call is safe
+/// to make.
+/// - If `IS_MUTATING` is false, that no userspace data will be modified by
+/// the `ioctl` call.
+pub unsafe trait Ioctl {
+ /// The type of the output data.
+ ///
+ /// Given a pointer, one should be able to construct an instance of this
+ /// type.
+ type Output;
+
+ /// Does the `ioctl` mutate any data in the userspace?
+ ///
+ /// If the `ioctl` call does not mutate any data in the userspace, then
+ /// making this `false` enables optimizations that can make the call
+ /// faster. When in doubt, set this to `true`.
+ ///
+ /// # Safety
+ ///
+ /// This should only be set to `false` if the `ioctl` call does not mutate
+ /// any data in the userspace. Undefined behavior may occur if this is set
+ /// to `false` when it should be `true`.
+ const IS_MUTATING: bool;
+
+ /// Get the opcode used by this `ioctl` command.
+ ///
+ /// There are different types of opcode depending on the operation. See
+ /// documentation for [`opcode`] for more information.
+ fn opcode(&self) -> Opcode;
+
+ /// Get a pointer to the data to be passed to the `ioctl` command.
+ ///
+ /// See trait-level documentation for more information.
+ fn as_ptr(&mut self) -> *mut c::c_void;
+
+ /// Cast the output data to the correct type.
+ ///
+ /// # Safety
+ ///
+ /// The `extract_output` value must be the resulting value after a
+ /// successful `ioctl` call, and `out` is the direct return value of an
+ /// `ioctl` call that did not fail. In this case `extract_output` is the
+ /// pointer that was passed to the `ioctl` call.
+ unsafe fn output_from_ptr(
+ out: IoctlOutput,
+ extract_output: *mut c::c_void,
+ ) -> Result<Self::Output>;
+}
+
+/// Const functions for computing opcode values.
+///
+/// Linux's headers define macros such as `_IO`, `_IOR`, `_IOW`, and `_IOWR`
+/// for defining ioctl values in a structured way that encode whether they
+/// are reading and/or writing, and other information about the ioctl. The
+/// functions in this module correspond to those macros.
+///
+/// If you're writing a driver and defining your own ioctl numbers, it's
+/// recommended to use these functions to compute them.
+#[cfg(any(linux_kernel, bsd))]
+pub mod opcode {
+ use super::*;
+
+ /// Create a new opcode from a direction, group, number, and size.
+ ///
+ /// This corresponds to the C macro `_IOC(direction, group, number, size)`
+ #[doc(alias = "_IOC")]
+ #[inline]
+ pub const fn from_components(
+ direction: Direction,
+ group: u8,
+ number: u8,
+ data_size: usize,
+ ) -> Opcode {
+ assert!(data_size <= Opcode::MAX as usize, "data size is too large");
+
+ platform::compose_opcode(
+ direction,
+ group as Opcode,
+ number as Opcode,
+ data_size as Opcode,
+ )
+ }
+
+ /// Create a new opcode from a group, a number, that uses no data.
+ ///
+ /// This corresponds to the C macro `_IO(group, number)`.
+ #[doc(alias = "_IO")]
+ #[inline]
+ pub const fn none(group: u8, number: u8) -> Opcode {
+ from_components(Direction::None, group, number, 0)
+ }
+
+ /// Create a new reading opcode from a group, a number and the type of
+ /// data.
+ ///
+ /// This corresponds to the C macro `_IOR(group, number, T)`.
+ #[doc(alias = "_IOR")]
+ #[inline]
+ pub const fn read<T>(group: u8, number: u8) -> Opcode {
+ from_components(Direction::Read, group, number, mem::size_of::<T>())
+ }
+
+ /// Create a new writing opcode from a group, a number and the type of
+ /// data.
+ ///
+ /// This corresponds to the C macro `_IOW(group, number, T)`.
+ #[doc(alias = "_IOW")]
+ #[inline]
+ pub const fn write<T>(group: u8, number: u8) -> Opcode {
+ from_components(Direction::Write, group, number, mem::size_of::<T>())
+ }
+
+ /// Create a new reading and writing opcode from a group, a number and the
+ /// type of data.
+ ///
+ /// This corresponds to the C macro `_IOWR(group, number, T)`.
+ #[doc(alias = "_IOWR")]
+ #[inline]
+ pub const fn read_write<T>(group: u8, number: u8) -> Opcode {
+ from_components(Direction::ReadWrite, group, number, mem::size_of::<T>())
+ }
+}
+
+/// The direction that an `ioctl` is going.
+///
+/// The direction is relative to userspace: `Read` means reading data from the
+/// kernel, and `Write` means the kernel writing data to userspace.
+#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
+pub enum Direction {
+ /// None of the above.
+ None,
+
+ /// Read data from the kernel.
+ Read,
+
+ /// Write data to the kernel.
+ Write,
+
+ /// Read and write data to the kernel.
+ ReadWrite,
+}
+
+/// The type used by the `ioctl` to signify the output.
+pub type IoctlOutput = c::c_int;
+
+/// The type used by the `ioctl` to signify the command.
+pub type Opcode = _Opcode;
+
+// Under raw Linux, this is an `unsigned int`.
+#[cfg(linux_raw)]
+type _Opcode = c::c_uint;
+
+// On libc Linux with GNU libc or uclibc, this is an `unsigned long`.
+#[cfg(all(
+ not(linux_raw),
+ target_os = "linux",
+ any(target_env = "gnu", target_env = "uclibc")
+))]
+type _Opcode = c::c_ulong;
+
+// Musl uses `c_int`.
+#[cfg(all(
+ not(linux_raw),
+ target_os = "linux",
+ not(target_env = "gnu"),
+ not(target_env = "uclibc")
+))]
+type _Opcode = c::c_int;
+
+// Android uses `c_int`.
+#[cfg(all(not(linux_raw), target_os = "android"))]
+type _Opcode = c::c_int;
+
+// BSD, Haiku, Hurd, Redox, and Vita use `unsigned long`.
+#[cfg(any(
+ bsd,
+ target_os = "redox",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "vita"
+))]
+type _Opcode = c::c_ulong;
+
+// AIX, Emscripten, Fuchsia, Solaris, and WASI use a `int`.
+#[cfg(any(
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "fuchsia",
+ target_os = "emscripten",
+ target_os = "nto",
+ target_os = "wasi",
+))]
+type _Opcode = c::c_int;
+
+// ESP-IDF uses a `c_uint`.
+#[cfg(target_os = "espidf")]
+type _Opcode = c::c_uint;
+
+// Windows has `ioctlsocket`, which uses `i32`.
+#[cfg(windows)]
+type _Opcode = i32;
+
+#[cfg(linux_kernel)]
+#[cfg(not(any(target_arch = "sparc", target_arch = "sparc64")))]
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_opcode_funcs() {
+ // `TUNGETDEVNETNS` is defined as `_IO('T', 227)`.
+ assert_eq!(
+ linux_raw_sys::ioctl::TUNGETDEVNETNS as Opcode,
+ opcode::none(b'T', 227)
+ );
+ // `FS_IOC_GETVERSION` is defined as `_IOR('v', 1, long)`.
+ assert_eq!(
+ linux_raw_sys::ioctl::FS_IOC_GETVERSION as Opcode,
+ opcode::read::<c::c_long>(b'v', 1)
+ );
+ // `TUNSETNOCSUM` is defined as `_IOW('T', 200, int)`.
+ assert_eq!(
+ linux_raw_sys::ioctl::TUNSETNOCSUM as Opcode,
+ opcode::write::<c::c_int>(b'T', 200)
+ );
+ // `FIFREEZE` is defined as `_IOWR('X', 119, int)`.
+ assert_eq!(
+ linux_raw_sys::ioctl::FIFREEZE as Opcode,
+ opcode::read_write::<c::c_int>(b'X', 119)
+ );
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/ioctl/patterns.rs b/vendor/rustix-1.0.8/src/ioctl/patterns.rs
new file mode 100644
index 0000000..a08aae7
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/ioctl/patterns.rs
@@ -0,0 +1,268 @@
+//! Implements typical patterns for `ioctl` usage.
+
+use super::{Ioctl, IoctlOutput, Opcode};
+
+use crate::backend::c;
+use crate::io::Result;
+
+use core::ptr::addr_of_mut;
+use core::{fmt, mem};
+
+/// Implements an `ioctl` with no real arguments.
+///
+/// To compute a value for the `OPCODE` argument, see the functions in the
+/// [`opcode`] module.
+///
+/// [`opcode`]: crate::ioctl::opcode
+pub struct NoArg<const OPCODE: Opcode> {}
+
+impl<const OPCODE: Opcode> fmt::Debug for NoArg<OPCODE> {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ f.debug_tuple("NoArg").field(&OPCODE).finish()
+ }
+}
+
+impl<const OPCODE: Opcode> NoArg<OPCODE> {
+ /// Create a new no-argument `ioctl` object.
+ ///
+ /// # Safety
+ ///
+ /// - `OPCODE` must provide a valid opcode.
+ #[inline]
+ pub const unsafe fn new() -> Self {
+ Self {}
+ }
+}
+
+unsafe impl<const OPCODE: Opcode> Ioctl for NoArg<OPCODE> {
+ type Output = ();
+
+ const IS_MUTATING: bool = false;
+
+ fn opcode(&self) -> self::Opcode {
+ OPCODE
+ }
+
+ fn as_ptr(&mut self) -> *mut c::c_void {
+ core::ptr::null_mut()
+ }
+
+ unsafe fn output_from_ptr(_: IoctlOutput, _: *mut c::c_void) -> Result<Self::Output> {
+ Ok(())
+ }
+}
+
+/// Implements the traditional “getter” pattern for `ioctl`s.
+///
+/// Some `ioctl`s just read data into the userspace. As this is a popular
+/// pattern, this structure implements it.
+///
+/// To compute a value for the `OPCODE` argument, see the functions in the
+/// [`opcode`] module.
+///
+/// [`opcode`]: crate::ioctl::opcode
+pub struct Getter<const OPCODE: Opcode, Output> {
+ /// The output data.
+ output: mem::MaybeUninit<Output>,
+}
+
+impl<const OPCODE: Opcode, Output> fmt::Debug for Getter<OPCODE, Output> {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ f.debug_tuple("Getter").field(&OPCODE).finish()
+ }
+}
+
+impl<const OPCODE: Opcode, Output> Getter<OPCODE, Output> {
+ /// Create a new getter-style `ioctl` object.
+ ///
+ /// # Safety
+ ///
+ /// - `OPCODE` must provide a valid opcode.
+ /// - For this opcode, `Output` must be the type that the kernel expects
+ /// to write into.
+ #[inline]
+ pub const unsafe fn new() -> Self {
+ Self {
+ output: mem::MaybeUninit::uninit(),
+ }
+ }
+}
+
+unsafe impl<const OPCODE: Opcode, Output> Ioctl for Getter<OPCODE, Output> {
+ type Output = Output;
+
+ const IS_MUTATING: bool = true;
+
+ fn opcode(&self) -> self::Opcode {
+ OPCODE
+ }
+
+ fn as_ptr(&mut self) -> *mut c::c_void {
+ self.output.as_mut_ptr().cast()
+ }
+
+ unsafe fn output_from_ptr(_: IoctlOutput, ptr: *mut c::c_void) -> Result<Self::Output> {
+ Ok(ptr.cast::<Output>().read())
+ }
+}
+
+/// Implements the pattern for `ioctl`s where a pointer argument is given to
+/// the `ioctl`.
+///
+/// The opcode must be read-only.
+///
+/// To compute a value for the `OPCODE` argument, see the functions in the
+/// [`opcode`] module.
+///
+/// [`opcode`]: crate::ioctl::opcode
+pub struct Setter<const OPCODE: Opcode, Input> {
+ /// The input data.
+ input: Input,
+}
+
+impl<const OPCODE: Opcode, Input: fmt::Debug> fmt::Debug for Setter<OPCODE, Input> {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ f.debug_tuple("Setter")
+ .field(&OPCODE)
+ .field(&self.input)
+ .finish()
+ }
+}
+
+impl<const OPCODE: Opcode, Input> Setter<OPCODE, Input> {
+ /// Create a new pointer setter-style `ioctl` object.
+ ///
+ /// # Safety
+ ///
+ /// - `OPCODE` must provide a valid opcode.
+ /// - For this opcode, `Input` must be the type that the kernel expects to
+ /// get.
+ #[inline]
+ pub const unsafe fn new(input: Input) -> Self {
+ Self { input }
+ }
+}
+
+unsafe impl<const OPCODE: Opcode, Input> Ioctl for Setter<OPCODE, Input> {
+ type Output = ();
+
+ const IS_MUTATING: bool = false;
+
+ fn opcode(&self) -> self::Opcode {
+ OPCODE
+ }
+
+ fn as_ptr(&mut self) -> *mut c::c_void {
+ addr_of_mut!(self.input).cast::<c::c_void>()
+ }
+
+ unsafe fn output_from_ptr(_: IoctlOutput, _: *mut c::c_void) -> Result<Self::Output> {
+ Ok(())
+ }
+}
+
+/// Implements an “updater” pattern for `ioctl`s.
+///
+/// The ioctl takes a reference to a struct that it reads its input from,
+/// then writes output to the same struct.
+///
+/// To compute a value for the `OPCODE` argument, see the functions in the
+/// [`opcode`] module.
+///
+/// [`opcode`]: crate::ioctl::opcode
+pub struct Updater<'a, const OPCODE: Opcode, Value> {
+ /// Reference to input/output data.
+ value: &'a mut Value,
+}
+
+impl<'a, const OPCODE: Opcode, Value> Updater<'a, OPCODE, Value> {
+ /// Create a new pointer updater-style `ioctl` object.
+ ///
+ /// # Safety
+ ///
+ /// - `OPCODE` must provide a valid opcode.
+ /// - For this opcode, `Value` must be the type that the kernel expects to
+ /// get.
+ #[inline]
+ pub unsafe fn new(value: &'a mut Value) -> Self {
+ Self { value }
+ }
+}
+
+unsafe impl<'a, const OPCODE: Opcode, T> Ioctl for Updater<'a, OPCODE, T> {
+ type Output = ();
+
+ const IS_MUTATING: bool = true;
+
+ fn opcode(&self) -> self::Opcode {
+ OPCODE
+ }
+
+ fn as_ptr(&mut self) -> *mut c::c_void {
+ (self.value as *mut T).cast()
+ }
+
+ unsafe fn output_from_ptr(_output: IoctlOutput, _ptr: *mut c::c_void) -> Result<()> {
+ Ok(())
+ }
+}
+
+/// Implements an `ioctl` that passes an integer into the `ioctl`.
+///
+/// To compute a value for the `OPCODE` argument, see the functions in the
+/// [`opcode`] module.
+///
+/// [`opcode`]: crate::ioctl::opcode
+pub struct IntegerSetter<const OPCODE: Opcode> {
+ /// The value to pass in.
+ ///
+ /// For strict provenance preservation, this is a pointer.
+ value: *mut c::c_void,
+}
+
+impl<const OPCODE: Opcode> IntegerSetter<OPCODE> {
+ /// Create a new integer `Ioctl` helper containing a `usize`.
+ ///
+ /// # Safety
+ ///
+ /// - `OPCODE` must provide a valid opcode.
+ /// - For this opcode, it must expect an integer.
+ /// - The integer is in the valid range for this opcode.
+ #[inline]
+ pub const unsafe fn new_usize(value: usize) -> Self {
+ Self { value: value as _ }
+ }
+
+ /// Create a new integer `Ioctl` helper containing a `*mut c_void`.
+ ///
+ /// # Safety
+ ///
+ /// - `OPCODE` must provide a valid opcode.
+ /// - For this opcode, it must expect an integer.
+ /// - The integer is in the valid range for this opcode.
+ #[inline]
+ pub const unsafe fn new_pointer(value: *mut c::c_void) -> Self {
+ Self { value }
+ }
+}
+
+unsafe impl<const OPCODE: Opcode> Ioctl for IntegerSetter<OPCODE> {
+ type Output = ();
+
+ const IS_MUTATING: bool = false;
+
+ fn opcode(&self) -> self::Opcode {
+ OPCODE
+ }
+
+ fn as_ptr(&mut self) -> *mut c::c_void {
+ self.value
+ }
+
+ unsafe fn output_from_ptr(
+ _out: IoctlOutput,
+ _extract_output: *mut c::c_void,
+ ) -> Result<Self::Output> {
+ Ok(())
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/kernel_sigset.rs b/vendor/rustix-1.0.8/src/kernel_sigset.rs
new file mode 100644
index 0000000..706bcb8
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/kernel_sigset.rs
@@ -0,0 +1,326 @@
+//! The [`KernelSigSet`] type.
+
+#![allow(unsafe_code)]
+#![allow(non_camel_case_types)]
+
+use crate::backend::c;
+use crate::signal::Signal;
+use core::fmt;
+use linux_raw_sys::general::{kernel_sigset_t, _NSIG};
+
+/// `kernel_sigset_t`—A set of signal numbers, as used by some syscalls.
+///
+/// This is similar to `libc::sigset_t`, but with only enough space for the
+/// signals currently known to be used by the kernel. libc implementations
+/// reserve extra space so that if Linux defines new signals in the future
+/// they can add support without breaking their dynamic linking ABI. Rustix
+/// doesn't support a dynamic linking ABI, so if we need to increase the
+/// size of `KernelSigSet` in the future, we can do so.
+///
+/// It's also the case that the last time Linux changed the size of its
+/// `kernel_sigset_t` was when it added support for POSIX.1b signals in 1999.
+///
+/// `KernelSigSet` is guaranteed to have a subset of the layout of
+/// `libc::sigset_t`.
+///
+/// libc implementations typically also reserve some signal values for internal
+/// use. In a process that contains a libc, some unsafe functions invoke
+/// undefined behavior if passed a `KernelSigSet` that contains one of the
+/// signals that the libc reserves.
+#[repr(transparent)]
+#[derive(Clone)]
+pub struct KernelSigSet(kernel_sigset_t);
+
+impl KernelSigSet {
+ /// Create a new empty `KernelSigSet`.
+ pub const fn empty() -> Self {
+ const fn zeros<const N: usize>() -> [c::c_ulong; N] {
+ [0; N]
+ }
+ Self(kernel_sigset_t { sig: zeros() })
+ }
+
+ /// Create a new `KernelSigSet` with all signals set.
+ ///
+ /// This includes signals which are typically reserved for libc.
+ pub const fn all() -> Self {
+ const fn ones<const N: usize>() -> [c::c_ulong; N] {
+ [!0; N]
+ }
+ Self(kernel_sigset_t { sig: ones() })
+ }
+
+ /// Remove all signals.
+ pub fn clear(&mut self) {
+ *self = Self(kernel_sigset_t {
+ sig: Default::default(),
+ });
+ }
+
+ /// Insert a signal.
+ pub fn insert(&mut self, sig: Signal) {
+ let sigs_per_elt = core::mem::size_of_val(&self.0.sig[0]) * 8;
+
+ let raw = (sig.as_raw().wrapping_sub(1)) as usize;
+ self.0.sig[raw / sigs_per_elt] |= 1 << (raw % sigs_per_elt);
+ }
+
+ /// Insert all signals.
+ pub fn insert_all(&mut self) {
+ self.0.sig.fill(!0);
+ }
+
+ /// Remove a signal.
+ pub fn remove(&mut self, sig: Signal) {
+ let sigs_per_elt = core::mem::size_of_val(&self.0.sig[0]) * 8;
+
+ let raw = (sig.as_raw().wrapping_sub(1)) as usize;
+ self.0.sig[raw / sigs_per_elt] &= !(1 << (raw % sigs_per_elt));
+ }
+
+ /// Test whether a given signal is present.
+ pub fn contains(&self, sig: Signal) -> bool {
+ let sigs_per_elt = core::mem::size_of_val(&self.0.sig[0]) * 8;
+
+ let raw = (sig.as_raw().wrapping_sub(1)) as usize;
+ (self.0.sig[raw / sigs_per_elt] & (1 << (raw % sigs_per_elt))) != 0
+ }
+}
+
+impl Default for KernelSigSet {
+ #[inline]
+ fn default() -> Self {
+ Self::empty()
+ }
+}
+
+impl fmt::Debug for KernelSigSet {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ let mut d = f.debug_set();
+
+ // Surprisingly, `_NSIG` is inclusive.
+ for i in 1..=_NSIG {
+ // SAFETY: This value is non-zero, in range, and only used for
+ // debug output.
+ let sig = unsafe { Signal::from_raw_unchecked(i as _) };
+
+ if self.contains(sig) {
+ d.entry(&sig);
+ }
+ }
+
+ d.finish()
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ #[cfg(linux_raw)]
+ use crate::runtime::{KERNEL_SIGRTMAX, KERNEL_SIGRTMIN};
+ use core::mem::{align_of, size_of};
+
+ #[test]
+ fn test_assumptions() {
+ #[cfg(linux_raw)]
+ assert!(KERNEL_SIGRTMAX as usize - 1 < size_of::<KernelSigSet>() * 8);
+ }
+
+ #[test]
+ fn test_layouts() {
+ assert!(size_of::<KernelSigSet>() <= size_of::<libc::sigset_t>());
+ assert!(align_of::<KernelSigSet>() <= align_of::<libc::sigset_t>());
+ }
+
+ /// A bunch of signals for testing.
+ fn sigs() -> Vec<Signal> {
+ #[allow(unused_mut)]
+ let mut sigs = vec![
+ Signal::HUP,
+ Signal::INT,
+ Signal::QUIT,
+ Signal::ILL,
+ Signal::TRAP,
+ Signal::ABORT,
+ Signal::BUS,
+ Signal::FPE,
+ Signal::KILL,
+ Signal::USR1,
+ Signal::SEGV,
+ Signal::USR2,
+ Signal::PIPE,
+ Signal::ALARM,
+ Signal::TERM,
+ Signal::CHILD,
+ Signal::CONT,
+ Signal::STOP,
+ Signal::TSTP,
+ Signal::TTIN,
+ Signal::TTOU,
+ Signal::URG,
+ Signal::XCPU,
+ Signal::XFSZ,
+ Signal::VTALARM,
+ Signal::PROF,
+ Signal::WINCH,
+ Signal::SYS,
+ unsafe { Signal::from_raw_unchecked(libc::SIGRTMIN()) },
+ unsafe { Signal::from_raw_unchecked(libc::SIGRTMIN() + 7) },
+ unsafe { Signal::from_raw_unchecked(libc::SIGRTMAX()) },
+ ];
+
+ #[cfg(linux_raw)]
+ {
+ sigs.push(unsafe { Signal::from_raw_unchecked(KERNEL_SIGRTMIN) });
+ sigs.push(unsafe { Signal::from_raw_unchecked(KERNEL_SIGRTMIN + 7) });
+ sigs.push(unsafe { Signal::from_raw_unchecked(KERNEL_SIGRTMAX) });
+ }
+
+ sigs
+ }
+
+ /// A bunch of non-reserved signals for testing.
+ fn libc_sigs() -> [Signal; 31] {
+ [
+ Signal::HUP,
+ Signal::INT,
+ Signal::QUIT,
+ Signal::ILL,
+ Signal::TRAP,
+ Signal::ABORT,
+ Signal::BUS,
+ Signal::FPE,
+ Signal::KILL,
+ Signal::USR1,
+ Signal::SEGV,
+ Signal::USR2,
+ Signal::PIPE,
+ Signal::ALARM,
+ Signal::TERM,
+ Signal::CHILD,
+ Signal::CONT,
+ Signal::STOP,
+ Signal::TSTP,
+ Signal::TTIN,
+ Signal::TTOU,
+ Signal::URG,
+ Signal::XCPU,
+ Signal::XFSZ,
+ Signal::VTALARM,
+ Signal::PROF,
+ Signal::WINCH,
+ Signal::SYS,
+ unsafe { Signal::from_raw_unchecked(libc::SIGRTMIN()) },
+ unsafe { Signal::from_raw_unchecked(libc::SIGRTMIN() + 7) },
+ unsafe { Signal::from_raw_unchecked(libc::SIGRTMAX()) },
+ ]
+ }
+
+ #[test]
+ fn test_ops_plain() {
+ for sig in sigs() {
+ let mut set = KernelSigSet::empty();
+ for sig in sigs() {
+ assert!(!set.contains(sig));
+ }
+
+ set.insert(sig);
+ assert!(set.contains(sig));
+ for sig in sigs().iter().filter(|s| **s != sig) {
+ assert!(!set.contains(*sig));
+ }
+
+ set.remove(sig);
+ for sig in sigs() {
+ assert!(!set.contains(sig));
+ }
+ }
+ }
+
+ #[test]
+ fn test_clear() {
+ let mut set = KernelSigSet::empty();
+ for sig in sigs() {
+ set.insert(sig);
+ }
+
+ set.clear();
+
+ for sig in sigs() {
+ assert!(!set.contains(sig));
+ }
+ }
+
+ // io_uring libraries assume that libc's `sigset_t` matches the layout
+ // of the Linux kernel's `kernel_sigset_t`. Test that rustix's layout
+ // matches as well.
+ #[test]
+ fn test_libc_layout_compatibility() {
+ use crate::utils::as_ptr;
+
+ let mut lc = unsafe { core::mem::zeroed::<libc::sigset_t>() };
+ let mut ru = KernelSigSet::empty();
+ let r = unsafe { libc::sigemptyset(&mut lc) };
+
+ assert_eq!(r, 0);
+ assert_eq!(
+ unsafe {
+ libc::memcmp(
+ as_ptr(&lc).cast(),
+ as_ptr(&ru).cast(),
+ core::mem::size_of::<KernelSigSet>(),
+ )
+ },
+ 0
+ );
+
+ for sig in libc_sigs() {
+ ru.insert(sig);
+ assert_ne!(
+ unsafe {
+ libc::memcmp(
+ as_ptr(&lc).cast(),
+ as_ptr(&ru).cast(),
+ core::mem::size_of::<KernelSigSet>(),
+ )
+ },
+ 0
+ );
+ let r = unsafe { libc::sigaddset(&mut lc, sig.as_raw()) };
+ assert_eq!(r, 0);
+ assert_eq!(
+ unsafe {
+ libc::memcmp(
+ as_ptr(&lc).cast(),
+ as_ptr(&ru).cast(),
+ core::mem::size_of::<KernelSigSet>(),
+ )
+ },
+ 0
+ );
+ ru.remove(sig);
+ assert_ne!(
+ unsafe {
+ libc::memcmp(
+ as_ptr(&lc).cast(),
+ as_ptr(&ru).cast(),
+ core::mem::size_of::<KernelSigSet>(),
+ )
+ },
+ 0
+ );
+ let r = unsafe { libc::sigdelset(&mut lc, sig.as_raw()) };
+ assert_eq!(r, 0);
+ assert_eq!(
+ unsafe {
+ libc::memcmp(
+ as_ptr(&lc).cast(),
+ as_ptr(&ru).cast(),
+ core::mem::size_of::<KernelSigSet>(),
+ )
+ },
+ 0
+ );
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/lib.rs b/vendor/rustix-1.0.8/src/lib.rs
new file mode 100644
index 0000000..77f8a21
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/lib.rs
@@ -0,0 +1,426 @@
+//! `rustix` provides efficient memory-safe and [I/O-safe] wrappers to
+//! POSIX-like, Unix-like, Linux, and Winsock syscall-like APIs, with
+//! configurable backends.
+//!
+//! With rustix, you can write code like this:
+//!
+//! ```
+//! # #[cfg(feature = "net")]
+//! # fn read(sock: std::net::TcpStream, buf: &mut [u8]) -> std::io::Result<()> {
+//! # use rustix::net::RecvFlags;
+//! let (nread, _received) = rustix::net::recv(&sock, buf, RecvFlags::PEEK)?;
+//! # let _ = nread;
+//! # Ok(())
+//! # }
+//! ```
+//!
+//! instead of like this:
+//!
+//! ```
+//! # #[cfg(feature = "net")]
+//! # fn read(sock: std::net::TcpStream, buf: &mut [u8]) -> std::io::Result<()> {
+//! # #[cfg(unix)]
+//! # use std::os::unix::io::AsRawFd;
+//! # #[cfg(target_os = "wasi")]
+//! # use std::os::wasi::io::AsRawFd;
+//! # #[cfg(windows)]
+//! # use windows_sys::Win32::Networking::WinSock as libc;
+//! # #[cfg(windows)]
+//! # use std::os::windows::io::AsRawSocket;
+//! # const MSG_PEEK: i32 = libc::MSG_PEEK;
+//! let nread = unsafe {
+//! #[cfg(any(unix, target_os = "wasi"))]
+//! let raw = sock.as_raw_fd();
+//! #[cfg(windows)]
+//! let raw = sock.as_raw_socket();
+//! match libc::recv(
+//! raw as _,
+//! buf.as_mut_ptr().cast(),
+//! buf.len().try_into().unwrap_or(i32::MAX as _),
+//! MSG_PEEK,
+//! ) {
+//! -1 => return Err(std::io::Error::last_os_error()),
+//! nread => nread as usize,
+//! }
+//! };
+//! # let _ = nread;
+//! # Ok(())
+//! # }
+//! ```
+//!
+//! rustix's APIs perform the following tasks:
+//! - Error values are translated to [`Result`]s.
+//! - Buffers are passed as Rust slices.
+//! - Out-parameters are presented as return values.
+//! - Path arguments use [`Arg`], so they accept any string type.
+//! - File descriptors are passed and returned via [`AsFd`] and [`OwnedFd`]
+//! instead of bare integers, ensuring I/O safety.
+//! - Constants use `enum`s and [`bitflags`] types, and enable [support for
+//! externally defined flags].
+//! - Multiplexed functions (eg. `fcntl`, `ioctl`, etc.) are de-multiplexed.
+//! - Variadic functions (eg. `openat`, etc.) are presented as non-variadic.
+//! - Functions that return strings automatically allocate sufficient memory
+//! and retry the syscall as needed to determine the needed length.
+//! - Functions and types which need `l` prefixes or `64` suffixes to enable
+//! large-file support (LFS) are used automatically. File sizes and offsets
+//! are always presented as `u64` and `i64`.
+//! - Behaviors that depend on the sizes of C types like `long` are hidden.
+//! - In some places, more human-friendly and less historical-accident names
+//! are used (and documentation aliases are used so that the original names
+//! can still be searched for).
+//! - Provide y2038 compatibility, on platforms which support this.
+//! - Correct selected platform bugs, such as behavioral differences when
+//! running under seccomp.
+//! - Use `timespec` for timestamps and timeouts instead of `timeval` and
+//! `c_int` milliseconds.
+//!
+//! Things they don't do include:
+//! - Detecting whether functions are supported at runtime, except in specific
+//! cases where new interfaces need to be detected to support y2038 and LFS.
+//! - Hiding significant differences between platforms.
+//! - Restricting ambient authorities.
+//! - Imposing sandboxing features such as filesystem path or network address
+//! sandboxing.
+//!
+//! See [`cap-std`], [`system-interface`], and [`io-streams`] for libraries
+//! which do hide significant differences between platforms, and [`cap-std`]
+//! which does perform sandboxing and restricts ambient authorities.
+//!
+//! [`cap-std`]: https://crates.io/crates/cap-std
+//! [`system-interface`]: https://crates.io/crates/system-interface
+//! [`io-streams`]: https://crates.io/crates/io-streams
+//! [`bitflags`]: bitflags
+//! [`AsFd`]: crate::fd::AsFd
+//! [`OwnedFd`]: crate::fd::OwnedFd
+//! [I/O-safe]: https://github.com/rust-lang/rfcs/blob/master/text/3128-io-safety.md
+//! [`Arg`]: path::Arg
+//! [support for externally defined flags]: bitflags#externally-defined-flags
+
+#![deny(missing_docs)]
+#![allow(stable_features)]
+#![cfg_attr(linux_raw, deny(unsafe_code))]
+#![cfg_attr(rustc_attrs, feature(rustc_attrs))]
+#![cfg_attr(docsrs, feature(doc_cfg))]
+#![cfg_attr(all(wasi_ext, target_os = "wasi", feature = "std"), feature(wasi_ext))]
+#![cfg_attr(core_ffi_c, feature(core_ffi_c))]
+#![cfg_attr(core_c_str, feature(core_c_str))]
+#![cfg_attr(error_in_core, feature(error_in_core))]
+#![cfg_attr(all(feature = "alloc", alloc_c_string), feature(alloc_c_string))]
+#![cfg_attr(all(feature = "alloc", alloc_ffi), feature(alloc_ffi))]
+#![cfg_attr(not(feature = "std"), no_std)]
+#![cfg_attr(feature = "rustc-dep-of-std", feature(ip))]
+#![cfg_attr(feature = "rustc-dep-of-std", allow(internal_features))]
+#![cfg_attr(
+ any(feature = "rustc-dep-of-std", core_intrinsics),
+ feature(core_intrinsics)
+)]
+#![cfg_attr(asm_experimental_arch, feature(asm_experimental_arch))]
+#![cfg_attr(not(feature = "all-apis"), allow(dead_code))]
+// It is common in Linux and libc APIs for types to vary between platforms.
+#![allow(clippy::unnecessary_cast)]
+// It is common in Linux and libc APIs for types to vary between platforms.
+#![allow(clippy::useless_conversion)]
+// This clippy lint gets too many false positives.
+#![allow(clippy::needless_lifetimes)]
+// Until `unnecessary_transmutes` is recognized by our MSRV, don't warn about
+// it being unrecognized.
+#![allow(unknown_lints)]
+// Until `cast_signed` and `cast_unsigned` are supported by our MSRV, don't
+// warn about transmutes that could be changed to them.
+#![allow(unnecessary_transmutes)]
+// Redox and WASI have enough differences that it isn't worth precisely
+// conditionalizing all the `use`s for them. Similar for if we don't have
+// "all-apis".
+#![cfg_attr(
+ any(target_os = "redox", target_os = "wasi", not(feature = "all-apis")),
+ allow(unused_imports)
+)]
+// wasip2 conditionally gates stdlib APIs such as `OsStrExt`.
+// <https://github.com/rust-lang/rust/issues/130323>
+#![cfg_attr(
+ all(
+ target_os = "wasi",
+ target_env = "p2",
+ any(feature = "fs", feature = "mount", feature = "net"),
+ wasip2,
+ ),
+ feature(wasip2)
+)]
+
+#[cfg(all(feature = "alloc", feature = "rustc-dep-of-std"))]
+extern crate rustc_std_workspace_alloc as alloc;
+
+#[cfg(all(feature = "alloc", not(feature = "rustc-dep-of-std")))]
+extern crate alloc;
+
+// Use `static_assertions` macros if we have them, or a polyfill otherwise.
+#[cfg(all(test, static_assertions))]
+#[macro_use]
+#[allow(unused_imports)]
+extern crate static_assertions;
+#[cfg(all(test, not(static_assertions)))]
+#[macro_use]
+#[allow(unused_imports)]
+mod static_assertions;
+
+pub mod buffer;
+#[cfg(not(windows))]
+#[macro_use]
+pub(crate) mod cstr;
+#[macro_use]
+pub(crate) mod utils;
+// Polyfill for `std` in `no_std` builds.
+#[cfg_attr(feature = "std", path = "maybe_polyfill/std/mod.rs")]
+#[cfg_attr(not(feature = "std"), path = "maybe_polyfill/no_std/mod.rs")]
+pub(crate) mod maybe_polyfill;
+#[cfg(test)]
+#[macro_use]
+pub(crate) mod check_types;
+#[macro_use]
+pub(crate) mod bitcast;
+
+// linux_raw: Weak symbols are used by the use-libc-auxv feature for
+// glibc 2.15 support.
+//
+// libc: Weak symbols are used to call various functions available in some
+// versions of libc and not others.
+#[cfg(any(
+ all(linux_raw, feature = "use-libc-auxv"),
+ all(libc, not(any(windows, target_os = "espidf", target_os = "wasi")))
+))]
+#[macro_use]
+mod weak;
+
+// Pick the backend implementation to use.
+#[cfg_attr(libc, path = "backend/libc/mod.rs")]
+#[cfg_attr(linux_raw, path = "backend/linux_raw/mod.rs")]
+#[cfg_attr(wasi, path = "backend/wasi/mod.rs")]
+mod backend;
+
+/// Export the `*Fd` types and traits that are used in rustix's public API.
+///
+/// This module exports the types and traits from [`std::os::fd`], or polyills
+/// on Rust < 1.66 or on Windows.
+///
+/// On Windows, the polyfill consists of aliases of the socket types and
+/// traits, For example, [`OwnedSocket`] is aliased to `OwnedFd`, and so on,
+/// and there are blanket impls for `AsFd` etc. that map to `AsSocket` impls.
+/// These blanket impls suffice for using the traits, however not for
+/// implementing them, so this module also exports `AsSocket` and the other
+/// traits as-is so that users can implement them if needed.
+///
+/// [`OwnedSocket`]: https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedSocket.html
+pub mod fd {
+ pub use super::backend::fd::*;
+}
+
+// The public API modules.
+#[cfg(feature = "event")]
+#[cfg_attr(docsrs, doc(cfg(feature = "event")))]
+pub mod event;
+pub mod ffi;
+#[cfg(not(windows))]
+#[cfg(feature = "fs")]
+#[cfg_attr(docsrs, doc(cfg(feature = "fs")))]
+pub mod fs;
+pub mod io;
+#[cfg(linux_kernel)]
+#[cfg(feature = "io_uring")]
+#[cfg_attr(docsrs, doc(cfg(feature = "io_uring")))]
+pub mod io_uring;
+pub mod ioctl;
+#[cfg(not(any(
+ windows,
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[cfg(feature = "mm")]
+#[cfg_attr(docsrs, doc(cfg(feature = "mm")))]
+pub mod mm;
+#[cfg(linux_kernel)]
+#[cfg(feature = "mount")]
+#[cfg_attr(docsrs, doc(cfg(feature = "mount")))]
+pub mod mount;
+#[cfg(not(target_os = "wasi"))]
+#[cfg(feature = "net")]
+#[cfg_attr(docsrs, doc(cfg(feature = "net")))]
+pub mod net;
+#[cfg(not(any(windows, target_os = "espidf")))]
+#[cfg(feature = "param")]
+#[cfg_attr(docsrs, doc(cfg(feature = "param")))]
+pub mod param;
+#[cfg(not(windows))]
+#[cfg(any(feature = "fs", feature = "mount", feature = "net"))]
+#[cfg_attr(
+ docsrs,
+ doc(cfg(any(feature = "fs", feature = "mount", feature = "net")))
+)]
+pub mod path;
+#[cfg(feature = "pipe")]
+#[cfg_attr(docsrs, doc(cfg(feature = "pipe")))]
+#[cfg(not(any(windows, target_os = "wasi")))]
+pub mod pipe;
+#[cfg(not(windows))]
+#[cfg(feature = "process")]
+#[cfg_attr(docsrs, doc(cfg(feature = "process")))]
+pub mod process;
+#[cfg(not(windows))]
+#[cfg(not(target_os = "wasi"))]
+#[cfg(feature = "pty")]
+#[cfg_attr(docsrs, doc(cfg(feature = "pty")))]
+pub mod pty;
+#[cfg(not(windows))]
+#[cfg(feature = "rand")]
+#[cfg_attr(docsrs, doc(cfg(feature = "rand")))]
+pub mod rand;
+#[cfg(not(any(
+ windows,
+ target_os = "android",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[cfg(feature = "shm")]
+#[cfg_attr(docsrs, doc(cfg(feature = "shm")))]
+pub mod shm;
+#[cfg(not(windows))]
+#[cfg(feature = "stdio")]
+#[cfg_attr(docsrs, doc(cfg(feature = "stdio")))]
+pub mod stdio;
+#[cfg(feature = "system")]
+#[cfg(not(any(windows, target_os = "wasi")))]
+#[cfg_attr(docsrs, doc(cfg(feature = "system")))]
+pub mod system;
+#[cfg(not(any(windows, target_os = "horizon", target_os = "vita")))]
+#[cfg(feature = "termios")]
+#[cfg_attr(docsrs, doc(cfg(feature = "termios")))]
+pub mod termios;
+#[cfg(not(windows))]
+#[cfg(feature = "thread")]
+#[cfg_attr(docsrs, doc(cfg(feature = "thread")))]
+pub mod thread;
+#[cfg(not(any(windows, target_os = "espidf")))]
+#[cfg(feature = "time")]
+#[cfg_attr(docsrs, doc(cfg(feature = "time")))]
+pub mod time;
+
+// "runtime" is also a public API module, but it's only for libc-like users.
+#[cfg(not(windows))]
+#[cfg(feature = "runtime")]
+#[cfg(linux_raw)]
+#[cfg_attr(not(document_experimental_runtime_api), doc(hidden))]
+#[cfg_attr(docsrs, doc(cfg(feature = "runtime")))]
+pub mod runtime;
+
+// Declare "fs" as a non-public module if "fs" isn't enabled but we need it for
+// reading procfs.
+#[cfg(not(windows))]
+#[cfg(not(feature = "fs"))]
+#[cfg(all(
+ linux_raw,
+ not(feature = "use-libc-auxv"),
+ not(feature = "use-explicitly-provided-auxv"),
+ any(
+ feature = "param",
+ feature = "runtime",
+ feature = "thread",
+ feature = "time",
+ target_arch = "x86",
+ )
+))]
+#[cfg_attr(docsrs, doc(cfg(feature = "fs")))]
+pub(crate) mod fs;
+
+// Similarly, declare `path` as a non-public module if needed.
+#[cfg(not(windows))]
+#[cfg(not(any(feature = "fs", feature = "mount", feature = "net")))]
+#[cfg(all(
+ linux_raw,
+ not(feature = "use-libc-auxv"),
+ not(feature = "use-explicitly-provided-auxv"),
+ any(
+ feature = "param",
+ feature = "runtime",
+ feature = "thread",
+ feature = "time",
+ target_arch = "x86",
+ )
+))]
+pub(crate) mod path;
+
+// Private modules used by multiple public modules.
+#[cfg(not(any(windows, target_os = "espidf")))]
+#[cfg(any(feature = "thread", feature = "time"))]
+mod clockid;
+#[cfg(linux_kernel)]
+#[cfg(any(feature = "io_uring", feature = "runtime"))]
+mod kernel_sigset;
+#[cfg(not(any(windows, target_os = "wasi")))]
+#[cfg(any(
+ feature = "process",
+ feature = "runtime",
+ feature = "termios",
+ feature = "thread",
+ all(bsd, feature = "event"),
+ all(linux_kernel, feature = "net")
+))]
+mod pid;
+#[cfg(any(feature = "process", feature = "thread"))]
+#[cfg(linux_kernel)]
+mod prctl;
+#[cfg(not(any(windows, target_os = "espidf", target_os = "wasi")))]
+#[cfg(any(
+ feature = "io_uring",
+ feature = "process",
+ feature = "runtime",
+ all(bsd, feature = "event")
+))]
+mod signal;
+#[cfg(any(
+ feature = "fs",
+ feature = "event",
+ feature = "process",
+ feature = "runtime",
+ feature = "thread",
+ feature = "time",
+ all(feature = "event", any(bsd, linux_kernel, windows, target_os = "wasi")),
+ all(
+ linux_raw,
+ not(feature = "use-libc-auxv"),
+ not(feature = "use-explicitly-provided-auxv"),
+ any(
+ feature = "param",
+ feature = "process",
+ feature = "runtime",
+ feature = "time",
+ target_arch = "x86",
+ )
+ )
+))]
+mod timespec;
+#[cfg(not(any(windows, target_os = "wasi")))]
+#[cfg(any(
+ feature = "fs",
+ feature = "process",
+ feature = "thread",
+ all(
+ linux_raw,
+ not(feature = "use-libc-auxv"),
+ not(feature = "use-explicitly-provided-auxv"),
+ any(
+ feature = "param",
+ feature = "runtime",
+ feature = "time",
+ target_arch = "x86",
+ )
+ ),
+ all(linux_kernel, feature = "net")
+))]
+mod ugid;
+
+#[cfg(doc)]
+#[cfg_attr(docsrs, doc(cfg(doc)))]
+pub mod not_implemented;
diff --git a/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/io/mod.rs b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/io/mod.rs
new file mode 100644
index 0000000..f0ad750
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/io/mod.rs
@@ -0,0 +1,107 @@
+//! The following is derived from Rust's
+//! library/std/src/sys/unix/io.rs
+//! dca3f1b786efd27be3b325ed1e01e247aa589c3b.
+//!
+//! All code in this file is licensed MIT or Apache 2.0 at your option.
+
+#![allow(unsafe_code)]
+use crate::backend::c;
+#[cfg(not(linux_raw))]
+use c::size_t as __kernel_size_t;
+use core::marker::PhantomData;
+use core::slice;
+#[cfg(linux_raw)]
+use linux_raw_sys::general::__kernel_size_t;
+
+/// <https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html>
+#[derive(Copy, Clone)]
+#[repr(transparent)]
+pub struct IoSlice<'a> {
+ vec: c::iovec,
+ _p: PhantomData<&'a [u8]>,
+}
+
+impl<'a> IoSlice<'a> {
+ /// <https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html#method.new>
+ #[inline]
+ pub fn new(buf: &'a [u8]) -> IoSlice<'a> {
+ IoSlice {
+ vec: c::iovec {
+ iov_base: buf.as_ptr() as *mut u8 as *mut c::c_void,
+ iov_len: buf.len() as _,
+ },
+ _p: PhantomData,
+ }
+ }
+
+ /// <https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html#method.advance>
+ #[inline]
+ pub fn advance(&mut self, n: usize) {
+ if self.vec.iov_len < n as _ {
+ panic!("advancing IoSlice beyond its length");
+ }
+
+ unsafe {
+ // `__kernel_size_t` will always have the same size as `usize`, but it is a `u32` on
+ // 32-bit platforms and `u64` on 64-bit platforms when using `linux_raw` backend
+ self.vec.iov_len -= n as __kernel_size_t;
+ self.vec.iov_base = self.vec.iov_base.add(n);
+ }
+ }
+
+ /// <https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html#method.as_slice>
+ #[inline]
+ pub fn as_slice(&self) -> &[u8] {
+ unsafe { slice::from_raw_parts(self.vec.iov_base as *mut u8, self.vec.iov_len as usize) }
+ }
+}
+
+/// <https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html>
+#[repr(transparent)]
+pub struct IoSliceMut<'a> {
+ vec: c::iovec,
+ _p: PhantomData<&'a mut [u8]>,
+}
+
+impl<'a> IoSliceMut<'a> {
+ /// <https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.new>
+ #[inline]
+ pub fn new(buf: &'a mut [u8]) -> IoSliceMut<'a> {
+ IoSliceMut {
+ vec: c::iovec {
+ iov_base: buf.as_mut_ptr() as *mut c::c_void,
+ iov_len: buf.len() as _,
+ },
+ _p: PhantomData,
+ }
+ }
+
+ /// <https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.advance>
+ #[inline]
+ pub fn advance(&mut self, n: usize) {
+ if self.vec.iov_len < n as _ {
+ panic!("advancing IoSliceMut beyond its length");
+ }
+
+ unsafe {
+ // `__kernel_size_t` will always have the same size as `usize`, but it is a `u32` on
+ // 32-bit platforms and `u64` on 64-bit platforms when using `linux_raw` backend
+ self.vec.iov_len -= n as __kernel_size_t;
+ self.vec.iov_base = self.vec.iov_base.add(n);
+ }
+ }
+
+ /// <https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.as_slice>
+ #[inline]
+ pub fn as_slice(&self) -> &[u8] {
+ unsafe { slice::from_raw_parts(self.vec.iov_base as *mut u8, self.vec.iov_len as usize) }
+ }
+
+ /// <https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.as_slice_mut>
+ #[inline]
+ pub fn as_mut_slice(&mut self) -> &mut [u8] {
+ unsafe {
+ slice::from_raw_parts_mut(self.vec.iov_base as *mut u8, self.vec.iov_len as usize)
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/mod.rs b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/mod.rs
new file mode 100644
index 0000000..f29d4c3
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/mod.rs
@@ -0,0 +1,16 @@
+//! Polyfill of parts of the standard library for `no_std` builds.
+//!
+//! All code in this subtree is derived from the standard library and licensed
+//! MIT or Apache 2.0 at your option.
+//!
+//! This implementation is used when `std` is not available and polyfills the
+//! necessary items from `std`. When the `std` feature is specified (so the
+//! standard library is available), the file `src/polyfill/std` is used
+//! instead, which just imports the respective items from `std`.
+
+#[cfg(not(windows))]
+pub mod io;
+#[cfg(not(target_os = "wasi"))]
+#[cfg(feature = "net")]
+pub mod net;
+pub mod os;
diff --git a/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/net/mod.rs b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/net/mod.rs
new file mode 100644
index 0000000..bff56b1
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/net/mod.rs
@@ -0,0 +1,2 @@
+#[allow(unused_imports)]
+pub use core::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6};
diff --git a/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/fd/mod.rs b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/fd/mod.rs
new file mode 100644
index 0000000..ea55953
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/fd/mod.rs
@@ -0,0 +1,25 @@
+//! The following is derived from Rust's
+//! library/std/src/os/fd/mod.rs at revision
+//! fa68e73e9947be8ffc5b3b46d899e4953a44e7e9.
+//!
+//! All code in this file is licensed MIT or Apache 2.0 at your option.
+//!
+//! Owned and borrowed Unix-like file descriptors.
+//!
+//! This module is supported on Unix platforms and WASI, which both use a
+//! similar file descriptor system for referencing OS resources.
+
+#![cfg_attr(staged_api, stable(feature = "os_fd", since = "1.66.0"))]
+#![deny(unsafe_op_in_unsafe_fn)]
+
+// `RawFd`, `AsRawFd`, etc.
+mod raw;
+
+// `OwnedFd`, `AsFd`, etc.
+mod owned;
+
+// Export the types and traits for the public API.
+#[cfg_attr(staged_api, stable(feature = "os_fd", since = "1.66.0"))]
+pub use owned::*;
+#[cfg_attr(staged_api, stable(feature = "os_fd", since = "1.66.0"))]
+pub use raw::*;
diff --git a/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/fd/owned.rs b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/fd/owned.rs
new file mode 100644
index 0000000..b6aea61
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/fd/owned.rs
@@ -0,0 +1,301 @@
+//! The following is derived from Rust's
+//! library/std/src/os/fd/owned.rs at revision
+//! 334a54cd83191f38ad8046ed94c45de735c86c65.
+//!
+//! All code in this file is licensed MIT or Apache 2.0 at your option.
+//!
+//! Owned and borrowed Unix-like file descriptors.
+
+#![cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))]
+#![deny(unsafe_op_in_unsafe_fn)]
+#![allow(unsafe_code)]
+
+use super::raw::{AsRawFd, FromRawFd, IntoRawFd, RawFd};
+use crate::io::close;
+use core::fmt;
+use core::marker::PhantomData;
+use core::mem::forget;
+
+/// A borrowed file descriptor.
+///
+/// This has a lifetime parameter to tie it to the lifetime of something that owns the file
+/// descriptor. For the duration of that lifetime, it is guaranteed that nobody will close the file
+/// descriptor.
+///
+/// This uses `repr(transparent)` and has the representation of a host file
+/// descriptor, so it can be used in FFI in places where a file descriptor is
+/// passed as an argument, it is not captured or consumed, and it never has the
+/// value `-1`.
+///
+/// This type does not have a [`ToOwned`][crate::borrow::ToOwned]
+/// implementation. Calling `.to_owned()` on a variable of this type will call
+/// it on `&BorrowedFd` and use `Clone::clone()` like `ToOwned` does for all
+/// types implementing `Clone`. The result will be descriptor borrowed under
+/// the same lifetime.
+///
+/// To obtain an [`OwnedFd`], you can use [`BorrowedFd::try_clone_to_owned`]
+/// instead, but this is not supported on all platforms.
+#[derive(Copy, Clone)]
+#[repr(transparent)]
+#[cfg_attr(rustc_attrs, rustc_layout_scalar_valid_range_start(0))]
+// libstd/os/raw/mod.rs assures me that every libstd-supported platform has a
+// 32-bit c_int. Below is -2, in two's complement, but that only works out
+// because c_int is 32 bits.
+#[cfg_attr(rustc_attrs, rustc_layout_scalar_valid_range_end(0xFF_FF_FF_FE))]
+#[cfg_attr(rustc_attrs, rustc_nonnull_optimization_guaranteed)]
+#[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+pub struct BorrowedFd<'fd> {
+ fd: RawFd,
+ _phantom: PhantomData<&'fd OwnedFd>,
+}
+
+/// An owned file descriptor.
+///
+/// This closes the file descriptor on drop. It is guaranteed that nobody else will close the file
+/// descriptor.
+///
+/// This uses `repr(transparent)` and has the representation of a host file
+/// descriptor, so it can be used in FFI in places where a file descriptor is
+/// passed as a consumed argument or returned as an owned value, and it never
+/// has the value `-1`.
+///
+/// You can use [`AsFd::as_fd`] to obtain a [`BorrowedFd`].
+#[repr(transparent)]
+#[cfg_attr(rustc_attrs, rustc_layout_scalar_valid_range_start(0))]
+// libstd/os/raw/mod.rs assures me that every libstd-supported platform has a
+// 32-bit c_int. Below is -2, in two's complement, but that only works out
+// because c_int is 32 bits.
+#[cfg_attr(rustc_attrs, rustc_layout_scalar_valid_range_end(0xFF_FF_FF_FE))]
+#[cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))]
+#[cfg_attr(rustc_attrs, rustc_nonnull_optimization_guaranteed)]
+pub struct OwnedFd {
+ fd: RawFd,
+}
+
+impl BorrowedFd<'_> {
+ /// Returns a `BorrowedFd` holding the given raw file descriptor.
+ ///
+ /// # Safety
+ ///
+ /// The resource pointed to by `fd` must remain open for the duration of
+ /// the returned `BorrowedFd`, and it must not have the value `-1`.
+ #[inline]
+ #[cfg_attr(
+ staged_api,
+ rustc_const_stable(feature = "io_safety", since = "1.63.0")
+ )]
+ #[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+ pub const unsafe fn borrow_raw(fd: RawFd) -> Self {
+ assert!(fd != u32::MAX as RawFd);
+ // SAFETY: we just asserted that the value is in the valid range and isn't `-1` (the only value bigger than `0xFF_FF_FF_FE` unsigned)
+ #[allow(unused_unsafe)]
+ unsafe {
+ Self {
+ fd,
+ _phantom: PhantomData,
+ }
+ }
+ }
+}
+
+impl OwnedFd {
+ /// Creates a new `OwnedFd` instance that shares the same underlying file handle
+ /// as the existing `OwnedFd` instance.
+ #[cfg(not(target_arch = "wasm32"))]
+ pub fn try_clone(&self) -> crate::io::Result<Self> {
+ // We want to atomically duplicate this file descriptor and set the
+ // CLOEXEC flag, and currently that's done via F_DUPFD_CLOEXEC. This
+ // is a POSIX flag that was added to Linux in 2.6.24.
+ #[cfg(not(target_os = "espidf"))]
+ let fd = crate::io::fcntl_dupfd_cloexec(self, 0)?;
+
+ // For ESP-IDF, F_DUPFD is used instead, because the CLOEXEC semantics
+ // will never be supported, as this is a bare metal framework with
+ // no capabilities for multi-process execution. While F_DUPFD is also
+ // not supported yet, it might be (currently it returns ENOSYS).
+ #[cfg(target_os = "espidf")]
+ let fd = crate::io::fcntl_dupfd(self, 0)?;
+
+ Ok(fd.into())
+ }
+
+ /// Creates a new `OwnedFd` instance that shares the same underlying file handle
+ /// as the existing `OwnedFd` instance.
+ #[cfg(target_arch = "wasm32")]
+ pub fn try_clone(&self) -> crate::io::Result<Self> {
+ Err(crate::io::Errno::NOSYS)
+ }
+}
+
+impl BorrowedFd<'_> {
+ /// Creates a new `OwnedFd` instance that shares the same underlying file
+ /// description as the existing `BorrowedFd` instance.
+ #[cfg(not(any(target_arch = "wasm32", target_os = "hermit")))]
+ #[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+ pub fn try_clone_to_owned(&self) -> crate::io::Result<OwnedFd> {
+ // Avoid using file descriptors below 3 as they are used for stdio
+
+ // We want to atomically duplicate this file descriptor and set the
+ // CLOEXEC flag, and currently that's done via F_DUPFD_CLOEXEC. This
+ // is a POSIX flag that was added to Linux in 2.6.24.
+ #[cfg(not(target_os = "espidf"))]
+ let fd = crate::io::fcntl_dupfd_cloexec(self, 3)?;
+
+ // For ESP-IDF, F_DUPFD is used instead, because the CLOEXEC semantics
+ // will never be supported, as this is a bare metal framework with
+ // no capabilities for multi-process execution. While F_DUPFD is also
+ // not supported yet, it might be (currently it returns ENOSYS).
+ #[cfg(target_os = "espidf")]
+ let fd = crate::io::fcntl_dupfd(self, 3)?;
+
+ Ok(fd)
+ }
+
+ /// Creates a new `OwnedFd` instance that shares the same underlying file
+ /// description as the existing `BorrowedFd` instance.
+ #[cfg(any(target_arch = "wasm32", target_os = "hermit"))]
+ #[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+ pub fn try_clone_to_owned(&self) -> crate::io::Result<OwnedFd> {
+ Err(crate::io::Errno::NOSYS)
+ }
+}
+
+#[cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))]
+impl AsRawFd for BorrowedFd<'_> {
+ #[inline]
+ fn as_raw_fd(&self) -> RawFd {
+ self.fd
+ }
+}
+
+#[cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))]
+impl AsRawFd for OwnedFd {
+ #[inline]
+ fn as_raw_fd(&self) -> RawFd {
+ self.fd
+ }
+}
+
+#[cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))]
+impl IntoRawFd for OwnedFd {
+ #[inline]
+ fn into_raw_fd(self) -> RawFd {
+ let fd = self.fd;
+ forget(self);
+ fd
+ }
+}
+
+#[cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))]
+impl FromRawFd for OwnedFd {
+ /// Constructs a new instance of `Self` from the given raw file descriptor.
+ ///
+ /// # Safety
+ ///
+ /// The resource pointed to by `fd` must be open and suitable for assuming
+ /// [ownership][io-safety]. The resource must not require any cleanup other than `close`.
+ ///
+ /// [io-safety]: io#io-safety
+ #[inline]
+ unsafe fn from_raw_fd(fd: RawFd) -> Self {
+ assert_ne!(fd, u32::MAX as RawFd);
+ // SAFETY: we just asserted that the value is in the valid range and isn't `-1` (the only value bigger than `0xFF_FF_FF_FE` unsigned)
+ #[allow(unused_unsafe)]
+ unsafe {
+ Self { fd }
+ }
+ }
+}
+
+#[cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))]
+impl Drop for OwnedFd {
+ #[inline]
+ fn drop(&mut self) {
+ unsafe {
+ // Errors are ignored when closing a file descriptor. The reason
+ // for this is that if an error occurs we don't actually know if
+ // the file descriptor was closed or not, and if we retried (for
+ // something like EINTR), we might close another valid file
+ // descriptor opened after we closed ours.
+ close(self.fd as _);
+ }
+ }
+}
+
+#[cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))]
+impl fmt::Debug for BorrowedFd<'_> {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ f.debug_struct("BorrowedFd").field("fd", &self.fd).finish()
+ }
+}
+
+#[cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))]
+impl fmt::Debug for OwnedFd {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ f.debug_struct("OwnedFd").field("fd", &self.fd).finish()
+ }
+}
+
+/// A trait to borrow the file descriptor from an underlying object.
+///
+/// This is only available on unix platforms and must be imported in order to
+/// call the method. Windows platforms have a corresponding `AsHandle` and
+/// `AsSocket` set of traits.
+#[cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))]
+pub trait AsFd {
+ /// Borrows the file descriptor.
+ ///
+ /// # Example
+ ///
+ /// ```no_run
+ /// # #![feature(io_safety)]
+ /// use std::fs::File;
+ /// # use std::io;
+ /// # #[cfg(target_os = "wasi")]
+ /// # use std::os::wasi::io::{AsFd, BorrowedFd};
+ /// # #[cfg(unix)]
+ /// # use std::os::unix::io::{AsFd, BorrowedFd};
+ ///
+ /// let mut f = File::open("foo.txt")?;
+ /// # #[cfg(any(unix, target_os = "wasi"))]
+ /// let borrowed_fd: BorrowedFd<'_> = f.as_fd();
+ /// # Ok::<(), io::Error>(())
+ /// ```
+ #[cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))]
+ fn as_fd(&self) -> BorrowedFd<'_>;
+}
+
+#[cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))]
+impl<T: AsFd> AsFd for &T {
+ #[inline]
+ fn as_fd(&self) -> BorrowedFd<'_> {
+ T::as_fd(self)
+ }
+}
+
+#[cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))]
+impl<T: AsFd> AsFd for &mut T {
+ #[inline]
+ fn as_fd(&self) -> BorrowedFd<'_> {
+ T::as_fd(self)
+ }
+}
+
+#[cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))]
+impl AsFd for BorrowedFd<'_> {
+ #[inline]
+ fn as_fd(&self) -> BorrowedFd<'_> {
+ *self
+ }
+}
+
+#[cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))]
+impl AsFd for OwnedFd {
+ #[inline]
+ fn as_fd(&self) -> BorrowedFd<'_> {
+ // SAFETY: `OwnedFd` and `BorrowedFd` have the same validity
+ // invariants, and the `BorrowedFd` is bounded by the lifetime
+ // of `&self`.
+ unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/fd/raw.rs b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/fd/raw.rs
new file mode 100644
index 0000000..8f6b75a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/fd/raw.rs
@@ -0,0 +1,164 @@
+//! The following is derived from Rust's
+//! library/std/src/os/fd/raw.rs at revision
+//! 334a54cd83191f38ad8046ed94c45de735c86c65.
+//!
+//! All code in this file is licensed MIT or Apache 2.0 at your option.
+//!
+//! Raw Unix-like file descriptors.
+
+#![cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))]
+#![allow(unsafe_code)]
+
+use crate::backend::c;
+
+/// Raw file descriptors.
+#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))]
+pub type RawFd = c::c_int;
+
+/// A trait to extract the raw file descriptor from an underlying object.
+///
+/// This is only available on unix and WASI platforms and must be imported in
+/// order to call the method. Windows platforms have a corresponding
+/// `AsRawHandle` and `AsRawSocket` set of traits.
+#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))]
+pub trait AsRawFd {
+ /// Extracts the raw file descriptor.
+ ///
+ /// This function is typically used to **borrow** an owned file descriptor.
+ /// When used in this way, this method does **not** pass ownership of the
+ /// raw file descriptor to the caller, and the file descriptor is only
+ /// guaranteed to be valid while the original object has not yet been
+ /// destroyed.
+ ///
+ /// However, borrowing is not strictly required. See [`AsFd::as_fd`]
+ /// for an API which strictly borrows a file descriptor.
+ ///
+ /// # Example
+ ///
+ /// ```no_run
+ /// use std::fs::File;
+ /// # use std::io;
+ /// #[cfg(unix)]
+ /// use std::os::unix::io::{AsRawFd, RawFd};
+ /// #[cfg(target_os = "wasi")]
+ /// use std::os::wasi::io::{AsRawFd, RawFd};
+ ///
+ /// let mut f = File::open("foo.txt")?;
+ /// // `raw_fd` is only valid as long as `f` exists.
+ /// #[cfg(any(unix, target_os = "wasi"))]
+ /// let raw_fd: RawFd = f.as_raw_fd();
+ /// # Ok::<(), io::Error>(())
+ /// ```
+ #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))]
+ fn as_raw_fd(&self) -> RawFd;
+}
+
+/// A trait to express the ability to construct an object from a raw file
+/// descriptor.
+#[cfg_attr(staged_api, stable(feature = "from_raw_os", since = "1.1.0"))]
+pub trait FromRawFd {
+ /// Constructs a new instance of `Self` from the given raw file
+ /// descriptor.
+ ///
+ /// This function is typically used to **consume ownership** of the
+ /// specified file descriptor. When used in this way, the returned object
+ /// will take responsibility for closing it when the object goes out of
+ /// scope.
+ ///
+ /// However, consuming ownership is not strictly required. Use a
+ /// [`From<OwnedFd>::from`] implementation for an API which strictly
+ /// consumes ownership.
+ ///
+ /// # Safety
+ ///
+ /// The `fd` passed in must be an [owned file descriptor][io-safety];
+ /// in particular, it must be open.
+ ///
+ /// [io-safety]: io#io-safety
+ ///
+ /// # Example
+ ///
+ /// ```no_run
+ /// use std::fs::File;
+ /// # use std::io;
+ /// #[cfg(unix)]
+ /// use std::os::unix::io::{FromRawFd, IntoRawFd, RawFd};
+ /// #[cfg(target_os = "wasi")]
+ /// use std::os::wasi::io::{FromRawFd, IntoRawFd, RawFd};
+ ///
+ /// let f = File::open("foo.txt")?;
+ /// # #[cfg(any(unix, target_os = "wasi"))]
+ /// let raw_fd: RawFd = f.into_raw_fd();
+ /// // SAFETY: no other functions should call `from_raw_fd`, so there
+ /// // is only one owner for the file descriptor.
+ /// # #[cfg(any(unix, target_os = "wasi"))]
+ /// let f = unsafe { File::from_raw_fd(raw_fd) };
+ /// # Ok::<(), io::Error>(())
+ /// ```
+ #[cfg_attr(staged_api, stable(feature = "from_raw_os", since = "1.1.0"))]
+ unsafe fn from_raw_fd(fd: RawFd) -> Self;
+}
+
+/// A trait to express the ability to consume an object and acquire ownership of
+/// its raw file descriptor.
+#[cfg_attr(staged_api, stable(feature = "into_raw_os", since = "1.4.0"))]
+pub trait IntoRawFd {
+ /// Consumes this object, returning the raw underlying file descriptor.
+ ///
+ /// This function is typically used to **transfer ownership** of the underlying
+ /// file descriptor to the caller. When used in this way, callers are then the unique
+ /// owners of the file descriptor and must close it once it's no longer needed.
+ ///
+ /// However, transferring ownership is not strictly required. Use a
+ /// [`Into<OwnedFd>::into`] implementation for an API which strictly
+ /// transfers ownership.
+ ///
+ /// # Example
+ ///
+ /// ```no_run
+ /// use std::fs::File;
+ /// # use std::io;
+ /// #[cfg(unix)]
+ /// use std::os::unix::io::{IntoRawFd, RawFd};
+ /// #[cfg(target_os = "wasi")]
+ /// use std::os::wasi::io::{IntoRawFd, RawFd};
+ ///
+ /// let f = File::open("foo.txt")?;
+ /// #[cfg(any(unix, target_os = "wasi"))]
+ /// let raw_fd: RawFd = f.into_raw_fd();
+ /// # Ok::<(), io::Error>(())
+ /// ```
+ #[cfg_attr(staged_api, stable(feature = "into_raw_os", since = "1.4.0"))]
+ fn into_raw_fd(self) -> RawFd;
+}
+
+#[cfg_attr(
+ staged_api,
+ stable(feature = "raw_fd_reflexive_traits", since = "1.48.0")
+)]
+impl AsRawFd for RawFd {
+ #[inline]
+ fn as_raw_fd(&self) -> RawFd {
+ *self
+ }
+}
+#[cfg_attr(
+ staged_api,
+ stable(feature = "raw_fd_reflexive_traits", since = "1.48.0")
+)]
+impl IntoRawFd for RawFd {
+ #[inline]
+ fn into_raw_fd(self) -> RawFd {
+ self
+ }
+}
+#[cfg_attr(
+ staged_api,
+ stable(feature = "raw_fd_reflexive_traits", since = "1.48.0")
+)]
+impl FromRawFd for RawFd {
+ #[inline]
+ unsafe fn from_raw_fd(fd: RawFd) -> RawFd {
+ fd
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/mod.rs b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/mod.rs
new file mode 100644
index 0000000..67f41f5
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/mod.rs
@@ -0,0 +1,4 @@
+#[cfg(any(unix, target_os = "wasi"))]
+pub mod fd;
+#[cfg(windows)]
+pub mod windows;
diff --git a/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/windows/io/mod.rs b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/windows/io/mod.rs
new file mode 100644
index 0000000..77abd03
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/windows/io/mod.rs
@@ -0,0 +1,5 @@
+mod raw;
+mod socket;
+
+pub use raw::{AsRawSocket, FromRawSocket, IntoRawSocket, RawSocket};
+pub use socket::{AsSocket, BorrowedSocket, OwnedSocket};
diff --git a/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/windows/io/raw.rs b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/windows/io/raw.rs
new file mode 100644
index 0000000..63edf7f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/windows/io/raw.rs
@@ -0,0 +1,72 @@
+//! The following is derived from Rust's
+//! library/std/src/os/windows/io/raw.rs
+//! at revision
+//! 4f9b394c8a24803e57ba892fa00e539742ebafc0.
+//!
+//! All code in this file is licensed MIT or Apache 2.0 at your option.
+
+use super::super::raw;
+
+/// Raw SOCKETs.
+#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))]
+pub type RawSocket = raw::SOCKET;
+
+/// Extracts raw sockets.
+#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))]
+pub trait AsRawSocket {
+ /// Extracts the raw socket.
+ ///
+ /// This function is typically used to **borrow** an owned socket.
+ /// When used in this way, this method does **not** pass ownership of the
+ /// raw socket to the caller, and the socket is only guaranteed
+ /// to be valid while the original object has not yet been destroyed.
+ ///
+ /// However, borrowing is not strictly required. See [`AsSocket::as_socket`]
+ /// for an API which strictly borrows a socket.
+ #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))]
+ fn as_raw_socket(&self) -> RawSocket;
+}
+
+/// Creates I/O objects from raw sockets.
+#[cfg_attr(staged_api, stable(feature = "from_raw_os", since = "1.1.0"))]
+pub trait FromRawSocket {
+ /// Constructs a new I/O object from the specified raw socket.
+ ///
+ /// This function is typically used to **consume ownership** of the socket
+ /// given, passing responsibility for closing the socket to the returned
+ /// object. When used in this way, the returned object
+ /// will take responsibility for closing it when the object goes out of
+ /// scope.
+ ///
+ /// However, consuming ownership is not strictly required. Use a
+ /// `From<OwnedSocket>::from` implementation for an API which strictly
+ /// consumes ownership.
+ ///
+ /// # Safety
+ ///
+ /// The `socket` passed in must:
+ /// - be an [owned socket][io-safety]; in particular, it must be open.
+ /// - be a socket that may be freed via [`closesocket`].
+ ///
+ /// [`closesocket`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-closesocket
+ /// [io-safety]: io#io-safety
+ #[cfg_attr(staged_api, stable(feature = "from_raw_os", since = "1.1.0"))]
+ unsafe fn from_raw_socket(sock: RawSocket) -> Self;
+}
+
+/// A trait to express the ability to consume an object and acquire ownership of
+/// its raw `SOCKET`.
+#[cfg_attr(staged_api, stable(feature = "into_raw_os", since = "1.4.0"))]
+pub trait IntoRawSocket {
+ /// Consumes this object, returning the raw underlying socket.
+ ///
+ /// This function is typically used to **transfer ownership** of the underlying
+ /// socket to the caller. When used in this way, callers are then the unique
+ /// owners of the socket and must close it once it's no longer needed.
+ ///
+ /// However, transferring ownership is not strictly required. Use a
+ /// `Into<OwnedSocket>::into` implementation for an API which strictly
+ /// transfers ownership.
+ #[cfg_attr(staged_api, stable(feature = "into_raw_os", since = "1.4.0"))]
+ fn into_raw_socket(self) -> RawSocket;
+}
diff --git a/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/windows/io/socket.rs b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/windows/io/socket.rs
new file mode 100644
index 0000000..87692b3
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/windows/io/socket.rs
@@ -0,0 +1,198 @@
+//! The following is derived from Rust's
+//! library/std/src/os/windows/io/socket.rs
+//! at revision
+//! 4f9b394c8a24803e57ba892fa00e539742ebafc0.
+//!
+//! All code in this file is licensed MIT or Apache 2.0 at your option.
+
+use super::raw::*;
+use crate::backend::c;
+use core::fmt;
+use core::marker::PhantomData;
+use core::mem::forget;
+
+/// A borrowed socket.
+///
+/// This has a lifetime parameter to tie it to the lifetime of something that
+/// owns the socket.
+///
+/// This uses `repr(transparent)` and has the representation of a host socket,
+/// so it can be used in FFI in places where a socket is passed as an argument,
+/// it is not captured or consumed, and it never has the value
+/// `INVALID_SOCKET`.
+///
+/// This type's `.to_owned()` implementation returns another `BorrowedSocket`
+/// rather than an `OwnedSocket`. It just makes a trivial copy of the raw
+/// socket, which is then borrowed under the same lifetime.
+#[derive(Copy, Clone)]
+#[repr(transparent)]
+#[cfg_attr(staged_api, rustc_layout_scalar_valid_range_start(0))]
+// This is -2, in two's complement. -1 is `INVALID_SOCKET`.
+#[cfg_attr(
+ all(staged_api, target_pointer_width = "32"),
+ rustc_layout_scalar_valid_range_end(0xFF_FF_FF_FE)
+)]
+#[cfg_attr(
+ all(staged_api, target_pointer_width = "64"),
+ rustc_layout_scalar_valid_range_end(0xFF_FF_FF_FF_FF_FF_FF_FE)
+)]
+#[cfg_attr(staged_api, rustc_nonnull_optimization_guaranteed)]
+#[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+pub struct BorrowedSocket<'socket> {
+ socket: RawSocket,
+ _phantom: PhantomData<&'socket OwnedSocket>,
+}
+
+/// An owned socket.
+///
+/// This closes the socket on drop.
+///
+/// This uses `repr(transparent)` and has the representation of a host socket,
+/// so it can be used in FFI in places where a socket is passed as a consumed
+/// argument or returned as an owned value, and it never has the value
+/// `INVALID_SOCKET`.
+#[repr(transparent)]
+#[cfg_attr(staged_api, rustc_layout_scalar_valid_range_start(0))]
+// This is -2, in two's complement. -1 is `INVALID_SOCKET`.
+#[cfg_attr(
+ all(staged_api, target_pointer_width = "32"),
+ rustc_layout_scalar_valid_range_end(0xFF_FF_FF_FE)
+)]
+#[cfg_attr(
+ all(staged_api, target_pointer_width = "64"),
+ rustc_layout_scalar_valid_range_end(0xFF_FF_FF_FF_FF_FF_FF_FE)
+)]
+#[cfg_attr(staged_api, rustc_nonnull_optimization_guaranteed)]
+#[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+pub struct OwnedSocket {
+ socket: RawSocket,
+}
+
+impl BorrowedSocket<'_> {
+ /// Returns a `BorrowedSocket` holding the given raw socket.
+ ///
+ /// # Safety
+ ///
+ /// The resource pointed to by `raw` must remain open for the duration of
+ /// the returned `BorrowedSocket`, and it must not have the value
+ /// `INVALID_SOCKET`.
+ #[inline]
+ #[cfg_attr(
+ staged_api,
+ rustc_const_stable(feature = "io_safety", since = "1.63.0")
+ )]
+ #[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+ pub const unsafe fn borrow_raw(socket: RawSocket) -> Self {
+ assert!(socket != c::INVALID_SOCKET as RawSocket);
+ Self {
+ socket,
+ _phantom: PhantomData,
+ }
+ }
+}
+
+#[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+impl AsRawSocket for BorrowedSocket<'_> {
+ #[inline]
+ fn as_raw_socket(&self) -> RawSocket {
+ self.socket
+ }
+}
+
+#[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+impl AsRawSocket for OwnedSocket {
+ #[inline]
+ fn as_raw_socket(&self) -> RawSocket {
+ self.socket
+ }
+}
+
+#[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+impl IntoRawSocket for OwnedSocket {
+ #[inline]
+ fn into_raw_socket(self) -> RawSocket {
+ let socket = self.socket;
+ forget(self);
+ socket
+ }
+}
+
+#[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+impl FromRawSocket for OwnedSocket {
+ #[inline]
+ unsafe fn from_raw_socket(socket: RawSocket) -> Self {
+ debug_assert_ne!(socket, c::INVALID_SOCKET as RawSocket);
+ Self { socket }
+ }
+}
+
+#[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+impl Drop for OwnedSocket {
+ #[inline]
+ fn drop(&mut self) {
+ unsafe {
+ let _ = c::closesocket(self.socket as c::SOCKET);
+ }
+ }
+}
+
+#[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+impl fmt::Debug for BorrowedSocket<'_> {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ f.debug_struct("BorrowedSocket")
+ .field("socket", &self.socket)
+ .finish()
+ }
+}
+
+#[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+impl fmt::Debug for OwnedSocket {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ f.debug_struct("OwnedSocket")
+ .field("socket", &self.socket)
+ .finish()
+ }
+}
+
+/// A trait to borrow the socket from an underlying object.
+#[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+pub trait AsSocket {
+ /// Borrows the socket.
+ #[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+ fn as_socket(&self) -> BorrowedSocket<'_>;
+}
+
+#[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+impl<T: AsSocket> AsSocket for &T {
+ #[inline]
+ fn as_socket(&self) -> BorrowedSocket<'_> {
+ T::as_socket(self)
+ }
+}
+
+#[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+impl<T: AsSocket> AsSocket for &mut T {
+ #[inline]
+ fn as_socket(&self) -> BorrowedSocket<'_> {
+ T::as_socket(self)
+ }
+}
+
+#[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+impl AsSocket for BorrowedSocket<'_> {
+ #[inline]
+ fn as_socket(&self) -> BorrowedSocket<'_> {
+ *self
+ }
+}
+
+#[cfg_attr(staged_api, stable(feature = "io_safety", since = "1.63.0"))]
+impl AsSocket for OwnedSocket {
+ #[inline]
+ fn as_socket(&self) -> BorrowedSocket<'_> {
+ // Safety: `OwnedSocket` and `BorrowedSocket` have the same validity
+ // invariants, and the `BorrowdSocket` is bounded by the lifetime
+ // of `&self`.
+ unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/windows/mod.rs b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/windows/mod.rs
new file mode 100644
index 0000000..02f3894
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/maybe_polyfill/no_std/os/windows/mod.rs
@@ -0,0 +1,19 @@
+//! The following is derived from Rust's
+//! library/std/src/os/windows/raw.rs,
+//! library/std/src/os/windows/io/raw.rs and
+//! library/std/src/os/windows/io/socket.rs
+//! at revision
+//! 4f9b394c8a24803e57ba892fa00e539742ebafc0.
+//!
+//! All code in this file is licensed MIT or Apache 2.0 at your option.
+
+mod raw {
+ #[cfg(target_pointer_width = "32")]
+ #[cfg_attr(staged_api, stable(feature = "raw_ext", since = "1.1.0"))]
+ pub type SOCKET = u32;
+ #[cfg(target_pointer_width = "64")]
+ #[cfg_attr(staged_api, stable(feature = "raw_ext", since = "1.1.0"))]
+ pub type SOCKET = u64;
+}
+
+pub mod io;
diff --git a/vendor/rustix-1.0.8/src/maybe_polyfill/std/mod.rs b/vendor/rustix-1.0.8/src/maybe_polyfill/std/mod.rs
new file mode 100644
index 0000000..17b2809
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/maybe_polyfill/std/mod.rs
@@ -0,0 +1,41 @@
+//! Imports from `std` that would be polyfilled for `no_std` builds (see
+//! `src/polyfill/no_std`).
+//!
+//! This implementation is used when `std` is available and just imports the
+//! necessary items from `std`. For `no_std` builds, the file
+//! `src/polyfill/no_std` is used instead, which doesn't depend on the standard
+//! library.
+
+#[cfg(not(windows))]
+pub mod io {
+ pub use std::io::{IoSlice, IoSliceMut};
+}
+
+#[cfg(not(target_os = "wasi"))]
+#[cfg(feature = "net")]
+pub mod net {
+ pub use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6};
+}
+
+pub mod os {
+ pub mod fd {
+ // Change to use `std::os::fd` when MSRV becomes Rust 1.66 or higher.
+
+ #[cfg(target_os = "wasi")]
+ pub use std::os::fd::{AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd, RawFd};
+ #[cfg(unix)]
+ pub use std::os::unix::io::{
+ AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd, RawFd,
+ };
+ }
+
+ #[cfg(windows)]
+ pub mod windows {
+ pub mod io {
+ pub use std::os::windows::io::{
+ AsRawSocket, AsSocket, BorrowedSocket, FromRawSocket, IntoRawSocket, OwnedSocket,
+ RawSocket,
+ };
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/mm/madvise.rs b/vendor/rustix-1.0.8/src/mm/madvise.rs
new file mode 100644
index 0000000..4ab910e
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/mm/madvise.rs
@@ -0,0 +1,49 @@
+//! The `madvise` function.
+//!
+//! # Safety
+//!
+//! `madvise` operates on a raw pointer. Some forms of `madvise` may
+//! mutate the memory or have other side effects.
+#![allow(unsafe_code)]
+
+use crate::{backend, io};
+use core::ffi::c_void;
+
+pub use backend::mm::types::Advice;
+
+/// `posix_madvise(addr, len, advice)`—Declares an expected access pattern
+/// for a memory-mapped file.
+///
+/// # Safety
+///
+/// `addr` must be a valid pointer to memory that is appropriate to call
+/// `posix_madvise` on. Some forms of `advice` may mutate the memory or evoke a
+/// variety of side-effects on the mapping and/or the file.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux `madvise`]
+/// - [Linux `posix_madvise`]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_madvise.html
+/// [Linux `madvise`]: https://man7.org/linux/man-pages/man2/madvise.2.html
+/// [Linux `posix_madvise`]: https://man7.org/linux/man-pages/man3/posix_madvise.3.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/madvise.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=madvise&sektion=2
+/// [NetBSD]: https://man.netbsd.org/madvise.2
+/// [OpenBSD]: https://man.openbsd.org/madvise.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=madvise§ion=2
+/// [illumos]: https://illumos.org/man/3C/madvise
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Memory_002dmapped-I_002fO.html#index-madvise
+#[inline]
+#[doc(alias = "posix_madvise")]
+pub unsafe fn madvise(addr: *mut c_void, len: usize, advice: Advice) -> io::Result<()> {
+ backend::mm::syscalls::madvise(addr, len, advice)
+}
diff --git a/vendor/rustix-1.0.8/src/mm/mmap.rs b/vendor/rustix-1.0.8/src/mm/mmap.rs
new file mode 100644
index 0000000..ec5a6d7
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/mm/mmap.rs
@@ -0,0 +1,443 @@
+//! The `mmap` API.
+//!
+//! # Safety
+//!
+//! `mmap` and related functions manipulate raw pointers and have special
+//! semantics.
+#![allow(unsafe_code)]
+
+use crate::{backend, io};
+use backend::fd::AsFd;
+use core::ffi::c_void;
+
+#[cfg(any(linux_kernel, freebsdlike, netbsdlike))]
+pub use backend::mm::types::MlockAllFlags;
+#[cfg(linux_kernel)]
+pub use backend::mm::types::MlockFlags;
+#[cfg(any(target_os = "emscripten", target_os = "linux"))]
+pub use backend::mm::types::MremapFlags;
+pub use backend::mm::types::{MapFlags, MprotectFlags, ProtFlags};
+
+impl MapFlags {
+ /// Create `MAP_HUGETLB` with provided size of huge page.
+ ///
+ /// Under the hood it computes
+ /// `MAP_HUGETLB | (huge_page_size_log2 << MAP_HUGE_SHIFT)`.
+ /// `huge_page_size_log2` denotes logarithm of huge page size to use and
+ /// should be between 16 and 63 (inclusive).
+ ///
+ /// ```
+ /// use rustix::mm::MapFlags;
+ ///
+ /// let f = MapFlags::hugetlb_with_size_log2(30).unwrap();
+ /// assert_eq!(f, MapFlags::HUGETLB | MapFlags::HUGE_1GB);
+ /// ```
+ #[cfg(linux_kernel)]
+ pub const fn hugetlb_with_size_log2(huge_page_size_log2: u32) -> Option<Self> {
+ use crate::backend::c;
+ if 16 <= huge_page_size_log2 && huge_page_size_log2 <= 63 {
+ let bits = bitcast!(c::MAP_HUGETLB) | (huge_page_size_log2 << c::MAP_HUGE_SHIFT);
+ Self::from_bits(bits)
+ } else {
+ None
+ }
+ }
+}
+
+/// `mmap(ptr, len, prot, flags, fd, offset)`—Create a file-backed memory
+/// mapping.
+///
+/// For anonymous mappings (`MAP_ANON`/`MAP_ANONYMOUS`), see
+/// [`mmap_anonymous`].
+///
+/// # Safety
+///
+/// If `ptr` is not null, it must be aligned to the applicable page size, and
+/// the range of memory starting at `ptr` and extending for `len` bytes,
+/// rounded up to the applicable page size, must be valid to mutate using
+/// `ptr`'s provenance.
+///
+/// If there exist any Rust references referring to the memory region, or if
+/// you subsequently create a Rust reference referring to the resulting region,
+/// it is your responsibility to ensure that the Rust reference invariants are
+/// preserved, including ensuring that the memory is not mutated in a way that
+/// a Rust reference would not expect.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/mmap.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/mmap.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/mmap.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=mmap&sektion=2
+/// [NetBSD]: https://man.netbsd.org/mmap.2
+/// [OpenBSD]: https://man.openbsd.org/mmap.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=mmap§ion=2
+/// [illumos]: https://illumos.org/man/2/mmap
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Memory_002dmapped-I_002fO.html#index-mmap
+#[inline]
+pub unsafe fn mmap<Fd: AsFd>(
+ ptr: *mut c_void,
+ len: usize,
+ prot: ProtFlags,
+ flags: MapFlags,
+ fd: Fd,
+ offset: u64,
+) -> io::Result<*mut c_void> {
+ backend::mm::syscalls::mmap(ptr, len, prot, flags, fd.as_fd(), offset)
+}
+
+/// `mmap(ptr, len, prot, MAP_ANONYMOUS | flags, -1, 0)`—Create an anonymous
+/// memory mapping.
+///
+/// For file-backed mappings, see [`mmap`].
+///
+/// # Safety
+///
+/// If `ptr` is not null, it must be aligned to the applicable page size, and
+/// the range of memory starting at `ptr` and extending for `len` bytes,
+/// rounded up to the applicable page size, must be valid to mutate with
+/// `ptr`'s provenance.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/mmap.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/mmap.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/mmap.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=mmap&sektion=2
+/// [NetBSD]: https://man.netbsd.org/mmap.2
+/// [OpenBSD]: https://man.openbsd.org/mmap.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=mmap§ion=2
+/// [illumos]: https://illumos.org/man/2/mmap
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Memory_002dmapped-I_002fO.html#index-mmap
+#[inline]
+#[doc(alias = "mmap")]
+pub unsafe fn mmap_anonymous(
+ ptr: *mut c_void,
+ len: usize,
+ prot: ProtFlags,
+ flags: MapFlags,
+) -> io::Result<*mut c_void> {
+ backend::mm::syscalls::mmap_anonymous(ptr, len, prot, flags)
+}
+
+/// `munmap(ptr, len)`—Remove a memory mapping.
+///
+/// # Safety
+///
+/// `ptr` must be aligned to the applicable page size, and the range of memory
+/// starting at `ptr` and extending for `len` bytes, rounded up to the
+/// applicable page size, must be valid to mutate with `ptr`'s provenance. And
+/// there must be no Rust references referring to that memory.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/munmap.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/munmap.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/munmap.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=munmap&sektion=2
+/// [NetBSD]: https://man.netbsd.org/munmap.2
+/// [OpenBSD]: https://man.openbsd.org/munmap.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=munmap§ion=2
+/// [illumos]: https://illumos.org/man/2/munmap
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Memory_002dmapped-I_002fO.html#index-munmap
+#[inline]
+pub unsafe fn munmap(ptr: *mut c_void, len: usize) -> io::Result<()> {
+ backend::mm::syscalls::munmap(ptr, len)
+}
+
+/// `mremap(old_address, old_size, new_size, flags)`—Resize, modify, and/or
+/// move a memory mapping.
+///
+/// For moving a mapping to a fixed address (`MREMAP_FIXED`), see
+/// [`mremap_fixed`].
+///
+/// # Safety
+///
+/// `old_address` must be aligned to the applicable page size, and the range of
+/// memory starting at `old_address` and extending for `old_size` bytes,
+/// rounded up to the applicable page size, must be valid to mutate with
+/// `old_address`'s provenance. If `MremapFlags::MAY_MOVE` is set in `flags`,
+/// there must be no Rust references referring to that the memory.
+///
+/// If `new_size` is less than `old_size`, than there must be no Rust
+/// references referring to the memory starting at offset `new_size` and ending
+/// at `old_size`.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/mremap.2.html
+#[cfg(any(target_os = "emscripten", target_os = "linux"))]
+#[inline]
+pub unsafe fn mremap(
+ old_address: *mut c_void,
+ old_size: usize,
+ new_size: usize,
+ flags: MremapFlags,
+) -> io::Result<*mut c_void> {
+ backend::mm::syscalls::mremap(old_address, old_size, new_size, flags)
+}
+
+/// `mremap(old_address, old_size, new_size, MREMAP_FIXED | flags)`—Resize,
+/// modify, and/or move a memory mapping to a specific address.
+///
+/// For `mremap` without moving to a specific address, see [`mremap`].
+/// [`mremap_fixed`].
+///
+/// # Safety
+///
+/// `old_address` and `new_address` must be aligned to the applicable page
+/// size, the range of memory starting at `old_address` and extending for
+/// `old_size` bytes, rounded up to the applicable page size, must be valid to
+/// mutate with `old_address`'s provenance, and the range of memory starting at
+/// `new_address` and extending for `new_size` bytes, rounded up to the
+/// applicable page size, must be valid to mutate with `new_address`'s
+/// provenance.
+///
+/// There must be no Rust references referring to either of those memory
+/// regions.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/mremap.2.html
+#[cfg(any(target_os = "emscripten", target_os = "linux"))]
+#[inline]
+#[doc(alias = "mremap")]
+pub unsafe fn mremap_fixed(
+ old_address: *mut c_void,
+ old_size: usize,
+ new_size: usize,
+ flags: MremapFlags,
+ new_address: *mut c_void,
+) -> io::Result<*mut c_void> {
+ backend::mm::syscalls::mremap_fixed(old_address, old_size, new_size, flags, new_address)
+}
+
+/// `mprotect(ptr, len, flags)`—Change the protection flags of a region of
+/// memory.
+///
+/// # Safety
+///
+/// The range of memory starting at `ptr` and extending for `len` bytes,
+/// rounded up to the applicable page size, must be valid to read with `ptr`'s
+/// provenance.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/mprotect.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/mprotect.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/mprotect.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=mprotect&sektion=2
+/// [NetBSD]: https://man.netbsd.org/mprotect.2
+/// [OpenBSD]: https://man.openbsd.org/mprotect.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=mprotect§ion=2
+/// [illumos]: https://illumos.org/man/2/mprotect
+#[inline]
+pub unsafe fn mprotect(ptr: *mut c_void, len: usize, flags: MprotectFlags) -> io::Result<()> {
+ backend::mm::syscalls::mprotect(ptr, len, flags)
+}
+
+/// `mlock(ptr, len)`—Lock memory into RAM.
+///
+/// Some implementations implicitly round the memory region out to the nearest
+/// page boundaries, so this function may lock more memory than explicitly
+/// requested if the memory isn't page-aligned. Other implementations fail if
+/// the memory isn't page-aligned.
+///
+/// See [`mlock_with`] to pass additional flags.
+///
+/// # Safety
+///
+/// The range of memory starting at `ptr`, rounded down to the applicable page
+/// boundary, and extending for `len` bytes, rounded up to the applicable page
+/// size, must be valid to read with `ptr`'s provenance.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/mlock.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/mlock.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/mlock.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=mlock&sektion=2
+/// [NetBSD]: https://man.netbsd.org/mlock.2
+/// [OpenBSD]: https://man.openbsd.org/mlock.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=mlock§ion=2
+/// [illumos]: https://illumos.org/man/3C/mlock
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Page-Lock-Functions.html#index-mlock
+#[inline]
+pub unsafe fn mlock(ptr: *mut c_void, len: usize) -> io::Result<()> {
+ backend::mm::syscalls::mlock(ptr, len)
+}
+
+/// `mlock2(ptr, len, flags)`—Lock memory into RAM, with flags.
+///
+/// `mlock_with` is the same as [`mlock`] but adds an additional flags operand.
+///
+/// Some implementations implicitly round the memory region out to the nearest
+/// page boundaries, so this function may lock more memory than explicitly
+/// requested if the memory isn't page-aligned.
+///
+/// # Safety
+///
+/// The range of memory starting at `ptr`, rounded down to the applicable page
+/// boundary, and extending for `len` bytes, rounded up to the applicable page
+/// size, must be valid to read with `ptr`'s provenance.
+///
+/// # References
+/// - [Linux]
+/// - [glibc]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/mlock2.2.html
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Page-Lock-Functions.html#index-mlock2
+#[cfg(linux_kernel)]
+#[inline]
+#[doc(alias = "mlock2")]
+pub unsafe fn mlock_with(ptr: *mut c_void, len: usize, flags: MlockFlags) -> io::Result<()> {
+ backend::mm::syscalls::mlock_with(ptr, len, flags)
+}
+
+/// `munlock(ptr, len)`—Unlock memory.
+///
+/// Some implementations implicitly round the memory region out to the nearest
+/// page boundaries, so this function may unlock more memory than explicitly
+/// requested if the memory isn't page-aligned.
+///
+/// # Safety
+///
+/// The range of memory starting at `ptr`, rounded down to the applicable page
+/// boundary, and extending for `len` bytes, rounded up to the applicable page
+/// size, must be valid to read with `ptr`'s provenance.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/munlock.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/munlock.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/munlock.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=munlock&sektion=2
+/// [NetBSD]: https://man.netbsd.org/munlock.2
+/// [OpenBSD]: https://man.openbsd.org/munlock.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=munlock§ion=2
+/// [illumos]: https://illumos.org/man/3C/munlock
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Page-Lock-Functions.html#index-munlock
+#[inline]
+pub unsafe fn munlock(ptr: *mut c_void, len: usize) -> io::Result<()> {
+ backend::mm::syscalls::munlock(ptr, len)
+}
+
+/// Locks all pages mapped into the address space of the calling process.
+///
+/// This includes the pages of the code, data, and stack segment, as well as
+/// shared libraries, user space kernel data, shared memory, and memory-mapped
+/// files. All mapped pages are guaranteed to be resident in RAM when the call
+/// returns successfully; the pages are guaranteed to stay in RAM until later
+/// unlocked.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/mlockall.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/mlockall.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=mlockall&sektion=2
+/// [NetBSD]: https://man.netbsd.org/mlockall.2
+/// [OpenBSD]: https://man.openbsd.org/mlockall.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=mlockall§ion=2
+/// [illumos]: https://illumos.org/man/3C/mlockall
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Page-Lock-Functions.html#index-mlockall
+#[cfg(any(linux_kernel, freebsdlike, netbsdlike))]
+#[inline]
+pub fn mlockall(flags: MlockAllFlags) -> io::Result<()> {
+ backend::mm::syscalls::mlockall(flags)
+}
+
+/// Unlocks all pages mapped into the address space of the calling process.
+///
+/// # Warning
+///
+/// This function is aware of all the memory pages in the process, as if it
+/// were a debugger. It unlocks all the pages, which could potentially
+/// compromise security assumptions made by code about memory it has
+/// encapsulated.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/munlockall.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/munlockall.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=munlockall&sektion=2
+/// [NetBSD]: https://man.netbsd.org/munlockall.2
+/// [OpenBSD]: https://man.openbsd.org/munlockall.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=munlockall§ion=2
+/// [illumos]: https://illumos.org/man/3C/munlockall
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Page-Lock-Functions.html#index-munlockall
+#[cfg(any(linux_kernel, freebsdlike, netbsdlike))]
+#[inline]
+pub fn munlockall() -> io::Result<()> {
+ backend::mm::syscalls::munlockall()
+}
diff --git a/vendor/rustix-1.0.8/src/mm/mod.rs b/vendor/rustix-1.0.8/src/mm/mod.rs
new file mode 100644
index 0000000..7505cac
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/mm/mod.rs
@@ -0,0 +1,15 @@
+//! Memory map operations.
+
+#[cfg(not(target_os = "redox"))]
+mod madvise;
+mod mmap;
+mod msync;
+#[cfg(linux_kernel)]
+mod userfaultfd;
+
+#[cfg(not(target_os = "redox"))]
+pub use madvise::{madvise, Advice};
+pub use mmap::*;
+pub use msync::{msync, MsyncFlags};
+#[cfg(linux_kernel)]
+pub use userfaultfd::{userfaultfd, UserfaultfdFlags};
diff --git a/vendor/rustix-1.0.8/src/mm/msync.rs b/vendor/rustix-1.0.8/src/mm/msync.rs
new file mode 100644
index 0000000..c672343
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/mm/msync.rs
@@ -0,0 +1,46 @@
+//! The `msync` function.
+//!
+//! # Safety
+//!
+//! `msync` operates on a raw pointer. Some forms of `msync` may mutate the
+//! memory or have other side effects.
+#![allow(unsafe_code)]
+
+use crate::{backend, io};
+use core::ffi::c_void;
+
+pub use backend::mm::types::MsyncFlags;
+
+/// `msync(addr, len, flags)`—Synchronizes a memory-mapping with its backing
+/// storage.
+///
+/// # Safety
+///
+/// `addr` must be a valid pointer to memory that is appropriate to call
+/// `msync` on. Some forms of `msync` may mutate the memory or evoke a variety
+/// of side-effects on the mapping and/or the file.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/msync.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/msync.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/msync.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=msync&sektion=2
+/// [NetBSD]: https://man.netbsd.org/msync.2
+/// [OpenBSD]: https://man.openbsd.org/msync.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=msync§ion=2
+/// [illumos]: https://illumos.org/man/3C/msync
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Memory_002dmapped-I_002fO.html#index-msync
+#[inline]
+pub unsafe fn msync(addr: *mut c_void, len: usize, flags: MsyncFlags) -> io::Result<()> {
+ backend::mm::syscalls::msync(addr, len, flags)
+}
diff --git a/vendor/rustix-1.0.8/src/mm/userfaultfd.rs b/vendor/rustix-1.0.8/src/mm/userfaultfd.rs
new file mode 100644
index 0000000..46ab07e
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/mm/userfaultfd.rs
@@ -0,0 +1,30 @@
+//! The Linux `userfaultfd` API.
+//!
+//! # Safety
+//!
+//! Calling `userfaultfd` is safe, but the returned file descriptor lets users
+//! observe and manipulate process memory in magical ways.
+#![allow(unsafe_code)]
+
+use crate::fd::OwnedFd;
+use crate::{backend, io};
+
+pub use backend::mm::types::UserfaultfdFlags;
+
+/// `userfaultfd(flags)`—Create userspace page-fault handler.
+///
+/// # Safety
+///
+/// The call itself is safe, but the returned file descriptor lets users
+/// observe and manipulate process memory in magical ways.
+///
+/// # References
+/// - [Linux]
+/// - [Linux userfaultfd]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/userfaultfd.2.html
+/// [Linux userfaultfd]: https://www.kernel.org/doc/Documentation/vm/userfaultfd.txt
+#[inline]
+pub unsafe fn userfaultfd(flags: UserfaultfdFlags) -> io::Result<OwnedFd> {
+ backend::mm::syscalls::userfaultfd(flags)
+}
diff --git a/vendor/rustix-1.0.8/src/mount/fsopen.rs b/vendor/rustix-1.0.8/src/mount/fsopen.rs
new file mode 100644
index 0000000..bd4b7be
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/mount/fsopen.rs
@@ -0,0 +1,233 @@
+//! `fsopen` and related functions in Linux's `mount` API.
+
+use crate::backend::mount::types::{
+ FsMountFlags, FsOpenFlags, FsPickFlags, MountAttrFlags, MoveMountFlags, OpenTreeFlags,
+};
+use crate::fd::{BorrowedFd, OwnedFd};
+use crate::{backend, io, path};
+
+/// `fsopen(fs_name, flags)`
+///
+/// # References
+/// - [Unfinished draft]
+///
+/// [Unfinished draft]: https://github.com/sunfishcode/linux-mount-api-documentation/blob/main/fsopen.md
+#[inline]
+pub fn fsopen<Fs: path::Arg>(fs_name: Fs, flags: FsOpenFlags) -> io::Result<OwnedFd> {
+ fs_name.into_with_c_str(|fs_name| backend::mount::syscalls::fsopen(fs_name, flags))
+}
+
+/// `fsmount(fs_fd, flags, attr_flags)`
+///
+/// # References
+/// - [Unfinished draft]
+///
+/// [Unfinished draft]: https://github.com/sunfishcode/linux-mount-api-documentation/blob/main/fsmount.md
+#[inline]
+pub fn fsmount(
+ fs_fd: BorrowedFd<'_>,
+ flags: FsMountFlags,
+ attr_flags: MountAttrFlags,
+) -> io::Result<OwnedFd> {
+ backend::mount::syscalls::fsmount(fs_fd, flags, attr_flags)
+}
+
+/// `move_mount(from_dfd, from_pathname, to_dfd, to_pathname, flags)`
+///
+/// This is not the same as `mount` with the `MS_MOVE` flag. If you want to
+/// use that, use [`mount_move`] instead.
+///
+/// # References
+/// - [Unfinished draft]
+///
+/// [`mount_move`]: crate::mount::mount_move
+/// [Unfinished draft]: https://github.com/sunfishcode/linux-mount-api-documentation/blob/main/move_mount.md
+#[inline]
+pub fn move_mount<From: path::Arg, To: path::Arg>(
+ from_dfd: BorrowedFd<'_>,
+ from_pathname: From,
+ to_dfd: BorrowedFd<'_>,
+ to_pathname: To,
+ flags: MoveMountFlags,
+) -> io::Result<()> {
+ from_pathname.into_with_c_str(|from_pathname| {
+ to_pathname.into_with_c_str(|to_pathname| {
+ backend::mount::syscalls::move_mount(
+ from_dfd,
+ from_pathname,
+ to_dfd,
+ to_pathname,
+ flags,
+ )
+ })
+ })
+}
+
+/// `open_tree(dfd, filename, flags)`
+///
+/// # References
+/// - [Unfinished draft]
+///
+/// [Unfinished draft]: https://github.com/sunfishcode/linux-mount-api-documentation/blob/main/open_tree.md
+#[inline]
+pub fn open_tree<Path: path::Arg>(
+ dfd: BorrowedFd<'_>,
+ filename: Path,
+ flags: OpenTreeFlags,
+) -> io::Result<OwnedFd> {
+ filename.into_with_c_str(|filename| backend::mount::syscalls::open_tree(dfd, filename, flags))
+}
+
+/// `fspick(dfd, path, flags)`
+///
+/// # References
+/// - [Unfinished draft]
+///
+/// [Unfinished draft]: https://github.com/sunfishcode/linux-mount-api-documentation/blob/main/fspick.md
+#[inline]
+pub fn fspick<Path: path::Arg>(
+ dfd: BorrowedFd<'_>,
+ path: Path,
+ flags: FsPickFlags,
+) -> io::Result<OwnedFd> {
+ path.into_with_c_str(|path| backend::mount::syscalls::fspick(dfd, path, flags))
+}
+
+/// `fsconfig(fs_fd, FSCONFIG_SET_FLAG, key, NULL, 0)`
+///
+/// # References
+/// - [Unfinished draft]
+///
+/// [Unfinished draft]: https://github.com/sunfishcode/linux-mount-api-documentation/blob/main/fsconfig.md
+#[inline]
+#[doc(alias = "fsconfig")]
+pub fn fsconfig_set_flag<Key: path::Arg>(fs_fd: BorrowedFd<'_>, key: Key) -> io::Result<()> {
+ key.into_with_c_str(|key| backend::mount::syscalls::fsconfig_set_flag(fs_fd, key))
+}
+
+/// `fsconfig(fs_fd, FSCONFIG_SET_STRING, key, value, 0)`
+///
+/// # References
+/// - [Unfinished draft]
+///
+/// [Unfinished draft]: https://github.com/sunfishcode/linux-mount-api-documentation/blob/main/fsconfig.md
+#[inline]
+#[doc(alias = "fsconfig")]
+pub fn fsconfig_set_string<Key: path::Arg, Value: path::Arg>(
+ fs_fd: BorrowedFd<'_>,
+ key: Key,
+ value: Value,
+) -> io::Result<()> {
+ key.into_with_c_str(|key| {
+ value.into_with_c_str(|value| {
+ backend::mount::syscalls::fsconfig_set_string(fs_fd, key, value)
+ })
+ })
+}
+
+/// `fsconfig(fs_fd, FSCONFIG_SET_BINARY, key, value, value.len())`
+///
+/// # References
+/// - [Unfinished draft]
+///
+/// [Unfinished draft]: https://github.com/sunfishcode/linux-mount-api-documentation/blob/main/fsconfig.md
+#[inline]
+#[doc(alias = "fsconfig")]
+pub fn fsconfig_set_binary<Key: path::Arg>(
+ fs_fd: BorrowedFd<'_>,
+ key: Key,
+ value: &[u8],
+) -> io::Result<()> {
+ key.into_with_c_str(|key| backend::mount::syscalls::fsconfig_set_binary(fs_fd, key, value))
+}
+
+/// `fsconfig(fs_fd, FSCONFIG_SET_PATH, key, path, fd)`
+///
+/// # References
+/// - [Unfinished draft]
+///
+/// [Unfinished draft]: https://github.com/sunfishcode/linux-mount-api-documentation/blob/main/fsconfig.md
+#[inline]
+#[doc(alias = "fsconfig")]
+pub fn fsconfig_set_path<Key: path::Arg, Path: path::Arg>(
+ fs_fd: BorrowedFd<'_>,
+ key: Key,
+ path: Path,
+ fd: BorrowedFd<'_>,
+) -> io::Result<()> {
+ key.into_with_c_str(|key| {
+ path.into_with_c_str(|path| {
+ backend::mount::syscalls::fsconfig_set_path(fs_fd, key, path, fd)
+ })
+ })
+}
+
+/// `fsconfig(fs_fd, FSCONFIG_SET_PATH_EMPTY, key, "", fd)`
+///
+/// # References
+/// - [Unfinished draft]
+///
+/// [Unfinished draft]: https://github.com/sunfishcode/linux-mount-api-documentation/blob/main/fsconfig.md
+#[inline]
+#[doc(alias = "fsconfig")]
+pub fn fsconfig_set_path_empty<Key: path::Arg>(
+ fs_fd: BorrowedFd<'_>,
+ key: Key,
+ fd: BorrowedFd<'_>,
+) -> io::Result<()> {
+ key.into_with_c_str(|key| backend::mount::syscalls::fsconfig_set_path_empty(fs_fd, key, fd))
+}
+
+/// `fsconfig(fs_fd, FSCONFIG_SET_FD, key, NULL, fd)`
+///
+/// # References
+/// - [Unfinished draft]
+///
+/// [Unfinished draft]: https://github.com/sunfishcode/linux-mount-api-documentation/blob/main/fsconfig.md
+#[inline]
+#[doc(alias = "fsconfig")]
+pub fn fsconfig_set_fd<Key: path::Arg>(
+ fs_fd: BorrowedFd<'_>,
+ key: Key,
+ fd: BorrowedFd<'_>,
+) -> io::Result<()> {
+ key.into_with_c_str(|key| backend::mount::syscalls::fsconfig_set_fd(fs_fd, key, fd))
+}
+
+/// `fsconfig(fs_fd, FSCONFIG_CMD_CREATE, key, NULL, 0)`
+///
+/// # References
+/// - [Unfinished draft]
+///
+/// [Unfinished draft]: https://github.com/sunfishcode/linux-mount-api-documentation/blob/main/fsconfig.md
+#[inline]
+#[doc(alias = "fsconfig")]
+pub fn fsconfig_create(fs_fd: BorrowedFd<'_>) -> io::Result<()> {
+ backend::mount::syscalls::fsconfig_create(fs_fd)
+}
+
+/// `fsconfig(fs_fd, FSCONFIG_CMD_RECONFIGURE, key, NULL, 0)`
+///
+/// # References
+/// - [Unfinished draft]
+///
+/// [Unfinished draft]: https://github.com/sunfishcode/linux-mount-api-documentation/blob/main/fsconfig.md
+#[inline]
+#[doc(alias = "fsconfig")]
+pub fn fsconfig_reconfigure(fs_fd: BorrowedFd<'_>) -> io::Result<()> {
+ backend::mount::syscalls::fsconfig_reconfigure(fs_fd)
+}
+
+/// `fsconfig(fs_fd, FSCONFIG_CMD_CREATE_EXCL, key, NULL, 0)`
+///
+/// This function was added in Linux 6.6.
+///
+/// # References
+/// - [Unfinished draft]
+///
+/// [Unfinished draft]: https://github.com/sunfishcode/linux-mount-api-documentation/blob/main/fsconfig.md
+#[inline]
+#[doc(alias = "fsconfig")]
+pub fn fsconfig_create_exclusive(fs_fd: BorrowedFd<'_>) -> io::Result<()> {
+ backend::mount::syscalls::fsconfig_create_excl(fs_fd)
+}
diff --git a/vendor/rustix-1.0.8/src/mount/mod.rs b/vendor/rustix-1.0.8/src/mount/mod.rs
new file mode 100644
index 0000000..3c133d3
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/mount/mod.rs
@@ -0,0 +1,9 @@
+//! Linux `mount` API.
+
+mod fsopen;
+mod mount_unmount;
+mod types;
+
+pub use fsopen::*;
+pub use mount_unmount::*;
+pub use types::*;
diff --git a/vendor/rustix-1.0.8/src/mount/mount_unmount.rs b/vendor/rustix-1.0.8/src/mount/mount_unmount.rs
new file mode 100644
index 0000000..6a27845
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/mount/mount_unmount.rs
@@ -0,0 +1,183 @@
+//! Linux `mount`.
+
+use crate::backend::mount::types::{
+ InternalMountFlags, MountFlags, MountFlagsArg, MountPropagationFlags, UnmountFlags,
+};
+use crate::ffi::CStr;
+use crate::path::{self, option_into_with_c_str};
+use crate::{backend, io};
+
+/// `mount(source, target, filesystemtype, mountflags, data)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/mount.2.html
+#[inline]
+pub fn mount<
+ 'a,
+ Source: path::Arg,
+ Target: path::Arg,
+ Fs: path::Arg,
+ Data: Into<Option<&'a CStr>>,
+>(
+ source: Source,
+ target: Target,
+ file_system_type: Fs,
+ flags: MountFlags,
+ data: Data,
+) -> io::Result<()> {
+ source.into_with_c_str(|source| {
+ target.into_with_c_str(|target| {
+ file_system_type.into_with_c_str(|file_system_type| {
+ option_into_with_c_str(data.into(), |data| {
+ backend::mount::syscalls::mount(
+ Some(source),
+ target,
+ Some(file_system_type),
+ MountFlagsArg(flags.bits()),
+ data,
+ )
+ })
+ })
+ })
+ })
+}
+
+/// `mount(NULL, target, NULL, MS_REMOUNT | mountflags, data)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/mount.2.html
+#[inline]
+#[doc(alias = "mount")]
+#[doc(alias = "MS_REMOUNT")]
+pub fn mount_remount<Target: path::Arg, Data: path::Arg>(
+ target: Target,
+ flags: MountFlags,
+ data: Data,
+) -> io::Result<()> {
+ target.into_with_c_str(|target| {
+ data.into_with_c_str(|data| {
+ backend::mount::syscalls::mount(
+ None,
+ target,
+ None,
+ MountFlagsArg(InternalMountFlags::REMOUNT.bits() | flags.bits()),
+ Some(data),
+ )
+ })
+ })
+}
+
+/// `mount(source, target, NULL, MS_BIND, NULL)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/mount.2.html
+#[inline]
+#[doc(alias = "mount")]
+#[doc(alias = "MS_BIND")]
+pub fn mount_bind<Source: path::Arg, Target: path::Arg>(
+ source: Source,
+ target: Target,
+) -> io::Result<()> {
+ source.into_with_c_str(|source| {
+ target.into_with_c_str(|target| {
+ backend::mount::syscalls::mount(
+ Some(source),
+ target,
+ None,
+ MountFlagsArg(MountFlags::BIND.bits()),
+ None,
+ )
+ })
+ })
+}
+
+/// `mount(source, target, NULL, MS_BIND | MS_REC, NULL)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/mount.2.html
+#[inline]
+#[doc(alias = "mount")]
+#[doc(alias = "MS_REC")]
+pub fn mount_bind_recursive<Source: path::Arg, Target: path::Arg>(
+ source: Source,
+ target: Target,
+) -> io::Result<()> {
+ source.into_with_c_str(|source| {
+ target.into_with_c_str(|target| {
+ backend::mount::syscalls::mount(
+ Some(source),
+ target,
+ None,
+ MountFlagsArg(MountFlags::BIND.bits() | MountPropagationFlags::REC.bits()),
+ None,
+ )
+ })
+ })
+}
+
+/// `mount(NULL, target, NULL, mountflags, NULL)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/mount.2.html
+#[inline]
+#[doc(alias = "mount")]
+pub fn mount_change<Target: path::Arg>(
+ target: Target,
+ flags: MountPropagationFlags,
+) -> io::Result<()> {
+ target.into_with_c_str(|target| {
+ backend::mount::syscalls::mount(None, target, None, MountFlagsArg(flags.bits()), None)
+ })
+}
+
+/// `mount(source, target, NULL, MS_MOVE, NULL)`
+///
+/// This is not the same as the `move_mount` syscall. If you want to use that,
+/// use [`move_mount`] instead.
+///
+/// # References
+/// - [Linux]
+///
+/// [`move_mount`]: crate::mount::move_mount
+/// [Linux]: https://man7.org/linux/man-pages/man2/mount.2.html
+#[inline]
+#[doc(alias = "mount")]
+#[doc(alias = "MS_MOVE")]
+pub fn mount_move<Source: path::Arg, Target: path::Arg>(
+ source: Source,
+ target: Target,
+) -> io::Result<()> {
+ source.into_with_c_str(|source| {
+ target.into_with_c_str(|target| {
+ backend::mount::syscalls::mount(
+ Some(source),
+ target,
+ None,
+ MountFlagsArg(InternalMountFlags::MOVE.bits()),
+ None,
+ )
+ })
+ })
+}
+
+/// `umount2(target, flags)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/umount.2.html
+#[inline]
+#[doc(alias = "umount", alias = "umount2")]
+pub fn unmount<Target: path::Arg>(target: Target, flags: UnmountFlags) -> io::Result<()> {
+ target.into_with_c_str(|target| backend::mount::syscalls::unmount(target, flags))
+}
diff --git a/vendor/rustix-1.0.8/src/mount/types.rs b/vendor/rustix-1.0.8/src/mount/types.rs
new file mode 100644
index 0000000..6096e76
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/mount/types.rs
@@ -0,0 +1 @@
+pub use crate::backend::mount::types::*;
diff --git a/vendor/rustix-1.0.8/src/net/addr.rs b/vendor/rustix-1.0.8/src/net/addr.rs
new file mode 100644
index 0000000..13e5c24
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/net/addr.rs
@@ -0,0 +1,182 @@
+//! Types for implementers of socket address types or code that is generic over
+//! address types.
+//!
+//! The concrete address types and [`SocketAddrAny`] are in
+//! [the parent module][`super`].
+
+#![allow(unsafe_code)]
+use core::mem::{size_of, MaybeUninit};
+use core::ptr;
+
+use crate::backend::net::write_sockaddr::{encode_sockaddr_v4, encode_sockaddr_v6};
+use crate::utils::as_ptr;
+
+use super::{SocketAddr, SocketAddrAny, SocketAddrV4, SocketAddrV6};
+
+pub use crate::backend::net::addr::SocketAddrStorage;
+
+#[cfg(unix)]
+use super::SocketAddrUnix;
+
+/// Opaque type equivalent to `sockaddr` in C.
+///
+/// This is always used behind a raw pointer that is cast from a pointer to a
+/// `sockaddr`-compatible C type, and then cast back to a `sockaddr` pointer to
+/// be passed to a system call.
+#[repr(C)]
+pub struct SocketAddrOpaque {
+ _data: [u8; 0],
+}
+
+/// A type for the length of a socket address.
+///
+/// This type will always be big enough to hold any socket address, but never
+/// bigger than `usize`.
+#[doc(alias = "socklen_t")]
+pub type SocketAddrLen = u32;
+
+/// A trait abstracting over the types that can be passed as a `sockaddr`.
+///
+/// # Safety
+///
+/// Implementers of this trait must ensure that `with_sockaddr` calls `f` with
+/// a pointer that is readable for the passed length, and points to data that
+/// is a valid socket address for the system calls that accept `sockaddr` as a
+/// const pointer.
+pub unsafe trait SocketAddrArg {
+ /// Call a closure with the pointer and length to the corresponding C type.
+ ///
+ /// The memory pointed to by the pointer of size length is guaranteed to be
+ /// valid only for the duration of the call.
+ ///
+ /// The API uses a closure so that:
+ /// - The libc types are not exposed in the rustix API.
+ /// - Types like `SocketAddrUnix` that contain their corresponding C type
+ /// can pass it directly without a copy.
+ /// - Other socket types can construct their C-compatible struct on the
+ /// stack and call the closure with a pointer to it.
+ ///
+ /// # Safety
+ ///
+ /// For `f` to use its pointer argument, it'll contain an `unsafe` block.
+ /// The caller of `with_sockaddr` here is responsible for ensuring that the
+ /// safety condition for that `unsafe` block is satisfied by the guarantee
+ /// that `with_sockaddr` here provides.
+ unsafe fn with_sockaddr<R>(
+ &self,
+ f: impl FnOnce(*const SocketAddrOpaque, SocketAddrLen) -> R,
+ ) -> R;
+
+ /// Convert to `SocketAddrAny`.
+ fn as_any(&self) -> SocketAddrAny {
+ let mut storage = MaybeUninit::<SocketAddrStorage>::uninit();
+ // SAFETY: We've allocated `storage` here, we're writing to it, and
+ // we're using the number of bytes written.
+ unsafe {
+ let len = self.write_sockaddr(storage.as_mut_ptr());
+ SocketAddrAny::new(storage, len)
+ }
+ }
+
+ /// Encode an address into a `SocketAddrStorage`.
+ ///
+ /// Returns the number of bytes that were written.
+ ///
+ /// For a safe interface to this functionality, use [`as_any`].
+ ///
+ /// [`as_any`]: Self::as_any
+ ///
+ /// # Safety
+ ///
+ /// `storage` must be valid to write up to `size_of<SocketAddrStorage>()`
+ /// bytes to.
+ unsafe fn write_sockaddr(&self, storage: *mut SocketAddrStorage) -> SocketAddrLen {
+ // The closure dereferences exactly `len` bytes at `ptr`.
+ self.with_sockaddr(|ptr, len| {
+ ptr::copy_nonoverlapping(ptr.cast::<u8>(), storage.cast::<u8>(), len as usize);
+ len
+ })
+ }
+}
+
+/// Helper for implementing `SocketAddrArg::with_sockaddr`.
+///
+/// # Safety
+///
+/// This calls `f` with a pointer to an object it has a reference to, with the
+/// and the length of that object, so they'll be valid for the duration of the
+/// call.
+pub(crate) unsafe fn call_with_sockaddr<A, R>(
+ addr: &A,
+ f: impl FnOnce(*const SocketAddrOpaque, SocketAddrLen) -> R,
+) -> R {
+ let ptr = as_ptr(addr).cast();
+ let len = size_of::<A>() as SocketAddrLen;
+ f(ptr, len)
+}
+
+// SAFETY: This just forwards to the inner `SocketAddrArg` implementations.
+unsafe impl SocketAddrArg for SocketAddr {
+ unsafe fn with_sockaddr<R>(
+ &self,
+ f: impl FnOnce(*const SocketAddrOpaque, SocketAddrLen) -> R,
+ ) -> R {
+ match self {
+ Self::V4(v4) => v4.with_sockaddr(f),
+ Self::V6(v6) => v6.with_sockaddr(f),
+ }
+ }
+}
+
+// SAFETY: `with_sockaddr` calls `f` using `call_with_sockaddr`, which handles
+// calling `f` with the needed preconditions.
+unsafe impl SocketAddrArg for SocketAddrV4 {
+ unsafe fn with_sockaddr<R>(
+ &self,
+ f: impl FnOnce(*const SocketAddrOpaque, SocketAddrLen) -> R,
+ ) -> R {
+ call_with_sockaddr(&encode_sockaddr_v4(self), f)
+ }
+}
+
+// SAFETY: `with_sockaddr` calls `f` using `call_with_sockaddr`, which handles
+// calling `f` with the needed preconditions.
+unsafe impl SocketAddrArg for SocketAddrV6 {
+ unsafe fn with_sockaddr<R>(
+ &self,
+ f: impl FnOnce(*const SocketAddrOpaque, SocketAddrLen) -> R,
+ ) -> R {
+ call_with_sockaddr(&encode_sockaddr_v6(self), f)
+ }
+}
+
+#[cfg(unix)]
+// SAFETY: `with_sockaddr` calls `f` using `call_with_sockaddr`, which handles
+// calling `f` with the needed preconditions.
+unsafe impl SocketAddrArg for SocketAddrUnix {
+ unsafe fn with_sockaddr<R>(
+ &self,
+ f: impl FnOnce(*const SocketAddrOpaque, SocketAddrLen) -> R,
+ ) -> R {
+ f(as_ptr(&self.unix).cast(), self.addr_len())
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use crate::backend::c;
+
+ #[test]
+ fn test_layouts() {
+ assert_eq_size!(SocketAddrLen, c::socklen_t);
+
+ #[cfg(not(any(windows, target_os = "redox")))]
+ assert_eq!(
+ memoffset::span_of!(c::msghdr, msg_namelen).len(),
+ size_of::<SocketAddrLen>()
+ );
+
+ assert!(size_of::<SocketAddrLen>() <= size_of::<usize>());
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/net/mod.rs b/vendor/rustix-1.0.8/src/net/mod.rs
new file mode 100644
index 0000000..e556090
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/net/mod.rs
@@ -0,0 +1,35 @@
+//! Network-related operations.
+//!
+//! On Windows, one must call [`wsa_startup`] in the process before calling any
+//! of these APIs. [`wsa_cleanup`] may be used in the process if these APIs are
+//! no longer needed.
+//!
+//! [`wsa_startup`]: https://docs.rs/rustix/*/x86_64-pc-windows-msvc/rustix/net/fn.wsa_startup.html
+//! [`wsa_cleanup`]: https://docs.rs/rustix/*/x86_64-pc-windows-msvc/rustix/net/fn.wsa_cleanup.html
+
+pub mod addr;
+mod send_recv;
+mod socket;
+mod socket_addr_any;
+#[cfg(not(any(windows, target_os = "wasi")))]
+mod socketpair;
+mod types;
+#[cfg(windows)]
+mod wsa;
+
+#[cfg(linux_kernel)]
+pub mod netdevice;
+pub mod sockopt;
+
+pub use crate::maybe_polyfill::net::{
+ IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6,
+};
+pub use send_recv::*;
+pub use socket::*;
+pub use socket_addr_any::SocketAddrAny;
+pub(crate) use socket_addr_any::SocketAddrBuf;
+#[cfg(not(any(windows, target_os = "wasi")))]
+pub use socketpair::socketpair;
+pub use types::*;
+#[cfg(windows)]
+pub use wsa::{wsa_cleanup, wsa_startup};
diff --git a/vendor/rustix-1.0.8/src/net/netdevice.rs b/vendor/rustix-1.0.8/src/net/netdevice.rs
new file mode 100644
index 0000000..1ddd918
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/net/netdevice.rs
@@ -0,0 +1,107 @@
+//! Low-level Linux network device access
+//!
+//! The methods in this module take a socket's file descriptor to communicate
+//! with the kernel in their ioctl call:
+//! - glibc uses an `AF_UNIX`, `AF_INET`, or `AF_INET6` socket. The address
+//! family itself does not matter and glibc tries the next address family if
+//! socket creation with one fails.
+//! - Android (bionic) uses an `AF_INET` socket.
+//! - Both create the socket with `SOCK_DGRAM|SOCK_CLOEXEC` type/flag.
+//! - The [manual pages] specify that the ioctl calls “can be used on any
+//! socket's file descriptor regardless of the family or type”.
+//!
+//! # References
+//! - [Linux]
+//!
+//! [manual pages]: https://man7.org/linux/man-pages/man7/netdevice.7.html
+//! [Linux]: https://man7.org/linux/man-pages/man7/netdevice.7.html
+
+use crate::fd::AsFd;
+use crate::io;
+#[cfg(feature = "alloc")]
+use alloc::string::String;
+
+/// `ioctl(fd, SIOCGIFINDEX, ifreq)`—Returns the interface index for a given
+/// name.
+///
+/// See the [module-level documentation] for information about `fd` usage.
+///
+/// # References
+/// - [Linux]
+///
+/// [module-level documentation]: self
+/// [Linux]: https://man7.org/linux/man-pages/man7/netdevice.7.html
+#[inline]
+#[doc(alias = "SIOCGIFINDEX")]
+pub fn name_to_index<Fd: AsFd>(fd: Fd, if_name: &str) -> io::Result<u32> {
+ crate::backend::net::netdevice::name_to_index(fd.as_fd(), if_name)
+}
+
+/// `ioctl(fd, SIOCGIFNAME, ifreq)`—Returns the interface name for a given
+/// index.
+///
+/// See the [module-level documentation] for information about `fd` usage.
+///
+/// # References
+/// - [Linux]
+///
+/// [module-level documentation]: self
+/// [Linux]: https://man7.org/linux/man-pages/man7/netdevice.7.html
+#[inline]
+#[doc(alias = "SIOCGIFNAME")]
+#[cfg(feature = "alloc")]
+#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
+pub fn index_to_name<Fd: AsFd>(fd: Fd, index: u32) -> io::Result<String> {
+ crate::backend::net::netdevice::index_to_name(fd.as_fd(), index)
+}
+
+#[cfg(test)]
+mod tests {
+ use crate::backend::net::netdevice::{index_to_name, name_to_index};
+ use crate::fd::AsFd;
+ use crate::net::{AddressFamily, SocketFlags, SocketType};
+
+ #[test]
+ fn test_name_to_index() {
+ let fd = crate::net::socket_with(
+ AddressFamily::INET,
+ SocketType::DGRAM,
+ SocketFlags::CLOEXEC,
+ None,
+ )
+ .unwrap();
+
+ let loopback_index = std::fs::read_to_string("/sys/class/net/lo/ifindex")
+ .unwrap()
+ .as_str()
+ .split_at(1)
+ .0
+ .parse::<u32>()
+ .unwrap();
+ assert_eq!(Ok(loopback_index), name_to_index(fd.as_fd(), "lo"));
+ }
+
+ #[test]
+ #[cfg(feature = "alloc")]
+ fn test_index_to_name() {
+ let fd = crate::net::socket_with(
+ AddressFamily::INET,
+ SocketType::DGRAM,
+ SocketFlags::CLOEXEC,
+ None,
+ )
+ .unwrap();
+
+ let loopback_index = std::fs::read_to_string("/sys/class/net/lo/ifindex")
+ .unwrap()
+ .as_str()
+ .split_at(1)
+ .0
+ .parse::<u32>()
+ .unwrap();
+ assert_eq!(
+ Ok("lo".to_owned()),
+ index_to_name(fd.as_fd(), loopback_index)
+ );
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/net/send_recv/mod.rs b/vendor/rustix-1.0.8/src/net/send_recv/mod.rs
new file mode 100644
index 0000000..0aac6d2
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/net/send_recv/mod.rs
@@ -0,0 +1,192 @@
+//! `recv`, `send`, and variants.
+
+#![allow(unsafe_code)]
+
+use crate::buffer::Buffer;
+use crate::net::addr::SocketAddrArg;
+use crate::net::SocketAddrAny;
+use crate::{backend, io};
+use backend::fd::AsFd;
+use core::cmp::min;
+
+pub use backend::net::send_recv::{RecvFlags, ReturnFlags, SendFlags};
+
+#[cfg(not(any(
+ windows,
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+mod msg;
+
+#[cfg(not(any(
+ windows,
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+pub use msg::*;
+
+/// `recv(fd, buf, flags)`—Reads data from a socket.
+///
+/// In addition to the `Buffer::Output` return value, this also returns the
+/// number of bytes received before any truncation due to the
+/// [`RecvFlags::TRUNC`] flag.
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/system-calls-or-bust.html#sendrecv
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/recv.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/recv.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/recv.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-recv
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=recv&sektion=2
+/// [NetBSD]: https://man.netbsd.org/recv.2
+/// [OpenBSD]: https://man.openbsd.org/recv.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=recv§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/recv
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Receiving-Data.html
+#[inline]
+#[allow(clippy::type_complexity)]
+pub fn recv<Fd: AsFd, Buf: Buffer<u8>>(
+ fd: Fd,
+ mut buf: Buf,
+ flags: RecvFlags,
+) -> io::Result<(Buf::Output, usize)> {
+ let (ptr, len) = buf.parts_mut();
+ // SAFETY: `recv` behaves.
+ let recv_len = unsafe { backend::net::syscalls::recv(fd.as_fd(), (ptr, len), flags)? };
+ // If the `TRUNC` flag is set, the returned `length` may be longer than the
+ // buffer length.
+ let min_len = min(len, recv_len);
+ // SAFETY: `recv` behaves.
+ unsafe { Ok((buf.assume_init(min_len), recv_len)) }
+}
+
+/// `send(fd, buf, flags)`—Writes data to a socket.
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/system-calls-or-bust.html#sendrecv
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/send.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/send.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/send.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-send
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=send&sektion=2
+/// [NetBSD]: https://man.netbsd.org/send.2
+/// [OpenBSD]: https://man.openbsd.org/send.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=send§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/send
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Sending-Data.html
+#[inline]
+pub fn send<Fd: AsFd>(fd: Fd, buf: &[u8], flags: SendFlags) -> io::Result<usize> {
+ backend::net::syscalls::send(fd.as_fd(), buf, flags)
+}
+
+/// `recvfrom(fd, buf, flags, addr, len)`—Reads data from a socket and
+/// returns the sender address.
+///
+/// In addition to the `Buffer::Output` return value, this also returns the
+/// number of bytes received before any truncation due to the
+/// [`RecvFlags::TRUNC`] flag.
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/system-calls-or-bust.html#sendtorecv
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/recvfrom.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/recvfrom.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/recvfrom.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-recvfrom
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=recvfrom&sektion=2
+/// [NetBSD]: https://man.netbsd.org/recvfrom.2
+/// [OpenBSD]: https://man.openbsd.org/recvfrom.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=recvfrom§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/recvfrom
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Receiving-Datagrams.html
+#[inline]
+pub fn recvfrom<Fd: AsFd, Buf: Buffer<u8>>(
+ fd: Fd,
+ mut buf: Buf,
+ flags: RecvFlags,
+) -> io::Result<(Buf::Output, usize, Option<SocketAddrAny>)> {
+ let (ptr, len) = buf.parts_mut();
+ // SAFETY: `recvfrom` behaves.
+ let (recv_len, addr) =
+ unsafe { backend::net::syscalls::recvfrom(fd.as_fd(), (ptr, len), flags)? };
+ // If the `TRUNC` flag is set, the returned `length` may be longer than the
+ // buffer length.
+ let min_len = min(len, recv_len);
+ // SAFETY: `recvfrom` behaves.
+ unsafe { Ok((buf.assume_init(min_len), recv_len, addr)) }
+}
+
+/// `sendto(fd, buf, flags, addr)`—Writes data to a socket to a specific IP
+/// address.
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/system-calls-or-bust.html#sendtorecv
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/sendto.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/sendto.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/sendto.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-sendto
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=sendto&sektion=2
+/// [NetBSD]: https://man.netbsd.org/sendto.2
+/// [OpenBSD]: https://man.openbsd.org/sendto.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=sendto§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/sendto
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Sending-Datagrams.html
+pub fn sendto<Fd: AsFd>(
+ fd: Fd,
+ buf: &[u8],
+ flags: SendFlags,
+ addr: &impl SocketAddrArg,
+) -> io::Result<usize> {
+ backend::net::syscalls::sendto(fd.as_fd(), buf, flags, addr)
+}
diff --git a/vendor/rustix-1.0.8/src/net/send_recv/msg.rs b/vendor/rustix-1.0.8/src/net/send_recv/msg.rs
new file mode 100644
index 0000000..7df60a5
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/net/send_recv/msg.rs
@@ -0,0 +1,961 @@
+//! [`recvmsg`], [`sendmsg`], and related functions.
+
+#![allow(unsafe_code)]
+
+#[cfg(target_os = "linux")]
+use crate::backend::net::msghdr::noaddr_msghdr;
+use crate::backend::{self, c};
+use crate::fd::{AsFd, BorrowedFd, OwnedFd};
+use crate::io::{self, IoSlice, IoSliceMut};
+use crate::net::addr::SocketAddrArg;
+#[cfg(linux_kernel)]
+use crate::net::UCred;
+use core::iter::FusedIterator;
+use core::marker::PhantomData;
+use core::mem::{align_of, size_of, size_of_val, take, MaybeUninit};
+#[cfg(linux_kernel)]
+use core::ptr::addr_of;
+use core::{ptr, slice};
+
+use super::{RecvFlags, ReturnFlags, SendFlags, SocketAddrAny};
+
+/// Macro for defining the amount of space to allocate in a buffer for use with
+/// [`RecvAncillaryBuffer::new`] and [`SendAncillaryBuffer::new`].
+///
+/// # Examples
+///
+/// Allocate a buffer for a single file descriptor:
+/// ```
+/// # use std::mem::MaybeUninit;
+/// # use rustix::cmsg_space;
+/// let mut space = [MaybeUninit::uninit(); rustix::cmsg_space!(ScmRights(1))];
+/// # let _: &[MaybeUninit<u8>] = space.as_slice();
+/// ```
+///
+/// Allocate a buffer for credentials:
+/// ```
+/// # #[cfg(linux_kernel)]
+/// # {
+/// # use std::mem::MaybeUninit;
+/// # use rustix::cmsg_space;
+/// let mut space = [MaybeUninit::uninit(); rustix::cmsg_space!(ScmCredentials(1))];
+/// # let _: &[MaybeUninit<u8>] = space.as_slice();
+/// # }
+/// ```
+///
+/// Allocate a buffer for two file descriptors and credentials:
+/// ```
+/// # #[cfg(linux_kernel)]
+/// # {
+/// # use std::mem::MaybeUninit;
+/// # use rustix::cmsg_space;
+/// let mut space = [MaybeUninit::uninit(); rustix::cmsg_space!(ScmRights(2), ScmCredentials(1))];
+/// # let _: &[MaybeUninit<u8>] = space.as_slice();
+/// # }
+/// ```
+#[macro_export]
+macro_rules! cmsg_space {
+ // Base Rules
+ (ScmRights($len:expr)) => {
+ $crate::net::__cmsg_space(
+ $len * ::core::mem::size_of::<$crate::fd::BorrowedFd<'static>>(),
+ )
+ };
+ (ScmCredentials($len:expr)) => {
+ $crate::net::__cmsg_space(
+ $len * ::core::mem::size_of::<$crate::net::UCred>(),
+ )
+ };
+
+ // Combo Rules
+ ($firstid:ident($firstex:expr), $($restid:ident($restex:expr)),*) => {{
+ // We only have to add `cmsghdr` alignment once; all other times we can
+ // use `cmsg_aligned_space`.
+ let sum = $crate::cmsg_space!($firstid($firstex));
+ $(
+ let sum = sum + $crate::cmsg_aligned_space!($restid($restex));
+ )*
+ sum
+ }};
+}
+
+/// Like `cmsg_space`, but doesn't add padding for `cmsghdr` alignment.
+#[doc(hidden)]
+#[macro_export]
+macro_rules! cmsg_aligned_space {
+ // Base Rules
+ (ScmRights($len:expr)) => {
+ $crate::net::__cmsg_aligned_space(
+ $len * ::core::mem::size_of::<$crate::fd::BorrowedFd<'static>>(),
+ )
+ };
+ (ScmCredentials($len:expr)) => {
+ $crate::net::__cmsg_aligned_space(
+ $len * ::core::mem::size_of::<$crate::net::UCred>(),
+ )
+ };
+
+ // Combo Rules
+ ($firstid:ident($firstex:expr), $($restid:ident($restex:expr)),*) => {{
+ let sum = cmsg_aligned_space!($firstid($firstex));
+ $(
+ let sum = sum + cmsg_aligned_space!($restid($restex));
+ )*
+ sum
+ }};
+}
+
+/// Helper function for [`cmsg_space`].
+#[doc(hidden)]
+pub const fn __cmsg_space(len: usize) -> usize {
+ // Add `align_of::<c::cmsghdr>()` so that we can align the user-provided
+ // `&[u8]` to the required alignment boundary.
+ let len = len + align_of::<c::cmsghdr>();
+
+ __cmsg_aligned_space(len)
+}
+
+/// Helper function for [`cmsg_aligned_space`].
+#[doc(hidden)]
+pub const fn __cmsg_aligned_space(len: usize) -> usize {
+ // Convert `len` to `u32` for `CMSG_SPACE`. This would be `try_into()` if
+ // we could call that in a `const fn`.
+ let converted_len = len as u32;
+ if converted_len as usize != len {
+ unreachable!(); // `CMSG_SPACE` size overflow
+ }
+
+ unsafe { c::CMSG_SPACE(converted_len) as usize }
+}
+
+/// Ancillary message for [`sendmsg`] and [`sendmsg_addr`].
+#[non_exhaustive]
+pub enum SendAncillaryMessage<'slice, 'fd> {
+ /// Send file descriptors.
+ #[doc(alias = "SCM_RIGHTS")]
+ ScmRights(&'slice [BorrowedFd<'fd>]),
+ /// Send process credentials.
+ #[cfg(linux_kernel)]
+ #[doc(alias = "SCM_CREDENTIAL")]
+ ScmCredentials(UCred),
+}
+
+impl SendAncillaryMessage<'_, '_> {
+ /// Get the maximum size of an ancillary message.
+ ///
+ /// This can be used to determine the size of the buffer to allocate for a
+ /// [`SendAncillaryBuffer::new`] with one message.
+ pub const fn size(&self) -> usize {
+ match self {
+ Self::ScmRights(slice) => cmsg_space!(ScmRights(slice.len())),
+ #[cfg(linux_kernel)]
+ Self::ScmCredentials(_) => cmsg_space!(ScmCredentials(1)),
+ }
+ }
+}
+
+/// Ancillary message for [`recvmsg`].
+#[non_exhaustive]
+pub enum RecvAncillaryMessage<'a> {
+ /// Received file descriptors.
+ #[doc(alias = "SCM_RIGHTS")]
+ ScmRights(AncillaryIter<'a, OwnedFd>),
+ /// Received process credentials.
+ #[cfg(linux_kernel)]
+ #[doc(alias = "SCM_CREDENTIALS")]
+ ScmCredentials(UCred),
+}
+
+/// Buffer for sending ancillary messages with [`sendmsg`] and
+/// [`sendmsg_addr`].
+///
+/// Use the [`push`] function to add messages to send.
+///
+/// [`push`]: SendAncillaryBuffer::push
+pub struct SendAncillaryBuffer<'buf, 'slice, 'fd> {
+ /// Raw byte buffer for messages.
+ buffer: &'buf mut [MaybeUninit<u8>],
+
+ /// The amount of the buffer that is used.
+ length: usize,
+
+ /// Phantom data for lifetime of `&'slice [BorrowedFd<'fd>]`.
+ _phantom: PhantomData<&'slice [BorrowedFd<'fd>]>,
+}
+
+impl<'buf> From<&'buf mut [MaybeUninit<u8>]> for SendAncillaryBuffer<'buf, '_, '_> {
+ fn from(buffer: &'buf mut [MaybeUninit<u8>]) -> Self {
+ Self::new(buffer)
+ }
+}
+
+impl Default for SendAncillaryBuffer<'_, '_, '_> {
+ fn default() -> Self {
+ Self {
+ buffer: &mut [],
+ length: 0,
+ _phantom: PhantomData,
+ }
+ }
+}
+
+impl<'buf, 'slice, 'fd> SendAncillaryBuffer<'buf, 'slice, 'fd> {
+ /// Create a new, empty `SendAncillaryBuffer` from a raw byte buffer.
+ ///
+ /// The buffer size may be computed with [`cmsg_space`], or it may be
+ /// zero for an empty buffer, however in that case, consider `default()`
+ /// instead, or even using [`send`] instead of `sendmsg`.
+ ///
+ /// # Examples
+ ///
+ /// Allocate a buffer for a single file descriptor:
+ /// ```
+ /// # use std::mem::MaybeUninit;
+ /// # use rustix::cmsg_space;
+ /// # use rustix::net::SendAncillaryBuffer;
+ /// let mut space = [MaybeUninit::uninit(); rustix::cmsg_space!(ScmRights(1))];
+ /// let mut cmsg_buffer = SendAncillaryBuffer::new(&mut space);
+ /// ```
+ ///
+ /// Allocate a buffer for credentials:
+ /// ```
+ /// # #[cfg(linux_kernel)]
+ /// # {
+ /// # use std::mem::MaybeUninit;
+ /// # use rustix::cmsg_space;
+ /// # use rustix::net::SendAncillaryBuffer;
+ /// let mut space = [MaybeUninit::uninit(); rustix::cmsg_space!(ScmCredentials(1))];
+ /// let mut cmsg_buffer = SendAncillaryBuffer::new(&mut space);
+ /// # }
+ /// ```
+ ///
+ /// Allocate a buffer for two file descriptors and credentials:
+ /// ```
+ /// # #[cfg(linux_kernel)]
+ /// # {
+ /// # use std::mem::MaybeUninit;
+ /// # use rustix::cmsg_space;
+ /// # use rustix::net::SendAncillaryBuffer;
+ /// let mut space = [MaybeUninit::uninit(); rustix::cmsg_space!(ScmRights(2), ScmCredentials(1))];
+ /// let mut cmsg_buffer = SendAncillaryBuffer::new(&mut space);
+ /// # }
+ /// ```
+ ///
+ /// [`send`]: crate::net::send
+ #[inline]
+ pub fn new(buffer: &'buf mut [MaybeUninit<u8>]) -> Self {
+ Self {
+ buffer: align_for_cmsghdr(buffer),
+ length: 0,
+ _phantom: PhantomData,
+ }
+ }
+
+ /// Returns a pointer to the message data.
+ pub(crate) fn as_control_ptr(&mut self) -> *mut u8 {
+ // When the length is zero, we may be using a `&[]` address, which may
+ // be an invalid but non-null pointer, and on some platforms, that
+ // causes `sendmsg` to fail with `EFAULT` or `EINVAL`
+ #[cfg(not(linux_kernel))]
+ if self.length == 0 {
+ return core::ptr::null_mut();
+ }
+
+ self.buffer.as_mut_ptr().cast()
+ }
+
+ /// Returns the length of the message data.
+ pub(crate) fn control_len(&self) -> usize {
+ self.length
+ }
+
+ /// Delete all messages from the buffer.
+ pub fn clear(&mut self) {
+ self.length = 0;
+ }
+
+ /// Add an ancillary message to the buffer.
+ ///
+ /// Returns `true` if the message was added successfully.
+ pub fn push(&mut self, msg: SendAncillaryMessage<'slice, 'fd>) -> bool {
+ match msg {
+ SendAncillaryMessage::ScmRights(fds) => {
+ let fds_bytes =
+ unsafe { slice::from_raw_parts(fds.as_ptr().cast::<u8>(), size_of_val(fds)) };
+ self.push_ancillary(fds_bytes, c::SOL_SOCKET as _, c::SCM_RIGHTS as _)
+ }
+ #[cfg(linux_kernel)]
+ SendAncillaryMessage::ScmCredentials(ucred) => {
+ let ucred_bytes = unsafe {
+ slice::from_raw_parts(addr_of!(ucred).cast::<u8>(), size_of_val(&ucred))
+ };
+ self.push_ancillary(ucred_bytes, c::SOL_SOCKET as _, c::SCM_CREDENTIALS as _)
+ }
+ }
+ }
+
+ /// Pushes an ancillary message to the buffer.
+ fn push_ancillary(&mut self, source: &[u8], cmsg_level: c::c_int, cmsg_type: c::c_int) -> bool {
+ macro_rules! leap {
+ ($e:expr) => {{
+ match ($e) {
+ Some(x) => x,
+ None => return false,
+ }
+ }};
+ }
+
+ // Calculate the length of the message.
+ let source_len = leap!(u32::try_from(source.len()).ok());
+
+ // Calculate the new length of the buffer.
+ let additional_space = unsafe { c::CMSG_SPACE(source_len) };
+ let new_length = leap!(self.length.checked_add(additional_space as usize));
+ let buffer = leap!(self.buffer.get_mut(..new_length));
+
+ // Fill the new part of the buffer with zeroes.
+ buffer[self.length..new_length].fill(MaybeUninit::new(0));
+ self.length = new_length;
+
+ // Get the last header in the buffer.
+ let last_header = leap!(messages::Messages::new(buffer).last());
+
+ // Set the header fields.
+ last_header.cmsg_len = unsafe { c::CMSG_LEN(source_len) } as _;
+ last_header.cmsg_level = cmsg_level;
+ last_header.cmsg_type = cmsg_type;
+
+ // Get the pointer to the payload and copy the data.
+ unsafe {
+ let payload = c::CMSG_DATA(last_header);
+ ptr::copy_nonoverlapping(source.as_ptr(), payload, source_len as usize);
+ }
+
+ true
+ }
+}
+
+impl<'slice, 'fd> Extend<SendAncillaryMessage<'slice, 'fd>>
+ for SendAncillaryBuffer<'_, 'slice, 'fd>
+{
+ fn extend<T: IntoIterator<Item = SendAncillaryMessage<'slice, 'fd>>>(&mut self, iter: T) {
+ // TODO: This could be optimized to add every message in one go.
+ iter.into_iter().all(|msg| self.push(msg));
+ }
+}
+
+/// Buffer for receiving ancillary messages with [`recvmsg`].
+///
+/// Use the [`drain`] function to iterate over the received messages.
+///
+/// [`drain`]: RecvAncillaryBuffer::drain
+#[derive(Default)]
+pub struct RecvAncillaryBuffer<'buf> {
+ /// Raw byte buffer for messages.
+ buffer: &'buf mut [MaybeUninit<u8>],
+
+ /// The portion of the buffer we've read from already.
+ read: usize,
+
+ /// The amount of the buffer that is used.
+ length: usize,
+}
+
+impl<'buf> From<&'buf mut [MaybeUninit<u8>]> for RecvAncillaryBuffer<'buf> {
+ fn from(buffer: &'buf mut [MaybeUninit<u8>]) -> Self {
+ Self::new(buffer)
+ }
+}
+
+impl<'buf> RecvAncillaryBuffer<'buf> {
+ /// Create a new, empty `RecvAncillaryBuffer` from a raw byte buffer.
+ ///
+ /// The buffer size may be computed with [`cmsg_space`], or it may be
+ /// zero for an empty buffer, however in that case, consider `default()`
+ /// instead, or even using [`recv`] instead of `recvmsg`.
+ ///
+ /// # Examples
+ ///
+ /// Allocate a buffer for a single file descriptor:
+ /// ```
+ /// # use std::mem::MaybeUninit;
+ /// # use rustix::cmsg_space;
+ /// # use rustix::net::RecvAncillaryBuffer;
+ /// let mut space = [MaybeUninit::uninit(); rustix::cmsg_space!(ScmRights(1))];
+ /// let mut cmsg_buffer = RecvAncillaryBuffer::new(&mut space);
+ /// ```
+ ///
+ /// Allocate a buffer for credentials:
+ /// ```
+ /// # #[cfg(linux_kernel)]
+ /// # {
+ /// # use std::mem::MaybeUninit;
+ /// # use rustix::cmsg_space;
+ /// # use rustix::net::RecvAncillaryBuffer;
+ /// let mut space = [MaybeUninit::uninit(); rustix::cmsg_space!(ScmCredentials(1))];
+ /// let mut cmsg_buffer = RecvAncillaryBuffer::new(&mut space);
+ /// # }
+ /// ```
+ ///
+ /// Allocate a buffer for two file descriptors and credentials:
+ /// ```
+ /// # #[cfg(linux_kernel)]
+ /// # {
+ /// # use std::mem::MaybeUninit;
+ /// # use rustix::cmsg_space;
+ /// # use rustix::net::RecvAncillaryBuffer;
+ /// let mut space = [MaybeUninit::uninit(); rustix::cmsg_space!(ScmRights(2), ScmCredentials(1))];
+ /// let mut cmsg_buffer = RecvAncillaryBuffer::new(&mut space);
+ /// # }
+ /// ```
+ ///
+ /// [`recv`]: crate::net::recv
+ #[inline]
+ pub fn new(buffer: &'buf mut [MaybeUninit<u8>]) -> Self {
+ Self {
+ buffer: align_for_cmsghdr(buffer),
+ read: 0,
+ length: 0,
+ }
+ }
+
+ /// Returns a pointer to the message data.
+ pub(crate) fn as_control_ptr(&mut self) -> *mut u8 {
+ // When the length is zero, we may be using a `&[]` address, which may
+ // be an invalid but non-null pointer, and on some platforms, that
+ // causes `sendmsg` to fail with `EFAULT` or `EINVAL`
+ #[cfg(not(linux_kernel))]
+ if self.buffer.is_empty() {
+ return core::ptr::null_mut();
+ }
+
+ self.buffer.as_mut_ptr().cast()
+ }
+
+ /// Returns the length of the message data.
+ pub(crate) fn control_len(&self) -> usize {
+ self.buffer.len()
+ }
+
+ /// Set the length of the message data.
+ ///
+ /// # Safety
+ ///
+ /// The buffer must be filled with valid message data.
+ pub(crate) unsafe fn set_control_len(&mut self, len: usize) {
+ self.length = len;
+ self.read = 0;
+ }
+
+ /// Delete all messages from the buffer.
+ pub(crate) fn clear(&mut self) {
+ self.drain().for_each(drop);
+ }
+
+ /// Drain all messages from the buffer.
+ pub fn drain(&mut self) -> AncillaryDrain<'_> {
+ AncillaryDrain {
+ messages: messages::Messages::new(&mut self.buffer[self.read..][..self.length]),
+ read_and_length: Some((&mut self.read, &mut self.length)),
+ }
+ }
+}
+
+impl Drop for RecvAncillaryBuffer<'_> {
+ fn drop(&mut self) {
+ self.clear();
+ }
+}
+
+/// Return a slice of `buffer` starting at the first `cmsghdr` alignment
+/// boundary.
+#[inline]
+fn align_for_cmsghdr(buffer: &mut [MaybeUninit<u8>]) -> &mut [MaybeUninit<u8>] {
+ // If the buffer is empty, we won't be writing anything into it, so it
+ // doesn't need to be aligned.
+ if buffer.is_empty() {
+ return buffer;
+ }
+
+ let align = align_of::<c::cmsghdr>();
+ let addr = buffer.as_ptr() as usize;
+ let adjusted = (addr + (align - 1)) & align.wrapping_neg();
+ &mut buffer[adjusted - addr..]
+}
+
+/// An iterator that drains messages from a [`RecvAncillaryBuffer`].
+pub struct AncillaryDrain<'buf> {
+ /// Inner iterator over messages.
+ messages: messages::Messages<'buf>,
+
+ /// Increment the number of messages we've read.
+ /// Decrement the total length.
+ read_and_length: Option<(&'buf mut usize, &'buf mut usize)>,
+}
+
+impl<'buf> AncillaryDrain<'buf> {
+ /// Create an iterator for control messages that were received without
+ /// [`RecvAncillaryBuffer`].
+ ///
+ /// # Safety
+ ///
+ /// The buffer must contain valid message data (or be empty).
+ pub unsafe fn parse(buffer: &'buf mut [u8]) -> Self {
+ Self {
+ messages: messages::Messages::new(buffer),
+ read_and_length: None,
+ }
+ }
+
+ fn advance(
+ read_and_length: &mut Option<(&'buf mut usize, &'buf mut usize)>,
+ msg: &c::cmsghdr,
+ ) -> Option<RecvAncillaryMessage<'buf>> {
+ // Advance the `read` pointer.
+ if let Some((read, length)) = read_and_length {
+ let msg_len = msg.cmsg_len as usize;
+ **read += msg_len;
+ **length -= msg_len;
+ }
+
+ Self::cvt_msg(msg)
+ }
+
+ /// A closure that converts a message into a [`RecvAncillaryMessage`].
+ fn cvt_msg(msg: &c::cmsghdr) -> Option<RecvAncillaryMessage<'buf>> {
+ unsafe {
+ // Get a pointer to the payload.
+ let payload = c::CMSG_DATA(msg);
+ let payload_len = msg.cmsg_len as usize - c::CMSG_LEN(0) as usize;
+
+ // Get a mutable slice of the payload.
+ let payload: &'buf mut [u8] = slice::from_raw_parts_mut(payload, payload_len);
+
+ // Determine what type it is.
+ let (level, msg_type) = (msg.cmsg_level, msg.cmsg_type);
+ match (level as _, msg_type as _) {
+ (c::SOL_SOCKET, c::SCM_RIGHTS) => {
+ // Create an iterator that reads out the file descriptors.
+ let fds = AncillaryIter::new(payload);
+
+ Some(RecvAncillaryMessage::ScmRights(fds))
+ }
+ #[cfg(linux_kernel)]
+ (c::SOL_SOCKET, c::SCM_CREDENTIALS) => {
+ if payload_len >= size_of::<UCred>() {
+ let ucred = payload.as_ptr().cast::<UCred>().read_unaligned();
+ Some(RecvAncillaryMessage::ScmCredentials(ucred))
+ } else {
+ None
+ }
+ }
+ _ => None,
+ }
+ }
+ }
+}
+
+impl<'buf> Iterator for AncillaryDrain<'buf> {
+ type Item = RecvAncillaryMessage<'buf>;
+
+ fn next(&mut self) -> Option<Self::Item> {
+ self.messages
+ .find_map(|ev| Self::advance(&mut self.read_and_length, ev))
+ }
+
+ fn size_hint(&self) -> (usize, Option<usize>) {
+ let (_, max) = self.messages.size_hint();
+ (0, max)
+ }
+
+ fn fold<B, F>(mut self, init: B, f: F) -> B
+ where
+ Self: Sized,
+ F: FnMut(B, Self::Item) -> B,
+ {
+ self.messages
+ .filter_map(|ev| Self::advance(&mut self.read_and_length, ev))
+ .fold(init, f)
+ }
+
+ fn count(mut self) -> usize {
+ self.messages
+ .filter_map(|ev| Self::advance(&mut self.read_and_length, ev))
+ .count()
+ }
+
+ fn last(mut self) -> Option<Self::Item>
+ where
+ Self: Sized,
+ {
+ self.messages
+ .filter_map(|ev| Self::advance(&mut self.read_and_length, ev))
+ .last()
+ }
+
+ fn collect<B: FromIterator<Self::Item>>(mut self) -> B
+ where
+ Self: Sized,
+ {
+ self.messages
+ .filter_map(|ev| Self::advance(&mut self.read_and_length, ev))
+ .collect()
+ }
+}
+
+impl FusedIterator for AncillaryDrain<'_> {}
+
+/// An ABI-compatible wrapper for `mmsghdr`, for sending multiple messages with
+/// [sendmmsg].
+#[cfg(target_os = "linux")]
+#[repr(transparent)]
+pub struct MMsgHdr<'a> {
+ raw: c::mmsghdr,
+ _phantom: PhantomData<&'a mut ()>,
+}
+
+#[cfg(target_os = "linux")]
+impl<'a> MMsgHdr<'a> {
+ /// Constructs a new message with no destination address.
+ pub fn new(iov: &'a [IoSlice<'_>], control: &'a mut SendAncillaryBuffer<'_, '_, '_>) -> Self {
+ Self::wrap(noaddr_msghdr(iov, control))
+ }
+
+ /// Constructs a new message to a specific address.
+ ///
+ /// This requires a `SocketAddrAny` instead of using `impl SocketAddrArg`;
+ /// to obtain a `SocketAddrAny`, use [`SocketAddrArg::as_any`].
+ pub fn new_with_addr(
+ addr: &'a SocketAddrAny,
+ iov: &'a [IoSlice<'_>],
+ control: &'a mut SendAncillaryBuffer<'_, '_, '_>,
+ ) -> Self {
+ // The reason we use `SocketAddrAny` instead of `SocketAddrArg` here,
+ // and avoid `use_msghdr`, is that we need a pointer that will remain
+ // valid for the duration of the `'a` lifetime. `SocketAddrAny` can
+ // give us a pointer directly, so we use that.
+ let mut msghdr = noaddr_msghdr(iov, control);
+ msghdr.msg_name = addr.as_ptr() as _;
+ msghdr.msg_namelen = bitcast!(addr.addr_len());
+
+ Self::wrap(msghdr)
+ }
+
+ fn wrap(msg_hdr: c::msghdr) -> Self {
+ Self {
+ raw: c::mmsghdr {
+ msg_hdr,
+ msg_len: 0,
+ },
+ _phantom: PhantomData,
+ }
+ }
+
+ /// Returns the number of bytes sent. This will return 0 until after a
+ /// successful call to [sendmmsg].
+ pub fn bytes_sent(&self) -> usize {
+ self.raw.msg_len as usize
+ }
+}
+
+/// `sendmsg(msghdr)`—Sends a message on a socket.
+///
+/// This function is for use on connected sockets, as it doesn't have a way to
+/// specify an address. See [`sendmsg_addr`] to send messages on unconnected
+/// sockets.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/sendmsg.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/sendmsg.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/sendmsg.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=sendmsg&sektion=2
+/// [NetBSD]: https://man.netbsd.org/sendmsg.2
+/// [OpenBSD]: https://man.openbsd.org/sendmsg.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=sendmsg§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/sendmsg
+#[inline]
+pub fn sendmsg<Fd: AsFd>(
+ socket: Fd,
+ iov: &[IoSlice<'_>],
+ control: &mut SendAncillaryBuffer<'_, '_, '_>,
+ flags: SendFlags,
+) -> io::Result<usize> {
+ backend::net::syscalls::sendmsg(socket.as_fd(), iov, control, flags)
+}
+
+/// `sendmsg(msghdr)`—Sends a message on a socket to a specific address.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/sendmsg.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/sendmsg.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/sendmsg.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=sendmsg&sektion=2
+/// [NetBSD]: https://man.netbsd.org/sendmsg.2
+/// [OpenBSD]: https://man.openbsd.org/sendmsg.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=sendmsg§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/sendmsg
+#[inline]
+pub fn sendmsg_addr<Fd: AsFd>(
+ socket: Fd,
+ addr: &impl SocketAddrArg,
+ iov: &[IoSlice<'_>],
+ control: &mut SendAncillaryBuffer<'_, '_, '_>,
+ flags: SendFlags,
+) -> io::Result<usize> {
+ backend::net::syscalls::sendmsg_addr(socket.as_fd(), addr, iov, control, flags)
+}
+
+/// `sendmmsg(msghdr)`—Sends multiple messages on a socket.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/sendmmsg.2.html
+#[inline]
+#[cfg(target_os = "linux")]
+pub fn sendmmsg<Fd: AsFd>(
+ socket: Fd,
+ msgs: &mut [MMsgHdr<'_>],
+ flags: SendFlags,
+) -> io::Result<usize> {
+ backend::net::syscalls::sendmmsg(socket.as_fd(), msgs, flags)
+}
+
+/// `recvmsg(msghdr)`—Receives a message from a socket.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/recvmsg.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/recvmsg.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/recvmsg.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=recvmsg&sektion=2
+/// [NetBSD]: https://man.netbsd.org/recvmsg.2
+/// [OpenBSD]: https://man.openbsd.org/recvmsg.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=recvmsg§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/recvmsg
+#[inline]
+pub fn recvmsg<Fd: AsFd>(
+ socket: Fd,
+ iov: &mut [IoSliceMut<'_>],
+ control: &mut RecvAncillaryBuffer<'_>,
+ flags: RecvFlags,
+) -> io::Result<RecvMsg> {
+ backend::net::syscalls::recvmsg(socket.as_fd(), iov, control, flags)
+}
+
+/// The result of a successful [`recvmsg`] call.
+#[derive(Debug, Clone)]
+pub struct RecvMsg {
+ /// The number of bytes received.
+ ///
+ /// When `RecvFlags::TRUNC` is in use, this may be greater than the length
+ /// of the buffer, as it reflects the number of bytes received before
+ /// truncation into the buffer.
+ pub bytes: usize,
+
+ /// The flags received.
+ pub flags: ReturnFlags,
+
+ /// The address of the socket we received from, if any.
+ pub address: Option<SocketAddrAny>,
+}
+
+/// An iterator over data in an ancillary buffer.
+pub struct AncillaryIter<'data, T> {
+ /// The data we're iterating over.
+ data: &'data mut [u8],
+
+ /// The raw data we're removing.
+ _marker: PhantomData<T>,
+}
+
+impl<'data, T> AncillaryIter<'data, T> {
+ /// Create a new iterator over data in an ancillary buffer.
+ ///
+ /// # Safety
+ ///
+ /// The buffer must contain valid ancillary data.
+ unsafe fn new(data: &'data mut [u8]) -> Self {
+ assert_eq!(data.len() % size_of::<T>(), 0);
+
+ Self {
+ data,
+ _marker: PhantomData,
+ }
+ }
+}
+
+impl<'data, T> Drop for AncillaryIter<'data, T> {
+ fn drop(&mut self) {
+ self.for_each(drop);
+ }
+}
+
+impl<T> Iterator for AncillaryIter<'_, T> {
+ type Item = T;
+
+ fn next(&mut self) -> Option<Self::Item> {
+ // See if there is a next item.
+ if self.data.len() < size_of::<T>() {
+ return None;
+ }
+
+ // Get the next item.
+ let item = unsafe { self.data.as_ptr().cast::<T>().read_unaligned() };
+
+ // Move forward.
+ let data = take(&mut self.data);
+ self.data = &mut data[size_of::<T>()..];
+
+ Some(item)
+ }
+
+ fn size_hint(&self) -> (usize, Option<usize>) {
+ let len = self.len();
+ (len, Some(len))
+ }
+
+ fn count(self) -> usize {
+ self.len()
+ }
+
+ fn last(mut self) -> Option<Self::Item> {
+ self.next_back()
+ }
+}
+
+impl<T> FusedIterator for AncillaryIter<'_, T> {}
+
+impl<T> ExactSizeIterator for AncillaryIter<'_, T> {
+ fn len(&self) -> usize {
+ self.data.len() / size_of::<T>()
+ }
+}
+
+impl<T> DoubleEndedIterator for AncillaryIter<'_, T> {
+ fn next_back(&mut self) -> Option<Self::Item> {
+ // See if there is a next item.
+ if self.data.len() < size_of::<T>() {
+ return None;
+ }
+
+ // Get the next item.
+ let item = unsafe {
+ let ptr = self.data.as_ptr().add(self.data.len() - size_of::<T>());
+ ptr.cast::<T>().read_unaligned()
+ };
+
+ // Move forward.
+ let len = self.data.len();
+ let data = take(&mut self.data);
+ self.data = &mut data[..len - size_of::<T>()];
+
+ Some(item)
+ }
+}
+
+mod messages {
+ use crate::backend::c;
+ use crate::backend::net::msghdr;
+ use core::iter::FusedIterator;
+ use core::marker::PhantomData;
+ use core::mem::MaybeUninit;
+ use core::ptr::NonNull;
+
+ /// An iterator over the messages in an ancillary buffer.
+ pub(super) struct Messages<'buf> {
+ /// The message header we're using to iterate over the messages.
+ msghdr: c::msghdr,
+
+ /// The current pointer to the next message header to return.
+ ///
+ /// This has a lifetime of `'buf`.
+ header: Option<NonNull<c::cmsghdr>>,
+
+ /// Capture the original lifetime of the buffer.
+ _buffer: PhantomData<&'buf mut [MaybeUninit<u8>]>,
+ }
+
+ pub(super) trait AllowedMsgBufType {}
+ impl AllowedMsgBufType for u8 {}
+ impl AllowedMsgBufType for MaybeUninit<u8> {}
+
+ impl<'buf> Messages<'buf> {
+ /// Create a new iterator over messages from a byte buffer.
+ pub(super) fn new(buf: &'buf mut [impl AllowedMsgBufType]) -> Self {
+ let mut msghdr = msghdr::zero_msghdr();
+ msghdr.msg_control = buf.as_mut_ptr().cast();
+ msghdr.msg_controllen = buf.len().try_into().expect("buffer too large for msghdr");
+
+ // Get the first header.
+ let header = NonNull::new(unsafe { c::CMSG_FIRSTHDR(&msghdr) });
+
+ Self {
+ msghdr,
+ header,
+ _buffer: PhantomData,
+ }
+ }
+ }
+
+ impl<'a> Iterator for Messages<'a> {
+ type Item = &'a mut c::cmsghdr;
+
+ #[inline]
+ fn next(&mut self) -> Option<Self::Item> {
+ // Get the current header.
+ let header = self.header?;
+
+ // Get the next header.
+ self.header = NonNull::new(unsafe { c::CMSG_NXTHDR(&self.msghdr, header.as_ptr()) });
+
+ // If the headers are equal, we're done.
+ if Some(header) == self.header {
+ self.header = None;
+ }
+
+ // SAFETY: The lifetime of `header` is tied to this.
+ Some(unsafe { &mut *header.as_ptr() })
+ }
+
+ fn size_hint(&self) -> (usize, Option<usize>) {
+ if self.header.is_some() {
+ // The remaining buffer *could* be filled with zero-length
+ // messages.
+ let max_size = unsafe { c::CMSG_LEN(0) } as usize;
+ let remaining_count = self.msghdr.msg_controllen as usize / max_size;
+ (1, Some(remaining_count))
+ } else {
+ (0, Some(0))
+ }
+ }
+ }
+
+ impl FusedIterator for Messages<'_> {}
+}
diff --git a/vendor/rustix-1.0.8/src/net/socket.rs b/vendor/rustix-1.0.8/src/net/socket.rs
new file mode 100644
index 0000000..fff302a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/net/socket.rs
@@ -0,0 +1,461 @@
+use crate::fd::OwnedFd;
+use crate::net::addr::SocketAddrArg;
+use crate::net::SocketAddrAny;
+use crate::{backend, io};
+use backend::fd::AsFd;
+
+pub use crate::net::{AddressFamily, Protocol, Shutdown, SocketFlags, SocketType};
+#[cfg(unix)]
+pub use backend::net::addr::SocketAddrUnix;
+
+/// `socket(domain, type_, protocol)`—Creates a socket.
+///
+/// POSIX guarantees that `socket` will use the lowest unused file descriptor,
+/// however it is not safe in general to rely on this, as file descriptors may
+/// be unexpectedly allocated on other threads or in libraries.
+///
+/// To pass extra flags such as [`SocketFlags::CLOEXEC`] or
+/// [`SocketFlags::NONBLOCK`], use [`socket_with`].
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/system-calls-or-bust.html#socket
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/socket.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/socket.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/socket.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-socket
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=socket&sektion=2
+/// [NetBSD]: https://man.netbsd.org/socket.2
+/// [OpenBSD]: https://man.openbsd.org/socket.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=socket§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/socket
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Creating-a-Socket.html
+#[inline]
+pub fn socket(
+ domain: AddressFamily,
+ type_: SocketType,
+ protocol: Option<Protocol>,
+) -> io::Result<OwnedFd> {
+ backend::net::syscalls::socket(domain, type_, protocol)
+}
+
+/// `socket_with(domain, type_ | flags, protocol)`—Creates a socket, with
+/// flags.
+///
+/// POSIX guarantees that `socket` will use the lowest unused file descriptor,
+/// however it is not safe in general to rely on this, as file descriptors may
+/// be unexpectedly allocated on other threads or in libraries.
+///
+/// `socket_with` is the same as [`socket`] but adds an additional flags
+/// operand.
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/system-calls-or-bust.html#socket
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/socket.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/socket.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/socket.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-socket
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=socket&sektion=2
+/// [NetBSD]: https://man.netbsd.org/socket.2
+/// [OpenBSD]: https://man.openbsd.org/socket.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=socket§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/socket
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Creating-a-Socket.html
+#[doc(alias("socket"))]
+#[inline]
+pub fn socket_with(
+ domain: AddressFamily,
+ type_: SocketType,
+ flags: SocketFlags,
+ protocol: Option<Protocol>,
+) -> io::Result<OwnedFd> {
+ backend::net::syscalls::socket_with(domain, type_, flags, protocol)
+}
+
+/// `bind(sockfd, addr)`—Binds a socket to an IP address.
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/system-calls-or-bust.html#bind
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/bind.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/bind.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/bind.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-bind
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=bind&sektion=2
+/// [NetBSD]: https://man.netbsd.org/bind.2
+/// [OpenBSD]: https://man.openbsd.org/bind.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=bind§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/bind
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Setting-Address.html
+pub fn bind<Fd: AsFd>(sockfd: Fd, addr: &impl SocketAddrArg) -> io::Result<()> {
+ backend::net::syscalls::bind(sockfd.as_fd(), addr)
+}
+
+/// `connect(sockfd, addr)`—Initiates a connection to an IP address.
+///
+/// On Windows, a non-blocking socket returns [`Errno::WOULDBLOCK`] if the
+/// connection cannot be completed immediately, rather than
+/// `Errno::INPROGRESS`.
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/system-calls-or-bust.html#connect
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/connect.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/connect.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/connect.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-connect
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=connect&sektion=2
+/// [NetBSD]: https://man.netbsd.org/connect.2
+/// [OpenBSD]: https://man.openbsd.org/connect.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=connect§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/connect
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Connecting.html
+/// [`Errno::WOULDBLOCK`]: io::Errno::WOULDBLOCK
+pub fn connect<Fd: AsFd>(sockfd: Fd, addr: &impl SocketAddrArg) -> io::Result<()> {
+ backend::net::syscalls::connect(sockfd.as_fd(), addr)
+}
+
+/// `connect(sockfd, {.sa_family = AF_UNSPEC}, sizeof(struct sockaddr))`—
+/// Dissolve the socket's association.
+///
+/// On UDP sockets, BSD platforms report [`Errno::AFNOSUPPORT`] or
+/// [`Errno::INVAL`] even if the disconnect was successful.
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/system-calls-or-bust.html#connect
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/connect.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/connect.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/connect.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-connect
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=connect&sektion=2
+/// [NetBSD]: https://man.netbsd.org/connect.2
+/// [OpenBSD]: https://man.openbsd.org/connect.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=connect§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/connect
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Connecting.html
+/// [`Errno::AFNOSUPPORT`]: io::Errno::AFNOSUPPORT
+/// [`Errno::INVAL`]: io::Errno::INVAL
+#[inline]
+#[doc(alias = "connect")]
+pub fn connect_unspec<Fd: AsFd>(sockfd: Fd) -> io::Result<()> {
+ backend::net::syscalls::connect_unspec(sockfd.as_fd())
+}
+
+/// `listen(fd, backlog)`—Enables listening for incoming connections.
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/system-calls-or-bust.html#listen
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/listen.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/listen.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/listen.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-listen
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=listen&sektion=2
+/// [NetBSD]: https://man.netbsd.org/listen.2
+/// [OpenBSD]: https://man.openbsd.org/listen.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=listen§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/listen
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Listening.html
+#[inline]
+pub fn listen<Fd: AsFd>(sockfd: Fd, backlog: i32) -> io::Result<()> {
+ backend::net::syscalls::listen(sockfd.as_fd(), backlog)
+}
+
+/// `accept(fd, NULL, NULL)`—Accepts an incoming connection.
+///
+/// Use [`acceptfrom`] to retrieve the peer address.
+///
+/// POSIX guarantees that `accept` will use the lowest unused file descriptor,
+/// however it is not safe in general to rely on this, as file descriptors may
+/// be unexpectedly allocated on other threads or in libraries.
+///
+/// See [`accept_with`] to pass additional flags.
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/system-calls-or-bust.html#acceptthank-you-for-calling-port-3490.
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/accept.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/accept.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/accept.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-accept
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=accept&sektion=2
+/// [NetBSD]: https://man.netbsd.org/accept.2
+/// [OpenBSD]: https://man.openbsd.org/accept.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=accept§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/accept
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Accepting-Connections.html
+#[inline]
+pub fn accept<Fd: AsFd>(sockfd: Fd) -> io::Result<OwnedFd> {
+ backend::net::syscalls::accept(sockfd.as_fd())
+}
+
+/// `accept4(fd, NULL, NULL, flags)`—Accepts an incoming connection, with
+/// flags.
+///
+/// Use [`acceptfrom_with`] to retrieve the peer address.
+///
+/// Even though POSIX guarantees that this will use the lowest unused file
+/// descriptor, it is not safe in general to rely on this, as file descriptors
+/// may be unexpectedly allocated on other threads or in libraries.
+///
+/// `accept_with` is the same as [`accept`] but adds an additional flags
+/// operand.
+///
+/// # References
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/accept4.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=accept4&sektion=2
+/// [NetBSD]: https://man.netbsd.org/accept4.2
+/// [OpenBSD]: https://man.openbsd.org/accept4.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=accept4§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/accept4
+#[inline]
+#[doc(alias = "accept4")]
+pub fn accept_with<Fd: AsFd>(sockfd: Fd, flags: SocketFlags) -> io::Result<OwnedFd> {
+ backend::net::syscalls::accept_with(sockfd.as_fd(), flags)
+}
+
+/// `accept(fd, &addr, &len)`—Accepts an incoming connection and returns the
+/// peer address.
+///
+/// Use [`accept`] if the peer address isn't needed.
+///
+/// See [`acceptfrom_with`] to pass additional flags.
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/system-calls-or-bust.html#acceptthank-you-for-calling-port-3490.
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/accept.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/accept.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/accept.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-accept
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=accept&sektion=2
+/// [NetBSD]: https://man.netbsd.org/accept.2
+/// [OpenBSD]: https://man.openbsd.org/accept.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=accept§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/accept
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Accepting-Connections.html
+#[inline]
+#[doc(alias = "accept")]
+pub fn acceptfrom<Fd: AsFd>(sockfd: Fd) -> io::Result<(OwnedFd, Option<SocketAddrAny>)> {
+ backend::net::syscalls::acceptfrom(sockfd.as_fd())
+}
+
+/// `accept4(fd, &addr, &len, flags)`—Accepts an incoming connection and
+/// returns the peer address, with flags.
+///
+/// Use [`accept_with`] if the peer address isn't needed.
+///
+/// `acceptfrom_with` is the same as [`acceptfrom`] but adds an additional
+/// flags operand.
+///
+/// # References
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/accept4.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=accept4&sektion=2
+/// [NetBSD]: https://man.netbsd.org/accept4.2
+/// [OpenBSD]: https://man.openbsd.org/accept4.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=accept4§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/accept4
+#[inline]
+#[doc(alias = "accept4")]
+pub fn acceptfrom_with<Fd: AsFd>(
+ sockfd: Fd,
+ flags: SocketFlags,
+) -> io::Result<(OwnedFd, Option<SocketAddrAny>)> {
+ backend::net::syscalls::acceptfrom_with(sockfd.as_fd(), flags)
+}
+
+/// `shutdown(fd, how)`—Closes the read and/or write sides of a stream.
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/system-calls-or-bust.html#close-and-shutdownget-outta-my-face
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/shutdown.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/shutdown.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/shutdown.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-shutdown
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=shutdown&sektion=2
+/// [NetBSD]: https://man.netbsd.org/shutdown.2
+/// [OpenBSD]: https://man.openbsd.org/shutdown.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=shutdown§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/shutdown
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Closing-a-Socket.html
+#[inline]
+pub fn shutdown<Fd: AsFd>(sockfd: Fd, how: Shutdown) -> io::Result<()> {
+ backend::net::syscalls::shutdown(sockfd.as_fd(), how)
+}
+
+/// `getsockname(fd, addr, len)`—Returns the address a socket is bound to.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getsockname.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/getsockname.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/getsockname.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getsockname
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=getsockname&sektion=2
+/// [NetBSD]: https://man.netbsd.org/getsockname.2
+/// [OpenBSD]: https://man.openbsd.org/getsockname.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=getsockname§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/getsockname
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Reading-Address.html
+#[inline]
+pub fn getsockname<Fd: AsFd>(sockfd: Fd) -> io::Result<SocketAddrAny> {
+ backend::net::syscalls::getsockname(sockfd.as_fd())
+}
+
+/// `getpeername(fd, addr, len)`—Returns the address a socket is connected
+/// to.
+///
+/// # References
+/// - [Beej's Guide to Network Programming]
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [Winsock]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [Beej's Guide to Network Programming]: https://beej.us/guide/bgnet/html/split/system-calls-or-bust.html#getpeernamewho-are-you
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getpeername.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/getpeername.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/getpeername.2.html
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getpeername
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=getpeername&sektion=2
+/// [NetBSD]: https://man.netbsd.org/getpeername.2
+/// [OpenBSD]: https://man.openbsd.org/getpeername.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=getpeername§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/getpeername
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Who-is-Connected.html
+#[inline]
+pub fn getpeername<Fd: AsFd>(sockfd: Fd) -> io::Result<Option<SocketAddrAny>> {
+ backend::net::syscalls::getpeername(sockfd.as_fd())
+}
diff --git a/vendor/rustix-1.0.8/src/net/socket_addr_any.rs b/vendor/rustix-1.0.8/src/net/socket_addr_any.rs
new file mode 100644
index 0000000..7a95304
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/net/socket_addr_any.rs
@@ -0,0 +1,344 @@
+//! The [`SocketAddrAny`] type and related utilities.
+
+#![allow(unsafe_code)]
+
+use crate::backend::c;
+use crate::backend::net::read_sockaddr;
+use crate::io::Errno;
+use crate::net::addr::{SocketAddrArg, SocketAddrLen, SocketAddrOpaque, SocketAddrStorage};
+#[cfg(unix)]
+use crate::net::SocketAddrUnix;
+use crate::net::{AddressFamily, SocketAddr, SocketAddrV4, SocketAddrV6};
+use core::fmt;
+use core::mem::{size_of, MaybeUninit};
+use core::num::NonZeroU32;
+
+/// Temporary buffer for creating a `SocketAddrAny` from a syscall that writes
+/// to a `sockaddr_t` and `socklen_t`
+///
+/// Unlike `SocketAddrAny`, this does not maintain the invariant that `len`
+/// bytes are initialized.
+pub(crate) struct SocketAddrBuf {
+ pub(crate) len: c::socklen_t,
+ pub(crate) storage: MaybeUninit<SocketAddrStorage>,
+}
+
+impl SocketAddrBuf {
+ #[inline]
+ pub(crate) const fn new() -> Self {
+ Self {
+ len: size_of::<SocketAddrStorage>() as c::socklen_t,
+ storage: MaybeUninit::<SocketAddrStorage>::uninit(),
+ }
+ }
+
+ /// Convert the buffer into [`SocketAddrAny`].
+ ///
+ /// # Safety
+ ///
+ /// A valid address must have been written into `self.storage` and its
+ /// length written into `self.len`.
+ #[inline]
+ pub(crate) unsafe fn into_any(self) -> SocketAddrAny {
+ SocketAddrAny::new(self.storage, bitcast!(self.len))
+ }
+
+ /// Convert the buffer into [`Option<SocketAddrAny>`].
+ ///
+ /// This returns `None` if `len` is zero or other platform-specific
+ /// conditions define the address as empty.
+ ///
+ /// # Safety
+ ///
+ /// Either valid address must have been written into `self.storage` and its
+ /// length written into `self.len`, or `self.len` must have been set to 0.
+ #[inline]
+ pub(crate) unsafe fn into_any_option(self) -> Option<SocketAddrAny> {
+ let len = bitcast!(self.len);
+ if read_sockaddr::sockaddr_nonempty(self.storage.as_ptr().cast(), len) {
+ Some(SocketAddrAny::new(self.storage, len))
+ } else {
+ None
+ }
+ }
+}
+
+/// A type that can hold any kind of socket address, as a safe abstraction for
+/// `sockaddr_storage`.
+///
+/// Socket addresses can be converted to `SocketAddrAny` via the [`From`] and
+/// [`Into`] traits. `SocketAddrAny` can be converted back to a specific socket
+/// address type with [`TryFrom`] and [`TryInto`]. These implementations return
+/// [`Errno::AFNOSUPPORT`] if the address family does not match the requested
+/// type.
+#[derive(Clone)]
+#[doc(alias = "sockaddr_storage")]
+pub struct SocketAddrAny {
+ // Invariants:
+ // - `len` is at least `size_of::<backend::c::sa_family_t>()`
+ // - `len` is at most `size_of::<SocketAddrStorage>()`
+ // - The first `len` bytes of `storage` are initialized.
+ pub(crate) len: NonZeroU32,
+ pub(crate) storage: MaybeUninit<SocketAddrStorage>,
+}
+
+impl SocketAddrAny {
+ /// Creates a socket address from `storage`, which is initialized for `len`
+ /// bytes.
+ ///
+ /// # Panics
+ ///
+ /// if `len` is smaller than the sockaddr header or larger than
+ /// `SocketAddrStorage`.
+ ///
+ /// # Safety
+ ///
+ /// - `storage` must contain a valid socket address.
+ /// - `len` bytes must be initialized.
+ #[inline]
+ pub const unsafe fn new(storage: MaybeUninit<SocketAddrStorage>, len: SocketAddrLen) -> Self {
+ assert!(len as usize >= size_of::<read_sockaddr::sockaddr_header>());
+ assert!(len as usize <= size_of::<SocketAddrStorage>());
+ let len = NonZeroU32::new_unchecked(len);
+ Self { storage, len }
+ }
+
+ /// Creates a socket address from reading from `ptr`, which points at `len`
+ /// initialized bytes.
+ ///
+ /// # Panics
+ ///
+ /// if `len` is smaller than the sockaddr header or larger than
+ /// `SocketAddrStorage`.
+ ///
+ /// # Safety
+ ///
+ /// - `ptr` must be a pointer to memory containing a valid socket address.
+ /// - `len` bytes must be initialized.
+ pub unsafe fn read(ptr: *const SocketAddrStorage, len: SocketAddrLen) -> Self {
+ assert!(len as usize >= size_of::<read_sockaddr::sockaddr_header>());
+ assert!(len as usize <= size_of::<SocketAddrStorage>());
+ let mut storage = MaybeUninit::<SocketAddrStorage>::uninit();
+ core::ptr::copy_nonoverlapping(
+ ptr.cast::<u8>(),
+ storage.as_mut_ptr().cast::<u8>(),
+ len as usize,
+ );
+ let len = NonZeroU32::new_unchecked(len);
+ Self { storage, len }
+ }
+
+ /// Gets the initialized part of the storage as bytes.
+ #[inline]
+ fn bytes(&self) -> &[u8] {
+ let len = self.len.get() as usize;
+ unsafe { core::slice::from_raw_parts(self.storage.as_ptr().cast(), len) }
+ }
+
+ /// Gets the address family of this socket address.
+ #[inline]
+ pub fn address_family(&self) -> AddressFamily {
+ // SAFETY: Our invariants maintain that the `sa_family` field is
+ // initialized.
+ unsafe {
+ AddressFamily::from_raw(crate::backend::net::read_sockaddr::read_sa_family(
+ self.storage.as_ptr().cast(),
+ ))
+ }
+ }
+
+ /// Returns a raw pointer to the sockaddr.
+ #[inline]
+ pub fn as_ptr(&self) -> *const SocketAddrStorage {
+ self.storage.as_ptr()
+ }
+
+ /// Returns a raw mutable pointer to the sockaddr.
+ #[inline]
+ pub fn as_mut_ptr(&mut self) -> *mut SocketAddrStorage {
+ self.storage.as_mut_ptr()
+ }
+
+ /// Returns the length of the encoded sockaddr.
+ #[inline]
+ pub fn addr_len(&self) -> SocketAddrLen {
+ self.len.get()
+ }
+}
+
+impl PartialEq<Self> for SocketAddrAny {
+ fn eq(&self, other: &Self) -> bool {
+ self.bytes() == other.bytes()
+ }
+}
+
+impl Eq for SocketAddrAny {}
+
+// This just forwards to another `partial_cmp`.
+#[allow(clippy::non_canonical_partial_ord_impl)]
+impl PartialOrd<Self> for SocketAddrAny {
+ fn partial_cmp(&self, other: &Self) -> Option<core::cmp::Ordering> {
+ self.bytes().partial_cmp(other.bytes())
+ }
+}
+
+impl Ord for SocketAddrAny {
+ fn cmp(&self, other: &Self) -> core::cmp::Ordering {
+ self.bytes().cmp(other.bytes())
+ }
+}
+
+impl core::hash::Hash for SocketAddrAny {
+ fn hash<H: core::hash::Hasher>(&self, state: &mut H) {
+ self.bytes().hash(state)
+ }
+}
+
+impl fmt::Debug for SocketAddrAny {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ match self.address_family() {
+ AddressFamily::INET => {
+ if let Ok(addr) = SocketAddrV4::try_from(self.clone()) {
+ return addr.fmt(f);
+ }
+ }
+ AddressFamily::INET6 => {
+ if let Ok(addr) = SocketAddrV6::try_from(self.clone()) {
+ return addr.fmt(f);
+ }
+ }
+ #[cfg(unix)]
+ AddressFamily::UNIX => {
+ if let Ok(addr) = SocketAddrUnix::try_from(self.clone()) {
+ return addr.fmt(f);
+ }
+ }
+ #[cfg(target_os = "linux")]
+ AddressFamily::XDP => {
+ if let Ok(addr) = crate::net::xdp::SocketAddrXdp::try_from(self.clone()) {
+ return addr.fmt(f);
+ }
+ }
+ #[cfg(linux_kernel)]
+ AddressFamily::NETLINK => {
+ if let Ok(addr) = crate::net::netlink::SocketAddrNetlink::try_from(self.clone()) {
+ return addr.fmt(f);
+ }
+ }
+ _ => {}
+ }
+
+ f.debug_struct("SocketAddrAny")
+ .field("address_family", &self.address_family())
+ .field("namelen", &self.addr_len())
+ .finish()
+ }
+}
+
+// SAFETY: `with_sockaddr` calls `f` with a pointer to its own storage.
+unsafe impl SocketAddrArg for SocketAddrAny {
+ unsafe fn with_sockaddr<R>(
+ &self,
+ f: impl FnOnce(*const SocketAddrOpaque, SocketAddrLen) -> R,
+ ) -> R {
+ f(self.as_ptr().cast(), self.addr_len())
+ }
+}
+
+impl From<SocketAddr> for SocketAddrAny {
+ #[inline]
+ fn from(from: SocketAddr) -> Self {
+ from.as_any()
+ }
+}
+
+impl TryFrom<SocketAddrAny> for SocketAddr {
+ type Error = Errno;
+
+ /// Convert if the address is an IPv4 or IPv6 address.
+ ///
+ /// Returns `Err(Errno::AFNOSUPPORT)` if the address family is not IPv4 or
+ /// IPv6.
+ #[inline]
+ fn try_from(value: SocketAddrAny) -> Result<Self, Self::Error> {
+ match value.address_family() {
+ AddressFamily::INET => read_sockaddr::read_sockaddr_v4(&value).map(SocketAddr::V4),
+ AddressFamily::INET6 => read_sockaddr::read_sockaddr_v6(&value).map(SocketAddr::V6),
+ _ => Err(Errno::AFNOSUPPORT),
+ }
+ }
+}
+
+impl From<SocketAddrV4> for SocketAddrAny {
+ #[inline]
+ fn from(from: SocketAddrV4) -> Self {
+ from.as_any()
+ }
+}
+
+impl TryFrom<SocketAddrAny> for SocketAddrV4 {
+ type Error = Errno;
+
+ /// Convert if the address is an IPv4 address.
+ ///
+ /// Returns `Err(Errno::AFNOSUPPORT)` if the address family is not IPv4.
+ #[inline]
+ fn try_from(value: SocketAddrAny) -> Result<Self, Self::Error> {
+ read_sockaddr::read_sockaddr_v4(&value)
+ }
+}
+
+impl From<SocketAddrV6> for SocketAddrAny {
+ #[inline]
+ fn from(from: SocketAddrV6) -> Self {
+ from.as_any()
+ }
+}
+
+impl TryFrom<SocketAddrAny> for SocketAddrV6 {
+ type Error = Errno;
+
+ /// Convert if the address is an IPv6 address.
+ ///
+ /// Returns `Err(Errno::AFNOSUPPORT)` if the address family is not IPv6.
+ #[inline]
+ fn try_from(value: SocketAddrAny) -> Result<Self, Self::Error> {
+ read_sockaddr::read_sockaddr_v6(&value)
+ }
+}
+
+#[cfg(unix)]
+impl From<SocketAddrUnix> for SocketAddrAny {
+ #[inline]
+ fn from(from: SocketAddrUnix) -> Self {
+ from.as_any()
+ }
+}
+
+#[cfg(unix)]
+impl TryFrom<SocketAddrAny> for SocketAddrUnix {
+ type Error = Errno;
+
+ /// Convert if the address is a Unix socket address.
+ ///
+ /// Returns `Err(Errno::AFNOSUPPORT)` if the address family is not Unix.
+ #[inline]
+ fn try_from(value: SocketAddrAny) -> Result<Self, Self::Error> {
+ read_sockaddr::read_sockaddr_unix(&value)
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn any_read() {
+ let localhost = std::net::Ipv6Addr::LOCALHOST;
+ let addr = SocketAddrAny::from(SocketAddrV6::new(localhost, 7, 8, 9));
+ unsafe {
+ let same = SocketAddrAny::read(addr.as_ptr(), addr.addr_len());
+ assert_eq!(addr, same);
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/net/socketpair.rs b/vendor/rustix-1.0.8/src/net/socketpair.rs
new file mode 100644
index 0000000..29227f9
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/net/socketpair.rs
@@ -0,0 +1,36 @@
+use crate::fd::OwnedFd;
+use crate::net::{AddressFamily, Protocol, SocketFlags, SocketType};
+use crate::{backend, io};
+
+/// `socketpair(domain, type_ | accept_flags, protocol)`—Create a pair of
+/// sockets that are connected to each other.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/socketpair.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/socketpair.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/socketpair.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=socketpair&sektion=2
+/// [NetBSD]: https://man.netbsd.org/socketpair.2
+/// [OpenBSD]: https://man.openbsd.org/socketpair.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=socketpair§ion=2
+/// [illumos]: https://illumos.org/man/3SOCKET/socketpair
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Socket-Pairs.html
+#[inline]
+pub fn socketpair(
+ domain: AddressFamily,
+ type_: SocketType,
+ flags: SocketFlags,
+ protocol: Option<Protocol>,
+) -> io::Result<(OwnedFd, OwnedFd)> {
+ backend::net::syscalls::socketpair(domain, type_, flags, protocol)
+}
diff --git a/vendor/rustix-1.0.8/src/net/sockopt.rs b/vendor/rustix-1.0.8/src/net/sockopt.rs
new file mode 100644
index 0000000..ef8176a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/net/sockopt.rs
@@ -0,0 +1,1649 @@
+//! `getsockopt` and `setsockopt` functions.
+//!
+//! In the rustix API, there is a separate function for each option, so that it
+//! can be given an option-specific type signature.
+//!
+//! # References for all getter functions:
+//!
+//! - [POSIX `getsockopt`]
+//! - [Linux `getsockopt`]
+//! - [Winsock `getsockopt`]
+//! - [Apple `getsockopt`]
+//! - [FreeBSD `getsockopt`]
+//! - [NetBSD `getsockopt`]
+//! - [OpenBSD `getsockopt`]
+//! - [DragonFly BSD `getsockopt`]
+//! - [illumos `getsockopt`]
+//! - [glibc `getsockopt`]
+//!
+//! [POSIX `getsockopt`]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getsockopt.html
+//! [Linux `getsockopt`]: https://man7.org/linux/man-pages/man2/getsockopt.2.html
+//! [Winsock `getsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getsockopt
+//! [Apple `getsockopt`]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/getsockopt.2.html
+//! [FreeBSD `getsockopt`]: https://man.freebsd.org/cgi/man.cgi?query=getsockopt&sektion=2
+//! [NetBSD `getsockopt`]: https://man.netbsd.org/getsockopt.2
+//! [OpenBSD `getsockopt`]: https://man.openbsd.org/getsockopt.2
+//! [DragonFly BSD `getsockopt`]: https://man.dragonflybsd.org/?command=getsockopt§ion=2
+//! [illumos `getsockopt`]: https://illumos.org/man/3SOCKET/getsockopt
+//! [glibc `getsockopt`]: https://sourceware.org/glibc/manual/latest/html_node/Socket-Option-Functions.html
+//!
+//! # References for all `set_*` functions:
+//!
+//! - [POSIX `setsockopt`]
+//! - [Linux `setsockopt`]
+//! - [Winsock `setsockopt`]
+//! - [Apple `setsockopt`]
+//! - [FreeBSD `setsockopt`]
+//! - [NetBSD `setsockopt`]
+//! - [OpenBSD `setsockopt`]
+//! - [DragonFly BSD `setsockopt`]
+//! - [illumos `setsockopt`]
+//! - [glibc `setsockopt`]
+//!
+//! [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/setsockopt.html
+//! [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html
+//! [Winsock `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt
+//! [Apple `setsockopt`]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/setsockopt.2.html
+//! [FreeBSD `setsockopt`]: https://man.freebsd.org/cgi/man.cgi?query=setsockopt&sektion=2
+//! [NetBSD `setsockopt`]: https://man.netbsd.org/setsockopt.2
+//! [OpenBSD `setsockopt`]: https://man.openbsd.org/setsockopt.2
+//! [DragonFly BSD `setsockopt`]: https://man.dragonflybsd.org/?command=setsockopt§ion=2
+//! [illumos `setsockopt`]: https://illumos.org/man/3SOCKET/setsockopt
+//! [glibc `setsockopt`]: https://sourceware.org/glibc/manual/latest/html_node/Socket-Option-Functions.html
+//!
+//! # References for `get_socket_*` and `set_socket_*` functions:
+//!
+//! - [References for all getter functions]
+//! - [References for all `set_*` functions]
+//! - [POSIX `sys/socket.h`]
+//! - [Linux `socket`]
+//! - [Winsock `SOL_SOCKET` options]
+//! - [glibc `SOL_SOCKET` Options]
+//!
+//! [POSIX `sys/socket.h`]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_socket.h.html
+//! [Linux `socket`]: https://man7.org/linux/man-pages/man7/socket.7.html
+//! [Winsock `SOL_SOCKET` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/sol-socket-socket-options
+//! [glibc `SOL_SOCKET` options]: https://sourceware.org/glibc/manual/latest/html_node/Socket_002dLevel-Options.html
+//!
+//! # References for `get_ip_*` and `set_ip_*` functions:
+//!
+//! - [References for all getter functions]
+//! - [References for all `set_*` functions]
+//! - [POSIX `netinet/in.h`]
+//! - [Linux `ip`]
+//! - [Winsock `IPPROTO_IP` options]
+//! - [Apple `ip`]
+//! - [FreeBSD `ip`]
+//! - [NetBSD `ip`]
+//! - [OpenBSD `ip`]
+//! - [DragonFly BSD `ip`]
+//! - [illumos `ip`]
+//!
+//! [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/netinet_in.h.html
+//! [Linux `ip`]: https://man7.org/linux/man-pages/man7/ip.7.html
+//! [Winsock `IPPROTO_IP` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ip-socket-options
+//! [Apple `ip`]: https://github.com/apple-oss-distributions/xnu/blob/main/bsd/man/man4/ip.4
+//! [FreeBSD `ip`]: https://man.freebsd.org/cgi/man.cgi?query=ip&sektion=4
+//! [NetBSD `ip`]: https://man.netbsd.org/ip.4
+//! [OpenBSD `ip`]: https://man.openbsd.org/ip.4
+//! [DragonFly BSD `ip`]: https://man.dragonflybsd.org/?command=ip§ion=4
+//! [illumos `ip`]: https://illumos.org/man/4P/ip
+//!
+//! # References for `get_ipv6_*` and `set_ipv6_*` functions:
+//!
+//! - [References for all getter functions]
+//! - [References for all `set_*` functions]
+//! - [POSIX `netinet/in.h`]
+//! - [Linux `ipv6`]
+//! - [Winsock `IPPROTO_IPV6` options]
+//! - [Apple `ip6`]
+//! - [FreeBSD `ip6`]
+//! - [NetBSD `ip6`]
+//! - [OpenBSD `ip6`]
+//! - [DragonFly BSD `ip6`]
+//! - [illumos `ip6`]
+//!
+//! [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/netinet_in.h.html
+//! [Linux `ipv6`]: https://man7.org/linux/man-pages/man7/ipv6.7.html
+//! [Winsock `IPPROTO_IPV6` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ipv6-socket-options
+//! [Apple `ip6`]: https://github.com/apple-oss-distributions/xnu/blob/main/bsd/man/man4/ip6.4
+//! [FreeBSD `ip6`]: https://man.freebsd.org/cgi/man.cgi?query=ip6&sektion=4
+//! [NetBSD `ip6`]: https://man.netbsd.org/ip6.4
+//! [OpenBSD `ip6`]: https://man.openbsd.org/ip6.4
+//! [DragonFly BSD `ip6`]: https://man.dragonflybsd.org/?command=ip6§ion=4
+//! [illumos `ip6`]: https://illumos.org/man/4P/ip6
+//!
+//! # References for `get_tcp_*` and `set_tcp_*` functions:
+//!
+//! - [References for all getter functions]
+//! - [References for all `set_*` functions]
+//! - [POSIX `netinet/tcp.h`]
+//! - [Linux `tcp`]
+//! - [Winsock `IPPROTO_TCP` options]
+//! - [Apple `tcp`]
+//! - [FreeBSD `tcp`]
+//! - [NetBSD `tcp`]
+//! - [OpenBSD `tcp`]
+//! - [DragonFly BSD `tcp`]
+//! - [illumos `tcp`]
+//!
+//! [POSIX `netinet/tcp.h`]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/netinet_tcp.h.html
+//! [Linux `tcp`]: https://man7.org/linux/man-pages/man7/tcp.7.html
+//! [Winsock `IPPROTO_TCP` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-tcp-socket-options
+//! [Apple `tcp`]: https://github.com/apple-oss-distributions/xnu/blob/main/bsd/man/man4/tcp.4
+//! [FreeBSD `tcp`]: https://man.freebsd.org/cgi/man.cgi?query=tcp&sektion=4
+//! [NetBSD `tcp`]: https://man.netbsd.org/tcp.4
+//! [OpenBSD `tcp`]: https://man.openbsd.org/tcp.4
+//! [DragonFly BSD `tcp`]: https://man.dragonflybsd.org/?command=tcp§ion=4
+//! [illumos `tcp`]: https://illumos.org/man/4P/tcp
+//!
+//! [References for all getter functions]: #references-for-all-getter-functions
+//! [References for all `set_*` functions]: #references-for-all-set_-functions
+
+#![doc(alias = "getsockopt")]
+#![doc(alias = "setsockopt")]
+
+#[cfg(target_os = "linux")]
+use crate::net::xdp::{XdpMmapOffsets, XdpOptionsFlags, XdpStatistics, XdpUmemReg};
+#[cfg(not(any(
+ apple,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "dragonfly",
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "netbsd",
+ target_os = "nto",
+ target_os = "vita",
+)))]
+use crate::net::AddressFamily;
+#[cfg(any(
+ linux_kernel,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_env = "newlib"
+))]
+use crate::net::Protocol;
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+use crate::net::SocketAddrV4;
+#[cfg(linux_kernel)]
+use crate::net::SocketAddrV6;
+use crate::net::{Ipv4Addr, Ipv6Addr, SocketType};
+use crate::{backend, io};
+#[cfg(feature = "alloc")]
+#[cfg(any(
+ linux_like,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "illumos"
+))]
+use alloc::string::String;
+use backend::c;
+use backend::fd::AsFd;
+use core::time::Duration;
+
+/// Timeout identifier for use with [`set_socket_timeout`] and
+/// [`socket_timeout`].
+#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
+#[repr(u32)]
+pub enum Timeout {
+ /// `SO_RCVTIMEO`—Timeout for receiving.
+ Recv = c::SO_RCVTIMEO as _,
+
+ /// `SO_SNDTIMEO`—Timeout for sending.
+ Send = c::SO_SNDTIMEO as _,
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_TYPE)`—Returns the type of a socket.
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_TYPE")]
+pub fn socket_type<Fd: AsFd>(fd: Fd) -> io::Result<SocketType> {
+ backend::net::sockopt::socket_type(fd.as_fd())
+}
+
+/// `setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, value)`—Set whether local
+/// addresses may be reused in `bind`.
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_REUSEADDR")]
+pub fn set_socket_reuseaddr<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_socket_reuseaddr(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_REUSEADDR)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_REUSEADDR")]
+pub fn socket_reuseaddr<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::socket_reuseaddr(fd.as_fd())
+}
+
+/// `setsockopt(fd, SOL_SOCKET, SO_BROADCAST, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_BROADCAST")]
+pub fn set_socket_broadcast<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_socket_broadcast(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_BROADCAST)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_BROADCAST")]
+pub fn socket_broadcast<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::socket_broadcast(fd.as_fd())
+}
+
+/// `setsockopt(fd, SOL_SOCKET, SO_LINGER, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_LINGER")]
+pub fn set_socket_linger<Fd: AsFd>(fd: Fd, value: Option<Duration>) -> io::Result<()> {
+ backend::net::sockopt::set_socket_linger(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_LINGER)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_LINGER")]
+pub fn socket_linger<Fd: AsFd>(fd: Fd) -> io::Result<Option<Duration>> {
+ backend::net::sockopt::socket_linger(fd.as_fd())
+}
+
+/// `setsockopt(fd, SOL_SOCKET, SO_PASSCRED, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(linux_kernel)]
+#[inline]
+#[doc(alias = "SO_PASSCRED")]
+pub fn set_socket_passcred<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_socket_passcred(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_PASSCRED)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(linux_kernel)]
+#[inline]
+#[doc(alias = "SO_PASSCRED")]
+pub fn socket_passcred<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::socket_passcred(fd.as_fd())
+}
+
+/// `setsockopt(fd, SOL_SOCKET, id, value)`—Set the sending or receiving
+/// timeout.
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_RCVTIMEO")]
+#[doc(alias = "SO_SNDTIMEO")]
+pub fn set_socket_timeout<Fd: AsFd>(
+ fd: Fd,
+ id: Timeout,
+ value: Option<Duration>,
+) -> io::Result<()> {
+ backend::net::sockopt::set_socket_timeout(fd.as_fd(), id, value)
+}
+
+/// `getsockopt(fd, SOL_SOCKET, id)`—Get the sending or receiving timeout.
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_RCVTIMEO")]
+#[doc(alias = "SO_SNDTIMEO")]
+pub fn socket_timeout<Fd: AsFd>(fd: Fd, id: Timeout) -> io::Result<Option<Duration>> {
+ backend::net::sockopt::socket_timeout(fd.as_fd(), id)
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_ERROR)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_ERROR")]
+pub fn socket_error<Fd: AsFd>(fd: Fd) -> io::Result<Result<(), io::Errno>> {
+ backend::net::sockopt::socket_error(fd.as_fd())
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_NOSIGPIPE)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(any(apple, freebsdlike, target_os = "netbsd"))]
+#[doc(alias = "SO_NOSIGPIPE")]
+#[inline]
+pub fn socket_nosigpipe<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::socket_nosigpipe(fd.as_fd())
+}
+
+/// `setsockopt(fd, SOL_SOCKET, SO_NOSIGPIPE, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(any(apple, freebsdlike, target_os = "netbsd"))]
+#[doc(alias = "SO_NOSIGPIPE")]
+#[inline]
+pub fn set_socket_nosigpipe<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_socket_nosigpipe(fd.as_fd(), value)
+}
+
+/// `setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_KEEPALIVE")]
+pub fn set_socket_keepalive<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_socket_keepalive(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_KEEPALIVE)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_KEEPALIVE")]
+pub fn socket_keepalive<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::socket_keepalive(fd.as_fd())
+}
+
+/// `setsockopt(fd, SOL_SOCKET, SO_RCVBUF, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_RCVBUF")]
+pub fn set_socket_recv_buffer_size<Fd: AsFd>(fd: Fd, value: usize) -> io::Result<()> {
+ backend::net::sockopt::set_socket_recv_buffer_size(fd.as_fd(), value)
+}
+
+/// `setsockopt(fd, SOL_SOCKET, SO_RCVBUFFORCE, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(any(linux_kernel, target_os = "fuchsia", target_os = "redox"))]
+#[inline]
+#[doc(alias = "SO_RCVBUFFORCE")]
+pub fn set_socket_recv_buffer_size_force<Fd: AsFd>(fd: Fd, value: usize) -> io::Result<()> {
+ backend::net::sockopt::set_socket_recv_buffer_size_force(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_RCVBUF)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_RCVBUF")]
+pub fn socket_recv_buffer_size<Fd: AsFd>(fd: Fd) -> io::Result<usize> {
+ backend::net::sockopt::socket_recv_buffer_size(fd.as_fd())
+}
+
+/// `setsockopt(fd, SOL_SOCKET, SO_SNDBUF, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_SNDBUF")]
+pub fn set_socket_send_buffer_size<Fd: AsFd>(fd: Fd, value: usize) -> io::Result<()> {
+ backend::net::sockopt::set_socket_send_buffer_size(fd.as_fd(), value)
+}
+
+/// `setsockopt(fd, SOL_SOCKET, SO_SNDBUFFORCE, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(any(linux_kernel, target_os = "fuchsia", target_os = "redox"))]
+#[inline]
+#[doc(alias = "SO_SNDBUFFORCE")]
+pub fn set_socket_send_buffer_size_force<Fd: AsFd>(fd: Fd, value: usize) -> io::Result<()> {
+ backend::net::sockopt::set_socket_send_buffer_size_force(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_SNDBUF)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_SNDBUF")]
+pub fn socket_send_buffer_size<Fd: AsFd>(fd: Fd) -> io::Result<usize> {
+ backend::net::sockopt::socket_send_buffer_size(fd.as_fd())
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_DOMAIN)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(not(any(
+ apple,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "dragonfly",
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "netbsd",
+ target_os = "nto",
+ target_os = "vita",
+)))]
+#[inline]
+#[doc(alias = "SO_DOMAIN")]
+pub fn socket_domain<Fd: AsFd>(fd: Fd) -> io::Result<AddressFamily> {
+ backend::net::sockopt::socket_domain(fd.as_fd())
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_ACCEPTCONN)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(not(apple))] // Apple platforms declare the constant, but do not actually implement it.
+#[inline]
+#[doc(alias = "SO_ACCEPTCONN")]
+pub fn socket_acceptconn<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::socket_acceptconn(fd.as_fd())
+}
+
+/// `setsockopt(fd, SOL_SOCKET, SO_OOBINLINE, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_OOBINLINE")]
+pub fn set_socket_oobinline<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_socket_oobinline(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_OOBINLINE)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "SO_OOBINLINE")]
+pub fn socket_oobinline<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::socket_oobinline(fd.as_fd())
+}
+
+/// `setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(not(any(solarish, windows, target_os = "cygwin")))]
+#[cfg(not(windows))]
+#[inline]
+#[doc(alias = "SO_REUSEPORT")]
+pub fn set_socket_reuseport<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_socket_reuseport(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_REUSEPORT)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(not(any(solarish, windows, target_os = "cygwin")))]
+#[inline]
+#[doc(alias = "SO_REUSEPORT")]
+pub fn socket_reuseport<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::socket_reuseport(fd.as_fd())
+}
+
+/// `setsockopt(fd, SOL_SOCKET, SO_REUSEPORT_LB, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(target_os = "freebsd")]
+#[inline]
+#[doc(alias = "SO_REUSEPORT_LB")]
+pub fn set_socket_reuseport_lb<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_socket_reuseport_lb(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_REUSEPORT_LB)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(target_os = "freebsd")]
+#[inline]
+#[doc(alias = "SO_REUSEPORT_LB")]
+pub fn socket_reuseport_lb<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::socket_reuseport_lb(fd.as_fd())
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_PROTOCOL)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(any(
+ linux_kernel,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_env = "newlib"
+))]
+#[inline]
+#[doc(alias = "SO_PROTOCOL")]
+pub fn socket_protocol<Fd: AsFd>(fd: Fd) -> io::Result<Option<Protocol>> {
+ backend::net::sockopt::socket_protocol(fd.as_fd())
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_COOKIE)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(target_os = "linux")]
+#[inline]
+#[doc(alias = "SO_COOKIE")]
+pub fn socket_cookie<Fd: AsFd>(fd: Fd) -> io::Result<u64> {
+ backend::net::sockopt::socket_cookie(fd.as_fd())
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_INCOMING_CPU)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(target_os = "linux")]
+#[inline]
+#[doc(alias = "SO_INCOMING_CPU")]
+pub fn socket_incoming_cpu<Fd: AsFd>(fd: Fd) -> io::Result<u32> {
+ backend::net::sockopt::socket_incoming_cpu(fd.as_fd())
+}
+
+/// `setsockopt(fd, SOL_SOCKET, SO_INCOMING_CPU, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[cfg(target_os = "linux")]
+#[inline]
+#[doc(alias = "SO_INCOMING_CPU")]
+pub fn set_socket_incoming_cpu<Fd: AsFd>(fd: Fd, value: u32) -> io::Result<()> {
+ backend::net::sockopt::set_socket_incoming_cpu(fd.as_fd(), value)
+}
+
+/// `setsockopt(fd, IPPROTO_IP, IP_TTL, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_socket_-and-set_socket_-functions
+#[inline]
+#[doc(alias = "IP_TTL")]
+pub fn set_ip_ttl<Fd: AsFd>(fd: Fd, value: u32) -> io::Result<()> {
+ backend::net::sockopt::set_ip_ttl(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_IP, IP_TTL)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[inline]
+#[doc(alias = "IP_TTL")]
+pub fn ip_ttl<Fd: AsFd>(fd: Fd) -> io::Result<u32> {
+ backend::net::sockopt::ip_ttl(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[inline]
+#[doc(alias = "IPV6_V6ONLY")]
+pub fn set_ipv6_v6only<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_ipv6_v6only(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[inline]
+#[doc(alias = "IPV6_V6ONLY")]
+pub fn ipv6_v6only<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::ipv6_v6only(fd.as_fd())
+}
+
+/// `getsockopt(fd, IPPROTO_IP, IP_MTU)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[inline]
+#[cfg(any(linux_kernel, target_os = "cygwin"))]
+#[doc(alias = "IP_MTU")]
+pub fn ip_mtu<Fd: AsFd>(fd: Fd) -> io::Result<u32> {
+ backend::net::sockopt::ip_mtu(fd.as_fd())
+}
+
+/// `getsockopt(fd, IPPROTO_IPV6, IPV6_MTU)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[inline]
+#[cfg(any(linux_kernel, target_os = "cygwin"))]
+#[doc(alias = "IPV6_MTU")]
+pub fn ipv6_mtu<Fd: AsFd>(fd: Fd) -> io::Result<u32> {
+ backend::net::sockopt::ipv6_mtu(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[inline]
+#[doc(alias = "IP_MULTICAST_IF")]
+pub fn set_ip_multicast_if<Fd: AsFd>(fd: Fd, value: &Ipv4Addr) -> io::Result<()> {
+ backend::net::sockopt::set_ip_multicast_if(fd.as_fd(), value)
+}
+
+/// `setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF, multiaddr, address,
+/// ifindex)`
+///
+/// This is similar to [`set_ip_multicast_if`] but additionally allows an
+/// `ifindex` value to be given.
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[cfg(any(
+ apple,
+ freebsdlike,
+ linux_like,
+ target_os = "fuchsia",
+ target_os = "openbsd"
+))]
+#[inline]
+#[doc(alias = "IP_MULTICAST_IF")]
+pub fn set_ip_multicast_if_with_ifindex<Fd: AsFd>(
+ fd: Fd,
+ multiaddr: &Ipv4Addr,
+ address: &Ipv4Addr,
+ ifindex: u32,
+) -> io::Result<()> {
+ backend::net::sockopt::set_ip_multicast_if_with_ifindex(fd.as_fd(), multiaddr, address, ifindex)
+}
+
+/// `getsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[inline]
+#[doc(alias = "IP_MULTICAST_IF")]
+pub fn ip_multicast_if<Fd: AsFd>(fd: Fd) -> io::Result<Ipv4Addr> {
+ backend::net::sockopt::ip_multicast_if(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_IF, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[inline]
+#[doc(alias = "IPV6_MULTICAST_IF")]
+pub fn set_ipv6_multicast_if<Fd: AsFd>(fd: Fd, value: u32) -> io::Result<()> {
+ backend::net::sockopt::set_ipv6_multicast_if(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_IF)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[inline]
+#[doc(alias = "IPV6_MULTICAST_IF")]
+pub fn ipv6_multicast_if<Fd: AsFd>(fd: Fd) -> io::Result<u32> {
+ backend::net::sockopt::ipv6_multicast_if(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_IP, IP_MULTICAST_LOOP, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[inline]
+#[doc(alias = "IP_MULTICAST_LOOP")]
+pub fn set_ip_multicast_loop<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_ip_multicast_loop(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_IP, IP_MULTICAST_LOOP)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[inline]
+#[doc(alias = "IP_MULTICAST_LOOP")]
+pub fn ip_multicast_loop<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::ip_multicast_loop(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[inline]
+#[doc(alias = "IP_MULTICAST_TTL")]
+pub fn set_ip_multicast_ttl<Fd: AsFd>(fd: Fd, value: u32) -> io::Result<()> {
+ backend::net::sockopt::set_ip_multicast_ttl(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[inline]
+#[doc(alias = "IP_MULTICAST_TTL")]
+pub fn ip_multicast_ttl<Fd: AsFd>(fd: Fd) -> io::Result<u32> {
+ backend::net::sockopt::ip_multicast_ttl(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[inline]
+#[doc(alias = "IPV6_MULTICAST_LOOP")]
+pub fn set_ipv6_multicast_loop<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_ipv6_multicast_loop(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_LOOP)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[inline]
+#[doc(alias = "IPV6_MULTICAST_LOOP")]
+pub fn ipv6_multicast_loop<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::ipv6_multicast_loop(fd.as_fd())
+}
+
+/// `getsockopt(fd, IPPROTO_IPV6, IPV6_UNICAST_HOPS)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[inline]
+#[doc(alias = "IPV6_UNICAST_HOPS")]
+pub fn ipv6_unicast_hops<Fd: AsFd>(fd: Fd) -> io::Result<u8> {
+ backend::net::sockopt::ipv6_unicast_hops(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_IPV6, IPV6_UNICAST_HOPS, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[inline]
+#[doc(alias = "IPV6_UNICAST_HOPS")]
+pub fn set_ipv6_unicast_hops<Fd: AsFd>(fd: Fd, value: Option<u8>) -> io::Result<()> {
+ backend::net::sockopt::set_ipv6_unicast_hops(fd.as_fd(), value)
+}
+
+/// `setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[inline]
+#[doc(alias = "IPV6_MULTICAST_HOPS")]
+pub fn set_ipv6_multicast_hops<Fd: AsFd>(fd: Fd, value: u32) -> io::Result<()> {
+ backend::net::sockopt::set_ipv6_multicast_hops(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_HOPS)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[inline]
+#[doc(alias = "IPV6_MULTICAST_HOPS")]
+pub fn ipv6_multicast_hops<Fd: AsFd>(fd: Fd) -> io::Result<u32> {
+ backend::net::sockopt::ipv6_multicast_hops(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, multiaddr, interface)`
+///
+/// This is similar to [`set_ip_add_membership`] but always sets the `ifindex`
+/// value to zero. See [`set_ip_add_membership_with_ifindex`] instead to also
+/// give the `ifindex` value.
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[inline]
+#[doc(alias = "IP_ADD_MEMBERSHIP")]
+pub fn set_ip_add_membership<Fd: AsFd>(
+ fd: Fd,
+ multiaddr: &Ipv4Addr,
+ interface: &Ipv4Addr,
+) -> io::Result<()> {
+ backend::net::sockopt::set_ip_add_membership(fd.as_fd(), multiaddr, interface)
+}
+
+/// `setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, multiaddr, address,
+/// ifindex)`
+///
+/// This is similar to [`set_ip_add_membership`] but additionally allows an
+/// `ifindex` value to be given.
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[cfg(any(
+ apple,
+ freebsdlike,
+ linux_like,
+ target_os = "fuchsia",
+ target_os = "openbsd"
+))]
+#[inline]
+#[doc(alias = "IP_ADD_MEMBERSHIP")]
+pub fn set_ip_add_membership_with_ifindex<Fd: AsFd>(
+ fd: Fd,
+ multiaddr: &Ipv4Addr,
+ address: &Ipv4Addr,
+ ifindex: u32,
+) -> io::Result<()> {
+ backend::net::sockopt::set_ip_add_membership_with_ifindex(
+ fd.as_fd(),
+ multiaddr,
+ address,
+ ifindex,
+ )
+}
+
+/// `setsockopt(fd, IPPROTO_IP, IP_ADD_SOURCE_MEMBERSHIP, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[cfg(any(apple, freebsdlike, linux_like, solarish, target_os = "aix"))]
+#[inline]
+#[doc(alias = "IP_ADD_SOURCE_MEMBERSHIP")]
+pub fn set_ip_add_source_membership<Fd: AsFd>(
+ fd: Fd,
+ multiaddr: &Ipv4Addr,
+ interface: &Ipv4Addr,
+ sourceaddr: &Ipv4Addr,
+) -> io::Result<()> {
+ backend::net::sockopt::set_ip_add_source_membership(
+ fd.as_fd(),
+ multiaddr,
+ interface,
+ sourceaddr,
+ )
+}
+
+/// `setsockopt(fd, IPPROTO_IP, IP_DROP_SOURCE_MEMBERSHIP, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[cfg(any(apple, freebsdlike, linux_like, solarish, target_os = "aix"))]
+#[inline]
+#[doc(alias = "IP_DROP_SOURCE_MEMBERSHIP")]
+pub fn set_ip_drop_source_membership<Fd: AsFd>(
+ fd: Fd,
+ multiaddr: &Ipv4Addr,
+ interface: &Ipv4Addr,
+ sourceaddr: &Ipv4Addr,
+) -> io::Result<()> {
+ backend::net::sockopt::set_ip_drop_source_membership(
+ fd.as_fd(),
+ multiaddr,
+ interface,
+ sourceaddr,
+ )
+}
+
+/// `setsockopt(fd, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, multiaddr, interface)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[inline]
+#[doc(alias = "IPV6_JOIN_GROUP")]
+#[doc(alias = "IPV6_ADD_MEMBERSHIP")]
+pub fn set_ipv6_add_membership<Fd: AsFd>(
+ fd: Fd,
+ multiaddr: &Ipv6Addr,
+ interface: u32,
+) -> io::Result<()> {
+ backend::net::sockopt::set_ipv6_add_membership(fd.as_fd(), multiaddr, interface)
+}
+
+/// `setsockopt(fd, IPPROTO_IP, IP_DROP_MEMBERSHIP, multiaddr, interface)`
+///
+/// This is similar to [`set_ip_drop_membership`] but always sets `ifindex`
+/// value to zero.
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[inline]
+#[doc(alias = "IP_DROP_MEMBERSHIP")]
+pub fn set_ip_drop_membership<Fd: AsFd>(
+ fd: Fd,
+ multiaddr: &Ipv4Addr,
+ interface: &Ipv4Addr,
+) -> io::Result<()> {
+ backend::net::sockopt::set_ip_drop_membership(fd.as_fd(), multiaddr, interface)
+}
+
+/// `setsockopt(fd, IPPROTO_IP, IP_DROP_MEMBERSHIP, multiaddr, interface)`
+///
+/// This is similar to [`set_ip_drop_membership_with_ifindex`] but additionally
+/// allows a `ifindex` value to be given.
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[cfg(any(
+ apple,
+ freebsdlike,
+ linux_like,
+ target_os = "fuchsia",
+ target_os = "openbsd"
+))]
+#[inline]
+#[doc(alias = "IP_DROP_MEMBERSHIP")]
+pub fn set_ip_drop_membership_with_ifindex<Fd: AsFd>(
+ fd: Fd,
+ multiaddr: &Ipv4Addr,
+ address: &Ipv4Addr,
+ ifindex: u32,
+) -> io::Result<()> {
+ backend::net::sockopt::set_ip_drop_membership_with_ifindex(
+ fd.as_fd(),
+ multiaddr,
+ address,
+ ifindex,
+ )
+}
+
+/// `setsockopt(fd, IPPROTO_IPV6, IPV6_DROP_MEMBERSHIP, multiaddr, interface)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[inline]
+#[doc(alias = "IPV6_LEAVE_GROUP")]
+#[doc(alias = "IPV6_DROP_MEMBERSHIP")]
+pub fn set_ipv6_drop_membership<Fd: AsFd>(
+ fd: Fd,
+ multiaddr: &Ipv6Addr,
+ interface: u32,
+) -> io::Result<()> {
+ backend::net::sockopt::set_ipv6_drop_membership(fd.as_fd(), multiaddr, interface)
+}
+
+/// `setsockopt(fd, IPPROTO_IP, IP_TOS, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[cfg(any(
+ bsd,
+ linux_like,
+ target_os = "aix",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "nto",
+ target_env = "newlib"
+))]
+#[inline]
+#[doc(alias = "IP_TOS")]
+pub fn set_ip_tos<Fd: AsFd>(fd: Fd, value: u8) -> io::Result<()> {
+ backend::net::sockopt::set_ip_tos(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_IP, IP_TOS)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[cfg(any(
+ bsd,
+ linux_like,
+ target_os = "aix",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "nto",
+ target_env = "newlib"
+))]
+#[inline]
+#[doc(alias = "IP_TOS")]
+pub fn ip_tos<Fd: AsFd>(fd: Fd) -> io::Result<u8> {
+ backend::net::sockopt::ip_tos(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_IP, IP_RECVTOS, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[cfg(any(
+ apple,
+ linux_like,
+ target_os = "cygwin",
+ target_os = "freebsd",
+ target_os = "fuchsia",
+))]
+#[inline]
+#[doc(alias = "IP_RECVTOS")]
+pub fn set_ip_recvtos<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_ip_recvtos(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_IP, IP_RECVTOS)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ip_-and-set_ip_-functions
+#[cfg(any(
+ apple,
+ linux_like,
+ target_os = "cygwin",
+ target_os = "freebsd",
+ target_os = "fuchsia",
+))]
+#[inline]
+#[doc(alias = "IP_RECVTOS")]
+pub fn ip_recvtos<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::ip_recvtos(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_IPV6, IPV6_RECVTCLASS, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[cfg(any(
+ bsd,
+ linux_like,
+ target_os = "aix",
+ target_os = "fuchsia",
+ target_os = "nto"
+))]
+#[inline]
+#[doc(alias = "IPV6_RECVTCLASS")]
+pub fn set_ipv6_recvtclass<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_ipv6_recvtclass(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_IPV6, IPV6_RECVTCLASS)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[cfg(any(
+ bsd,
+ linux_like,
+ target_os = "aix",
+ target_os = "fuchsia",
+ target_os = "nto"
+))]
+#[inline]
+#[doc(alias = "IPV6_RECVTCLASS")]
+pub fn ipv6_recvtclass<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::ipv6_recvtclass(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_IP, IP_FREEBIND, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[inline]
+#[doc(alias = "IP_FREEBIND")]
+pub fn set_ip_freebind<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_ip_freebind(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_IP, IP_FREEBIND)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[inline]
+#[doc(alias = "IP_FREEBIND")]
+pub fn ip_freebind<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::ip_freebind(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_IPV6, IPV6_FREEBIND, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[cfg(linux_kernel)]
+#[inline]
+#[doc(alias = "IPV6_FREEBIND")]
+pub fn set_ipv6_freebind<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_ipv6_freebind(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_IPV6, IPV6_FREEBIND)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[cfg(linux_kernel)]
+#[inline]
+#[doc(alias = "IPV6_FREEBIND")]
+pub fn ipv6_freebind<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::ipv6_freebind(fd.as_fd())
+}
+
+/// `getsockopt(fd, IPPROTO_IP, SO_ORIGINAL_DST)`
+///
+/// Even though this corresponds to a `SO_*` constant, it is an `IPPROTO_IP`
+/// option.
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+#[inline]
+#[doc(alias = "SO_ORIGINAL_DST")]
+pub fn ip_original_dst<Fd: AsFd>(fd: Fd) -> io::Result<SocketAddrV4> {
+ backend::net::sockopt::ip_original_dst(fd.as_fd())
+}
+
+/// `getsockopt(fd, IPPROTO_IPV6, IP6T_SO_ORIGINAL_DST)`
+///
+/// Even though this corresponds to a `IP6T_*` constant, it is an
+/// `IPPROTO_IPV6` option.
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[cfg(linux_kernel)]
+#[inline]
+#[doc(alias = "IP6T_SO_ORIGINAL_DST")]
+pub fn ipv6_original_dst<Fd: AsFd>(fd: Fd) -> io::Result<SocketAddrV6> {
+ backend::net::sockopt::ipv6_original_dst(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_IPV6, IPV6_TCLASS, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[cfg(not(any(
+ solarish,
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+#[inline]
+#[doc(alias = "IPV6_TCLASS")]
+pub fn set_ipv6_tclass<Fd: AsFd>(fd: Fd, value: u32) -> io::Result<()> {
+ backend::net::sockopt::set_ipv6_tclass(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_IPV6, IPV6_TCLASS)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_ipv6_-and-set_ipv6_-functions
+#[cfg(not(any(
+ solarish,
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+)))]
+#[inline]
+#[doc(alias = "IPV6_TCLASS")]
+pub fn ipv6_tclass<Fd: AsFd>(fd: Fd) -> io::Result<u32> {
+ backend::net::sockopt::ipv6_tclass(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[inline]
+#[doc(alias = "TCP_NODELAY")]
+pub fn set_tcp_nodelay<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_tcp_nodelay(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_TCP, TCP_NODELAY)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[inline]
+#[doc(alias = "TCP_NODELAY")]
+pub fn tcp_nodelay<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::tcp_nodelay(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_TCP, TCP_KEEPCNT, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(not(any(
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "openbsd",
+ target_os = "redox"
+)))]
+#[inline]
+#[doc(alias = "TCP_KEEPCNT")]
+pub fn set_tcp_keepcnt<Fd: AsFd>(fd: Fd, value: u32) -> io::Result<()> {
+ backend::net::sockopt::set_tcp_keepcnt(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_TCP, TCP_KEEPCNT)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(not(any(
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "openbsd",
+ target_os = "redox"
+)))]
+#[inline]
+#[doc(alias = "TCP_KEEPCNT")]
+pub fn tcp_keepcnt<Fd: AsFd>(fd: Fd) -> io::Result<u32> {
+ backend::net::sockopt::tcp_keepcnt(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, value)`
+///
+/// `TCP_KEEPALIVE` on Apple platforms.
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(not(any(target_os = "haiku", target_os = "nto", target_os = "openbsd")))]
+#[inline]
+#[doc(alias = "TCP_KEEPIDLE")]
+pub fn set_tcp_keepidle<Fd: AsFd>(fd: Fd, value: Duration) -> io::Result<()> {
+ backend::net::sockopt::set_tcp_keepidle(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE)`
+///
+/// `TCP_KEEPALIVE` on Apple platforms.
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(not(any(target_os = "haiku", target_os = "nto", target_os = "openbsd")))]
+#[inline]
+#[doc(alias = "TCP_KEEPIDLE")]
+pub fn tcp_keepidle<Fd: AsFd>(fd: Fd) -> io::Result<Duration> {
+ backend::net::sockopt::tcp_keepidle(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(not(any(
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "openbsd",
+ target_os = "redox"
+)))]
+#[inline]
+#[doc(alias = "TCP_KEEPINTVL")]
+pub fn set_tcp_keepintvl<Fd: AsFd>(fd: Fd, value: Duration) -> io::Result<()> {
+ backend::net::sockopt::set_tcp_keepintvl(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(not(any(
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "openbsd",
+ target_os = "redox"
+)))]
+#[inline]
+#[doc(alias = "TCP_KEEPINTVL")]
+pub fn tcp_keepintvl<Fd: AsFd>(fd: Fd) -> io::Result<Duration> {
+ backend::net::sockopt::tcp_keepintvl(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_TCP, TCP_USER_TIMEOUT, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(any(linux_like, target_os = "fuchsia"))]
+#[inline]
+#[doc(alias = "TCP_USER_TIMEOUT")]
+pub fn set_tcp_user_timeout<Fd: AsFd>(fd: Fd, value: u32) -> io::Result<()> {
+ backend::net::sockopt::set_tcp_user_timeout(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_TCP, TCP_USER_TIMEOUT)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(any(linux_like, target_os = "fuchsia"))]
+#[inline]
+#[doc(alias = "TCP_USER_TIMEOUT")]
+pub fn tcp_user_timeout<Fd: AsFd>(fd: Fd) -> io::Result<u32> {
+ backend::net::sockopt::tcp_user_timeout(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_TCP, TCP_QUICKACK, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(any(linux_like, target_os = "fuchsia"))]
+#[inline]
+#[doc(alias = "TCP_QUICKACK")]
+pub fn set_tcp_quickack<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_tcp_quickack(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_TCP, TCP_QUICKACK)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(any(linux_like, target_os = "fuchsia"))]
+#[inline]
+#[doc(alias = "TCP_QUICKACK")]
+pub fn tcp_quickack<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::tcp_quickack(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_TCP, TCP_CONGESTION, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(any(
+ linux_like,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "illumos"
+))]
+#[inline]
+#[doc(alias = "TCP_CONGESTION")]
+pub fn set_tcp_congestion<Fd: AsFd>(fd: Fd, value: &str) -> io::Result<()> {
+ backend::net::sockopt::set_tcp_congestion(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_TCP, TCP_CONGESTION)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(feature = "alloc")]
+#[cfg(any(
+ linux_like,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "illumos"
+))]
+#[inline]
+#[doc(alias = "TCP_CONGESTION")]
+#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
+pub fn tcp_congestion<Fd: AsFd>(fd: Fd) -> io::Result<String> {
+ backend::net::sockopt::tcp_congestion(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_TCP, TCP_THIN_LINEAR_TIMEOUTS, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(any(linux_like, target_os = "fuchsia"))]
+#[inline]
+#[doc(alias = "TCP_THIN_LINEAR_TIMEOUTS")]
+pub fn set_tcp_thin_linear_timeouts<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_tcp_thin_linear_timeouts(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_TCP, TCP_THIN_LINEAR_TIMEOUTS)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(any(linux_like, target_os = "fuchsia"))]
+#[inline]
+#[doc(alias = "TCP_THIN_LINEAR_TIMEOUTS")]
+pub fn tcp_thin_linear_timeouts<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::tcp_thin_linear_timeouts(fd.as_fd())
+}
+
+/// `setsockopt(fd, IPPROTO_TCP, TCP_CORK, value)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(any(linux_like, solarish, target_os = "fuchsia"))]
+#[inline]
+#[doc(alias = "TCP_CORK")]
+pub fn set_tcp_cork<Fd: AsFd>(fd: Fd, value: bool) -> io::Result<()> {
+ backend::net::sockopt::set_tcp_cork(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, IPPROTO_TCP, TCP_CORK)`
+///
+/// See the [module-level documentation] for more.
+///
+/// [module-level documentation]: self#references-for-get_tcp_-and-set_tcp_-functions
+#[cfg(any(linux_like, solarish, target_os = "fuchsia"))]
+#[inline]
+#[doc(alias = "TCP_CORK")]
+pub fn tcp_cork<Fd: AsFd>(fd: Fd) -> io::Result<bool> {
+ backend::net::sockopt::tcp_cork(fd.as_fd())
+}
+
+/// `getsockopt(fd, SOL_SOCKET, SO_PEERCRED)`—Get credentials of Unix domain
+/// socket peer process.
+///
+/// # References
+/// - [Linux `unix`]
+///
+/// [Linux `unix`]: https://man7.org/linux/man-pages/man7/unix.7.html
+#[cfg(linux_kernel)]
+#[doc(alias = "SO_PEERCRED")]
+pub fn socket_peercred<Fd: AsFd>(fd: Fd) -> io::Result<super::UCred> {
+ backend::net::sockopt::socket_peercred(fd.as_fd())
+}
+
+/// `setsockopt(fd, SOL_XDP, XDP_UMEM_REG, value)`
+///
+/// On kernel versions only supporting v1, the flags are ignored.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.kernel.org/doc/html/next/networking/af_xdp.html#xdp-umem-reg-setsockopt
+#[cfg(target_os = "linux")]
+#[doc(alias = "XDP_UMEM_REG")]
+pub fn set_xdp_umem_reg<Fd: AsFd>(fd: Fd, value: XdpUmemReg) -> io::Result<()> {
+ backend::net::sockopt::set_xdp_umem_reg(fd.as_fd(), value)
+}
+
+/// `setsockopt(fd, SOL_XDP, XDP_UMEM_FILL_RING, value)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.kernel.org/doc/html/next/networking/af_xdp.html#xdp-rx-tx-umem-fill-umem-completion-ring-setsockopts
+#[cfg(target_os = "linux")]
+#[doc(alias = "XDP_UMEM_FILL_RING")]
+pub fn set_xdp_umem_fill_ring_size<Fd: AsFd>(fd: Fd, value: u32) -> io::Result<()> {
+ backend::net::sockopt::set_xdp_umem_fill_ring_size(fd.as_fd(), value)
+}
+
+/// `setsockopt(fd, SOL_XDP, XDP_UMEM_COMPLETION_RING, value)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.kernel.org/doc/html/next/networking/af_xdp.html#xdp-rx-tx-umem-fill-umem-completion-ring-setsockopts
+#[cfg(target_os = "linux")]
+#[doc(alias = "XDP_UMEM_COMPLETION_RING")]
+pub fn set_xdp_umem_completion_ring_size<Fd: AsFd>(fd: Fd, value: u32) -> io::Result<()> {
+ backend::net::sockopt::set_xdp_umem_completion_ring_size(fd.as_fd(), value)
+}
+
+/// `setsockopt(fd, SOL_XDP, XDP_TX_RING, value)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.kernel.org/doc/html/next/networking/af_xdp.html#xdp-rx-tx-umem-fill-umem-completion-ring-setsockopts
+#[cfg(target_os = "linux")]
+#[doc(alias = "XDP_TX_RING")]
+pub fn set_xdp_tx_ring_size<Fd: AsFd>(fd: Fd, value: u32) -> io::Result<()> {
+ backend::net::sockopt::set_xdp_tx_ring_size(fd.as_fd(), value)
+}
+
+/// `setsockopt(fd, SOL_XDP, XDP_RX_RING, value)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.kernel.org/doc/html/next/networking/af_xdp.html#xdp-rx-tx-umem-fill-umem-completion-ring-setsockopts
+#[cfg(target_os = "linux")]
+#[doc(alias = "XDP_RX_RING")]
+pub fn set_xdp_rx_ring_size<Fd: AsFd>(fd: Fd, value: u32) -> io::Result<()> {
+ backend::net::sockopt::set_xdp_rx_ring_size(fd.as_fd(), value)
+}
+
+/// `getsockopt(fd, SOL_XDP, XDP_MMAP_OFFSETS)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.kernel.org/doc/html/next/networking/af_xdp.html
+#[cfg(target_os = "linux")]
+#[doc(alias = "XDP_MMAP_OFFSETS")]
+pub fn xdp_mmap_offsets<Fd: AsFd>(fd: Fd) -> io::Result<XdpMmapOffsets> {
+ backend::net::sockopt::xdp_mmap_offsets(fd.as_fd())
+}
+
+/// `getsockopt(fd, SOL_XDP, XDP_STATISTICS)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.kernel.org/doc/html/next/networking/af_xdp.html#xdp-statistics-getsockopt
+#[cfg(target_os = "linux")]
+#[doc(alias = "XDP_STATISTICS")]
+pub fn xdp_statistics<Fd: AsFd>(fd: Fd) -> io::Result<XdpStatistics> {
+ backend::net::sockopt::xdp_statistics(fd.as_fd())
+}
+
+/// `getsockopt(fd, SOL_XDP, XDP_OPTIONS)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.kernel.org/doc/html/next/networking/af_xdp.html#xdp-options-getsockopt
+#[cfg(target_os = "linux")]
+#[doc(alias = "XDP_OPTIONS")]
+pub fn xdp_options<Fd: AsFd>(fd: Fd) -> io::Result<XdpOptionsFlags> {
+ backend::net::sockopt::xdp_options(fd.as_fd())
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_sizes() {
+ use c::c_int;
+
+ // Backend code needs to cast these to `c_int` so make sure that cast
+ // isn't lossy.
+ assert_eq_size!(Timeout, c_int);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/net/types.rs b/vendor/rustix-1.0.8/src/net/types.rs
new file mode 100644
index 0000000..057f944
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/net/types.rs
@@ -0,0 +1,2132 @@
+//! Types and constants for `rustix::net`.
+
+use crate::backend::c;
+use crate::ffi;
+use bitflags::bitflags;
+
+/// A type for holding raw integer socket types.
+pub type RawSocketType = u32;
+
+/// `SOCK_*` constants for use with [`socket`].
+///
+/// [`socket`]: crate::net::socket()
+#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
+#[repr(transparent)]
+pub struct SocketType(pub(crate) RawSocketType);
+
+#[rustfmt::skip]
+impl SocketType {
+ /// `SOCK_STREAM`
+ pub const STREAM: Self = Self(c::SOCK_STREAM as _);
+
+ /// `SOCK_DGRAM`
+ pub const DGRAM: Self = Self(c::SOCK_DGRAM as _);
+
+ /// `SOCK_SEQPACKET`
+ #[cfg(not(any(target_os = "espidf", target_os = "horizon")))]
+ pub const SEQPACKET: Self = Self(c::SOCK_SEQPACKET as _);
+
+ /// `SOCK_RAW`
+ #[cfg(not(any(target_os = "espidf", target_os = "horizon")))]
+ pub const RAW: Self = Self(c::SOCK_RAW as _);
+
+ /// `SOCK_RDM`
+ #[cfg(not(any(
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox"
+ )))]
+ pub const RDM: Self = Self(c::SOCK_RDM as _);
+
+ /// Constructs a `SocketType` from a raw integer.
+ #[inline]
+ pub const fn from_raw(raw: RawSocketType) -> Self {
+ Self(raw)
+ }
+
+ /// Returns the raw integer for this `SocketType`.
+ #[inline]
+ pub const fn as_raw(self) -> RawSocketType {
+ self.0
+ }
+}
+
+/// A type for holding raw integer address families.
+pub type RawAddressFamily = crate::ffi::c_ushort;
+
+/// `AF_*` constants for use with [`socket`], [`socket_with`], and
+/// [`socketpair`].
+///
+/// [`socket`]: crate::net::socket()
+/// [`socket_with`]: crate::net::socket_with
+/// [`socketpair`]: crate::net::socketpair()
+#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
+#[repr(transparent)]
+pub struct AddressFamily(pub(crate) RawAddressFamily);
+
+#[rustfmt::skip]
+#[allow(non_upper_case_globals)]
+impl AddressFamily {
+ /// `AF_UNSPEC`
+ pub const UNSPEC: Self = Self(c::AF_UNSPEC as _);
+ /// `AF_INET`
+ ///
+ /// # References
+ /// - [Linux]
+ ///
+ /// [Linux]: https://man7.org/linux/man-pages/man7/ip.7.html
+ pub const INET: Self = Self(c::AF_INET as _);
+ /// `AF_INET6`
+ ///
+ /// # References
+ /// - [Linux]
+ ///
+ /// [Linux]: https://man7.org/linux/man-pages/man7/ipv6.7.html
+ pub const INET6: Self = Self(c::AF_INET6 as _);
+ /// `AF_NETLINK`
+ ///
+ /// # References
+ /// - [Linux]
+ ///
+ /// [Linux]: https://man7.org/linux/man-pages/man7/netlink.7.html
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const NETLINK: Self = Self(c::AF_NETLINK as _);
+ /// `AF_UNIX`, aka `AF_LOCAL`
+ #[doc(alias = "LOCAL")]
+ pub const UNIX: Self = Self(c::AF_UNIX as _);
+ /// `AF_AX25`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const AX25: Self = Self(c::AF_AX25 as _);
+ /// `AF_IPX`
+ #[cfg(not(any(
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const IPX: Self = Self(c::AF_IPX as _);
+ /// `AF_APPLETALK`
+ #[cfg(not(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+ )))]
+ pub const APPLETALK: Self = Self(c::AF_APPLETALK as _);
+ /// `AF_NETROM`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const NETROM: Self = Self(c::AF_NETROM as _);
+ /// `AF_BRIDGE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const BRIDGE: Self = Self(c::AF_BRIDGE as _);
+ /// `AF_ATMPVC`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const ATMPVC: Self = Self(c::AF_ATMPVC as _);
+ /// `AF_X25`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const X25: Self = Self(c::AF_X25 as _);
+ /// `AF_ROSE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const ROSE: Self = Self(c::AF_ROSE as _);
+ /// `AF_DECnet`
+ #[cfg(not(any(
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+ )))]
+ pub const DECnet: Self = Self(c::AF_DECnet as _);
+ /// `AF_NETBEUI`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const NETBEUI: Self = Self(c::AF_NETBEUI as _);
+ /// `AF_SECURITY`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const SECURITY: Self = Self(c::AF_SECURITY as _);
+ /// `AF_KEY`
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const KEY: Self = Self(c::AF_KEY as _);
+ /// `AF_PACKET`
+ ///
+ /// # References
+ /// - [Linux]
+ ///
+ /// [Linux]: https://man7.org/linux/man-pages/man7/packet.7.html
+ #[cfg(not(any(
+ bsd,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const PACKET: Self = Self(c::AF_PACKET as _);
+ /// `AF_ASH`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const ASH: Self = Self(c::AF_ASH as _);
+ /// `AF_ECONET`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const ECONET: Self = Self(c::AF_ECONET as _);
+ /// `AF_ATMSVC`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const ATMSVC: Self = Self(c::AF_ATMSVC as _);
+ /// `AF_RDS`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const RDS: Self = Self(c::AF_RDS as _);
+ /// `AF_SNA`
+ #[cfg(not(any(
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+ )))]
+ pub const SNA: Self = Self(c::AF_SNA as _);
+ /// `AF_IRDA`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const IRDA: Self = Self(c::AF_IRDA as _);
+ /// `AF_PPPOX`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const PPPOX: Self = Self(c::AF_PPPOX as _);
+ /// `AF_WANPIPE`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const WANPIPE: Self = Self(c::AF_WANPIPE as _);
+ /// `AF_LLC`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const LLC: Self = Self(c::AF_LLC as _);
+ /// `AF_CAN`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const CAN: Self = Self(c::AF_CAN as _);
+ /// `AF_TIPC`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const TIPC: Self = Self(c::AF_TIPC as _);
+ /// `AF_BLUETOOTH`
+ #[cfg(not(any(
+ apple,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const BLUETOOTH: Self = Self(c::AF_BLUETOOTH as _);
+ /// `AF_IUCV`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const IUCV: Self = Self(c::AF_IUCV as _);
+ /// `AF_RXRPC`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const RXRPC: Self = Self(c::AF_RXRPC as _);
+ /// `AF_ISDN`
+ #[cfg(not(any(
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const ISDN: Self = Self(c::AF_ISDN as _);
+ /// `AF_PHONET`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const PHONET: Self = Self(c::AF_PHONET as _);
+ /// `AF_IEEE802154`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const IEEE802154: Self = Self(c::AF_IEEE802154 as _);
+ /// `AF_802`
+ #[cfg(solarish)]
+ pub const EIGHT_ZERO_TWO: Self = Self(c::AF_802 as _);
+ #[cfg(target_os = "fuchsia")]
+ /// `AF_ALG`
+ pub const ALG: Self = Self(c::AF_ALG as _);
+ #[cfg(any(target_os = "freebsd", target_os = "netbsd", target_os = "nto"))]
+ /// `AF_ARP`
+ pub const ARP: Self = Self(c::AF_ARP as _);
+ /// `AF_ATM`
+ #[cfg(freebsdlike)]
+ pub const ATM: Self = Self(c::AF_ATM as _);
+ /// `AF_CAIF`
+ #[cfg(any(target_os = "android", target_os = "emscripten", target_os = "fuchsia"))]
+ pub const CAIF: Self = Self(c::AF_CAIF as _);
+ /// `AF_CCITT`
+ #[cfg(any(bsd, solarish, target_os = "aix", target_os = "nto"))]
+ pub const CCITT: Self = Self(c::AF_CCITT as _);
+ /// `AF_CHAOS`
+ #[cfg(any(bsd, solarish, target_os = "aix", target_os = "nto"))]
+ pub const CHAOS: Self = Self(c::AF_CHAOS as _);
+ /// `AF_CNT`
+ #[cfg(any(bsd, target_os = "nto"))]
+ pub const CNT: Self = Self(c::AF_CNT as _);
+ /// `AF_COIP`
+ #[cfg(any(bsd, target_os = "nto"))]
+ pub const COIP: Self = Self(c::AF_COIP as _);
+ /// `AF_DATAKIT`
+ #[cfg(any(bsd, solarish, target_os = "aix", target_os = "nto"))]
+ pub const DATAKIT: Self = Self(c::AF_DATAKIT as _);
+ /// `AF_DLI`
+ #[cfg(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto"
+ ))]
+ pub const DLI: Self = Self(c::AF_DLI as _);
+ /// `AF_E164`
+ #[cfg(any(bsd, target_os = "nto"))]
+ pub const E164: Self = Self(c::AF_E164 as _);
+ /// `AF_ECMA`
+ #[cfg(any(
+ apple,
+ freebsdlike,
+ solarish,
+ target_os = "aix",
+ target_os = "nto",
+ target_os = "openbsd"
+ ))]
+ pub const ECMA: Self = Self(c::AF_ECMA as _);
+ /// `AF_ENCAP`
+ #[cfg(target_os = "openbsd")]
+ pub const ENCAP: Self = Self(c::AF_ENCAP as _);
+ /// `AF_FILE`
+ #[cfg(solarish)]
+ pub const FILE: Self = Self(c::AF_FILE as _);
+ /// `AF_GOSIP`
+ #[cfg(solarish)]
+ pub const GOSIP: Self = Self(c::AF_GOSIP as _);
+ /// `AF_HYLINK`
+ #[cfg(any(bsd, solarish, target_os = "aix", target_os = "nto"))]
+ pub const HYLINK: Self = Self(c::AF_HYLINK as _);
+ /// `AF_IB`
+ #[cfg(any(target_os = "emscripten", target_os = "fuchsia"))]
+ pub const IB: Self = Self(c::AF_IB as _);
+ /// `AF_IMPLINK`
+ #[cfg(any(bsd, solarish, target_os = "aix", target_os = "nto"))]
+ pub const IMPLINK: Self = Self(c::AF_IMPLINK as _);
+ /// `AF_IEEE80211`
+ #[cfg(any(apple, freebsdlike, target_os = "netbsd"))]
+ pub const IEEE80211: Self = Self(c::AF_IEEE80211 as _);
+ /// `AF_INET6_SDP`
+ #[cfg(target_os = "freebsd")]
+ pub const INET6_SDP: Self = Self(c::AF_INET6_SDP as _);
+ /// `AF_INET_OFFLOAD`
+ #[cfg(solarish)]
+ pub const INET_OFFLOAD: Self = Self(c::AF_INET_OFFLOAD as _);
+ /// `AF_INET_SDP`
+ #[cfg(target_os = "freebsd")]
+ pub const INET_SDP: Self = Self(c::AF_INET_SDP as _);
+ /// `AF_INTF`
+ #[cfg(target_os = "aix")]
+ pub const INTF: Self = Self(c::AF_INTF as _);
+ /// `AF_ISO`
+ #[cfg(any(bsd, target_os = "aix", target_os = "nto"))]
+ pub const ISO: Self = Self(c::AF_ISO as _);
+ /// `AF_LAT`
+ #[cfg(any(bsd, solarish, target_os = "aix", target_os = "nto"))]
+ pub const LAT: Self = Self(c::AF_LAT as _);
+ /// `AF_LINK`
+ #[cfg(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto"
+ ))]
+ pub const LINK: Self = Self(c::AF_LINK as _);
+ /// `AF_MPLS`
+ #[cfg(any(
+ netbsdlike,
+ target_os = "dragonfly",
+ target_os = "emscripten",
+ target_os = "fuchsia"
+ ))]
+ pub const MPLS: Self = Self(c::AF_MPLS as _);
+ /// `AF_NATM`
+ #[cfg(any(bsd, target_os = "nto"))]
+ pub const NATM: Self = Self(c::AF_NATM as _);
+ /// `AF_NBS`
+ #[cfg(solarish)]
+ pub const NBS: Self = Self(c::AF_NBS as _);
+ /// `AF_NCA`
+ #[cfg(target_os = "illumos")]
+ pub const NCA: Self = Self(c::AF_NCA as _);
+ /// `AF_NDD`
+ #[cfg(target_os = "aix")]
+ pub const NDD: Self = Self(c::AF_NDD as _);
+ /// `AF_NDRV`
+ #[cfg(apple)]
+ pub const NDRV: Self = Self(c::AF_NDRV as _);
+ /// `AF_NETBIOS`
+ #[cfg(any(apple, freebsdlike))]
+ pub const NETBIOS: Self = Self(c::AF_NETBIOS as _);
+ /// `AF_NETGRAPH`
+ #[cfg(freebsdlike)]
+ pub const NETGRAPH: Self = Self(c::AF_NETGRAPH as _);
+ /// `AF_NIT`
+ #[cfg(solarish)]
+ pub const NIT: Self = Self(c::AF_NIT as _);
+ /// `AF_NOTIFY`
+ #[cfg(target_os = "haiku")]
+ pub const NOTIFY: Self = Self(c::AF_NOTIFY as _);
+ /// `AF_NFC`
+ #[cfg(any(target_os = "emscripten", target_os = "fuchsia"))]
+ pub const NFC: Self = Self(c::AF_NFC as _);
+ /// `AF_NS`
+ #[cfg(any(apple, solarish, netbsdlike, target_os = "aix", target_os = "nto"))]
+ pub const NS: Self = Self(c::AF_NS as _);
+ /// `AF_OROUTE`
+ #[cfg(target_os = "netbsd")]
+ pub const OROUTE: Self = Self(c::AF_OROUTE as _);
+ /// `AF_OSI`
+ #[cfg(any(bsd, solarish, target_os = "aix", target_os = "nto"))]
+ pub const OSI: Self = Self(c::AF_OSI as _);
+ /// `AF_OSINET`
+ #[cfg(solarish)]
+ pub const OSINET: Self = Self(c::AF_OSINET as _);
+ /// `AF_POLICY`
+ #[cfg(solarish)]
+ pub const POLICY: Self = Self(c::AF_POLICY as _);
+ /// `AF_PPP`
+ #[cfg(apple)]
+ pub const PPP: Self = Self(c::AF_PPP as _);
+ /// `AF_PUP`
+ #[cfg(any(bsd, solarish, target_os = "aix", target_os = "nto"))]
+ pub const PUP: Self = Self(c::AF_PUP as _);
+ /// `AF_RIF`
+ #[cfg(target_os = "aix")]
+ pub const RIF: Self = Self(c::AF_RIF as _);
+ /// `AF_ROUTE`
+ #[cfg(any(
+ bsd,
+ solarish,
+ target_os = "android",
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "nto"
+ ))]
+ pub const ROUTE: Self = Self(c::AF_ROUTE as _);
+ /// `AF_SCLUSTER`
+ #[cfg(target_os = "freebsd")]
+ pub const SCLUSTER: Self = Self(c::AF_SCLUSTER as _);
+ /// `AF_SIP`
+ #[cfg(any(apple, target_os = "freebsd", target_os = "openbsd"))]
+ pub const SIP: Self = Self(c::AF_SIP as _);
+ /// `AF_SLOW`
+ #[cfg(target_os = "freebsd")]
+ pub const SLOW: Self = Self(c::AF_SLOW as _);
+ /// `AF_SYS_CONTROL`
+ #[cfg(apple)]
+ pub const SYS_CONTROL: Self = Self(c::AF_SYS_CONTROL as _);
+ /// `AF_SYSTEM`
+ #[cfg(apple)]
+ pub const SYSTEM: Self = Self(c::AF_SYSTEM as _);
+ /// `AF_TRILL`
+ #[cfg(solarish)]
+ pub const TRILL: Self = Self(c::AF_TRILL as _);
+ /// `AF_UTUN`
+ #[cfg(apple)]
+ pub const UTUN: Self = Self(c::AF_UTUN as _);
+ /// `AF_VSOCK`
+ #[cfg(any(apple, target_os = "emscripten", target_os = "fuchsia"))]
+ pub const VSOCK: Self = Self(c::AF_VSOCK as _);
+ /// `AF_XDP`
+ #[cfg(target_os = "linux")]
+ pub const XDP: Self = Self(c::AF_XDP as _);
+
+ /// Constructs a `AddressFamily` from a raw integer.
+ #[inline]
+ pub const fn from_raw(raw: RawAddressFamily) -> Self {
+ Self(raw)
+ }
+
+ /// Returns the raw integer for this `AddressFamily`.
+ #[inline]
+ pub const fn as_raw(self) -> RawAddressFamily {
+ self.0
+ }
+}
+
+/// A type for holding raw integer protocols.
+pub type RawProtocol = core::num::NonZeroU32;
+
+const fn new_raw_protocol(u: u32) -> RawProtocol {
+ match RawProtocol::new(u) {
+ Some(p) => p,
+ None => panic!("new_raw_protocol: protocol must be non-zero"),
+ }
+}
+
+/// `IPPROTO_*` and other constants for use with [`socket`], [`socket_with`],
+/// and [`socketpair`] when a nondefault value is desired.
+///
+/// See the [`ipproto`], [`sysproto`], and [`netlink`] modules for possible
+/// values.
+///
+/// For the default values, such as `IPPROTO_IP` or `NETLINK_ROUTE`, pass
+/// `None` as the `protocol` argument in these functions.
+///
+/// [`socket`]: crate::net::socket()
+/// [`socket_with`]: crate::net::socket_with
+/// [`socketpair`]: crate::net::socketpair()
+#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
+#[repr(transparent)]
+#[doc(alias = "IPPROTO_IP")]
+#[doc(alias = "NETLINK_ROUTE")]
+pub struct Protocol(pub(crate) RawProtocol);
+
+/// `IPPROTO_*` constants.
+///
+/// For `IPPROTO_IP`, pass `None` as the `protocol` argument.
+pub mod ipproto {
+ use super::{new_raw_protocol, Protocol};
+ use crate::backend::c;
+
+ /// `IPPROTO_ICMP`
+ pub const ICMP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_ICMP as _));
+ /// `IPPROTO_IGMP`
+ #[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "vita"
+ )))]
+ pub const IGMP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_IGMP as _));
+ /// `IPPROTO_IPIP`
+ #[cfg(not(any(
+ solarish,
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+ )))]
+ pub const IPIP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_IPIP as _));
+ /// `IPPROTO_TCP`
+ pub const TCP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_TCP as _));
+ /// `IPPROTO_EGP`
+ #[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+ )))]
+ pub const EGP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_EGP as _));
+ /// `IPPROTO_PUP`
+ #[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "vita"
+ )))]
+ pub const PUP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_PUP as _));
+ /// `IPPROTO_UDP`
+ pub const UDP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_UDP as _));
+ /// `IPPROTO_IDP`
+ #[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "vita"
+ )))]
+ pub const IDP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_IDP as _));
+ /// `IPPROTO_TP`
+ #[cfg(not(any(
+ solarish,
+ windows,
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const TP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_TP as _));
+ /// `IPPROTO_DCCP`
+ #[cfg(not(any(
+ apple,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const DCCP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_DCCP as _));
+ /// `IPPROTO_IPV6`
+ pub const IPV6: Protocol = Protocol(new_raw_protocol(c::IPPROTO_IPV6 as _));
+ /// `IPPROTO_RSVP`
+ #[cfg(not(any(
+ solarish,
+ windows,
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const RSVP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_RSVP as _));
+ /// `IPPROTO_GRE`
+ #[cfg(not(any(
+ solarish,
+ windows,
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const GRE: Protocol = Protocol(new_raw_protocol(c::IPPROTO_GRE as _));
+ /// `IPPROTO_ESP`
+ #[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+ )))]
+ pub const ESP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_ESP as _));
+ /// `IPPROTO_AH`
+ #[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+ )))]
+ pub const AH: Protocol = Protocol(new_raw_protocol(c::IPPROTO_AH as _));
+ /// `IPPROTO_MTP`
+ #[cfg(not(any(
+ solarish,
+ netbsdlike,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const MTP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_MTP as _));
+ /// `IPPROTO_BEETPH`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const BEETPH: Protocol = Protocol(new_raw_protocol(c::IPPROTO_BEETPH as _));
+ /// `IPPROTO_ENCAP`
+ #[cfg(not(any(
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const ENCAP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_ENCAP as _));
+ /// `IPPROTO_PIM`
+ #[cfg(not(any(
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const PIM: Protocol = Protocol(new_raw_protocol(c::IPPROTO_PIM as _));
+ /// `IPPROTO_COMP`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const COMP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_COMP as _));
+ /// `IPPROTO_SCTP`
+ #[cfg(not(any(
+ solarish,
+ target_os = "cygwin",
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const SCTP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_SCTP as _));
+ /// `IPPROTO_UDPLITE`
+ #[cfg(not(any(
+ apple,
+ netbsdlike,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const UDPLITE: Protocol = Protocol(new_raw_protocol(c::IPPROTO_UDPLITE as _));
+ /// `IPPROTO_MPLS`
+ #[cfg(not(any(
+ apple,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "netbsd",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const MPLS: Protocol = Protocol(new_raw_protocol(c::IPPROTO_MPLS as _));
+ /// `IPPROTO_ETHERNET`
+ #[cfg(linux_kernel)]
+ pub const ETHERNET: Protocol = Protocol(new_raw_protocol(c::IPPROTO_ETHERNET as _));
+ /// `IPPROTO_RAW`
+ #[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "vita")))]
+ pub const RAW: Protocol = Protocol(new_raw_protocol(c::IPPROTO_RAW as _));
+ /// `IPPROTO_MPTCP`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ windows,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const MPTCP: Protocol = Protocol(new_raw_protocol(c::IPPROTO_MPTCP as _));
+ /// `IPPROTO_FRAGMENT`
+ #[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+ )))]
+ pub const FRAGMENT: Protocol = Protocol(new_raw_protocol(c::IPPROTO_FRAGMENT as _));
+ /// `IPPROTO_ICMPV6`
+ pub const ICMPV6: Protocol = Protocol(new_raw_protocol(c::IPPROTO_ICMPV6 as _));
+ /// `IPPROTO_MH`
+ #[cfg(not(any(
+ apple,
+ netbsdlike,
+ solarish,
+ windows,
+ target_os = "cygwin",
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "redox",
+ target_os = "vita",
+ )))]
+ pub const MH: Protocol = Protocol(new_raw_protocol(c::IPPROTO_MH as _));
+ /// `IPPROTO_ROUTING`
+ #[cfg(not(any(
+ solarish,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita"
+ )))]
+ pub const ROUTING: Protocol = Protocol(new_raw_protocol(c::IPPROTO_ROUTING as _));
+}
+
+/// `SYSPROTO_*` constants.
+pub mod sysproto {
+ #[cfg(apple)]
+ use {
+ super::{new_raw_protocol, Protocol},
+ crate::backend::c,
+ };
+
+ /// `SYSPROTO_EVENT`
+ #[cfg(apple)]
+ pub const EVENT: Protocol = Protocol(new_raw_protocol(c::SYSPROTO_EVENT as _));
+
+ /// `SYSPROTO_CONTROL`
+ #[cfg(apple)]
+ pub const CONTROL: Protocol = Protocol(new_raw_protocol(c::SYSPROTO_CONTROL as _));
+}
+
+/// `NETLINK_*` constants.
+///
+/// For `NETLINK_ROUTE`, pass `None` as the `protocol` argument.
+pub mod netlink {
+ #[cfg(linux_kernel)]
+ use {
+ super::{new_raw_protocol, Protocol},
+ crate::backend::c,
+ crate::backend::net::read_sockaddr::read_sockaddr_netlink,
+ crate::net::{
+ addr::{call_with_sockaddr, SocketAddrArg, SocketAddrLen, SocketAddrOpaque},
+ SocketAddrAny,
+ },
+ core::mem,
+ };
+
+ /// `NETLINK_UNUSED`
+ #[cfg(linux_kernel)]
+ pub const UNUSED: Protocol = Protocol(new_raw_protocol(c::NETLINK_UNUSED as _));
+ /// `NETLINK_USERSOCK`
+ #[cfg(linux_kernel)]
+ pub const USERSOCK: Protocol = Protocol(new_raw_protocol(c::NETLINK_USERSOCK as _));
+ /// `NETLINK_FIREWALL`
+ #[cfg(linux_kernel)]
+ pub const FIREWALL: Protocol = Protocol(new_raw_protocol(c::NETLINK_FIREWALL as _));
+ /// `NETLINK_SOCK_DIAG`
+ #[cfg(linux_kernel)]
+ pub const SOCK_DIAG: Protocol = Protocol(new_raw_protocol(c::NETLINK_SOCK_DIAG as _));
+ /// `NETLINK_NFLOG`
+ #[cfg(linux_kernel)]
+ pub const NFLOG: Protocol = Protocol(new_raw_protocol(c::NETLINK_NFLOG as _));
+ /// `NETLINK_XFRM`
+ #[cfg(linux_kernel)]
+ pub const XFRM: Protocol = Protocol(new_raw_protocol(c::NETLINK_XFRM as _));
+ /// `NETLINK_SELINUX`
+ #[cfg(linux_kernel)]
+ pub const SELINUX: Protocol = Protocol(new_raw_protocol(c::NETLINK_SELINUX as _));
+ /// `NETLINK_ISCSI`
+ #[cfg(linux_kernel)]
+ pub const ISCSI: Protocol = Protocol(new_raw_protocol(c::NETLINK_ISCSI as _));
+ /// `NETLINK_AUDIT`
+ #[cfg(linux_kernel)]
+ pub const AUDIT: Protocol = Protocol(new_raw_protocol(c::NETLINK_AUDIT as _));
+ /// `NETLINK_FIB_LOOKUP`
+ #[cfg(linux_kernel)]
+ pub const FIB_LOOKUP: Protocol = Protocol(new_raw_protocol(c::NETLINK_FIB_LOOKUP as _));
+ /// `NETLINK_CONNECTOR`
+ #[cfg(linux_kernel)]
+ pub const CONNECTOR: Protocol = Protocol(new_raw_protocol(c::NETLINK_CONNECTOR as _));
+ /// `NETLINK_NETFILTER`
+ #[cfg(linux_kernel)]
+ pub const NETFILTER: Protocol = Protocol(new_raw_protocol(c::NETLINK_NETFILTER as _));
+ /// `NETLINK_IP6_FW`
+ #[cfg(linux_kernel)]
+ pub const IP6_FW: Protocol = Protocol(new_raw_protocol(c::NETLINK_IP6_FW as _));
+ /// `NETLINK_DNRTMSG`
+ #[cfg(linux_kernel)]
+ pub const DNRTMSG: Protocol = Protocol(new_raw_protocol(c::NETLINK_DNRTMSG as _));
+ /// `NETLINK_KOBJECT_UEVENT`
+ #[cfg(linux_kernel)]
+ pub const KOBJECT_UEVENT: Protocol = Protocol(new_raw_protocol(c::NETLINK_KOBJECT_UEVENT as _));
+ /// `NETLINK_GENERIC`
+ // This is defined on FreeBSD too, but it has the value 0, so it doesn't
+ // fit in or `NonZeroU32`. It's unclear whether FreeBSD intends
+ // `NETLINK_GENERIC` to be the default when Linux has `NETLINK_ROUTE` as
+ // the default.
+ #[cfg(linux_kernel)]
+ pub const GENERIC: Protocol = Protocol(new_raw_protocol(c::NETLINK_GENERIC as _));
+ /// `NETLINK_SCSITRANSPORT`
+ #[cfg(linux_kernel)]
+ pub const SCSITRANSPORT: Protocol = Protocol(new_raw_protocol(c::NETLINK_SCSITRANSPORT as _));
+ /// `NETLINK_ECRYPTFS`
+ #[cfg(linux_kernel)]
+ pub const ECRYPTFS: Protocol = Protocol(new_raw_protocol(c::NETLINK_ECRYPTFS as _));
+ /// `NETLINK_RDMA`
+ #[cfg(linux_kernel)]
+ pub const RDMA: Protocol = Protocol(new_raw_protocol(c::NETLINK_RDMA as _));
+ /// `NETLINK_CRYPTO`
+ #[cfg(linux_kernel)]
+ pub const CRYPTO: Protocol = Protocol(new_raw_protocol(c::NETLINK_CRYPTO as _));
+ /// `NETLINK_INET_DIAG`
+ #[cfg(linux_kernel)]
+ pub const INET_DIAG: Protocol = Protocol(new_raw_protocol(c::NETLINK_INET_DIAG as _));
+
+ /// A Netlink socket address.
+ ///
+ /// Used to bind to a Netlink socket.
+ ///
+ /// Not ABI compatible with `struct sockaddr_nl`
+ #[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash, Debug)]
+ #[cfg(linux_kernel)]
+ pub struct SocketAddrNetlink {
+ /// Port ID
+ pid: u32,
+
+ /// Multicast groups mask
+ groups: u32,
+ }
+
+ #[cfg(linux_kernel)]
+ impl SocketAddrNetlink {
+ /// Construct a netlink address
+ #[inline]
+ pub const fn new(pid: u32, groups: u32) -> Self {
+ Self { pid, groups }
+ }
+
+ /// Return port id.
+ #[inline]
+ pub const fn pid(&self) -> u32 {
+ self.pid
+ }
+
+ /// Set port id.
+ #[inline]
+ pub fn set_pid(&mut self, pid: u32) {
+ self.pid = pid;
+ }
+
+ /// Return multicast groups mask.
+ #[inline]
+ pub const fn groups(&self) -> u32 {
+ self.groups
+ }
+
+ /// Set multicast groups mask.
+ #[inline]
+ pub fn set_groups(&mut self, groups: u32) {
+ self.groups = groups;
+ }
+ }
+
+ #[cfg(linux_kernel)]
+ #[allow(unsafe_code)]
+ // SAFETY: `with_sockaddr` calls `f` using `call_with_sockaddr`, which
+ // handles calling `f` with the needed preconditions.
+ unsafe impl SocketAddrArg for SocketAddrNetlink {
+ unsafe fn with_sockaddr<R>(
+ &self,
+ f: impl FnOnce(*const SocketAddrOpaque, SocketAddrLen) -> R,
+ ) -> R {
+ let mut addr: c::sockaddr_nl = mem::zeroed();
+ addr.nl_family = c::AF_NETLINK as _;
+ addr.nl_pid = self.pid;
+ addr.nl_groups = self.groups;
+ call_with_sockaddr(&addr, f)
+ }
+ }
+
+ #[cfg(linux_kernel)]
+ impl From<SocketAddrNetlink> for SocketAddrAny {
+ #[inline]
+ fn from(from: SocketAddrNetlink) -> Self {
+ from.as_any()
+ }
+ }
+
+ #[cfg(linux_kernel)]
+ impl TryFrom<SocketAddrAny> for SocketAddrNetlink {
+ type Error = crate::io::Errno;
+
+ fn try_from(addr: SocketAddrAny) -> Result<Self, Self::Error> {
+ read_sockaddr_netlink(&addr)
+ }
+ }
+}
+
+/// `ETH_P_*` constants.
+// These are translated into 16-bit big-endian form because that's what the
+// [`AddressFamily::PACKET`] address family [expects].
+//
+// [expects]: https://man7.org/linux/man-pages/man7/packet.7.html
+pub mod eth {
+ #[cfg(linux_kernel)]
+ use {
+ super::{new_raw_protocol, Protocol},
+ crate::backend::c,
+ };
+
+ /// `ETH_P_LOOP`
+ #[cfg(linux_kernel)]
+ pub const LOOP: Protocol = Protocol(new_raw_protocol((c::ETH_P_LOOP as u16).to_be() as u32));
+ /// `ETH_P_PUP`
+ #[cfg(linux_kernel)]
+ pub const PUP: Protocol = Protocol(new_raw_protocol((c::ETH_P_PUP as u16).to_be() as u32));
+ /// `ETH_P_PUPAT`
+ #[cfg(linux_kernel)]
+ pub const PUPAT: Protocol = Protocol(new_raw_protocol((c::ETH_P_PUPAT as u16).to_be() as u32));
+ /// `ETH_P_TSN`
+ #[cfg(linux_kernel)]
+ pub const TSN: Protocol = Protocol(new_raw_protocol((c::ETH_P_TSN as u16).to_be() as u32));
+ /// `ETH_P_ERSPAN2`
+ #[cfg(linux_kernel)]
+ pub const ERSPAN2: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_ERSPAN2 as u16).to_be() as u32));
+ /// `ETH_P_IP`
+ #[cfg(linux_kernel)]
+ pub const IP: Protocol = Protocol(new_raw_protocol((c::ETH_P_IP as u16).to_be() as u32));
+ /// `ETH_P_X25`
+ #[cfg(linux_kernel)]
+ pub const X25: Protocol = Protocol(new_raw_protocol((c::ETH_P_X25 as u16).to_be() as u32));
+ /// `ETH_P_ARP`
+ #[cfg(linux_kernel)]
+ pub const ARP: Protocol = Protocol(new_raw_protocol((c::ETH_P_ARP as u16).to_be() as u32));
+ /// `ETH_P_BPQ`
+ #[cfg(linux_kernel)]
+ pub const BPQ: Protocol = Protocol(new_raw_protocol((c::ETH_P_BPQ as u16).to_be() as u32));
+ /// `ETH_P_IEEEPUP`
+ #[cfg(linux_kernel)]
+ pub const IEEEPUP: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_IEEEPUP as u16).to_be() as u32));
+ /// `ETH_P_IEEEPUPAT`
+ #[cfg(linux_kernel)]
+ pub const IEEEPUPAT: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_IEEEPUPAT as u16).to_be() as u32));
+ /// `ETH_P_BATMAN`
+ #[cfg(linux_kernel)]
+ pub const BATMAN: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_BATMAN as u16).to_be() as u32));
+ /// `ETH_P_DEC`
+ #[cfg(linux_kernel)]
+ pub const DEC: Protocol = Protocol(new_raw_protocol((c::ETH_P_DEC as u16).to_be() as u32));
+ /// `ETH_P_DNA_DL`
+ #[cfg(linux_kernel)]
+ pub const DNA_DL: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_DNA_DL as u16).to_be() as u32));
+ /// `ETH_P_DNA_RC`
+ #[cfg(linux_kernel)]
+ pub const DNA_RC: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_DNA_RC as u16).to_be() as u32));
+ /// `ETH_P_DNA_RT`
+ #[cfg(linux_kernel)]
+ pub const DNA_RT: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_DNA_RT as u16).to_be() as u32));
+ /// `ETH_P_LAT`
+ #[cfg(linux_kernel)]
+ pub const LAT: Protocol = Protocol(new_raw_protocol((c::ETH_P_LAT as u16).to_be() as u32));
+ /// `ETH_P_DIAG`
+ #[cfg(linux_kernel)]
+ pub const DIAG: Protocol = Protocol(new_raw_protocol((c::ETH_P_DIAG as u16).to_be() as u32));
+ /// `ETH_P_CUST`
+ #[cfg(linux_kernel)]
+ pub const CUST: Protocol = Protocol(new_raw_protocol((c::ETH_P_CUST as u16).to_be() as u32));
+ /// `ETH_P_SCA`
+ #[cfg(linux_kernel)]
+ pub const SCA: Protocol = Protocol(new_raw_protocol((c::ETH_P_SCA as u16).to_be() as u32));
+ /// `ETH_P_TEB`
+ #[cfg(linux_kernel)]
+ pub const TEB: Protocol = Protocol(new_raw_protocol((c::ETH_P_TEB as u16).to_be() as u32));
+ /// `ETH_P_RARP`
+ #[cfg(linux_kernel)]
+ pub const RARP: Protocol = Protocol(new_raw_protocol((c::ETH_P_RARP as u16).to_be() as u32));
+ /// `ETH_P_ATALK`
+ #[cfg(linux_kernel)]
+ pub const ATALK: Protocol = Protocol(new_raw_protocol((c::ETH_P_ATALK as u16).to_be() as u32));
+ /// `ETH_P_AARP`
+ #[cfg(linux_kernel)]
+ pub const AARP: Protocol = Protocol(new_raw_protocol((c::ETH_P_AARP as u16).to_be() as u32));
+ /// `ETH_P_8021Q`
+ #[cfg(linux_kernel)]
+ pub const P_8021Q: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_8021Q as u16).to_be() as u32));
+ /// `ETH_P_ERSPAN`
+ #[cfg(linux_kernel)]
+ pub const ERSPAN: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_ERSPAN as u16).to_be() as u32));
+ /// `ETH_P_IPX`
+ #[cfg(linux_kernel)]
+ pub const IPX: Protocol = Protocol(new_raw_protocol((c::ETH_P_IPX as u16).to_be() as u32));
+ /// `ETH_P_IPV6`
+ #[cfg(linux_kernel)]
+ pub const IPV6: Protocol = Protocol(new_raw_protocol((c::ETH_P_IPV6 as u16).to_be() as u32));
+ /// `ETH_P_PAUSE`
+ #[cfg(linux_kernel)]
+ pub const PAUSE: Protocol = Protocol(new_raw_protocol((c::ETH_P_PAUSE as u16).to_be() as u32));
+ /// `ETH_P_SLOW`
+ #[cfg(linux_kernel)]
+ pub const SLOW: Protocol = Protocol(new_raw_protocol((c::ETH_P_SLOW as u16).to_be() as u32));
+ /// `ETH_P_WCCP`
+ #[cfg(linux_kernel)]
+ pub const WCCP: Protocol = Protocol(new_raw_protocol((c::ETH_P_WCCP as u16).to_be() as u32));
+ /// `ETH_P_MPLS_UC`
+ #[cfg(linux_kernel)]
+ pub const MPLS_UC: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_MPLS_UC as u16).to_be() as u32));
+ /// `ETH_P_MPLS_MC`
+ #[cfg(linux_kernel)]
+ pub const MPLS_MC: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_MPLS_MC as u16).to_be() as u32));
+ /// `ETH_P_ATMMPOA`
+ #[cfg(linux_kernel)]
+ pub const ATMMPOA: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_ATMMPOA as u16).to_be() as u32));
+ /// `ETH_P_PPP_DISC`
+ #[cfg(linux_kernel)]
+ pub const PPP_DISC: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_PPP_DISC as u16).to_be() as u32));
+ /// `ETH_P_PPP_SES`
+ #[cfg(linux_kernel)]
+ pub const PPP_SES: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_PPP_SES as u16).to_be() as u32));
+ /// `ETH_P_LINK_CTL`
+ #[cfg(linux_kernel)]
+ pub const LINK_CTL: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_LINK_CTL as u16).to_be() as u32));
+ /// `ETH_P_ATMFATE`
+ #[cfg(linux_kernel)]
+ pub const ATMFATE: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_ATMFATE as u16).to_be() as u32));
+ /// `ETH_P_PAE`
+ #[cfg(linux_kernel)]
+ pub const PAE: Protocol = Protocol(new_raw_protocol((c::ETH_P_PAE as u16).to_be() as u32));
+ /// `ETH_P_PROFINET`
+ #[cfg(linux_kernel)]
+ pub const PROFINET: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_PROFINET as u16).to_be() as u32));
+ /// `ETH_P_REALTEK`
+ #[cfg(linux_kernel)]
+ pub const REALTEK: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_REALTEK as u16).to_be() as u32));
+ /// `ETH_P_AOE`
+ #[cfg(linux_kernel)]
+ pub const AOE: Protocol = Protocol(new_raw_protocol((c::ETH_P_AOE as u16).to_be() as u32));
+ /// `ETH_P_ETHERCAT`
+ #[cfg(linux_kernel)]
+ pub const ETHERCAT: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_ETHERCAT as u16).to_be() as u32));
+ /// `ETH_P_8021AD`
+ #[cfg(linux_kernel)]
+ pub const P_8021AD: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_8021AD as u16).to_be() as u32));
+ /// `ETH_P_802_EX1`
+ #[cfg(linux_kernel)]
+ pub const P_802_EX1: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_802_EX1 as u16).to_be() as u32));
+ /// `ETH_P_PREAUTH`
+ #[cfg(linux_kernel)]
+ pub const PREAUTH: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_PREAUTH as u16).to_be() as u32));
+ /// `ETH_P_TIPC`
+ #[cfg(linux_kernel)]
+ pub const TIPC: Protocol = Protocol(new_raw_protocol((c::ETH_P_TIPC as u16).to_be() as u32));
+ /// `ETH_P_LLDP`
+ #[cfg(linux_kernel)]
+ pub const LLDP: Protocol = Protocol(new_raw_protocol((c::ETH_P_LLDP as u16).to_be() as u32));
+ /// `ETH_P_MRP`
+ #[cfg(linux_kernel)]
+ pub const MRP: Protocol = Protocol(new_raw_protocol((c::ETH_P_MRP as u16).to_be() as u32));
+ /// `ETH_P_MACSEC`
+ #[cfg(linux_kernel)]
+ pub const MACSEC: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_MACSEC as u16).to_be() as u32));
+ /// `ETH_P_8021AH`
+ #[cfg(linux_kernel)]
+ pub const P_8021AH: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_8021AH as u16).to_be() as u32));
+ /// `ETH_P_MVRP`
+ #[cfg(linux_kernel)]
+ pub const MVRP: Protocol = Protocol(new_raw_protocol((c::ETH_P_MVRP as u16).to_be() as u32));
+ /// `ETH_P_1588`
+ #[cfg(linux_kernel)]
+ pub const P_1588: Protocol = Protocol(new_raw_protocol((c::ETH_P_1588 as u16).to_be() as u32));
+ /// `ETH_P_NCSI`
+ #[cfg(linux_kernel)]
+ pub const NCSI: Protocol = Protocol(new_raw_protocol((c::ETH_P_NCSI as u16).to_be() as u32));
+ /// `ETH_P_PRP`
+ #[cfg(linux_kernel)]
+ pub const PRP: Protocol = Protocol(new_raw_protocol((c::ETH_P_PRP as u16).to_be() as u32));
+ /// `ETH_P_CFM`
+ #[cfg(linux_kernel)]
+ pub const CFM: Protocol = Protocol(new_raw_protocol((c::ETH_P_CFM as u16).to_be() as u32));
+ /// `ETH_P_FCOE`
+ #[cfg(linux_kernel)]
+ pub const FCOE: Protocol = Protocol(new_raw_protocol((c::ETH_P_FCOE as u16).to_be() as u32));
+ /// `ETH_P_IBOE`
+ #[cfg(linux_kernel)]
+ pub const IBOE: Protocol = Protocol(new_raw_protocol((c::ETH_P_IBOE as u16).to_be() as u32));
+ /// `ETH_P_TDLS`
+ #[cfg(linux_kernel)]
+ pub const TDLS: Protocol = Protocol(new_raw_protocol((c::ETH_P_TDLS as u16).to_be() as u32));
+ /// `ETH_P_FIP`
+ #[cfg(linux_kernel)]
+ pub const FIP: Protocol = Protocol(new_raw_protocol((c::ETH_P_FIP as u16).to_be() as u32));
+ /// `ETH_P_80221`
+ #[cfg(linux_kernel)]
+ pub const P_80221: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_80221 as u16).to_be() as u32));
+ /// `ETH_P_HSR`
+ #[cfg(linux_kernel)]
+ pub const HSR: Protocol = Protocol(new_raw_protocol((c::ETH_P_HSR as u16).to_be() as u32));
+ /// `ETH_P_NSH`
+ #[cfg(linux_kernel)]
+ pub const NSH: Protocol = Protocol(new_raw_protocol((c::ETH_P_NSH as u16).to_be() as u32));
+ /// `ETH_P_LOOPBACK`
+ #[cfg(linux_kernel)]
+ pub const LOOPBACK: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_LOOPBACK as u16).to_be() as u32));
+ /// `ETH_P_QINQ1`
+ #[cfg(linux_kernel)]
+ pub const QINQ1: Protocol = Protocol(new_raw_protocol((c::ETH_P_QINQ1 as u16).to_be() as u32));
+ /// `ETH_P_QINQ2`
+ #[cfg(linux_kernel)]
+ pub const QINQ2: Protocol = Protocol(new_raw_protocol((c::ETH_P_QINQ2 as u16).to_be() as u32));
+ /// `ETH_P_QINQ3`
+ #[cfg(linux_kernel)]
+ pub const QINQ3: Protocol = Protocol(new_raw_protocol((c::ETH_P_QINQ3 as u16).to_be() as u32));
+ /// `ETH_P_EDSA`
+ #[cfg(linux_kernel)]
+ pub const EDSA: Protocol = Protocol(new_raw_protocol((c::ETH_P_EDSA as u16).to_be() as u32));
+ /// `ETH_P_DSA_8021Q`
+ #[cfg(linux_kernel)]
+ pub const DSA_8021Q: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_DSA_8021Q as u16).to_be() as u32));
+ /// `ETH_P_DSA_A5PSW`
+ #[cfg(linux_kernel)]
+ pub const DSA_A5PSW: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_DSA_A5PSW as u16).to_be() as u32));
+ /// `ETH_P_IFE`
+ #[cfg(linux_kernel)]
+ pub const IFE: Protocol = Protocol(new_raw_protocol((c::ETH_P_IFE as u16).to_be() as u32));
+ /// `ETH_P_AF_IUCV`
+ #[cfg(linux_kernel)]
+ pub const AF_IUCV: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_AF_IUCV as u16).to_be() as u32));
+ /// `ETH_P_802_3_MIN`
+ #[cfg(linux_kernel)]
+ pub const P_802_3_MIN: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_802_3_MIN as u16).to_be() as u32));
+ /// `ETH_P_802_3`
+ #[cfg(linux_kernel)]
+ pub const P_802_3: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_802_3 as u16).to_be() as u32));
+ /// `ETH_P_AX25`
+ #[cfg(linux_kernel)]
+ pub const AX25: Protocol = Protocol(new_raw_protocol((c::ETH_P_AX25 as u16).to_be() as u32));
+ /// `ETH_P_ALL`
+ #[cfg(linux_kernel)]
+ pub const ALL: Protocol = Protocol(new_raw_protocol((c::ETH_P_ALL as u16).to_be() as u32));
+ /// `ETH_P_802_2`
+ #[cfg(linux_kernel)]
+ pub const P_802_2: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_802_2 as u16).to_be() as u32));
+ /// `ETH_P_SNAP`
+ #[cfg(linux_kernel)]
+ pub const SNAP: Protocol = Protocol(new_raw_protocol((c::ETH_P_SNAP as u16).to_be() as u32));
+ /// `ETH_P_DDCMP`
+ #[cfg(linux_kernel)]
+ pub const DDCMP: Protocol = Protocol(new_raw_protocol((c::ETH_P_DDCMP as u16).to_be() as u32));
+ /// `ETH_P_WAN_PPP`
+ #[cfg(linux_kernel)]
+ pub const WAN_PPP: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_WAN_PPP as u16).to_be() as u32));
+ /// `ETH_P_PPP_MP`
+ #[cfg(linux_kernel)]
+ pub const PPP_MP: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_PPP_MP as u16).to_be() as u32));
+ /// `ETH_P_LOCALTALK`
+ #[cfg(linux_kernel)]
+ pub const LOCALTALK: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_LOCALTALK as u16).to_be() as u32));
+ /// `ETH_P_CAN`
+ #[cfg(linux_kernel)]
+ pub const CAN: Protocol = Protocol(new_raw_protocol((c::ETH_P_CAN as u16).to_be() as u32));
+ /// `ETH_P_CANFD`
+ #[cfg(linux_kernel)]
+ pub const CANFD: Protocol = Protocol(new_raw_protocol((c::ETH_P_CANFD as u16).to_be() as u32));
+ /// `ETH_P_CANXL`
+ #[cfg(linux_kernel)]
+ pub const CANXL: Protocol = Protocol(new_raw_protocol((c::ETH_P_CANXL as u16).to_be() as u32));
+ /// `ETH_P_PPPTALK`
+ #[cfg(linux_kernel)]
+ pub const PPPTALK: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_PPPTALK as u16).to_be() as u32));
+ /// `ETH_P_TR_802_2`
+ #[cfg(linux_kernel)]
+ pub const TR_802_2: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_TR_802_2 as u16).to_be() as u32));
+ /// `ETH_P_MOBITEX`
+ #[cfg(linux_kernel)]
+ pub const MOBITEX: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_MOBITEX as u16).to_be() as u32));
+ /// `ETH_P_CONTROL`
+ #[cfg(linux_kernel)]
+ pub const CONTROL: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_CONTROL as u16).to_be() as u32));
+ /// `ETH_P_IRDA`
+ #[cfg(linux_kernel)]
+ pub const IRDA: Protocol = Protocol(new_raw_protocol((c::ETH_P_IRDA as u16).to_be() as u32));
+ /// `ETH_P_ECONET`
+ #[cfg(linux_kernel)]
+ pub const ECONET: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_ECONET as u16).to_be() as u32));
+ /// `ETH_P_HDLC`
+ #[cfg(linux_kernel)]
+ pub const HDLC: Protocol = Protocol(new_raw_protocol((c::ETH_P_HDLC as u16).to_be() as u32));
+ /// `ETH_P_ARCNET`
+ #[cfg(linux_kernel)]
+ pub const ARCNET: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_ARCNET as u16).to_be() as u32));
+ /// `ETH_P_DSA`
+ #[cfg(linux_kernel)]
+ pub const DSA: Protocol = Protocol(new_raw_protocol((c::ETH_P_DSA as u16).to_be() as u32));
+ /// `ETH_P_TRAILER`
+ #[cfg(linux_kernel)]
+ pub const TRAILER: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_TRAILER as u16).to_be() as u32));
+ /// `ETH_P_PHONET`
+ #[cfg(linux_kernel)]
+ pub const PHONET: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_PHONET as u16).to_be() as u32));
+ /// `ETH_P_IEEE802154`
+ #[cfg(linux_kernel)]
+ pub const IEEE802154: Protocol =
+ Protocol(new_raw_protocol((c::ETH_P_IEEE802154 as u16).to_be() as u32));
+ /// `ETH_P_CAIF`
+ #[cfg(linux_kernel)]
+ pub const CAIF: Protocol = Protocol(new_raw_protocol((c::ETH_P_CAIF as u16).to_be() as u32));
+ /// `ETH_P_XDSA`
+ #[cfg(linux_kernel)]
+ pub const XDSA: Protocol = Protocol(new_raw_protocol((c::ETH_P_XDSA as u16).to_be() as u32));
+ /// `ETH_P_MAP`
+ #[cfg(linux_kernel)]
+ pub const MAP: Protocol = Protocol(new_raw_protocol((c::ETH_P_MAP as u16).to_be() as u32));
+ /// `ETH_P_MCTP`
+ #[cfg(linux_kernel)]
+ pub const MCTP: Protocol = Protocol(new_raw_protocol((c::ETH_P_MCTP as u16).to_be() as u32));
+}
+
+#[rustfmt::skip]
+impl Protocol {
+ /// Constructs a `Protocol` from a raw integer.
+ #[inline]
+ pub const fn from_raw(raw: RawProtocol) -> Self {
+ Self(raw)
+ }
+
+ /// Returns the raw integer for this `Protocol`.
+ #[inline]
+ pub const fn as_raw(self) -> RawProtocol {
+ self.0
+ }
+}
+
+/// `SHUT_*` constants for use with [`shutdown`].
+///
+/// [`shutdown`]: crate::net::shutdown
+#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
+#[repr(u32)]
+pub enum Shutdown {
+ /// `SHUT_RD`—Disable further read operations.
+ Read = c::SHUT_RD as _,
+ /// `SHUT_WR`—Disable further write operations.
+ Write = c::SHUT_WR as _,
+ /// `SHUT_RDWR`—Disable further read and write operations.
+ Both = c::SHUT_RDWR as _,
+}
+
+bitflags! {
+ /// `SOCK_*` constants for use with [`socket_with`], [`accept_with`] and
+ /// [`acceptfrom_with`].
+ ///
+ /// [`socket_with`]: crate::net::socket_with
+ /// [`accept_with`]: crate::net::accept_with
+ /// [`acceptfrom_with`]: crate::net::acceptfrom_with
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct SocketFlags: ffi::c_uint {
+ /// `SOCK_NONBLOCK`
+ #[cfg(not(any(
+ apple,
+ windows,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto",
+ target_os = "vita",
+ )))]
+ const NONBLOCK = bitcast!(c::SOCK_NONBLOCK);
+
+ /// `SOCK_CLOEXEC`
+ #[cfg(not(any(apple, windows, target_os = "aix", target_os = "haiku")))]
+ const CLOEXEC = bitcast!(c::SOCK_CLOEXEC);
+
+ // This deliberately lacks a `const _ = !0`, so that users can use
+ // `from_bits_truncate` to extract the `SocketFlags` from a flags
+ // value that also includes a `SocketType`.
+ }
+}
+
+/// `AF_XDP` related types and constants.
+#[cfg(target_os = "linux")]
+pub mod xdp {
+ use crate::backend::net::read_sockaddr::read_sockaddr_xdp;
+ use crate::fd::{AsRawFd, BorrowedFd};
+ use crate::net::addr::{call_with_sockaddr, SocketAddrArg, SocketAddrLen, SocketAddrOpaque};
+ use crate::net::SocketAddrAny;
+
+ use super::{bitflags, c};
+
+ bitflags! {
+ /// `XDP_OPTIONS_*` constants returned by [`get_xdp_options`].
+ ///
+ /// [`get_xdp_options`]: crate::net::sockopt::get_xdp_options
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct XdpOptionsFlags: u32 {
+ /// `XDP_OPTIONS_ZEROCOPY`
+ const XDP_OPTIONS_ZEROCOPY = bitcast!(c::XDP_OPTIONS_ZEROCOPY);
+ }
+ }
+
+ // Constant needs to be cast because bindgen does generate a `u32` but the
+ // struct expects a `u16`.
+ // <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/if_xdp.h?h=v6.13#n15>
+ bitflags! {
+ /// `XDP_*` constants for use in [`SocketAddrXdp`].
+ #[repr(transparent)]
+ #[derive(Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash, Debug)]
+ pub struct SocketAddrXdpFlags: u16 {
+ /// `XDP_SHARED_UMEM`
+ const XDP_SHARED_UMEM = bitcast!(c::XDP_SHARED_UMEM as u16);
+ /// `XDP_COPY`
+ const XDP_COPY = bitcast!(c::XDP_COPY as u16);
+ /// `XDP_COPY`
+ const XDP_ZEROCOPY = bitcast!(c::XDP_ZEROCOPY as u16);
+ /// `XDP_USE_NEED_WAKEUP`
+ const XDP_USE_NEED_WAKEUP = bitcast!(c::XDP_USE_NEED_WAKEUP as u16);
+ // requires kernel 6.6
+ /// `XDP_USE_SG`
+ const XDP_USE_SG = bitcast!(c::XDP_USE_SG as u16);
+ }
+ }
+
+ bitflags! {
+ /// `XDP_RING_*` constants for use in fill and/or Tx ring.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct XdpRingFlags: u32 {
+ /// `XDP_RING_NEED_WAKEUP`
+ const XDP_RING_NEED_WAKEUP = bitcast!(c::XDP_RING_NEED_WAKEUP);
+ }
+ }
+
+ bitflags! {
+ /// `XDP_UMEM_*` constants for use in [`XdpUmemReg`].
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct XdpUmemRegFlags: u32 {
+ /// `XDP_UMEM_UNALIGNED_CHUNK_FLAG`
+ const XDP_UMEM_UNALIGNED_CHUNK_FLAG = bitcast!(c::XDP_UMEM_UNALIGNED_CHUNK_FLAG);
+ }
+ }
+
+ /// A XDP socket address.
+ ///
+ /// Used to bind to XDP socket.
+ ///
+ /// Not ABI compatible with `struct sockaddr_xdp`.
+ ///
+ /// To add a shared UMEM file descriptor, use
+ /// [`SocketAddrXdpWithSharedUmem`].
+ // <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/if_xdp.h?h=v6.13#n48>
+ #[derive(Clone, PartialEq, PartialOrd, Eq, Ord, Hash, Debug)]
+ pub struct SocketAddrXdp {
+ /// Flags.
+ sxdp_flags: SocketAddrXdpFlags,
+ /// Interface index.
+ sxdp_ifindex: u32,
+ /// Queue ID.
+ sxdp_queue_id: u32,
+ }
+
+ impl SocketAddrXdp {
+ /// Construct a new XDP address.
+ #[inline]
+ pub const fn new(flags: SocketAddrXdpFlags, interface_index: u32, queue_id: u32) -> Self {
+ Self {
+ sxdp_flags: flags,
+ sxdp_ifindex: interface_index,
+ sxdp_queue_id: queue_id,
+ }
+ }
+
+ /// Return flags.
+ #[inline]
+ pub fn flags(&self) -> SocketAddrXdpFlags {
+ self.sxdp_flags
+ }
+
+ /// Set flags.
+ #[inline]
+ pub fn set_flags(&mut self, flags: SocketAddrXdpFlags) {
+ self.sxdp_flags = flags;
+ }
+
+ /// Return interface index.
+ #[inline]
+ pub fn interface_index(&self) -> u32 {
+ self.sxdp_ifindex
+ }
+
+ /// Set interface index.
+ #[inline]
+ pub fn set_interface_index(&mut self, interface_index: u32) {
+ self.sxdp_ifindex = interface_index;
+ }
+
+ /// Return queue ID.
+ #[inline]
+ pub fn queue_id(&self) -> u32 {
+ self.sxdp_queue_id
+ }
+
+ /// Set queue ID.
+ #[inline]
+ pub fn set_queue_id(&mut self, queue_id: u32) {
+ self.sxdp_queue_id = queue_id;
+ }
+ }
+
+ #[allow(unsafe_code)]
+ // SAFETY: `with_sockaddr` calls `f` using `call_with_sockaddr`, which
+ // handles calling `f` with the needed preconditions.
+ unsafe impl SocketAddrArg for SocketAddrXdp {
+ unsafe fn with_sockaddr<R>(
+ &self,
+ f: impl FnOnce(*const SocketAddrOpaque, SocketAddrLen) -> R,
+ ) -> R {
+ let addr = c::sockaddr_xdp {
+ sxdp_family: c::AF_XDP as _,
+ sxdp_flags: self.flags().bits(),
+ sxdp_ifindex: self.interface_index(),
+ sxdp_queue_id: self.queue_id(),
+ sxdp_shared_umem_fd: !0,
+ };
+
+ call_with_sockaddr(&addr, f)
+ }
+ }
+
+ impl From<SocketAddrXdp> for SocketAddrAny {
+ #[inline]
+ fn from(from: SocketAddrXdp) -> Self {
+ from.as_any()
+ }
+ }
+
+ impl TryFrom<SocketAddrAny> for SocketAddrXdp {
+ type Error = crate::io::Errno;
+
+ fn try_from(addr: SocketAddrAny) -> Result<Self, Self::Error> {
+ read_sockaddr_xdp(&addr)
+ }
+ }
+
+ /// An XDP socket address with a shared UMEM file descriptor.
+ ///
+ /// This implements `SocketAddrArg` so that it can be passed to [`bind`].
+ ///
+ /// [`bind`]: crate::net::bind
+ #[derive(Debug)]
+ pub struct SocketAddrXdpWithSharedUmem<'a> {
+ /// XDP address.
+ pub addr: SocketAddrXdp,
+ /// Shared UMEM file descriptor.
+ pub shared_umem_fd: BorrowedFd<'a>,
+ }
+
+ #[allow(unsafe_code)]
+ // SAFETY: `with_sockaddr` calls `f` using `call_with_sockaddr`, which
+ // handles calling `f` with the needed preconditions.
+ unsafe impl<'a> SocketAddrArg for SocketAddrXdpWithSharedUmem<'a> {
+ unsafe fn with_sockaddr<R>(
+ &self,
+ f: impl FnOnce(*const SocketAddrOpaque, SocketAddrLen) -> R,
+ ) -> R {
+ let addr = c::sockaddr_xdp {
+ sxdp_family: c::AF_XDP as _,
+ sxdp_flags: self.addr.flags().bits(),
+ sxdp_ifindex: self.addr.interface_index(),
+ sxdp_queue_id: self.addr.queue_id(),
+ sxdp_shared_umem_fd: self.shared_umem_fd.as_raw_fd() as u32,
+ };
+
+ call_with_sockaddr(&addr, f)
+ }
+ }
+
+ /// XDP ring offset.
+ ///
+ /// Used to mmap rings from kernel.
+ ///
+ /// Not ABI compatible with `struct xdp_ring_offset`.
+ // <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/if_xdp.h?h=v6.13#n59>
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct XdpRingOffset {
+ /// Producer offset.
+ pub producer: u64,
+ /// Consumer offset.
+ pub consumer: u64,
+ /// Descriptors offset.
+ pub desc: u64,
+ /// Flags offset.
+ ///
+ /// Is `None` if the kernel version (<5.4) does not yet support flags.
+ pub flags: Option<u64>,
+ }
+
+ /// XDP mmap offsets.
+ ///
+ /// Not ABI compatible with `struct xdp_mmap_offsets`
+ // <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/if_xdp.h?h=v6.13#n66>
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct XdpMmapOffsets {
+ /// Rx ring offsets.
+ pub rx: XdpRingOffset,
+ /// Tx ring offsets.
+ pub tx: XdpRingOffset,
+ /// Fill ring offsets.
+ pub fr: XdpRingOffset,
+ /// Completion ring offsets.
+ pub cr: XdpRingOffset,
+ }
+
+ /// XDP umem registration.
+ ///
+ /// `struct xdp_umem_reg`
+ // <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/if_xdp.h?h=v6.13#n79>
+ #[repr(C)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct XdpUmemReg {
+ /// Start address of UMEM.
+ pub addr: u64,
+ /// Umem length in bytes.
+ pub len: u64,
+ /// Chunk size in bytes.
+ pub chunk_size: u32,
+ /// Headroom in bytes.
+ pub headroom: u32,
+ /// Flags.
+ ///
+ /// Requires kernel version 5.4.
+ pub flags: XdpUmemRegFlags,
+ /// `AF_XDP` TX metadata length
+ ///
+ /// Requires kernel version 6.8.
+ pub tx_metadata_len: u32,
+ }
+
+ /// XDP statistics.
+ ///
+ /// Not ABI compatible with `struct xdp_statistics`
+ // <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/if_xdp.h?h=v6.13#n92>
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct XdpStatistics {
+ /// Rx dropped.
+ pub rx_dropped: u64,
+ /// Rx invalid descriptors.
+ pub rx_invalid_descs: u64,
+ /// Tx invalid descriptors.
+ pub tx_invalid_descs: u64,
+ /// Rx ring full.
+ ///
+ /// Is `None` if the kernel version (<5.9) does not yet support flags.
+ pub rx_ring_full: Option<u64>,
+ /// Rx fill ring empty descriptors.
+ ///
+ /// Is `None` if the kernel version (<5.9) does not yet support flags.
+ pub rx_fill_ring_empty_descs: Option<u64>,
+ /// Tx ring empty descriptors.
+ ///
+ /// Is `None` if the kernel version (<5.9) does not yet support flags.
+ pub tx_ring_empty_descs: Option<u64>,
+ }
+
+ /// XDP options.
+ ///
+ /// Requires kernel version 5.3.
+ /// `struct xdp_options`
+ // <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/if_xdp.h?h=v6.13#n101>
+ #[repr(C)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct XdpOptions {
+ /// Flags.
+ pub flags: XdpOptionsFlags,
+ }
+
+ /// XDP rx/tx frame descriptor.
+ ///
+ /// `struct xdp_desc`
+ // <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/if_xdp.h?h=v6.13#n154>
+ #[repr(C)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct XdpDesc {
+ /// Offset from the start of the UMEM.
+ pub addr: u64,
+ /// Length of packet in bytes.
+ pub len: u32,
+ /// Options.
+ pub options: XdpDescOptions,
+ }
+
+ #[cfg(target_os = "linux")]
+ bitflags! {
+ /// `XDP_*` constants for use in [`XdpDesc`].
+ ///
+ /// Requires kernel version 6.6.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct XdpDescOptions: u32 {
+ /// `XDP_PKT_CONTD`
+ const XDP_PKT_CONTD = bitcast!(c::XDP_PKT_CONTD);
+ }
+ }
+
+ /// Offset for mmapping rx ring.
+ pub const XDP_PGOFF_RX_RING: u64 = c::XDP_PGOFF_RX_RING as u64;
+ /// Offset for mmapping tx ring.
+ pub const XDP_PGOFF_TX_RING: u64 = c::XDP_PGOFF_TX_RING as u64;
+ /// Offset for mmapping fill ring.
+ pub const XDP_UMEM_PGOFF_FILL_RING: u64 = c::XDP_UMEM_PGOFF_FILL_RING;
+ /// Offset for mmapping completion ring.
+ pub const XDP_UMEM_PGOFF_COMPLETION_RING: u64 = c::XDP_UMEM_PGOFF_COMPLETION_RING;
+
+ /// Offset used to shift the [`XdpDesc`] addr to the right to extract the
+ /// address offset in unaligned mode.
+ pub const XSK_UNALIGNED_BUF_OFFSET_SHIFT: u64 = c::XSK_UNALIGNED_BUF_OFFSET_SHIFT as u64;
+ /// Mask used to binary `and` the [`XdpDesc`] addr to extract the address
+ /// without the offset carried in the upper 16 bits of the address in
+ /// unaligned mode.
+ pub const XSK_UNALIGNED_BUF_ADDR_MASK: u64 = c::XSK_UNALIGNED_BUF_ADDR_MASK;
+}
+
+/// UNIX credentials of socket peer, for use with [`get_socket_peercred`]
+/// [`SendAncillaryMessage::ScmCredentials`] and
+/// [`RecvAncillaryMessage::ScmCredentials`].
+///
+/// [`get_socket_peercred`]: crate::net::sockopt::socket_peercred
+/// [`SendAncillaryMessage::ScmCredentials`]: crate::net::SendAncillaryMessage::ScmCredentials
+/// [`RecvAncillaryMessage::ScmCredentials`]: crate::net::RecvAncillaryMessage::ScmCredentials
+#[cfg(linux_kernel)]
+#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
+#[repr(C)]
+pub struct UCred {
+ /// Process ID of peer
+ pub pid: crate::pid::Pid,
+ /// User ID of peer
+ pub uid: crate::ugid::Uid,
+ /// Group ID of peer
+ pub gid: crate::ugid::Gid,
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_sizes() {
+ #[cfg(target_os = "linux")]
+ use crate::backend::c;
+ use crate::ffi::c_int;
+ use crate::net::addr::SocketAddrStorage;
+ use core::mem::transmute;
+
+ // Backend code needs to cast these to `c_int` so make sure that cast isn't
+ // lossy.
+ assert_eq_size!(RawProtocol, c_int);
+ assert_eq_size!(Protocol, c_int);
+ assert_eq_size!(Option<RawProtocol>, c_int);
+ assert_eq_size!(Option<Protocol>, c_int);
+ assert_eq_size!(RawSocketType, c_int);
+ assert_eq_size!(SocketType, c_int);
+ assert_eq_size!(SocketFlags, c_int);
+ assert_eq_size!(SocketAddrStorage, c::sockaddr_storage);
+
+ // Rustix doesn't depend on `Option<Protocol>` matching the ABI of a raw
+ // integer for correctness, but it should work nonetheless.
+ #[allow(unsafe_code)]
+ unsafe {
+ let t: Option<Protocol> = None;
+ assert_eq!(0_u32, transmute::<Option<Protocol>, u32>(t));
+
+ let t: Option<Protocol> = Some(Protocol::from_raw(RawProtocol::new(4567).unwrap()));
+ assert_eq!(4567_u32, transmute::<Option<Protocol>, u32>(t));
+ }
+
+ #[cfg(linux_kernel)]
+ assert_eq_size!(UCred, libc::ucred);
+
+ #[cfg(target_os = "linux")]
+ assert_eq_size!(super::xdp::XdpUmemReg, c::xdp_umem_reg);
+ #[cfg(target_os = "linux")]
+ assert_eq_size!(super::xdp::XdpOptions, c::xdp_options);
+ #[cfg(target_os = "linux")]
+ assert_eq_size!(super::xdp::XdpDesc, c::xdp_desc);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/net/wsa.rs b/vendor/rustix-1.0.8/src/net/wsa.rs
new file mode 100644
index 0000000..0ad4db5
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/net/wsa.rs
@@ -0,0 +1,49 @@
+use crate::io;
+use core::mem::MaybeUninit;
+use windows_sys::Win32::Networking::WinSock::{WSACleanup, WSAGetLastError, WSAStartup, WSADATA};
+
+/// `WSAStartup()`—Initialize process-wide Windows support for sockets.
+///
+/// On Windows, it's necessary to initialize the sockets subsystem before
+/// using sockets APIs. The function performs the necessary initialization.
+///
+/// # References
+/// - [Winsock]
+///
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsastartup
+pub fn wsa_startup() -> io::Result<WSADATA> {
+ // Request version 2.2, which has been the latest version since far older
+ // versions of Windows than we support here. For more information about
+ // the version, see [here].
+ //
+ // [here]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsastartup#remarks
+ let version = 0x202;
+ let mut data = MaybeUninit::uninit();
+ unsafe {
+ let ret = WSAStartup(version, data.as_mut_ptr());
+ if ret == 0 {
+ Ok(data.assume_init())
+ } else {
+ Err(io::Errno::from_raw_os_error(WSAGetLastError()))
+ }
+ }
+}
+
+/// `WSACleanup()`—Clean up process-wide Windows support for sockets.
+///
+/// In a program where `init` is called, if sockets are no longer necessary,
+/// this function releases associated resources.
+///
+/// # References
+/// - [Winsock]
+///
+/// [Winsock]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsacleanup
+pub fn wsa_cleanup() -> io::Result<()> {
+ unsafe {
+ if WSACleanup() == 0 {
+ Ok(())
+ } else {
+ Err(io::Errno::from_raw_os_error(WSAGetLastError()))
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/not_implemented.rs b/vendor/rustix-1.0.8/src/not_implemented.rs
new file mode 100644
index 0000000..e8b162a
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/not_implemented.rs
@@ -0,0 +1,348 @@
+//! Documentation about unimplemented functions.
+//!
+//! This module contains documentation for several functions that rustix does
+//! not implement, either because they are out of scope, or because they are
+//! could probably be implemented but are not yet.
+
+macro_rules! not_implemented {
+ ($func:ident) => {
+ /// See the [module comment](self).
+ pub fn $func() {
+ unimplemented!()
+ }
+ };
+}
+
+/// Memory-allocation functions are out of scope for rustix.
+///
+/// It is possible to implement `malloc`, `free`, and similar functions in
+/// Rust, however rustix itself is focused on syscall-like functions. This
+/// module contains an incomplete list of such functions.
+///
+/// There are several allocator implementations for Rust; one of them is
+/// [dlmalloc]. For a rustix-based implementation, see [rustix-dlmalloc].
+/// Another allocator implementation is [talc].
+///
+/// [dlmalloc]: https://crates.io/crates/dlmalloc
+/// [talc]: https://crates.io/crates/talc
+/// [rustix-dlmalloc]: https://crates.io/crates/rustix-dlmalloc
+pub mod memory_allocation {
+ not_implemented!(malloc);
+ not_implemented!(realloc);
+ not_implemented!(calloc);
+ not_implemented!(free);
+ not_implemented!(posix_memalign);
+ not_implemented!(aligned_alloc);
+ not_implemented!(malloc_usable_size);
+}
+
+/// Functions which need access to libc internals are out of scope for rustix.
+///
+/// Most Rust programs have a libc present, and when a libc is present, it
+/// expects to be the only thing in the process that can do certain operations.
+/// For example, there can be only one `atexit` list in a process, only one
+/// `pthread_atfork` list in a process, only one implementation of pthreads in
+/// a process, and so on, and libc expects to own the one of each of those
+/// things. And libc implementations may expect to be involved in signal
+/// handling. So, these functions are believed to be out of scope for rustix.
+/// This module contains an incomplete list of such functions.
+///
+/// It would be possible to make a rust library which provides safe or
+/// ergonomic wrappers around these libc functions, however that is out of
+/// scope for rustix itself.
+///
+/// If you would like to write a Rust program which does not use a libc, and
+/// which does provide APIs for some of these functions, [Eyra] and [origin]
+/// are two libraries which may be useful, and which provide public interfaces
+/// for some of this functionality.
+///
+/// If you are otherwise writing Rust code which you know will not share a
+/// process with a libc, perhaps because you are writing a libc or similar
+/// yourself, rustix's codebase does include experimental implementations of
+/// the primitives needed to implement most of these functions.
+///
+/// [Eyra]: https://github.com/sunfishcode/eyra?tab=readme-ov-file#eyra
+/// [origin]: https://github.com/sunfishcode/origin?tab=readme-ov-file#origin
+pub mod libc_internals {
+ not_implemented!(exit);
+ not_implemented!(fork);
+ not_implemented!(clone);
+ not_implemented!(clone3);
+ not_implemented!(brk);
+ not_implemented!(sigaction);
+ not_implemented!(sigaltstack);
+ not_implemented!(sigprocmask);
+ not_implemented!(sigwait);
+ not_implemented!(sigwaitinfo);
+ not_implemented!(sigtimedwait);
+ not_implemented!(set_thread_area);
+ not_implemented!(set_tid_address);
+ not_implemented!(tkill);
+ not_implemented!(sched_setscheduler);
+ not_implemented!(rseq);
+ not_implemented!(setuid);
+ not_implemented!(setgid);
+ not_implemented!(seteuid);
+ not_implemented!(setegid);
+ not_implemented!(setreuid);
+ not_implemented!(setregid);
+ not_implemented!(setresuid);
+ not_implemented!(setresgid);
+ not_implemented!(setgroups);
+
+ not_implemented!(pthread_atfork);
+ not_implemented!(pthread_attr_destroy);
+ not_implemented!(pthread_attr_getaffinity_np);
+ not_implemented!(pthread_attr_getdetachstate);
+ not_implemented!(pthread_attr_getguardsize);
+ not_implemented!(pthread_attr_getinheritsched);
+ not_implemented!(pthread_attr_getschedparam);
+ not_implemented!(pthread_attr_getschedpolicy);
+ not_implemented!(pthread_attr_getscope);
+ not_implemented!(pthread_attr_getsigmask_np);
+ not_implemented!(pthread_attr_getstack);
+ not_implemented!(pthread_attr_getstackaddr);
+ not_implemented!(pthread_attr_getstacksize);
+ not_implemented!(pthread_attr_init);
+ not_implemented!(pthread_attr_setaffinity_np);
+ not_implemented!(pthread_attr_setdetachstate);
+ not_implemented!(pthread_attr_setguardsize);
+ not_implemented!(pthread_attr_setinheritsched);
+ not_implemented!(pthread_attr_setschedparam);
+ not_implemented!(pthread_attr_setschedpolicy);
+ not_implemented!(pthread_attr_setscope);
+ not_implemented!(pthread_attr_setsigmask_np);
+ not_implemented!(pthread_attr_setstack);
+ not_implemented!(pthread_attr_setstackaddr);
+ not_implemented!(pthread_attr_setstacksize);
+ not_implemented!(pthread_barrierattr_destroy);
+ not_implemented!(pthread_barrierattr_getpshared);
+ not_implemented!(pthread_barrierattr_init);
+ not_implemented!(pthread_barrierattr_setpshared);
+ not_implemented!(pthread_barrier_destroy);
+ not_implemented!(pthread_barrier_wait);
+ not_implemented!(pthread_cancel);
+ not_implemented!(pthread_cleanup_pop);
+ not_implemented!(pthread_cleanup_pop_restore_np);
+ not_implemented!(pthread_cleanup_push);
+ not_implemented!(pthread_cleanup_push_defer_np);
+ not_implemented!(pthread_condattr_destroy);
+ not_implemented!(pthread_condattr_getclock);
+ not_implemented!(pthread_condattr_getpshared);
+ not_implemented!(pthread_condattr_init);
+ not_implemented!(pthread_condattr_setclock);
+ not_implemented!(pthread_condattr_setpshared);
+ not_implemented!(pthread_cond_broadcast);
+ not_implemented!(pthread_cond_destroy);
+ not_implemented!(pthread_cond_signal);
+ not_implemented!(pthread_cond_timedwait);
+ not_implemented!(pthread_create);
+ not_implemented!(pthread_detach);
+ not_implemented!(pthread_equal);
+ not_implemented!(pthread_exit);
+ not_implemented!(pthread_getaffinity_np);
+ not_implemented!(pthread_getattr_default_np);
+ not_implemented!(pthread_getattr_np);
+ not_implemented!(pthread_getconcurrency);
+ not_implemented!(pthread_getcpuclockid);
+ not_implemented!(pthread_getname_np);
+ not_implemented!(pthread_getschedparam);
+ not_implemented!(pthread_getspecific);
+ not_implemented!(pthread_join);
+ not_implemented!(pthread_key_create);
+ not_implemented!(pthread_key_delete);
+ not_implemented!(pthread_kill);
+ not_implemented!(pthread_kill_other_threads_np);
+ not_implemented!(pthread_mutexattr_destroy);
+ not_implemented!(pthread_mutexattr_getprioceiling);
+ not_implemented!(pthread_mutexattr_getprotocol);
+ not_implemented!(pthread_mutexattr_getpshared);
+ not_implemented!(pthread_mutexattr_getrobust);
+ not_implemented!(pthread_mutexattr_getrobust_np);
+ not_implemented!(pthread_mutexattr_gettype);
+ not_implemented!(pthread_mutexattr_init);
+ not_implemented!(pthread_mutexattr_setprioceiling);
+ not_implemented!(pthread_mutexattr_setprotocol);
+ not_implemented!(pthread_mutexattr_setpshared);
+ not_implemented!(pthread_mutexattr_setrobust);
+ not_implemented!(pthread_mutexattr_setrobust_np);
+ not_implemented!(pthread_mutexattr_settype);
+ not_implemented!(pthread_mutex_consistent);
+ not_implemented!(pthread_mutex_consistent_np);
+ not_implemented!(pthread_mutex_destroy);
+ not_implemented!(pthread_mutex_getprioceiling);
+ not_implemented!(pthread_mutex_init);
+ not_implemented!(pthread_mutex_lock);
+ not_implemented!(pthread_mutex_setprioceiling);
+ not_implemented!(pthread_mutex_timedlock);
+ not_implemented!(pthread_mutex_trylock);
+ not_implemented!(pthread_once);
+ not_implemented!(pthread_rwlockattr_destroy);
+ not_implemented!(pthread_rwlockattr_getkind_np);
+ not_implemented!(pthread_rwlockattr_getpshared);
+ not_implemented!(pthread_rwlockattr_init);
+ not_implemented!(pthread_rwlockattr_setkind_np);
+ not_implemented!(pthread_rwlockattr_setpshared);
+ not_implemented!(pthread_rwlock_destroy);
+ not_implemented!(pthread_rwlock_rdlock);
+ not_implemented!(pthread_rwlock_timedrdlock);
+ not_implemented!(pthread_rwlock_timedwrlock);
+ not_implemented!(pthread_rwlock_tryrdlock);
+ not_implemented!(pthread_rwlock_trywrlock);
+ not_implemented!(pthread_rwlock_unlock);
+ not_implemented!(pthread_rwlock_wrlock);
+ not_implemented!(pthread_self);
+ not_implemented!(pthread_setaffinity_np);
+ not_implemented!(pthread_setattr_default_np);
+ not_implemented!(pthread_setcancelstate);
+ not_implemented!(pthread_setcanceltype);
+ not_implemented!(pthread_setconcurrency);
+ not_implemented!(pthread_setname_np);
+ not_implemented!(pthread_setschedparam);
+ not_implemented!(pthread_setschedprio);
+ not_implemented!(pthread_setspecific);
+ not_implemented!(pthread_sigmask);
+ not_implemented!(pthread_sigqueue);
+ not_implemented!(pthread_spin_destroy);
+ not_implemented!(pthread_spin_init);
+ not_implemented!(pthread_spin_lock);
+ not_implemented!(pthread_spin_trylock);
+ not_implemented!(pthread_spin_unlock);
+ not_implemented!(pthread_testcancel);
+ not_implemented!(pthread_timedjoin_np);
+ not_implemented!(pthread_tryjoin_np);
+ not_implemented!(pthread_yield);
+}
+
+/// Functions which provide higher-level functionality are out of scope for
+/// rustix.
+///
+/// These functions are provided by typical libc implementations, but are
+/// higher-level than the simple syscall-like functions that rustix focuses on.
+/// They could be implemented as a separate library built on top of rustix,
+/// rather than being part of rustix itself. This module contains an incomplete
+/// list of such functions.
+pub mod higher_level {
+ not_implemented!(getpwent);
+ not_implemented!(getpwuid);
+ not_implemented!(getpwnam);
+ not_implemented!(getpwuid_r);
+ not_implemented!(getpwnam_r);
+ not_implemented!(gethostbyname);
+ not_implemented!(execv);
+ not_implemented!(execvp);
+ not_implemented!(execvpe);
+ not_implemented!(wordexp);
+ not_implemented!(localtime);
+ not_implemented!(localtime_r);
+ not_implemented!(gmtime);
+ not_implemented!(gmtime_r);
+ not_implemented!(ctime);
+ not_implemented!(ctime_r);
+ not_implemented!(asctime);
+ not_implemented!(asctime_r);
+ not_implemented!(mktime);
+ not_implemented!(getifaddrs);
+
+ /// See [rustix-openpty](https://crates.io/crates/rustix-openpty).
+ pub fn closefrom() {
+ unimplemented!()
+ }
+ /// See [rustix-openpty](https://crates.io/crates/rustix-openpty).
+ pub fn login_tty() {
+ unimplemented!()
+ }
+ /// See [rustix-openpty](https://crates.io/crates/rustix-openpty).
+ pub fn openpty() {
+ unimplemented!()
+ }
+
+ /// See [`std::io::IsTerminal`].
+ ///
+ /// For Rust < 1.70, see [is-terminal]. For a rustix-based implementation,
+ /// see [rustix-is-terminal].
+ ///
+ /// [`std::io::IsTerminal`]: std::io::IsTerminal
+ /// [is-terminal]: https://crates.io/crates/is-terminal
+ /// [rustix-is-terminal]: https://crates.io/crates/rustix-is-terminal
+ pub fn isatty() {
+ unimplemented!()
+ }
+}
+
+/// Functions which don't seem possible to even call from Rust with current
+/// language features, even with `unsafe`.
+pub mod impossible {
+ not_implemented!(vfork);
+ not_implemented!(sigreturn);
+ not_implemented!(setjmp);
+ not_implemented!(longjmp);
+ not_implemented!(sigsetjmp);
+ not_implemented!(siglongjmp);
+}
+
+/// These functions are not yet implemented in rustix, but probably could be.
+///
+/// These are functions that users have asked about, and which probably are in
+/// scope for rustix, but are not yet implemented. This module contains an
+/// incomplete list of such functions.
+pub mod yet {
+ not_implemented!(tgkill);
+ not_implemented!(raise);
+ not_implemented!(sysctl);
+ not_implemented!(mq_open);
+ not_implemented!(mq_send);
+ not_implemented!(mq_unlink);
+ not_implemented!(recvmmsg);
+ not_implemented!(cachestat);
+ not_implemented!(fanotify_init);
+ not_implemented!(fanotify_mark);
+ not_implemented!(getifaddrs);
+ not_implemented!(signalfd);
+ not_implemented!(mount_setattr);
+ not_implemented!(extattr_delete_fd);
+ not_implemented!(extattr_delete_link);
+ not_implemented!(extattr_get_fd);
+ not_implemented!(extattr_get_link);
+ not_implemented!(extattr_list_fd);
+ not_implemented!(extattr_list_link);
+ not_implemented!(extattr_set_fd);
+ not_implemented!(extattr_set_link);
+ not_implemented!(get_mempolicy);
+ not_implemented!(mbind);
+ not_implemented!(set_mempolicy);
+ not_implemented!(migrate_pages);
+ not_implemented!(move_pages);
+ not_implemented!(fchmodat2);
+ not_implemented!(shmat);
+ not_implemented!(shmdt);
+ not_implemented!(shmget);
+ not_implemented!(shmctl);
+}
+
+/// These functions are not quite yet finished in rustix.
+///
+/// Rustix's codebase includes experimental implementations of these functions,
+/// however they are not yet publicly exposed because their API might need more
+/// work and/or they don't yet have a libc backend implementation yet.
+///
+/// See [#1314] for more information, and please leave comments if there are
+/// specific functions you're interested in.
+///
+/// [#1314]: https://github.com/bytecodealliance/rustix/issues/1314
+pub mod quite_yet {
+ not_implemented!(_exit);
+ not_implemented!(_Exit);
+ not_implemented!(exit_group);
+ not_implemented!(sigpending);
+ not_implemented!(sigsuspend);
+ not_implemented!(execveat);
+ not_implemented!(execve);
+
+ /// For now, use `rustix::process::uname().nodename()` instead.
+ ///
+ /// See also the [module comment](self).
+ pub fn gethostname() {
+ unimplemented!()
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/param/auxv.rs b/vendor/rustix-1.0.8/src/param/auxv.rs
new file mode 100644
index 0000000..2e502fd
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/param/auxv.rs
@@ -0,0 +1,110 @@
+use crate::backend;
+#[cfg(any(
+ linux_raw,
+ any(
+ all(target_os = "android", target_pointer_width = "64"),
+ target_os = "linux",
+ )
+))]
+use crate::ffi::CStr;
+
+/// `sysconf(_SC_PAGESIZE)`—Returns the process' page size.
+///
+/// Also known as `getpagesize`.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux `sysconf`]
+/// - [Linux `getpagesize`]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/sysconf.html
+/// [Linux `sysconf`]: https://man7.org/linux/man-pages/man3/sysconf.3.html
+/// [Linux `getpagesize`]: https://man7.org/linux/man-pages/man2/getpagesize.2.html
+#[inline]
+#[doc(alias = "PAGESIZE")]
+#[doc(alias = "PAGE_SIZE")]
+#[doc(alias = "_SC_PAGESIZE")]
+#[doc(alias = "_SC_PAGE_SIZE")]
+#[doc(alias = "getpagesize")]
+pub fn page_size() -> usize {
+ backend::param::auxv::page_size()
+}
+
+/// `sysconf(_SC_CLK_TCK)`—Returns the process' clock ticks per second.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/sysconf.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/sysconf.3.html
+#[cfg(not(any(target_os = "horizon", target_os = "vita", target_os = "wasi")))]
+#[inline]
+#[doc(alias = "_SC_CLK_TCK")]
+pub fn clock_ticks_per_second() -> u64 {
+ backend::param::auxv::clock_ticks_per_second()
+}
+
+/// `(getauxval(AT_HWCAP), getauxval(AT_HWCAP2)`—Returns the Linux "hwcap"
+/// data.
+///
+/// Return the Linux `AT_HWCAP` and `AT_HWCAP2` values passed to the
+/// current process. Returns 0 for each value if it is not available.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man3/getauxval.3.html
+#[cfg(any(
+ linux_raw,
+ any(
+ all(target_os = "android", target_pointer_width = "64"),
+ target_os = "linux",
+ )
+))]
+#[inline]
+pub fn linux_hwcap() -> (usize, usize) {
+ backend::param::auxv::linux_hwcap()
+}
+
+/// `getauxval(AT_MINSIGSTKSZ)`—Returns the Linux "minsigstksz" data.
+///
+/// Return the Linux `AT_MINSIGSTKSZ` value passed to the current process.
+/// Returns 0 if it is not available.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man3/getauxval.3.html
+#[cfg(any(
+ linux_raw,
+ any(
+ all(target_os = "android", target_pointer_width = "64"),
+ target_os = "linux",
+ )
+))]
+#[inline]
+pub fn linux_minsigstksz() -> usize {
+ backend::param::auxv::linux_minsigstksz()
+}
+
+/// `getauxval(AT_EXECFN)`—Returns the Linux "execfn" string.
+///
+/// Return the string that Linux has recorded as the filesystem path to the
+/// executable. Returns an empty string if the string is not available.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man3/getauxval.3.html
+#[cfg(any(
+ linux_raw,
+ any(
+ all(target_os = "android", target_pointer_width = "64"),
+ target_os = "linux",
+ )
+))]
+#[inline]
+pub fn linux_execfn() -> &'static CStr {
+ backend::param::auxv::linux_execfn()
+}
diff --git a/vendor/rustix-1.0.8/src/param/init.rs b/vendor/rustix-1.0.8/src/param/init.rs
new file mode 100644
index 0000000..88b35f2
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/param/init.rs
@@ -0,0 +1,23 @@
+//! rustix's `init` function.
+//!
+//! # Safety
+//!
+//! When "use-explicitly-provided-auxv" is enabled, the `init` function must be
+//! called before any other function in this module. It is unsafe because it
+//! operates on raw pointers.
+#![allow(unsafe_code)]
+
+use crate::backend;
+
+/// Initialize process-wide state.
+///
+/// # Safety
+///
+/// This must be passed a pointer to the original environment variable block
+/// set up by the OS at process startup, and it must be called before any other
+/// rustix functions are called.
+#[inline]
+#[doc(hidden)]
+pub unsafe fn init(envp: *mut *mut u8) {
+ backend::param::auxv::init(envp)
+}
diff --git a/vendor/rustix-1.0.8/src/param/mod.rs b/vendor/rustix-1.0.8/src/param/mod.rs
new file mode 100644
index 0000000..f0de9d4
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/param/mod.rs
@@ -0,0 +1,14 @@
+//! Process parameters.
+//!
+//! These values correspond to `sysconf` in POSIX, and the auxv array in Linux.
+//! Despite the POSIX name “sysconf”, these aren't *system* configuration
+//! parameters; they're *process* configuration parameters, as they may differ
+//! between different processes on the same system.
+
+mod auxv;
+#[cfg(all(feature = "use-explicitly-provided-auxv", not(libc)))]
+mod init;
+
+pub use auxv::*;
+#[cfg(all(feature = "use-explicitly-provided-auxv", not(libc)))]
+pub use init::init;
diff --git a/vendor/rustix-1.0.8/src/path/arg.rs b/vendor/rustix-1.0.8/src/path/arg.rs
new file mode 100644
index 0000000..9edeb57
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/path/arg.rs
@@ -0,0 +1,1097 @@
+//! Convenient and efficient string argument passing.
+//!
+//! This module defines the `Arg` trait and implements it for several common
+//! string types. This allows users to pass any of these string types directly
+//! to rustix APIs with string arguments, and it allows rustix to implement
+//! NUL-termination without the need for copying or dynamic allocation where
+//! possible.
+
+use crate::ffi::CStr;
+use crate::io;
+use crate::path::{DecInt, SMALL_PATH_BUFFER_SIZE};
+#[cfg(feature = "alloc")]
+use alloc::borrow::ToOwned as _;
+use core::mem::MaybeUninit;
+use core::{ptr, slice, str};
+#[cfg(feature = "std")]
+use std::ffi::{OsStr, OsString};
+#[cfg(all(feature = "std", target_os = "hermit"))]
+use std::os::hermit::ext::ffi::{OsStrExt, OsStringExt};
+#[cfg(all(feature = "std", unix))]
+use std::os::unix::ffi::{OsStrExt as _, OsStringExt as _};
+#[cfg(all(feature = "std", target_os = "vxworks"))]
+use std::os::vxworks::ext::ffi::{OsStrExt, OsStringExt};
+#[cfg(all(
+ feature = "std",
+ target_os = "wasi",
+ any(not(target_env = "p2"), wasip2)
+))]
+use std::os::wasi::ffi::{OsStrExt, OsStringExt};
+#[cfg(feature = "std")]
+use std::path::{Component, Components, Iter, Path, PathBuf};
+#[cfg(feature = "alloc")]
+use {crate::ffi::CString, alloc::borrow::Cow};
+#[cfg(feature = "alloc")]
+use {alloc::string::String, alloc::vec::Vec};
+
+/// A trait for passing path arguments.
+///
+/// This is similar to [`AsRef`]`<`[`Path`]`>`, but is implemented for more
+/// kinds of strings and can convert into more kinds of strings.
+///
+/// # Examples
+///
+/// ```
+/// # #[cfg(any(feature = "fs", feature = "net"))]
+/// use rustix::ffi::CStr;
+/// use rustix::io;
+/// # #[cfg(any(feature = "fs", feature = "net"))]
+/// use rustix::path::Arg;
+///
+/// # #[cfg(any(feature = "fs", feature = "net"))]
+/// pub fn touch<P: Arg>(path: P) -> io::Result<()> {
+/// let path = path.into_c_str()?;
+/// _touch(&path)
+/// }
+///
+/// # #[cfg(any(feature = "fs", feature = "net"))]
+/// fn _touch(path: &CStr) -> io::Result<()> {
+/// // implementation goes here
+/// Ok(())
+/// }
+/// ```
+///
+/// Users can then call `touch("foo")`, `touch(cstr!("foo"))`,
+/// `touch(Path::new("foo"))`, or many other things.
+///
+/// [`AsRef`]: std::convert::AsRef
+pub trait Arg {
+ /// Returns a view of this string as a string slice.
+ fn as_str(&self) -> io::Result<&str>;
+
+ /// Returns a potentially-lossy rendering of this string as a
+ /// `Cow<'_, str>`.
+ #[cfg(feature = "alloc")]
+ fn to_string_lossy(&self) -> Cow<'_, str>;
+
+ /// Returns a view of this string as a maybe-owned [`CStr`].
+ #[cfg(feature = "alloc")]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>>;
+
+ /// Consumes `self` and returns a view of this string as a maybe-owned
+ /// [`CStr`].
+ #[cfg(feature = "alloc")]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b;
+
+ /// Runs a closure with `self` passed in as a `&CStr`.
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>;
+}
+
+/// Runs a closure on `arg` where `A` is mapped to a `&CStr`
+pub fn option_into_with_c_str<T, F, A>(arg: Option<A>, f: F) -> io::Result<T>
+where
+ A: Arg + Sized,
+ F: FnOnce(Option<&CStr>) -> io::Result<T>,
+{
+ if let Some(arg) = arg {
+ arg.into_with_c_str(|p| f(Some(p)))
+ } else {
+ f(None)
+ }
+}
+
+impl Arg for &str {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ Ok(self)
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ Cow::Borrowed(self)
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(*self).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(
+ CString::new(self).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ with_c_str(self.as_bytes(), f)
+ }
+}
+
+#[cfg(feature = "alloc")]
+impl Arg for &String {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ Ok(self)
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ Cow::Borrowed(self)
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(String::as_str(self)).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ self.as_str().into_c_str()
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ with_c_str(self.as_bytes(), f)
+ }
+}
+
+#[cfg(feature = "alloc")]
+impl Arg for String {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ Ok(self)
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ Cow::Borrowed(self)
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(self.as_str()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(
+ CString::new(self).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ f(&CString::new(self).map_err(|_cstr_err| io::Errno::INVAL)?)
+ }
+}
+
+#[cfg(feature = "std")]
+#[cfg(any(not(target_os = "wasi"), not(target_env = "p2"), wasip2))]
+impl Arg for &OsStr {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ self.to_str().ok_or(io::Errno::INVAL)
+ }
+
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ OsStr::to_string_lossy(self)
+ }
+
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(self.as_bytes()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(
+ CString::new(self.as_bytes()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ with_c_str(self.as_bytes(), f)
+ }
+}
+
+#[cfg(feature = "std")]
+#[cfg(any(not(target_os = "wasi"), not(target_env = "p2"), wasip2))]
+impl Arg for &OsString {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ OsString::as_os_str(self).to_str().ok_or(io::Errno::INVAL)
+ }
+
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ self.as_os_str().to_string_lossy()
+ }
+
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(OsString::as_os_str(self).as_bytes())
+ .map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ self.as_os_str().into_c_str()
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ with_c_str(self.as_bytes(), f)
+ }
+}
+
+#[cfg(feature = "std")]
+#[cfg(any(not(target_os = "wasi"), not(target_env = "p2"), wasip2))]
+impl Arg for OsString {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ self.as_os_str().to_str().ok_or(io::Errno::INVAL)
+ }
+
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ self.as_os_str().to_string_lossy()
+ }
+
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(self.as_bytes()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(
+ CString::new(self.into_vec()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ f(&CString::new(self.into_vec()).map_err(|_cstr_err| io::Errno::INVAL)?)
+ }
+}
+
+#[cfg(feature = "std")]
+#[cfg(any(not(target_os = "wasi"), not(target_env = "p2"), wasip2))]
+impl Arg for &Path {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ self.as_os_str().to_str().ok_or(io::Errno::INVAL)
+ }
+
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ Path::to_string_lossy(self)
+ }
+
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(self.as_os_str().as_bytes()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(
+ CString::new(self.as_os_str().as_bytes()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ with_c_str(self.as_os_str().as_bytes(), f)
+ }
+}
+
+#[cfg(feature = "std")]
+#[cfg(any(not(target_os = "wasi"), not(target_env = "p2"), wasip2))]
+impl Arg for &PathBuf {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ PathBuf::as_path(self)
+ .as_os_str()
+ .to_str()
+ .ok_or(io::Errno::INVAL)
+ }
+
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ self.as_path().to_string_lossy()
+ }
+
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(PathBuf::as_path(self).as_os_str().as_bytes())
+ .map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ self.as_path().into_c_str()
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ with_c_str(self.as_os_str().as_bytes(), f)
+ }
+}
+
+#[cfg(feature = "std")]
+#[cfg(any(not(target_os = "wasi"), not(target_env = "p2"), wasip2))]
+impl Arg for PathBuf {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ self.as_os_str().to_str().ok_or(io::Errno::INVAL)
+ }
+
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ self.as_os_str().to_string_lossy()
+ }
+
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(self.as_os_str().as_bytes()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(
+ CString::new(self.into_os_string().into_vec()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ f(
+ &CString::new(self.into_os_string().into_vec())
+ .map_err(|_cstr_err| io::Errno::INVAL)?,
+ )
+ }
+}
+
+impl Arg for &CStr {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ self.to_str().map_err(|_utf8_err| io::Errno::INVAL)
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ CStr::to_string_lossy(self)
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Borrowed(self))
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Borrowed(self))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ f(self)
+ }
+}
+
+#[cfg(feature = "alloc")]
+impl Arg for &CString {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ unimplemented!()
+ }
+
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ unimplemented!()
+ }
+
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Borrowed(self))
+ }
+
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Borrowed(self))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ f(self)
+ }
+}
+
+#[cfg(feature = "alloc")]
+impl Arg for CString {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ self.to_str().map_err(|_utf8_err| io::Errno::INVAL)
+ }
+
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ CStr::to_string_lossy(self)
+ }
+
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Borrowed(self))
+ }
+
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(self))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ f(&self)
+ }
+}
+
+#[cfg(feature = "alloc")]
+impl<'a> Arg for Cow<'a, str> {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ Ok(self)
+ }
+
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ Cow::Borrowed(self)
+ }
+
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(self.as_ref()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(
+ match self {
+ Cow::Owned(s) => CString::new(s),
+ Cow::Borrowed(s) => CString::new(s),
+ }
+ .map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ with_c_str(self.as_bytes(), f)
+ }
+}
+
+#[cfg(feature = "std")]
+#[cfg(any(not(target_os = "wasi"), not(target_env = "p2"), wasip2))]
+impl<'a> Arg for Cow<'a, OsStr> {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ (**self).to_str().ok_or(io::Errno::INVAL)
+ }
+
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ (**self).to_string_lossy()
+ }
+
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(self.as_bytes()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(
+ match self {
+ Cow::Owned(os) => CString::new(os.into_vec()),
+ Cow::Borrowed(os) => CString::new(os.as_bytes()),
+ }
+ .map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ with_c_str(self.as_bytes(), f)
+ }
+}
+
+#[cfg(feature = "alloc")]
+impl<'a> Arg for Cow<'a, CStr> {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ self.to_str().map_err(|_utf8_err| io::Errno::INVAL)
+ }
+
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ let borrow: &CStr = core::borrow::Borrow::borrow(self);
+ borrow.to_string_lossy()
+ }
+
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Borrowed(self))
+ }
+
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(self)
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ f(&self)
+ }
+}
+
+#[cfg(feature = "std")]
+#[cfg(any(not(target_os = "wasi"), not(target_env = "p2"), wasip2))]
+impl<'a> Arg for Component<'a> {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ self.as_os_str().to_str().ok_or(io::Errno::INVAL)
+ }
+
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ self.as_os_str().to_string_lossy()
+ }
+
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(self.as_os_str().as_bytes()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(
+ CString::new(self.as_os_str().as_bytes()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ with_c_str(self.as_os_str().as_bytes(), f)
+ }
+}
+
+#[cfg(feature = "std")]
+#[cfg(any(not(target_os = "wasi"), not(target_env = "p2"), wasip2))]
+impl<'a> Arg for Components<'a> {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ self.as_path().to_str().ok_or(io::Errno::INVAL)
+ }
+
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ self.as_path().to_string_lossy()
+ }
+
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(self.as_path().as_os_str().as_bytes())
+ .map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(
+ CString::new(self.as_path().as_os_str().as_bytes())
+ .map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ with_c_str(self.as_path().as_os_str().as_bytes(), f)
+ }
+}
+
+#[cfg(feature = "std")]
+#[cfg(any(not(target_os = "wasi"), not(target_env = "p2"), wasip2))]
+impl<'a> Arg for Iter<'a> {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ self.as_path().to_str().ok_or(io::Errno::INVAL)
+ }
+
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ self.as_path().to_string_lossy()
+ }
+
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(self.as_path().as_os_str().as_bytes())
+ .map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(
+ CString::new(self.as_path().as_os_str().as_bytes())
+ .map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ with_c_str(self.as_path().as_os_str().as_bytes(), f)
+ }
+}
+
+impl Arg for &[u8] {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ str::from_utf8(self).map_err(|_utf8_err| io::Errno::INVAL)
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ String::from_utf8_lossy(self)
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(*self).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(
+ CString::new(self).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ with_c_str(self, f)
+ }
+}
+
+#[cfg(feature = "alloc")]
+impl Arg for &Vec<u8> {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ str::from_utf8(self).map_err(|_utf8_err| io::Errno::INVAL)
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ String::from_utf8_lossy(self)
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(self.as_slice()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(
+ CString::new(self.as_slice()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ with_c_str(self, f)
+ }
+}
+
+#[cfg(feature = "alloc")]
+#[cfg(any(not(target_os = "wasi"), not(target_env = "p2"), wasip2))]
+impl Arg for Vec<u8> {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ str::from_utf8(self).map_err(|_utf8_err| io::Errno::INVAL)
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ String::from_utf8_lossy(self)
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Owned(
+ CString::new(self.as_slice()).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(
+ CString::new(self).map_err(|_cstr_err| io::Errno::INVAL)?,
+ ))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ f(&CString::new(self).map_err(|_cstr_err| io::Errno::INVAL)?)
+ }
+}
+
+impl Arg for DecInt {
+ #[inline]
+ fn as_str(&self) -> io::Result<&str> {
+ Ok(self.as_str())
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn to_string_lossy(&self) -> Cow<'_, str> {
+ Cow::Borrowed(self.as_str())
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn as_cow_c_str(&self) -> io::Result<Cow<'_, CStr>> {
+ Ok(Cow::Borrowed(self.as_c_str()))
+ }
+
+ #[cfg(feature = "alloc")]
+ #[inline]
+ fn into_c_str<'b>(self) -> io::Result<Cow<'b, CStr>>
+ where
+ Self: 'b,
+ {
+ Ok(Cow::Owned(self.as_c_str().to_owned()))
+ }
+
+ #[inline]
+ fn into_with_c_str<T, F>(self, f: F) -> io::Result<T>
+ where
+ Self: Sized,
+ F: FnOnce(&CStr) -> io::Result<T>,
+ {
+ f(self.as_c_str())
+ }
+}
+
+/// Runs a closure with `bytes` passed in as a `&CStr`.
+#[allow(unsafe_code, clippy::int_plus_one)]
+#[inline]
+fn with_c_str<T, F>(bytes: &[u8], f: F) -> io::Result<T>
+where
+ F: FnOnce(&CStr) -> io::Result<T>,
+{
+ // Most paths are less than `SMALL_PATH_BUFFER_SIZE` long. The rest can go
+ // through the dynamic allocation path. If you're opening many files in a
+ // directory with a long path, consider opening the directory and using
+ // `openat` to open the files under it, which will avoid this, and is often
+ // faster in the OS as well.
+
+ // Test with `>=` so that we have room for the trailing NUL.
+ if bytes.len() >= SMALL_PATH_BUFFER_SIZE {
+ return with_c_str_slow_path(bytes, f);
+ }
+
+ // Taken from
+ // <https://github.com/rust-lang/rust/blob/a00f8ba7fcac1b27341679c51bf5a3271fa82df3/library/std/src/sys/common/small_c_string.rs>
+ let mut buf = MaybeUninit::<[u8; SMALL_PATH_BUFFER_SIZE]>::uninit();
+ let buf_ptr = buf.as_mut_ptr().cast::<u8>();
+
+ // This helps test our safety condition below.
+ debug_assert!(bytes.len() + 1 <= SMALL_PATH_BUFFER_SIZE);
+
+ // SAFETY: `bytes.len() < SMALL_PATH_BUFFER_SIZE` which means we have space
+ // for `bytes.len() + 1` `u8`s:
+ unsafe {
+ ptr::copy_nonoverlapping(bytes.as_ptr(), buf_ptr, bytes.len());
+ buf_ptr.add(bytes.len()).write(b'\0');
+ }
+
+ // SAFETY: We just wrote the bytes above and they will remain valid for the
+ // duration of `f` because `buf` doesn't get dropped until the end of the
+ // function.
+ match CStr::from_bytes_with_nul(unsafe { slice::from_raw_parts(buf_ptr, bytes.len() + 1) }) {
+ Ok(s) => f(s),
+ Err(_) => Err(io::Errno::INVAL),
+ }
+}
+
+/// The slow path which handles any length. In theory OS's only support up to
+/// `PATH_MAX`, but we let the OS enforce that.
+#[allow(unsafe_code, clippy::int_plus_one)]
+#[cold]
+fn with_c_str_slow_path<T, F>(bytes: &[u8], f: F) -> io::Result<T>
+where
+ F: FnOnce(&CStr) -> io::Result<T>,
+{
+ #[cfg(feature = "alloc")]
+ {
+ f(&CString::new(bytes).map_err(|_cstr_err| io::Errno::INVAL)?)
+ }
+
+ #[cfg(not(feature = "alloc"))]
+ {
+ #[cfg(all(
+ libc,
+ not(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "vita",
+ target_os = "wasi"
+ ))
+ ))]
+ const LARGE_PATH_BUFFER_SIZE: usize = libc::PATH_MAX as usize;
+ #[cfg(linux_raw)]
+ const LARGE_PATH_BUFFER_SIZE: usize = linux_raw_sys::general::PATH_MAX as usize;
+ #[cfg(any(
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "vita",
+ target_os = "wasi"
+ ))]
+ const LARGE_PATH_BUFFER_SIZE: usize = 4096 as usize; // TODO: upstream this
+
+ // Taken from
+ // <https://github.com/rust-lang/rust/blob/a00f8ba7fcac1b27341679c51bf5a3271fa82df3/library/std/src/sys/common/small_c_string.rs>
+ let mut buf = MaybeUninit::<[u8; LARGE_PATH_BUFFER_SIZE]>::uninit();
+ let buf_ptr = buf.as_mut_ptr().cast::<u8>();
+
+ // This helps test our safety condition below.
+ if bytes.len() + 1 > LARGE_PATH_BUFFER_SIZE {
+ return Err(io::Errno::NAMETOOLONG);
+ }
+
+ // SAFETY: `bytes.len() < LARGE_PATH_BUFFER_SIZE` which means we have
+ // space for `bytes.len() + 1` `u8`s:
+ unsafe {
+ ptr::copy_nonoverlapping(bytes.as_ptr(), buf_ptr, bytes.len());
+ buf_ptr.add(bytes.len()).write(b'\0');
+ }
+
+ // SAFETY: We just wrote the bytes above and they will remain valid for
+ // the duration of `f` because `buf` doesn't get dropped until the end
+ // of the function.
+ match CStr::from_bytes_with_nul(unsafe { slice::from_raw_parts(buf_ptr, bytes.len() + 1) })
+ {
+ Ok(s) => f(s),
+ Err(_) => Err(io::Errno::INVAL),
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/path/dec_int.rs b/vendor/rustix-1.0.8/src/path/dec_int.rs
new file mode 100644
index 0000000..5b6e2f8
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/path/dec_int.rs
@@ -0,0 +1,261 @@
+//! Efficient decimal integer formatting.
+//!
+//! # Safety
+//!
+//! This uses `CStr::from_bytes_with_nul_unchecked` and
+//! `str::from_utf8_unchecked`on the buffer that it filled itself.
+#![allow(unsafe_code)]
+
+use crate::backend::fd::{AsFd, AsRawFd as _};
+use crate::ffi::CStr;
+use core::fmt;
+use core::hint::unreachable_unchecked;
+use core::mem::{self, MaybeUninit};
+use core::num::{NonZeroU8, NonZeroUsize};
+#[cfg(all(feature = "std", unix))]
+use std::os::unix::ffi::OsStrExt;
+#[cfg(all(
+ feature = "std",
+ target_os = "wasi",
+ any(not(target_env = "p2"), wasip2)
+))]
+use std::os::wasi::ffi::OsStrExt;
+#[cfg(feature = "std")]
+use {std::ffi::OsStr, std::path::Path};
+
+/// Format an integer into a decimal `Path` component, without constructing a
+/// temporary `PathBuf` or `String`.
+///
+/// This is used for opening paths such as `/proc/self/fd/<fd>` on Linux.
+///
+/// # Examples
+///
+/// ```
+/// # #[cfg(any(feature = "fs", feature = "net"))]
+/// use rustix::path::DecInt;
+///
+/// # #[cfg(any(feature = "fs", feature = "net"))]
+/// assert_eq!(
+/// format!("hello {}", DecInt::new(9876).as_ref().display()),
+/// "hello 9876"
+/// );
+/// ```
+#[derive(Clone)]
+pub struct DecInt {
+ buf: [MaybeUninit<u8>; BUF_LEN],
+ len: NonZeroU8,
+}
+
+/// Enough to hold an {u,i}64 and NUL terminator.
+const BUF_LEN: usize = U64_MAX_STR_LEN + 1;
+
+/// Maximum length of a formatted [`u64`].
+const U64_MAX_STR_LEN: usize = "18446744073709551615".len();
+
+/// Maximum length of a formatted [`i64`].
+#[allow(dead_code)]
+const I64_MAX_STR_LEN: usize = "-9223372036854775808".len();
+
+const _: () = assert!(U64_MAX_STR_LEN == I64_MAX_STR_LEN);
+
+mod private {
+ pub trait Sealed: Copy {
+ type Unsigned: super::Integer;
+
+ fn as_unsigned(self) -> (bool, Self::Unsigned);
+ fn eq_zero(self) -> bool;
+ fn div_mod_10(&mut self) -> u8;
+ }
+
+ macro_rules! impl_unsigned {
+ ($($ty:ty)+) => { $(
+ impl Sealed for $ty {
+ type Unsigned = $ty;
+
+ #[inline]
+ fn as_unsigned(self) -> (bool, $ty) {
+ (false, self)
+ }
+
+ #[inline]
+ fn eq_zero(self) -> bool {
+ self == 0
+ }
+
+ #[inline]
+ fn div_mod_10(&mut self) -> u8 {
+ let result = (*self % 10) as u8;
+ *self /= 10;
+ result
+ }
+ }
+ )+ }
+ }
+
+ macro_rules! impl_signed {
+ ($($signed:ty : $unsigned:ty)+) => { $(
+ impl Sealed for $signed {
+ type Unsigned = $unsigned;
+
+ #[inline]
+ fn as_unsigned(self) -> (bool, $unsigned) {
+ if self >= 0 {
+ (false, self as $unsigned)
+ } else {
+ (true, !(self as $unsigned) + 1)
+ }
+ }
+
+ #[inline]
+ fn eq_zero(self) -> bool {
+ unimplemented!()
+ }
+
+ #[inline]
+ fn div_mod_10(&mut self) -> u8 {
+ unimplemented!()
+ }
+ }
+ )+ }
+ }
+
+ impl_unsigned!(u8 u16 u32 u64);
+ impl_signed!(i8:u8 i16:u16 i32:u32 i64:u64);
+
+ #[cfg(any(
+ target_pointer_width = "16",
+ target_pointer_width = "32",
+ target_pointer_width = "64"
+ ))]
+ const _: () = {
+ impl_unsigned!(usize);
+ impl_signed!(isize:usize);
+ };
+}
+
+/// An integer that can be used by [`DecInt::new`].
+pub trait Integer: private::Sealed {}
+
+impl Integer for i8 {}
+impl Integer for i16 {}
+impl Integer for i32 {}
+impl Integer for i64 {}
+impl Integer for u8 {}
+impl Integer for u16 {}
+impl Integer for u32 {}
+impl Integer for u64 {}
+
+#[cfg(any(
+ target_pointer_width = "16",
+ target_pointer_width = "32",
+ target_pointer_width = "64"
+))]
+const _: () = {
+ impl Integer for isize {}
+ impl Integer for usize {}
+};
+
+impl DecInt {
+ /// Construct a new path component from an integer.
+ pub fn new<Int: Integer>(i: Int) -> Self {
+ use private::Sealed as _;
+
+ let (is_neg, mut i) = i.as_unsigned();
+ let mut len = 1;
+ let mut buf = [MaybeUninit::uninit(); BUF_LEN];
+ buf[BUF_LEN - 1] = MaybeUninit::new(b'\0');
+
+ // We use `loop { …; if cond { break } }` instead of
+ // `while !cond { … }` so the loop is entered at least once. This way
+ // `0` does not need a special handling.
+ loop {
+ len += 1;
+ if len > BUF_LEN {
+ // SAFETY: A stringified `i64`/`u64` cannot be longer than
+ // `U64_MAX_STR_LEN` bytes.
+ unsafe { unreachable_unchecked() };
+ }
+ buf[BUF_LEN - len] = MaybeUninit::new(b'0' + i.div_mod_10());
+ if i.eq_zero() {
+ break;
+ }
+ }
+
+ if is_neg {
+ len += 1;
+ if len > BUF_LEN {
+ // SAFETY: A stringified `i64`/`u64` cannot be longer than
+ // `U64_MAX_STR_LEN` bytes.
+ unsafe { unreachable_unchecked() };
+ }
+ buf[BUF_LEN - len] = MaybeUninit::new(b'-');
+ }
+
+ Self {
+ buf,
+ len: NonZeroU8::new(len as u8).unwrap(),
+ }
+ }
+
+ /// Construct a new path component from a file descriptor.
+ #[inline]
+ pub fn from_fd<Fd: AsFd>(fd: Fd) -> Self {
+ Self::new(fd.as_fd().as_raw_fd())
+ }
+
+ /// Return the raw byte buffer as a `&str`.
+ #[inline]
+ pub fn as_str(&self) -> &str {
+ // SAFETY: `DecInt` always holds a formatted decimal number, so it's
+ // always valid UTF-8.
+ unsafe { core::str::from_utf8_unchecked(self.as_bytes()) }
+ }
+
+ /// Return the raw byte buffer as a `&CStr`.
+ #[inline]
+ pub fn as_c_str(&self) -> &CStr {
+ let bytes_with_nul = self.as_bytes_with_nul();
+ debug_assert!(CStr::from_bytes_with_nul(bytes_with_nul).is_ok());
+
+ // SAFETY: `self.buf` holds a single decimal ASCII representation and
+ // at least one extra NUL byte.
+ unsafe { CStr::from_bytes_with_nul_unchecked(bytes_with_nul) }
+ }
+
+ /// Return the raw byte buffer including the NUL byte.
+ #[inline]
+ pub fn as_bytes_with_nul(&self) -> &[u8] {
+ let len = NonZeroUsize::from(self.len).get();
+ if len > BUF_LEN {
+ // SAFETY: A stringified `i64`/`u64` cannot be longer than
+ // `U64_MAX_STR_LEN` bytes.
+ unsafe { unreachable_unchecked() };
+ }
+ let init = &self.buf[(self.buf.len() - len)..];
+ // SAFETY: We're guaranteed to have initialized `len + 1` bytes.
+ unsafe { mem::transmute::<&[MaybeUninit<u8>], &[u8]>(init) }
+ }
+
+ /// Return the raw byte buffer.
+ #[inline]
+ pub fn as_bytes(&self) -> &[u8] {
+ let bytes = self.as_bytes_with_nul();
+ &bytes[..bytes.len() - 1]
+ }
+}
+
+#[cfg(feature = "std")]
+#[cfg(any(not(target_os = "wasi"), not(target_env = "p2"), wasip2))]
+impl AsRef<Path> for DecInt {
+ #[inline]
+ fn as_ref(&self) -> &Path {
+ let as_os_str: &OsStr = OsStrExt::from_bytes(self.as_bytes());
+ Path::new(as_os_str)
+ }
+}
+
+impl fmt::Debug for DecInt {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ self.as_str().fmt(f)
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/path/mod.rs b/vendor/rustix-1.0.8/src/path/mod.rs
new file mode 100644
index 0000000..627716d
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/path/mod.rs
@@ -0,0 +1,9 @@
+//! Filesystem path operations.
+
+mod arg;
+mod dec_int;
+
+pub use arg::{option_into_with_c_str, Arg};
+pub use dec_int::{DecInt, Integer};
+
+pub(crate) const SMALL_PATH_BUFFER_SIZE: usize = 256;
diff --git a/vendor/rustix-1.0.8/src/pid.rs b/vendor/rustix-1.0.8/src/pid.rs
new file mode 100644
index 0000000..aa61892
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/pid.rs
@@ -0,0 +1,135 @@
+//! The `Pid` type.
+
+#![allow(unsafe_code)]
+
+use core::num::NonZeroI32;
+
+/// A process identifier as a raw integer.
+pub type RawPid = i32;
+
+/// `pid_t`—A non-zero Unix process ID.
+///
+/// This is a pid, and not a pidfd. It is not a file descriptor, and the
+/// process it refers to could disappear at any time and be replaced by
+/// another, unrelated, process.
+///
+/// On Linux, `Pid` values are also used to identify threads.
+#[repr(transparent)]
+#[derive(Copy, Clone, Eq, PartialEq, Debug, Hash)]
+pub struct Pid(NonZeroI32);
+
+impl Pid {
+ /// A `Pid` corresponding to the init process (pid 1).
+ pub const INIT: Self = Self(match NonZeroI32::new(1) {
+ Some(n) => n,
+ None => panic!("unreachable"),
+ });
+
+ /// Converts a `RawPid` into a `Pid`.
+ ///
+ /// Returns `Some` for positive values, and `None` for zero values.
+ ///
+ /// This is safe because a `Pid` is a number without any guarantees for the
+ /// kernel. Non-child `Pid`s are always racy for any syscalls, but can only
+ /// cause logic errors. If you want race-free access to or control of
+ /// non-child processes, please consider other mechanisms like [pidfd] on
+ /// Linux.
+ ///
+ /// Passing a negative number doesn't invoke undefined behavior, but it
+ /// may cause unexpected behavior.
+ ///
+ /// [pidfd]: https://man7.org/linux/man-pages/man2/pidfd_open.2.html
+ #[inline]
+ pub const fn from_raw(raw: RawPid) -> Option<Self> {
+ debug_assert!(raw >= 0);
+ match NonZeroI32::new(raw) {
+ Some(non_zero) => Some(Self(non_zero)),
+ None => None,
+ }
+ }
+
+ /// Converts a known positive `RawPid` into a `Pid`.
+ ///
+ /// Passing a negative number doesn't invoke undefined behavior, but it
+ /// may cause unexpected behavior.
+ ///
+ /// # Safety
+ ///
+ /// The caller must guarantee `raw` is non-zero.
+ #[inline]
+ pub const unsafe fn from_raw_unchecked(raw: RawPid) -> Self {
+ debug_assert!(raw > 0);
+ Self(NonZeroI32::new_unchecked(raw))
+ }
+
+ /// Creates a `Pid` holding the ID of the given child process.
+ #[cfg(feature = "std")]
+ #[inline]
+ pub fn from_child(child: &std::process::Child) -> Self {
+ let id = child.id();
+ // SAFETY: We know the returned ID is valid because it came directly
+ // from an OS API.
+ unsafe { Self::from_raw_unchecked(id as i32) }
+ }
+
+ /// Converts a `Pid` into a `NonZeroI32`.
+ #[inline]
+ pub const fn as_raw_nonzero(self) -> NonZeroI32 {
+ self.0
+ }
+
+ /// Converts an `Option<Pid>` into a `RawPid`.
+ #[inline]
+ pub const fn as_raw(pid: Option<Self>) -> RawPid {
+ match pid {
+ Some(pid) => pid.0.get(),
+ None => 0,
+ }
+ }
+
+ /// Test whether this pid represents the init process ([`Pid::INIT`]).
+ #[inline]
+ pub const fn is_init(self) -> bool {
+ self.0.get() == Self::INIT.0.get()
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_sizes() {
+ use core::mem::transmute;
+
+ assert_eq_size!(RawPid, NonZeroI32);
+ assert_eq_size!(RawPid, Pid);
+ assert_eq_size!(RawPid, Option<Pid>);
+
+ // Rustix doesn't depend on `Option<Pid>` matching the ABI of a raw integer
+ // for correctness, but it should work nonetheless.
+ const_assert_eq!(0 as RawPid, unsafe {
+ transmute::<Option<Pid>, RawPid>(None)
+ });
+ const_assert_eq!(4567 as RawPid, unsafe {
+ transmute::<Option<Pid>, RawPid>(Some(Pid::from_raw_unchecked(4567)))
+ });
+ }
+
+ #[test]
+ fn test_ctors() {
+ use std::num::NonZeroI32;
+ assert!(Pid::from_raw(0).is_none());
+ assert_eq!(
+ Pid::from_raw(77).unwrap().as_raw_nonzero(),
+ NonZeroI32::new(77).unwrap()
+ );
+ assert_eq!(Pid::as_raw(Pid::from_raw(77)), 77);
+ }
+
+ #[test]
+ fn test_specials() {
+ assert!(Pid::from_raw(1).unwrap().is_init());
+ assert_eq!(Pid::from_raw(1).unwrap(), Pid::INIT);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/pipe.rs b/vendor/rustix-1.0.8/src/pipe.rs
new file mode 100644
index 0000000..267c99d
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/pipe.rs
@@ -0,0 +1,222 @@
+//! `pipe` and related APIs.
+
+#![allow(unsafe_code)]
+
+use crate::fd::OwnedFd;
+use crate::{backend, io};
+#[cfg(not(any(
+ solarish,
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+use backend::c;
+#[cfg(linux_kernel)]
+use backend::fd::AsFd;
+
+#[cfg(not(apple))]
+pub use backend::pipe::types::PipeFlags;
+
+#[cfg(linux_kernel)]
+pub use backend::pipe::types::{IoSliceRaw, SpliceFlags};
+
+/// `PIPE_BUF`—The maximum length at which writes to a pipe are atomic.
+///
+/// # References
+/// - [Linux]
+/// - [POSIX]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man7/pipe.7.html
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/write.html
+#[cfg(not(any(
+ solarish,
+ windows,
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+pub const PIPE_BUF: usize = c::PIPE_BUF;
+
+/// `pipe()`—Creates a pipe.
+///
+/// This function creates a pipe and returns two file descriptors, for the
+/// reading and writing ends of the pipe, respectively.
+///
+/// See [`pipe_with`] to pass additional flags.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/pipe.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/pipe.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/pipe.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=pipe&sektion=2
+/// [NetBSD]: https://man.netbsd.org/pipe.2
+/// [OpenBSD]: https://man.openbsd.org/pipe.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=pipe§ion=2
+/// [illumos]: https://illumos.org/man/2/pipe
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Creating-a-Pipe.html
+#[inline]
+pub fn pipe() -> io::Result<(OwnedFd, OwnedFd)> {
+ backend::pipe::syscalls::pipe()
+}
+
+/// `pipe2(flags)`—Creates a pipe, with flags.
+///
+/// `pipe_with` is the same as [`pipe`] but adds an additional flags operand.
+///
+/// This function creates a pipe and returns two file descriptors, for the
+/// reading and writing ends of the pipe, respectively.
+///
+/// # References
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/pipe2.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=pipe2&sektion=2
+/// [NetBSD]: https://man.netbsd.org/pipe2.2
+/// [OpenBSD]: https://man.openbsd.org/pipe2.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=pipe2§ion=2
+/// [illumos]: https://illumos.org/man/2/pipe2
+#[cfg(not(any(
+ apple,
+ target_os = "aix",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "nto"
+)))]
+#[inline]
+#[doc(alias = "pipe2")]
+pub fn pipe_with(flags: PipeFlags) -> io::Result<(OwnedFd, OwnedFd)> {
+ backend::pipe::syscalls::pipe_with(flags)
+}
+
+/// `splice(fd_in, off_in, fd_out, off_out, len, flags)`—Transfer data
+/// between a file and a pipe.
+///
+/// This function transfers up to `len` bytes of data from the file descriptor
+/// `fd_in` to the file descriptor `fd_out`, where one of the file descriptors
+/// must refer to a pipe.
+///
+/// `off_*` must be `None` if the corresponding fd refers to a pipe. Otherwise
+/// its value points to the starting offset to the file, from which the data is
+/// read/written. On success, the number of bytes read/written is added to the
+/// offset.
+///
+/// Passing `None` causes the read/write to start from the file offset, and the
+/// file offset is adjusted appropriately.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/splice.2.html
+#[cfg(linux_kernel)]
+#[inline]
+pub fn splice<FdIn: AsFd, FdOut: AsFd>(
+ fd_in: FdIn,
+ off_in: Option<&mut u64>,
+ fd_out: FdOut,
+ off_out: Option<&mut u64>,
+ len: usize,
+ flags: SpliceFlags,
+) -> io::Result<usize> {
+ backend::pipe::syscalls::splice(fd_in.as_fd(), off_in, fd_out.as_fd(), off_out, len, flags)
+}
+
+/// `vmsplice(fd, bufs, flags)`—Transfer data between memory and a pipe.
+///
+/// If `fd` is the write end of the pipe, the function maps the memory pointer
+/// at by `bufs` to the pipe.
+///
+/// If `fd` is the read end of the pipe, the function writes data from the pipe
+/// to said memory.
+///
+/// # Safety
+///
+/// If the memory must not be mutated (such as when `bufs` were originally
+/// immutable slices), it is up to the caller to ensure that the write end of
+/// the pipe is placed in `fd`.
+///
+/// Additionally if `SpliceFlags::GIFT` is set, the caller must also ensure
+/// that the contents of `bufs` in never modified following the call, and that
+/// all of the pointers in `bufs` are page aligned, and the lengths are
+/// multiples of a page size in bytes.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/vmsplice.2.html
+#[cfg(linux_kernel)]
+#[inline]
+pub unsafe fn vmsplice<PipeFd: AsFd>(
+ fd: PipeFd,
+ bufs: &[IoSliceRaw<'_>],
+ flags: SpliceFlags,
+) -> io::Result<usize> {
+ backend::pipe::syscalls::vmsplice(fd.as_fd(), bufs, flags)
+}
+
+/// `tee(fd_in, fd_out, len, flags)`—Copy data between pipes without
+/// consuming it.
+///
+/// This reads up to `len` bytes from `in_fd` without consuming them, and
+/// writes them to `out_fd`.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/tee.2.html
+#[cfg(linux_kernel)]
+#[inline]
+pub fn tee<FdIn: AsFd, FdOut: AsFd>(
+ fd_in: FdIn,
+ fd_out: FdOut,
+ len: usize,
+ flags: SpliceFlags,
+) -> io::Result<usize> {
+ backend::pipe::syscalls::tee(fd_in.as_fd(), fd_out.as_fd(), len, flags)
+}
+
+/// `fnctl(fd, F_GETPIPE_SZ)`—Return the buffer capacity of a pipe.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html
+#[cfg(linux_kernel)]
+#[inline]
+pub fn fcntl_getpipe_size<Fd: AsFd>(fd: Fd) -> io::Result<usize> {
+ backend::pipe::syscalls::fcntl_getpipe_size(fd.as_fd())
+}
+
+/// `fnctl(fd, F_SETPIPE_SZ)`—Set the buffer capacity of a pipe.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html
+#[cfg(linux_kernel)]
+#[inline]
+pub fn fcntl_setpipe_size<Fd: AsFd>(fd: Fd, size: usize) -> io::Result<usize> {
+ backend::pipe::syscalls::fcntl_setpipe_size(fd.as_fd(), size)
+}
diff --git a/vendor/rustix-1.0.8/src/prctl.rs b/vendor/rustix-1.0.8/src/prctl.rs
new file mode 100644
index 0000000..1a31a8c
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/prctl.rs
@@ -0,0 +1,71 @@
+//! Helper functions for `prctl` syscalls.
+
+#![allow(unsafe_code)]
+
+use crate::backend::prctl::syscalls;
+use crate::ffi::{c_int, c_void};
+use crate::io;
+use crate::utils::as_mut_ptr;
+use bitflags::bitflags;
+use core::mem::MaybeUninit;
+use core::ptr::null_mut;
+
+bitflags! {
+ /// `PR_PAC_AP*`
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct PointerAuthenticationKeys: u32 {
+ /// `PR_PAC_APIAKEY`—Instruction authentication key `A`.
+ const INSTRUCTION_AUTHENTICATION_KEY_A = linux_raw_sys::prctl::PR_PAC_APIAKEY;
+ /// `PR_PAC_APIBKEY`—Instruction authentication key `B`.
+ const INSTRUCTION_AUTHENTICATION_KEY_B = linux_raw_sys::prctl::PR_PAC_APIBKEY;
+ /// `PR_PAC_APDAKEY`—Data authentication key `A`.
+ const DATA_AUTHENTICATION_KEY_A = linux_raw_sys::prctl::PR_PAC_APDAKEY;
+ /// `PR_PAC_APDBKEY`—Data authentication key `B`.
+ const DATA_AUTHENTICATION_KEY_B = linux_raw_sys::prctl::PR_PAC_APDBKEY;
+ /// `PR_PAC_APGAKEY`—Generic authentication `A` key.
+ const GENERIC_AUTHENTICATION_KEY_A = linux_raw_sys::prctl::PR_PAC_APGAKEY;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[inline]
+pub(crate) unsafe fn prctl_1arg(option: c_int) -> io::Result<c_int> {
+ const NULL: *mut c_void = null_mut();
+ syscalls::prctl(option, NULL, NULL, NULL, NULL)
+}
+
+#[inline]
+pub(crate) unsafe fn prctl_2args(option: c_int, arg2: *mut c_void) -> io::Result<c_int> {
+ const NULL: *mut c_void = null_mut();
+ syscalls::prctl(option, arg2, NULL, NULL, NULL)
+}
+
+#[inline]
+pub(crate) unsafe fn prctl_3args(
+ option: c_int,
+ arg2: *mut c_void,
+ arg3: *mut c_void,
+) -> io::Result<c_int> {
+ syscalls::prctl(option, arg2, arg3, null_mut(), null_mut())
+}
+
+#[inline]
+pub(crate) unsafe fn prctl_get_at_arg2_optional<P>(option: i32) -> io::Result<P> {
+ let mut value: MaybeUninit<P> = MaybeUninit::uninit();
+ prctl_2args(option, value.as_mut_ptr().cast())?;
+ Ok(value.assume_init())
+}
+
+#[inline]
+pub(crate) unsafe fn prctl_get_at_arg2<P, T>(option: i32) -> io::Result<T>
+where
+ P: Default,
+ T: TryFrom<P, Error = io::Errno>,
+{
+ let mut value: P = Default::default();
+ prctl_2args(option, as_mut_ptr(&mut value).cast())?;
+ TryFrom::try_from(value)
+}
diff --git a/vendor/rustix-1.0.8/src/process/chdir.rs b/vendor/rustix-1.0.8/src/process/chdir.rs
new file mode 100644
index 0000000..8c37397
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/chdir.rs
@@ -0,0 +1,98 @@
+#[cfg(not(target_os = "fuchsia"))]
+use crate::backend::fd::AsFd;
+#[cfg(feature = "fs")]
+use crate::path;
+#[cfg(any(feature = "fs", not(target_os = "fuchsia")))]
+use crate::{backend, io};
+#[cfg(all(feature = "alloc", feature = "fs"))]
+use {
+ crate::ffi::{CStr, CString},
+ crate::path::SMALL_PATH_BUFFER_SIZE,
+ alloc::vec::Vec,
+};
+
+/// `chdir(path)`—Change the current working directory.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/chdir.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/chdir.2.html
+#[inline]
+#[cfg(feature = "fs")]
+#[cfg_attr(docsrs, doc(cfg(feature = "fs")))]
+pub fn chdir<P: path::Arg>(path: P) -> io::Result<()> {
+ path.into_with_c_str(backend::process::syscalls::chdir)
+}
+
+/// `fchdir(fd)`—Change the current working directory.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fchdir.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fchdir.2.html
+#[cfg(not(target_os = "fuchsia"))]
+#[inline]
+pub fn fchdir<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ backend::process::syscalls::fchdir(fd.as_fd())
+}
+
+/// `getcwd`—Return the current working directory.
+///
+/// If `reuse` already has available capacity, reuse it if possible.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getcwd.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/getcwd.3.html
+#[cfg(all(feature = "alloc", feature = "fs"))]
+#[cfg(not(target_os = "wasi"))]
+#[cfg_attr(docsrs, doc(cfg(feature = "fs")))]
+#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
+#[inline]
+pub fn getcwd<B: Into<Vec<u8>>>(reuse: B) -> io::Result<CString> {
+ _getcwd(reuse.into())
+}
+
+#[cfg(all(feature = "alloc", feature = "fs"))]
+#[allow(unsafe_code)]
+fn _getcwd(mut buffer: Vec<u8>) -> io::Result<CString> {
+ buffer.clear();
+ buffer.reserve(SMALL_PATH_BUFFER_SIZE);
+
+ loop {
+ match backend::process::syscalls::getcwd(buffer.spare_capacity_mut()) {
+ Err(io::Errno::RANGE) => {
+ // Use `Vec` reallocation strategy to grow capacity
+ // exponentially.
+ buffer.reserve(buffer.capacity() + 1);
+ }
+ Ok(_) => {
+ // SAFETY:
+ // - “These functions return a null-terminated string”
+ // - [POSIX definition 3.375: String]: “A contiguous sequence
+ // of bytes terminated by and including the first null byte.”
+ //
+ // Thus, there will be a single NUL byte at the end of the
+ // string.
+ //
+ // [POSIX definition 3.375: String]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap03.html#tag_03_375
+ unsafe {
+ buffer.set_len(
+ CStr::from_ptr(buffer.as_ptr().cast())
+ .to_bytes_with_nul()
+ .len(),
+ );
+
+ return Ok(CString::from_vec_with_nul_unchecked(buffer));
+ }
+ }
+ Err(errno) => return Err(errno),
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/process/chroot.rs b/vendor/rustix-1.0.8/src/process/chroot.rs
new file mode 100644
index 0000000..7c2476d
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/chroot.rs
@@ -0,0 +1,16 @@
+#[cfg(feature = "fs")]
+#[cfg_attr(docsrs, doc(cfg(feature = "fs")))]
+use crate::{backend, io, path};
+
+/// `chroot(path)`—Change the process root directory.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/chroot.2.html
+#[cfg(feature = "fs")]
+#[cfg_attr(docsrs, doc(cfg(feature = "fs")))]
+#[inline]
+pub fn chroot<P: path::Arg>(path: P) -> io::Result<()> {
+ path.into_with_c_str(backend::process::syscalls::chroot)
+}
diff --git a/vendor/rustix-1.0.8/src/process/exit.rs b/vendor/rustix-1.0.8/src/process/exit.rs
new file mode 100644
index 0000000..e882da1
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/exit.rs
@@ -0,0 +1,36 @@
+use crate::backend;
+
+/// `EXIT_SUCCESS` for use with [`exit`].
+///
+/// [`exit`]: std::process::exit
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/stdlib.h.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/exit.3.html
+pub const EXIT_SUCCESS: i32 = backend::c::EXIT_SUCCESS;
+
+/// `EXIT_FAILURE` for use with [`exit`].
+///
+/// [`exit`]: std::process::exit
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/stdlib.h.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/exit.3.html
+pub const EXIT_FAILURE: i32 = backend::c::EXIT_FAILURE;
+
+/// The exit status used by a process terminated with a [`Signal::ABORT`]
+/// signal.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://tldp.org/LDP/abs/html/exitcodes.html
+/// [`Signal::ABORT`]: crate::process::Signal::ABORT
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+pub const EXIT_SIGNALED_SIGABRT: i32 = backend::c::EXIT_SIGNALED_SIGABRT;
diff --git a/vendor/rustix-1.0.8/src/process/fcntl_getlk.rs b/vendor/rustix-1.0.8/src/process/fcntl_getlk.rs
new file mode 100644
index 0000000..0dbdb94
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/fcntl_getlk.rs
@@ -0,0 +1,23 @@
+use super::Flock;
+use crate::fd::AsFd;
+use crate::{backend, io};
+
+/// `fcntl(fd, F_GETLK)`—Get the first lock that blocks the lock description
+/// pointed to by the argument `lock`. If no such lock is found, then `None` is
+/// returned.
+///
+/// If `lock.typ` is set to `FlockType::Unlocked`, the returned value/error is
+/// not explicitly defined, as per POSIX, and will depend on the underlying
+/// platform implementation.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fcntl.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html
+#[inline]
+#[doc(alias = "F_GETLK")]
+pub fn fcntl_getlk<Fd: AsFd>(fd: Fd, lock: &Flock) -> io::Result<Option<Flock>> {
+ backend::process::syscalls::fcntl_getlk(fd.as_fd(), lock)
+}
diff --git a/vendor/rustix-1.0.8/src/process/id.rs b/vendor/rustix-1.0.8/src/process/id.rs
new file mode 100644
index 0000000..2e9a228
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/id.rs
@@ -0,0 +1,260 @@
+//! Unix user, group, and process identifiers.
+//!
+//! # Safety
+//!
+//! The `Uid`, `Gid`, and `Pid` types can be constructed from raw integers,
+//! which is marked unsafe because actual OS's assign special meaning to some
+//! integer values.
+#![allow(unsafe_code)]
+
+use crate::{backend, io};
+#[cfg(feature = "alloc")]
+use alloc::vec::Vec;
+
+pub use crate::pid::{Pid, RawPid};
+pub use crate::ugid::{Gid, RawGid, RawUid, Uid};
+
+/// `getuid()`—Returns the process' real user ID.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [illumos]
+/// - [NetBSD]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getuid.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/getuid.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=getuid&sektion=2
+/// [illumos]: https://www.illumos.org/man/2/getuid
+/// [NetBSD]: https://man.netbsd.org/getuid.2
+#[inline]
+#[must_use]
+pub fn getuid() -> Uid {
+ backend::ugid::syscalls::getuid()
+}
+
+/// `geteuid()`—Returns the process' effective user ID.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [illumos]
+/// - [NetBSD]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/geteuid.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/geteuid.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=geteuid&sektion=2
+/// [illumos]: https://www.illumos.org/man/2/geteuid
+/// [NetBSD]: https://man.netbsd.org/geteuid.2
+#[inline]
+#[must_use]
+pub fn geteuid() -> Uid {
+ backend::ugid::syscalls::geteuid()
+}
+
+/// `getgid()`—Returns the process' real group ID.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [illumos]
+/// - [NetBSD]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getgid.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/getgid.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=getgid&sektion=2
+/// [illumos]: https://www.illumos.org/man/2/getgid
+/// [NetBSD]: https://man.netbsd.org/getgid.2
+#[inline]
+#[must_use]
+pub fn getgid() -> Gid {
+ backend::ugid::syscalls::getgid()
+}
+
+/// `getegid()`—Returns the process' effective group ID.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [illumos]
+/// - [NetBSD]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getegid.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/getegid.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=getegid&sektion=2
+/// [illumos]: https://www.illumos.org/man/2/getegid
+/// [NetBSD]: https://man.netbsd.org/getegid.2
+#[inline]
+#[must_use]
+pub fn getegid() -> Gid {
+ backend::ugid::syscalls::getegid()
+}
+
+/// `getpid()`—Returns the process' ID.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [illumos]
+/// - [NetBSD]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getpid.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/getpid.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=getpid&sektion=2
+/// [illumos]: https://www.illumos.org/man/2/getpid
+/// [NetBSD]: https://man.netbsd.org/getpid.2
+#[inline]
+#[must_use]
+pub fn getpid() -> Pid {
+ backend::pid::syscalls::getpid()
+}
+
+/// `getppid()`—Returns the parent process' ID.
+///
+/// This will return `None` if the current process has no parent (or no parent
+/// accessible in the current PID namespace), such as if the current process is
+/// the init process ([`Pid::INIT`]).
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [illumos]
+/// - [NetBSD]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getppid.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/getppid.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=getppid&sektion=2
+/// [illumos]: https://www.illumos.org/man/2/getppid
+/// [NetBSD]: https://man.netbsd.org/getppid.2
+#[inline]
+#[must_use]
+pub fn getppid() -> Option<Pid> {
+ backend::process::syscalls::getppid()
+}
+
+/// `getpgid(pid)`—Returns the process group ID of the given process.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [illumos]
+/// - [NetBSD]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getpgid.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/getpgid.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=getpgid&sektion=2
+/// [illumos]: https://www.illumos.org/man/2/getpgid
+/// [NetBSD]: https://man.netbsd.org/getpgid.2
+#[inline]
+pub fn getpgid(pid: Option<Pid>) -> io::Result<Pid> {
+ backend::process::syscalls::getpgid(pid)
+}
+
+/// `setpgid(pid, pgid)`—Sets the process group ID of the given process.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [illumos]
+/// - [NetBSD]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/setpgid.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/setpgid.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=setpgid&sektion=2
+/// [illumos]: https://www.illumos.org/man/2/setpgid
+/// [NetBSD]: https://man.netbsd.org/setpgid.2
+#[inline]
+pub fn setpgid(pid: Option<Pid>, pgid: Option<Pid>) -> io::Result<()> {
+ backend::process::syscalls::setpgid(pid, pgid)
+}
+
+/// `getpgrp()`—Returns the process' group ID.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [illumos]
+/// - [NetBSD]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getpgrp.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/getpgrp.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=getpgrp&sektion=2
+/// [illumos]: https://www.illumos.org/man/2/getpgrp
+/// [NetBSD]: https://man.netbsd.org/getpgrp.2
+#[inline]
+#[must_use]
+pub fn getpgrp() -> Pid {
+ backend::process::syscalls::getpgrp()
+}
+
+/// `getsid(pid)`—Get the session ID of the given process.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [illumos]
+/// - [NetBSD]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getsid.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/getsid.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=getsid&sektion=2
+/// [illumos]: https://www.illumos.org/man/2/getsid
+/// [NetBSD]: https://man.netbsd.org/getsid.2
+#[cfg(not(target_os = "redox"))]
+#[inline]
+pub fn getsid(pid: Option<Pid>) -> io::Result<Pid> {
+ backend::process::syscalls::getsid(pid)
+}
+
+/// `setsid()`—Create a new session.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [illumos]
+/// - [NetBSD]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/setsid.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/setsid.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=setsid&sektion=2
+/// [illumos]: https://www.illumos.org/man/2/setsid
+/// [NetBSD]: https://man.netbsd.org/setsid.2
+#[inline]
+pub fn setsid() -> io::Result<Pid> {
+ backend::process::syscalls::setsid()
+}
+
+/// `getgroups()`—Return a list of the current user's groups.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getgroups.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/getgroups.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=getgroups&sektion=2
+/// [NetBSD]: https://man.netbsd.org/getgroups.2
+#[cfg(feature = "alloc")]
+#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
+pub fn getgroups() -> io::Result<Vec<Gid>> {
+ // This code would benefit from having a better way to read into
+ // uninitialized memory, but that requires `unsafe`.
+ let mut buffer = Vec::with_capacity(0);
+ let ngroups = backend::process::syscalls::getgroups(&mut buffer)?;
+ buffer.resize(ngroups, Gid::ROOT);
+ backend::process::syscalls::getgroups(&mut buffer)?;
+ Ok(buffer)
+}
diff --git a/vendor/rustix-1.0.8/src/process/ioctl.rs b/vendor/rustix-1.0.8/src/process/ioctl.rs
new file mode 100644
index 0000000..5362504
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/ioctl.rs
@@ -0,0 +1,73 @@
+//! Process-oriented `ioctl`s.
+//!
+//! # Safety
+//!
+//! This module invokes `ioctl`s.
+
+#![allow(unsafe_code)]
+
+use crate::{backend, io, ioctl};
+use backend::c;
+use backend::fd::AsFd;
+
+/// `ioctl(fd, TIOCSCTTY, 0)`—Sets the controlling terminal for the process.
+///
+/// # References
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man4/tty_ioctl.4.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=tty&sektion=4
+/// [NetBSD]: https://man.netbsd.org/tty.4
+/// [OpenBSD]: https://man.openbsd.org/tty.4
+#[cfg(not(any(
+ windows,
+ target_os = "aix",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "wasi"
+)))]
+#[inline]
+#[doc(alias = "TIOCSCTTY")]
+pub fn ioctl_tiocsctty<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ unsafe { ioctl::ioctl(fd, Tiocsctty) }
+}
+
+#[cfg(not(any(
+ windows,
+ target_os = "aix",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "wasi"
+)))]
+struct Tiocsctty;
+
+#[cfg(not(any(
+ windows,
+ target_os = "aix",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "wasi"
+)))]
+unsafe impl ioctl::Ioctl for Tiocsctty {
+ type Output = ();
+
+ const IS_MUTATING: bool = false;
+
+ fn opcode(&self) -> ioctl::Opcode {
+ c::TIOCSCTTY as ioctl::Opcode
+ }
+
+ fn as_ptr(&mut self) -> *mut c::c_void {
+ crate::utils::as_ptr(&0_u32) as *mut c::c_void
+ }
+
+ unsafe fn output_from_ptr(
+ _: ioctl::IoctlOutput,
+ _: *mut c::c_void,
+ ) -> io::Result<Self::Output> {
+ Ok(())
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/process/kill.rs b/vendor/rustix-1.0.8/src/process/kill.rs
new file mode 100644
index 0000000..8299b8e
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/kill.rs
@@ -0,0 +1,98 @@
+use crate::process::Pid;
+use crate::{backend, io};
+
+pub use crate::signal::Signal;
+
+/// `kill(pid, sig)`—Sends a signal to a process.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/kill.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/kill.2.html
+#[inline]
+#[doc(alias = "kill")]
+pub fn kill_process(pid: Pid, sig: Signal) -> io::Result<()> {
+ backend::process::syscalls::kill_process(pid, sig)
+}
+
+/// `kill(-pid, sig)`—Sends a signal to all processes in a process group.
+///
+/// If `pid` is [`Pid::INIT`], this sends a signal to all processes the current
+/// process has permission to send signals to, except process `Pid::INIT`,
+/// possibly other system-specific processes, and on some systems, the current
+/// process.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/kill.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/kill.2.html
+#[inline]
+#[doc(alias = "kill")]
+pub fn kill_process_group(pid: Pid, sig: Signal) -> io::Result<()> {
+ backend::process::syscalls::kill_process_group(pid, sig)
+}
+
+/// `kill(0, sig)`—Sends a signal to all processes in the current process
+/// group.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/kill.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/kill.2.html
+#[inline]
+#[doc(alias = "kill")]
+pub fn kill_current_process_group(sig: Signal) -> io::Result<()> {
+ backend::process::syscalls::kill_current_process_group(sig)
+}
+
+/// `kill(pid, 0)`—Check validity of pid and permissions to send signals to
+/// the process, without actually sending any signals.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/kill.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/kill.2.html
+#[inline]
+#[doc(alias = "kill")]
+pub fn test_kill_process(pid: Pid) -> io::Result<()> {
+ backend::process::syscalls::test_kill_process(pid)
+}
+
+/// `kill(-pid, 0)`—Check validity of pid and permissions to send signals to
+/// all processes in the process group, without actually sending any signals.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/kill.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/kill.2.html
+#[inline]
+#[doc(alias = "kill")]
+pub fn test_kill_process_group(pid: Pid) -> io::Result<()> {
+ backend::process::syscalls::test_kill_process_group(pid)
+}
+
+/// `kill(0, 0)`—Check validity of pid and permissions to send signals to the
+/// all processes in the current process group, without actually sending any
+/// signals.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/kill.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/kill.2.html
+#[inline]
+#[doc(alias = "kill")]
+pub fn test_kill_current_process_group() -> io::Result<()> {
+ backend::process::syscalls::test_kill_current_process_group()
+}
diff --git a/vendor/rustix-1.0.8/src/process/mod.rs b/vendor/rustix-1.0.8/src/process/mod.rs
new file mode 100644
index 0000000..7509b06
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/mod.rs
@@ -0,0 +1,114 @@
+//! Process-associated operations.
+
+#[cfg(not(target_os = "wasi"))]
+mod chdir;
+#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))]
+mod chroot;
+mod exit;
+#[cfg(not(any(
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+mod fcntl_getlk;
+#[cfg(not(target_os = "wasi"))] // WASI doesn't have get[gpu]id.
+mod id;
+#[cfg(not(any(target_os = "aix", target_os = "espidf", target_os = "vita")))]
+mod ioctl;
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+mod kill;
+#[cfg(target_os = "linux")]
+mod pidfd;
+#[cfg(target_os = "linux")]
+mod pidfd_getfd;
+#[cfg(target_os = "linux")]
+mod pivot_root;
+#[cfg(linux_kernel)]
+mod prctl;
+#[cfg(not(any(target_os = "fuchsia", target_os = "vita", target_os = "wasi")))]
+// WASI doesn't have [gs]etpriority.
+mod priority;
+#[cfg(freebsdlike)]
+mod procctl;
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+mod rlimit;
+#[cfg(not(any(
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+mod types;
+#[cfg(not(target_os = "wasi"))] // WASI doesn't have umask.
+mod umask;
+#[cfg(not(any(target_os = "espidf", target_os = "vita", target_os = "wasi")))]
+mod wait;
+
+#[cfg(not(target_os = "wasi"))]
+pub use chdir::*;
+#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))]
+pub use chroot::*;
+pub use exit::*;
+#[cfg(not(any(
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+pub use fcntl_getlk::*;
+#[cfg(not(target_os = "wasi"))]
+pub use id::*;
+#[cfg(not(any(target_os = "aix", target_os = "espidf", target_os = "vita")))]
+pub use ioctl::*;
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+pub use kill::*;
+#[cfg(target_os = "linux")]
+pub use pidfd::*;
+#[cfg(target_os = "linux")]
+pub use pidfd_getfd::*;
+#[cfg(target_os = "linux")]
+pub use pivot_root::*;
+#[cfg(linux_kernel)]
+pub use prctl::*;
+#[cfg(not(any(target_os = "fuchsia", target_os = "vita", target_os = "wasi")))]
+pub use priority::*;
+#[cfg(freebsdlike)]
+pub use procctl::*;
+#[cfg(not(any(
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+pub use rlimit::*;
+#[cfg(not(any(
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "fuchsia",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+pub use types::*;
+#[cfg(not(target_os = "wasi"))]
+pub use umask::*;
+#[cfg(not(any(target_os = "espidf", target_os = "vita", target_os = "wasi")))]
+pub use wait::*;
diff --git a/vendor/rustix-1.0.8/src/process/pidfd.rs b/vendor/rustix-1.0.8/src/process/pidfd.rs
new file mode 100644
index 0000000..f812a9f
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/pidfd.rs
@@ -0,0 +1,43 @@
+use crate::fd::OwnedFd;
+use crate::process::{Pid, Signal};
+use crate::{backend, ffi, io};
+use backend::fd::AsFd;
+
+bitflags::bitflags! {
+ /// `PIDFD_*` flags for use with [`pidfd_open`].
+ ///
+ /// [`pidfd_open`]: crate::process::pidfd_open
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct PidfdFlags: ffi::c_uint {
+ /// `PIDFD_NONBLOCK`
+ const NONBLOCK = backend::c::PIDFD_NONBLOCK;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `syscall(SYS_pidfd_open, pid, flags)`—Creates a file descriptor for a
+/// process.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/pidfd_open.2.html
+#[inline]
+pub fn pidfd_open(pid: Pid, flags: PidfdFlags) -> io::Result<OwnedFd> {
+ backend::process::syscalls::pidfd_open(pid, flags)
+}
+
+/// `syscall(SYS_pidfd_send_signal, pidfd, sig, NULL, 0)`—Send a signal to a
+/// process specified by a file descriptor.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/pidfd_send_signal.2.html
+#[inline]
+pub fn pidfd_send_signal<Fd: AsFd>(pidfd: Fd, sig: Signal) -> io::Result<()> {
+ backend::process::syscalls::pidfd_send_signal(pidfd.as_fd(), sig)
+}
diff --git a/vendor/rustix-1.0.8/src/process/pidfd_getfd.rs b/vendor/rustix-1.0.8/src/process/pidfd_getfd.rs
new file mode 100644
index 0000000..1be215e
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/pidfd_getfd.rs
@@ -0,0 +1,56 @@
+//! The [`pidfd_getfd`] function and supporting types.
+
+#![allow(unsafe_code)]
+use crate::fd::OwnedFd;
+use crate::{backend, ffi, io};
+use backend::fd::{AsFd, RawFd};
+
+/// Raw file descriptor in another process.
+///
+/// A distinct type alias is used here to inform the user that normal file
+/// descriptors from the calling process should not be used. The provided file
+/// descriptor is used by the kernel as the index into the file descriptor
+/// table of an entirely different process.
+pub type ForeignRawFd = RawFd;
+
+bitflags::bitflags! {
+ /// All flags are reserved for future use.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct PidfdGetfdFlags: ffi::c_uint {
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `syscall(SYS_pidfd_getfd, pidfd, flags)`—Obtain a duplicate of another
+/// process' file descriptor.
+///
+/// # References
+/// - [Linux]
+///
+/// # Warning
+///
+/// This function is generally safe for the calling process, but it can impact
+/// the target process in unexpected ways. If you want to ensure that Rust I/O
+/// safety assumptions continue to hold in the target process, then the target
+/// process must have communicated the file description number to the calling
+/// process from a value of a type that implements `AsRawFd`, and the target
+/// process must not drop that value until after the calling process has
+/// returned from `pidfd_getfd`.
+///
+/// When `pidfd_getfd` is used to debug the target, or the target is not a Rust
+/// application, or `pidfd_getfd` is used in any other way, then extra care
+/// should be taken to avoid unexpected behaviour or crashes.
+///
+/// For further details, see the references above.
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/pidfd_getfd.2.html
+#[inline]
+pub fn pidfd_getfd<Fd: AsFd>(
+ pidfd: Fd,
+ targetfd: ForeignRawFd,
+ flags: PidfdGetfdFlags,
+) -> io::Result<OwnedFd> {
+ backend::process::syscalls::pidfd_getfd(pidfd.as_fd(), targetfd, flags)
+}
diff --git a/vendor/rustix-1.0.8/src/process/pivot_root.rs b/vendor/rustix-1.0.8/src/process/pivot_root.rs
new file mode 100644
index 0000000..9167277
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/pivot_root.rs
@@ -0,0 +1,18 @@
+#[cfg(feature = "fs")]
+#[cfg_attr(docsrs, doc(cfg(feature = "fs")))]
+use crate::{backend, io, path};
+
+/// `pivot_root(new_root, put_old)`—Change the root mount.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/pivot_root.2.html
+#[cfg(feature = "fs")]
+#[cfg_attr(docsrs, doc(cfg(feature = "fs")))]
+#[inline]
+pub fn pivot_root<P: path::Arg, Q: path::Arg>(new_root: P, put_old: Q) -> io::Result<()> {
+ new_root.into_with_c_str(|new_root| {
+ put_old.into_with_c_str(|put_old| backend::process::syscalls::pivot_root(new_root, put_old))
+ })
+}
diff --git a/vendor/rustix-1.0.8/src/process/prctl.rs b/vendor/rustix-1.0.8/src/process/prctl.rs
new file mode 100644
index 0000000..8b08409
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/prctl.rs
@@ -0,0 +1,1165 @@
+//! Bindings for the Linux `prctl` system call.
+//!
+//! There are similarities (but also differences) with FreeBSD's `procctl`
+//! system call, whose interface is located in the `procctl.rs` file.
+
+#![allow(unsafe_code)]
+
+use core::mem::size_of;
+use core::num::NonZeroI32;
+use core::ptr::{null, null_mut, NonNull};
+
+use bitflags::bitflags;
+
+use crate::backend::prctl::syscalls;
+use crate::fd::{AsRawFd as _, BorrowedFd, RawFd};
+use crate::ffi::{c_int, c_uint, c_void, CStr};
+use crate::io;
+use crate::prctl::*;
+use crate::process::{Pid, RawPid};
+use crate::signal::Signal;
+use crate::utils::{as_mut_ptr, as_ptr};
+
+//
+// PR_GET_PDEATHSIG/PR_SET_PDEATHSIG
+//
+
+const PR_GET_PDEATHSIG: c_int = 2;
+
+/// Get the current value of the parent process death signal.
+///
+/// # References
+/// - [Linux: `prctl(PR_GET_PDEATHSIG,…)`]
+/// - [FreeBSD: `procctl(PROC_PDEATHSIG_STATUS,…)`]
+///
+/// [Linux: `prctl(PR_GET_PDEATHSIG,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+/// [FreeBSD: `procctl(PROC_PDEATHSIG_STATUS,…)`]: https://man.freebsd.org/cgi/man.cgi?query=procctl&sektion=2
+#[inline]
+#[doc(alias = "PR_GET_PDEATHSIG")]
+pub fn parent_process_death_signal() -> io::Result<Option<Signal>> {
+ let raw = unsafe { prctl_get_at_arg2_optional::<c_int>(PR_GET_PDEATHSIG)? };
+ if let Some(non_zero) = NonZeroI32::new(raw) {
+ // SAFETY: The only way to get a libc-reserved signal number in
+ // here would be to do something equivalent to
+ // `set_parent_process_death_signal`, but that would have required
+ // using a `Signal` with a libc-reserved value.
+ Ok(Some(unsafe {
+ Signal::from_raw_nonzero_unchecked(non_zero)
+ }))
+ } else {
+ Ok(None)
+ }
+}
+
+const PR_SET_PDEATHSIG: c_int = 1;
+
+/// Set the parent-death signal of the calling process.
+///
+/// # References
+/// - [Linux: `prctl(PR_SET_PDEATHSIG,…)`]
+/// - [FreeBSD: `procctl(PROC_PDEATHSIG_CTL,…)`]
+///
+/// [Linux: `prctl(PR_SET_PDEATHSIG,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+/// [FreeBSD: `procctl(PROC_PDEATHSIG_CTL,…)`]: https://man.freebsd.org/cgi/man.cgi?query=procctl&sektion=2
+#[inline]
+#[doc(alias = "PR_SET_PDEATHSIG")]
+pub fn set_parent_process_death_signal(signal: Option<Signal>) -> io::Result<()> {
+ let signal = signal.map_or(0_usize, |signal| signal.as_raw() as usize);
+ unsafe { prctl_2args(PR_SET_PDEATHSIG, signal as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_GET_DUMPABLE/PR_SET_DUMPABLE
+//
+
+const PR_GET_DUMPABLE: c_int = 3;
+
+const SUID_DUMP_DISABLE: i32 = 0;
+const SUID_DUMP_USER: i32 = 1;
+const SUID_DUMP_ROOT: i32 = 2;
+
+/// `SUID_DUMP_*` values for use with [`dumpable_behavior`] and
+/// [`set_dumpable_behavior`].
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(i32)]
+pub enum DumpableBehavior {
+ /// Not dumpable.
+ #[doc(alias = "SUID_DUMP_DISABLE")]
+ NotDumpable = SUID_DUMP_DISABLE,
+ /// Dumpable.
+ #[doc(alias = "SUID_DUMP_USER")]
+ Dumpable = SUID_DUMP_USER,
+ /// Dumpable but only readable by root.
+ #[doc(alias = "SUID_DUMP_ROOT")]
+ DumpableReadableOnlyByRoot = SUID_DUMP_ROOT,
+}
+
+impl TryFrom<i32> for DumpableBehavior {
+ type Error = io::Errno;
+
+ fn try_from(value: i32) -> Result<Self, Self::Error> {
+ match value {
+ SUID_DUMP_DISABLE => Ok(Self::NotDumpable),
+ SUID_DUMP_USER => Ok(Self::Dumpable),
+ SUID_DUMP_ROOT => Ok(Self::DumpableReadableOnlyByRoot),
+ _ => Err(io::Errno::RANGE),
+ }
+ }
+}
+
+/// Get the current state of the calling process' `dumpable` attribute.
+///
+/// # References
+/// - [`prctl(PR_GET_DUMPABLE,…)`]
+///
+/// [`prctl(PR_GET_DUMPABLE,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_GET_DUMPABLE")]
+pub fn dumpable_behavior() -> io::Result<DumpableBehavior> {
+ unsafe { prctl_1arg(PR_GET_DUMPABLE) }.and_then(TryInto::try_into)
+}
+
+const PR_SET_DUMPABLE: c_int = 4;
+
+/// Set the state of the `dumpable` attribute.
+///
+/// This attribute determines whether the process can be traced and whether
+/// core dumps are produced for the calling process upon delivery of a signal
+/// whose default behavior is to produce a core dump.
+///
+/// A similar function with the same name is available on FreeBSD (as part of
+/// the `procctl` interface), but it has an extra argument which allows to
+/// select a process other then the current process.
+///
+/// # References
+/// - [`prctl(PR_SET_DUMPABLE,…)`]
+///
+/// [`prctl(PR_SET_DUMPABLE,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_DUMPABLE")]
+pub fn set_dumpable_behavior(config: DumpableBehavior) -> io::Result<()> {
+ unsafe { prctl_2args(PR_SET_DUMPABLE, config as usize as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_GET_UNALIGN/PR_SET_UNALIGN
+//
+
+const PR_GET_UNALIGN: c_int = 5;
+
+bitflags! {
+ /// `PR_UNALIGN_*` flags for use with [`unaligned_access_control`] and
+ /// [`set_unaligned_access_control`].
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct UnalignedAccessControl: u32 {
+ /// Silently fix up unaligned user accesses.
+ #[doc(alias = "NOPRINT")]
+ #[doc(alias = "PR_UNALIGN_NOPRINT")]
+ const NO_PRINT = 1;
+ /// Generate a [`Signal::Bus`] signal on unaligned user access.
+ #[doc(alias = "PR_UNALIGN_SIGBUS")]
+ const SIGBUS = 2;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// Get unaligned access control bits.
+///
+/// # References
+/// - [`prctl(PR_GET_UNALIGN,…)`]
+///
+/// [`prctl(PR_GET_UNALIGN,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_GET_UNALIGN")]
+pub fn unaligned_access_control() -> io::Result<UnalignedAccessControl> {
+ let r = unsafe { prctl_get_at_arg2_optional::<c_uint>(PR_GET_UNALIGN)? };
+ UnalignedAccessControl::from_bits(r).ok_or(io::Errno::RANGE)
+}
+
+const PR_SET_UNALIGN: c_int = 6;
+
+/// Set unaligned access control bits.
+///
+/// # References
+/// - [`prctl(PR_SET_UNALIGN,…)`]
+///
+/// [`prctl(PR_SET_UNALIGN,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_UNALIGN")]
+pub fn set_unaligned_access_control(config: UnalignedAccessControl) -> io::Result<()> {
+ unsafe { prctl_2args(PR_SET_UNALIGN, config.bits() as usize as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_GET_FPEMU/PR_SET_FPEMU
+//
+
+const PR_GET_FPEMU: c_int = 9;
+
+bitflags! {
+ /// `PR_FPEMU_*` flags for use with [`floating_point_emulation_control`]
+ /// and [`set_floating_point_emulation_control`].
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct FloatingPointEmulationControl: u32 {
+ /// Silently emulate floating point operations accesses.
+ #[doc(alias = "PR_UNALIGN_NOPRINT")]
+ const NO_PRINT = 1;
+ /// Don't emulate floating point operations, send a [`Signal::Fpe`]
+ /// signal instead.
+ #[doc(alias = "PR_UNALIGN_SIGFPE")]
+ const SIGFPE = 2;
+ }
+}
+
+/// Get floating point emulation control bits.
+///
+/// # References
+/// - [`prctl(PR_GET_FPEMU,…)`]
+///
+/// [`prctl(PR_GET_FPEMU,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_GET_FPEMU")]
+pub fn floating_point_emulation_control() -> io::Result<FloatingPointEmulationControl> {
+ let r = unsafe { prctl_get_at_arg2_optional::<c_uint>(PR_GET_FPEMU)? };
+ FloatingPointEmulationControl::from_bits(r).ok_or(io::Errno::RANGE)
+}
+
+const PR_SET_FPEMU: c_int = 10;
+
+/// Set floating point emulation control bits.
+///
+/// # References
+/// - [`prctl(PR_SET_FPEMU,…)`]
+///
+/// [`prctl(PR_SET_FPEMU,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_FPEMU")]
+pub fn set_floating_point_emulation_control(
+ config: FloatingPointEmulationControl,
+) -> io::Result<()> {
+ unsafe { prctl_2args(PR_SET_FPEMU, config.bits() as usize as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_GET_FPEXC/PR_SET_FPEXC
+//
+
+const PR_GET_FPEXC: c_int = 11;
+
+bitflags! {
+ /// Zero means floating point exceptions are disabled.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct FloatingPointExceptionMode: u32 {
+ /// Async non-recoverable exception mode.
+ const NONRECOV = 1;
+ /// Async recoverable exception mode.
+ const ASYNC = 2;
+ /// Precise exception mode.
+ const PRECISE = 3;
+
+ /// Use FPEXC for floating point exception enables.
+ const SW_ENABLE = 0x80;
+ /// Floating point divide by zero.
+ const DIV = 0x01_0000;
+ /// Floating point overflow.
+ const OVF = 0x02_0000;
+ /// Floating point underflow.
+ const UND = 0x04_0000;
+ /// Floating point inexact result.
+ const RES = 0x08_0000;
+ /// Floating point invalid operation.
+ const INV = 0x10_0000;
+ }
+}
+
+/// Get floating point exception mode.
+///
+/// # References
+/// - [`prctl(PR_GET_FPEXC,…)`]
+///
+/// [`prctl(PR_GET_FPEXC,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_GET_FPEXEC")]
+pub fn floating_point_exception_mode() -> io::Result<Option<FloatingPointExceptionMode>> {
+ unsafe { prctl_get_at_arg2_optional::<c_uint>(PR_GET_FPEXC) }
+ .map(FloatingPointExceptionMode::from_bits)
+}
+
+const PR_SET_FPEXC: c_int = 12;
+
+/// Set floating point exception mode.
+///
+/// # References
+/// - [`prctl(PR_SET_FPEXC,…)`]
+///
+/// [`prctl(PR_SET_FPEXC,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_FPEXEC")]
+pub fn set_floating_point_exception_mode(
+ config: Option<FloatingPointExceptionMode>,
+) -> io::Result<()> {
+ let config = config.as_ref().map_or(0, FloatingPointExceptionMode::bits);
+ unsafe { prctl_2args(PR_SET_FPEXC, config as usize as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_GET_TIMING/PR_SET_TIMING
+//
+
+const PR_GET_TIMING: c_int = 13;
+
+const PR_TIMING_STATISTICAL: i32 = 0;
+const PR_TIMING_TIMESTAMP: i32 = 1;
+
+/// `PR_TIMING_*` values for use with [`timing_method`] and
+/// [`set_timing_method`].
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(i32)]
+pub enum TimingMethod {
+ /// Normal, traditional, statistical process timing.
+ Statistical = PR_TIMING_STATISTICAL,
+ /// Accurate timestamp based process timing.
+ TimeStamp = PR_TIMING_TIMESTAMP,
+}
+
+impl TryFrom<i32> for TimingMethod {
+ type Error = io::Errno;
+
+ fn try_from(value: i32) -> Result<Self, Self::Error> {
+ match value {
+ PR_TIMING_STATISTICAL => Ok(Self::Statistical),
+ PR_TIMING_TIMESTAMP => Ok(Self::TimeStamp),
+ _ => Err(io::Errno::RANGE),
+ }
+ }
+}
+
+/// Get which process timing method is currently in use.
+///
+/// # References
+/// - [`prctl(PR_GET_TIMING,…)`]
+///
+/// [`prctl(PR_GET_TIMING,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_GET_TIMING")]
+pub fn timing_method() -> io::Result<TimingMethod> {
+ unsafe { prctl_1arg(PR_GET_TIMING) }.and_then(TryInto::try_into)
+}
+
+const PR_SET_TIMING: c_int = 14;
+
+/// Set whether to use (normal, traditional) statistical process timing or
+/// accurate timestamp-based process timing.
+///
+/// # References
+/// - [`prctl(PR_SET_TIMING,…)`]
+///
+/// [`prctl(PR_SET_TIMING,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_TIMING")]
+pub fn set_timing_method(method: TimingMethod) -> io::Result<()> {
+ unsafe { prctl_2args(PR_SET_TIMING, method as usize as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_GET_ENDIAN/PR_SET_ENDIAN
+//
+
+const PR_GET_ENDIAN: c_int = 19;
+
+const PR_ENDIAN_BIG: u32 = 0;
+const PR_ENDIAN_LITTLE: u32 = 1;
+const PR_ENDIAN_PPC_LITTLE: u32 = 2;
+
+/// `PR_ENDIAN_*` values for use with [`endian_mode`].
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(u32)]
+pub enum EndianMode {
+ /// Big endian mode.
+ Big = PR_ENDIAN_BIG,
+ /// True little endian mode.
+ Little = PR_ENDIAN_LITTLE,
+ /// `PowerPC` pseudo little endian.
+ PowerPCLittle = PR_ENDIAN_PPC_LITTLE,
+}
+
+impl TryFrom<u32> for EndianMode {
+ type Error = io::Errno;
+
+ fn try_from(value: u32) -> Result<Self, Self::Error> {
+ match value {
+ PR_ENDIAN_BIG => Ok(Self::Big),
+ PR_ENDIAN_LITTLE => Ok(Self::Little),
+ PR_ENDIAN_PPC_LITTLE => Ok(Self::PowerPCLittle),
+ _ => Err(io::Errno::RANGE),
+ }
+ }
+}
+
+/// Get the endianness of the calling process.
+///
+/// # References
+/// - [`prctl(PR_GET_ENDIAN,…)`]
+///
+/// [`prctl(PR_GET_ENDIAN,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_GET_ENDIAN")]
+pub fn endian_mode() -> io::Result<EndianMode> {
+ unsafe { prctl_get_at_arg2::<c_uint, _>(PR_GET_ENDIAN) }
+}
+
+const PR_SET_ENDIAN: c_int = 20;
+
+/// Set the endianness of the calling process.
+///
+/// # References
+/// - [`prctl(PR_SET_ENDIAN,…)`]
+///
+/// # Safety
+///
+/// Please ensure the conditions necessary to safely call this function, as
+/// detailed in the references above.
+///
+/// [`prctl(PR_SET_ENDIAN,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_ENDIAN")]
+pub unsafe fn set_endian_mode(mode: EndianMode) -> io::Result<()> {
+ prctl_2args(PR_SET_ENDIAN, mode as usize as *mut _).map(|_r| ())
+}
+
+//
+// PR_GET_TSC/PR_SET_TSC
+//
+
+const PR_GET_TSC: c_int = 25;
+
+const PR_TSC_ENABLE: u32 = 1;
+const PR_TSC_SIGSEGV: u32 = 2;
+
+/// `PR_TSC_*` values for use with [`time_stamp_counter_readability`] and
+/// [`set_time_stamp_counter_readability`].
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(u32)]
+pub enum TimeStampCounterReadability {
+ /// Allow the use of the timestamp counter.
+ Readable = PR_TSC_ENABLE,
+ /// Throw a [`Signal::SEGV`] signal instead of reading the TSC.
+ RaiseSIGSEGV = PR_TSC_SIGSEGV,
+}
+
+impl TryFrom<u32> for TimeStampCounterReadability {
+ type Error = io::Errno;
+
+ fn try_from(value: u32) -> Result<Self, Self::Error> {
+ match value {
+ PR_TSC_ENABLE => Ok(Self::Readable),
+ PR_TSC_SIGSEGV => Ok(Self::RaiseSIGSEGV),
+ _ => Err(io::Errno::RANGE),
+ }
+ }
+}
+
+/// Get the state of the flag determining if the timestamp counter can be read.
+///
+/// # References
+/// - [`prctl(PR_GET_TSC,…)`]
+///
+/// [`prctl(PR_GET_TSC,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_GET_TSC")]
+pub fn time_stamp_counter_readability() -> io::Result<TimeStampCounterReadability> {
+ unsafe { prctl_get_at_arg2::<c_uint, _>(PR_GET_TSC) }
+}
+
+const PR_SET_TSC: c_int = 26;
+
+/// Set the state of the flag determining if the timestamp counter can be read
+/// by the process.
+///
+/// # References
+/// - [`prctl(PR_SET_TSC,…)`]
+///
+/// [`prctl(PR_SET_TSC,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_TSC")]
+pub fn set_time_stamp_counter_readability(
+ readability: TimeStampCounterReadability,
+) -> io::Result<()> {
+ unsafe { prctl_2args(PR_SET_TSC, readability as usize as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_TASK_PERF_EVENTS_DISABLE/PR_TASK_PERF_EVENTS_ENABLE
+//
+
+const PR_TASK_PERF_EVENTS_DISABLE: c_int = 31;
+const PR_TASK_PERF_EVENTS_ENABLE: c_int = 32;
+
+/// Enable or disable all performance counters attached to the calling process.
+///
+/// # References
+/// - [`prctl(PR_TASK_PERF_EVENTS_ENABLE,…)`]
+/// - [`prctl(PR_TASK_PERF_EVENTS_DISABLE,…)`]
+///
+/// [`prctl(PR_TASK_PERF_EVENTS_ENABLE,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+/// [`prctl(PR_TASK_PERF_EVENTS_DISABLE,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_TASK_PERF_EVENTS_ENABLE")]
+#[doc(alias = "PR_TASK_PERF_EVENTS_DISABLE")]
+pub fn configure_performance_counters(enable: bool) -> io::Result<()> {
+ let option = if enable {
+ PR_TASK_PERF_EVENTS_ENABLE
+ } else {
+ PR_TASK_PERF_EVENTS_DISABLE
+ };
+
+ unsafe { prctl_1arg(option) }.map(|_r| ())
+}
+
+//
+// PR_MCE_KILL_GET/PR_MCE_KILL
+//
+
+const PR_MCE_KILL_GET: c_int = 34;
+
+const PR_MCE_KILL_LATE: u32 = 0;
+const PR_MCE_KILL_EARLY: u32 = 1;
+const PR_MCE_KILL_DEFAULT: u32 = 2;
+
+/// `PR_MCE_KILL_*` values for use with
+/// [`machine_check_memory_corruption_kill_policy`] and
+/// [`set_machine_check_memory_corruption_kill_policy`].
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(u32)]
+pub enum MachineCheckMemoryCorruptionKillPolicy {
+ /// Late kill policy.
+ #[doc(alias = "PR_MCE_KILL_LATE")]
+ Late = PR_MCE_KILL_LATE,
+ /// Early kill policy.
+ #[doc(alias = "PR_MCE_KILL_EARLY")]
+ Early = PR_MCE_KILL_EARLY,
+ /// System-wide default policy.
+ #[doc(alias = "PR_MCE_KILL_DEFAULT")]
+ Default = PR_MCE_KILL_DEFAULT,
+}
+
+impl TryFrom<u32> for MachineCheckMemoryCorruptionKillPolicy {
+ type Error = io::Errno;
+
+ fn try_from(value: u32) -> Result<Self, Self::Error> {
+ match value {
+ PR_MCE_KILL_LATE => Ok(Self::Late),
+ PR_MCE_KILL_EARLY => Ok(Self::Early),
+ PR_MCE_KILL_DEFAULT => Ok(Self::Default),
+ _ => Err(io::Errno::RANGE),
+ }
+ }
+}
+
+/// Get the current per-process machine check kill policy.
+///
+/// # References
+/// - [`prctl(PR_MCE_KILL_GET,…)`]
+///
+/// [`prctl(PR_MCE_KILL_GET,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_MCE_KILL_GET")]
+pub fn machine_check_memory_corruption_kill_policy(
+) -> io::Result<MachineCheckMemoryCorruptionKillPolicy> {
+ let r = unsafe { prctl_1arg(PR_MCE_KILL_GET)? } as c_uint;
+ MachineCheckMemoryCorruptionKillPolicy::try_from(r)
+}
+
+const PR_MCE_KILL: c_int = 33;
+
+const PR_MCE_KILL_CLEAR: usize = 0;
+const PR_MCE_KILL_SET: usize = 1;
+
+/// Set the machine check memory corruption kill policy for the calling thread.
+///
+/// # References
+/// - [`prctl(PR_MCE_KILL,…)`]
+///
+/// [`prctl(PR_MCE_KILL,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_MCE_KILL")]
+pub fn set_machine_check_memory_corruption_kill_policy(
+ policy: Option<MachineCheckMemoryCorruptionKillPolicy>,
+) -> io::Result<()> {
+ let (sub_operation, policy) = if let Some(policy) = policy {
+ (PR_MCE_KILL_SET, policy as usize as *mut _)
+ } else {
+ (PR_MCE_KILL_CLEAR, null_mut())
+ };
+
+ unsafe { prctl_3args(PR_MCE_KILL, sub_operation as *mut _, policy) }.map(|_r| ())
+}
+
+//
+// PR_SET_MM
+//
+
+const PR_SET_MM: c_int = 35;
+
+const PR_SET_MM_START_CODE: u32 = 1;
+const PR_SET_MM_END_CODE: u32 = 2;
+const PR_SET_MM_START_DATA: u32 = 3;
+const PR_SET_MM_END_DATA: u32 = 4;
+const PR_SET_MM_START_STACK: u32 = 5;
+const PR_SET_MM_START_BRK: u32 = 6;
+const PR_SET_MM_BRK: u32 = 7;
+const PR_SET_MM_ARG_START: u32 = 8;
+const PR_SET_MM_ARG_END: u32 = 9;
+const PR_SET_MM_ENV_START: u32 = 10;
+const PR_SET_MM_ENV_END: u32 = 11;
+const PR_SET_MM_AUXV: usize = 12;
+const PR_SET_MM_EXE_FILE: usize = 13;
+const PR_SET_MM_MAP: usize = 14;
+const PR_SET_MM_MAP_SIZE: usize = 15;
+
+/// `PR_SET_MM_*` values for use with [`set_virtual_memory_map_address`].
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(u32)]
+pub enum VirtualMemoryMapAddress {
+ /// Set the address above which the program text can run.
+ CodeStart = PR_SET_MM_START_CODE,
+ /// Set the address below which the program text can run.
+ CodeEnd = PR_SET_MM_END_CODE,
+ /// Set the address above which initialized and uninitialized (bss) data
+ /// are placed.
+ DataStart = PR_SET_MM_START_DATA,
+ /// Set the address below which initialized and uninitialized (bss) data
+ /// are placed.
+ DataEnd = PR_SET_MM_END_DATA,
+ /// Set the start address of the stack.
+ StackStart = PR_SET_MM_START_STACK,
+ /// Set the address above which the program heap can be expanded with `brk`
+ /// call.
+ BrkStart = PR_SET_MM_START_BRK,
+ /// Set the current `brk` value.
+ BrkCurrent = PR_SET_MM_BRK,
+ /// Set the address above which the program command line is placed.
+ ArgStart = PR_SET_MM_ARG_START,
+ /// Set the address below which the program command line is placed.
+ ArgEnd = PR_SET_MM_ARG_END,
+ /// Set the address above which the program environment is placed.
+ EnvironmentStart = PR_SET_MM_ENV_START,
+ /// Set the address below which the program environment is placed.
+ EnvironmentEnd = PR_SET_MM_ENV_END,
+}
+
+/// Modify certain kernel memory map descriptor addresses of the calling
+/// process.
+///
+/// # References
+/// - [`prctl(PR_SET_MM,…)`]
+///
+/// # Safety
+///
+/// Please ensure the conditions necessary to safely call this function, as
+/// detailed in the references above.
+///
+/// [`prctl(PR_SET_MM,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_MM")]
+pub unsafe fn set_virtual_memory_map_address(
+ option: VirtualMemoryMapAddress,
+ address: Option<NonNull<c_void>>,
+) -> io::Result<()> {
+ let address = address.map_or_else(null_mut, NonNull::as_ptr);
+ prctl_3args(PR_SET_MM, option as usize as *mut _, address).map(|_r| ())
+}
+
+/// Supersede the `/proc/pid/exe` symbolic link with a new one pointing to a
+/// new executable file.
+///
+/// # References
+/// - [`prctl(PR_SET_MM,PR_SET_MM_EXE_FILE,…)`]
+///
+/// [`prctl(PR_SET_MM,PR_SET_MM_EXE_FILE,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_MM")]
+#[doc(alias = "PR_SET_MM_EXE_FILE")]
+pub fn set_executable_file(fd: BorrowedFd<'_>) -> io::Result<()> {
+ let fd = usize::try_from(fd.as_raw_fd()).map_err(|_r| io::Errno::RANGE)?;
+ unsafe { prctl_3args(PR_SET_MM, PR_SET_MM_EXE_FILE as *mut _, fd as *mut _) }.map(|_r| ())
+}
+
+/// Set a new auxiliary vector.
+///
+/// # References
+/// - [`prctl(PR_SET_MM,PR_SET_MM_AUXV,…)`]
+///
+/// # Safety
+///
+/// Please ensure the conditions necessary to safely call this function, as
+/// detailed in the references above.
+///
+/// [`prctl(PR_SET_MM,PR_SET_MM_AUXV,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_MM")]
+#[doc(alias = "PR_SET_MM_AUXV")]
+pub unsafe fn set_auxiliary_vector(auxv: &[*const c_void]) -> io::Result<()> {
+ syscalls::prctl(
+ PR_SET_MM,
+ PR_SET_MM_AUXV as *mut _,
+ auxv.as_ptr() as *mut _,
+ auxv.len() as *mut _,
+ null_mut(),
+ )
+ .map(|_r| ())
+}
+
+/// Get the size of the [`PrctlMmMap`] the kernel expects.
+///
+/// # References
+/// - [`prctl(PR_SET_MM,PR_SET_MM_MAP_SIZE,…)`]
+///
+/// [`prctl(PR_SET_MM,PR_SET_MM_MAP_SIZE,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_MM")]
+#[doc(alias = "PR_SET_MM_MAP_SIZE")]
+pub fn virtual_memory_map_config_struct_size() -> io::Result<usize> {
+ let mut value: c_uint = 0;
+ let value_ptr = as_mut_ptr(&mut value);
+ unsafe { prctl_3args(PR_SET_MM, PR_SET_MM_MAP_SIZE as *mut _, value_ptr.cast())? };
+ Ok(value as usize)
+}
+
+/// This structure provides new memory descriptor map which mostly modifies
+/// `/proc/pid/stat[m]` output for a task.
+/// This mostly done in a sake of checkpoint/restore functionality.
+#[repr(C)]
+#[derive(Debug, Clone)]
+pub struct PrctlMmMap {
+ /// Code section start address.
+ pub start_code: u64,
+ /// Code section end address.
+ pub end_code: u64,
+ /// Data section start address.
+ pub start_data: u64,
+ /// Data section end address.
+ pub end_data: u64,
+ /// `brk` start address.
+ pub start_brk: u64,
+ /// `brk` current address.
+ pub brk: u64,
+ /// Stack start address.
+ pub start_stack: u64,
+ /// Program command line start address.
+ pub arg_start: u64,
+ /// Program command line end address.
+ pub arg_end: u64,
+ /// Program environment start address.
+ pub env_start: u64,
+ /// Program environment end address.
+ pub env_end: u64,
+ /// Auxiliary vector start address.
+ pub auxv: *mut u64,
+ /// Auxiliary vector size.
+ pub auxv_size: u32,
+ /// File descriptor of executable file that was used to create this
+ /// process.
+ pub exe_fd: RawFd,
+}
+
+/// Provides one-shot access to all the addresses by passing in a
+/// [`PrctlMmMap`].
+///
+/// # References
+/// - [`prctl(PR_SET_MM,PR_SET_MM_MAP,…)`]
+///
+/// # Safety
+///
+/// Please ensure the conditions necessary to safely call this function, as
+/// detailed in the references above.
+///
+/// [`prctl(PR_SET_MM,PR_SET_MM_MAP,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_MM")]
+#[doc(alias = "PR_SET_MM_MAP")]
+pub unsafe fn configure_virtual_memory_map(config: &PrctlMmMap) -> io::Result<()> {
+ syscalls::prctl(
+ PR_SET_MM,
+ PR_SET_MM_MAP as *mut _,
+ as_ptr(config) as *mut _,
+ size_of::<PrctlMmMap>() as *mut _,
+ null_mut(),
+ )
+ .map(|_r| ())
+}
+
+//
+// PR_SET_PTRACER
+//
+
+const PR_SET_PTRACER: c_int = 0x59_61_6d_61;
+
+const PR_SET_PTRACER_ANY: usize = usize::MAX;
+
+/// Process ptracer.
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+pub enum PTracer {
+ /// None.
+ None,
+ /// Disable `ptrace` restrictions for the calling process.
+ Any,
+ /// Specific process.
+ ProcessID(Pid),
+}
+
+/// Declare that the ptracer process can `ptrace` the calling process as if it
+/// were a direct process ancestor.
+///
+/// # References
+/// - [`prctl(PR_SET_PTRACER,…)`]
+///
+/// [`prctl(PR_SET_PTRACER,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_PTRACER")]
+pub fn set_ptracer(tracer: PTracer) -> io::Result<()> {
+ let pid = match tracer {
+ PTracer::None => null_mut(),
+ PTracer::Any => PR_SET_PTRACER_ANY as *mut _,
+ PTracer::ProcessID(pid) => pid.as_raw_nonzero().get() as usize as *mut _,
+ };
+
+ unsafe { prctl_2args(PR_SET_PTRACER, pid) }.map(|_r| ())
+}
+
+//
+// PR_GET_CHILD_SUBREAPER/PR_SET_CHILD_SUBREAPER
+//
+
+const PR_GET_CHILD_SUBREAPER: c_int = 37;
+
+/// Get the `child subreaper` setting of the calling process.
+///
+/// # References
+/// - [`prctl(PR_GET_CHILD_SUBREAPER,…)`]
+///
+/// [`prctl(PR_GET_CHILD_SUBREAPER,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_GET_CHILD_SUBREAPER")]
+pub fn child_subreaper() -> io::Result<Option<Pid>> {
+ unsafe {
+ let r = prctl_get_at_arg2_optional::<c_uint>(PR_GET_CHILD_SUBREAPER)?;
+ Ok(Pid::from_raw(r as RawPid))
+ }
+}
+
+const PR_SET_CHILD_SUBREAPER: c_int = 36;
+
+/// Set the `child subreaper` attribute of the calling process.
+///
+/// # References
+/// - [`prctl(PR_SET_CHILD_SUBREAPER,…)`]
+///
+/// [`prctl(PR_SET_CHILD_SUBREAPER,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_CHILD_SUBREAPER")]
+pub fn set_child_subreaper(pid: Option<Pid>) -> io::Result<()> {
+ let pid = pid.map_or(0_usize, |pid| pid.as_raw_nonzero().get() as usize);
+ unsafe { prctl_2args(PR_SET_CHILD_SUBREAPER, pid as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_GET_FP_MODE/PR_SET_FP_MODE
+//
+
+const PR_GET_FP_MODE: c_int = 46;
+
+const PR_FP_MODE_FR: u32 = 1_u32 << 0;
+const PR_FP_MODE_FRE: u32 = 1_u32 << 1;
+
+/// `PR_FP_MODE_*` values for use with [`floating_point_mode`] and
+/// [`set_floating_point_mode`].
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(u32)]
+pub enum FloatingPointMode {
+ /// 64-bit floating point registers.
+ FloatingPointRegisters = PR_FP_MODE_FR,
+ /// Enable emulation of 32-bit floating-point mode.
+ FloatingPointEmulation = PR_FP_MODE_FRE,
+}
+
+impl TryFrom<u32> for FloatingPointMode {
+ type Error = io::Errno;
+
+ fn try_from(value: u32) -> Result<Self, Self::Error> {
+ match value {
+ PR_FP_MODE_FR => Ok(Self::FloatingPointRegisters),
+ PR_FP_MODE_FRE => Ok(Self::FloatingPointEmulation),
+ _ => Err(io::Errno::RANGE),
+ }
+ }
+}
+
+/// Get the current floating point mode.
+///
+/// # References
+/// - [`prctl(PR_GET_FP_MODE,…)`]
+///
+/// [`prctl(PR_GET_FP_MODE,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_GET_FP_MODE")]
+pub fn floating_point_mode() -> io::Result<FloatingPointMode> {
+ let r = unsafe { prctl_1arg(PR_GET_FP_MODE)? } as c_uint;
+ FloatingPointMode::try_from(r)
+}
+
+const PR_SET_FP_MODE: c_int = 45;
+
+/// Allow control of the floating point mode from user space.
+///
+/// # References
+/// - [`prctl(PR_SET_FP_MODE,…)`]
+///
+/// [`prctl(PR_SET_FP_MODE,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_FP_MODE")]
+pub fn set_floating_point_mode(mode: FloatingPointMode) -> io::Result<()> {
+ unsafe { prctl_2args(PR_SET_FP_MODE, mode as usize as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_GET_SPECULATION_CTRL/PR_SET_SPECULATION_CTRL
+//
+
+const PR_GET_SPECULATION_CTRL: c_int = 52;
+
+const PR_SPEC_STORE_BYPASS: u32 = 0;
+const PR_SPEC_INDIRECT_BRANCH: u32 = 1;
+const PR_SPEC_L1D_FLUSH: u32 = 2;
+
+/// `PR_SPEC_*` values for use with [`speculative_feature_state`] and
+/// [`control_speculative_feature`].
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(u32)]
+pub enum SpeculationFeature {
+ /// Set the state of the speculative store bypass misfeature.
+ SpeculativeStoreBypass = PR_SPEC_STORE_BYPASS,
+ /// Set the state of the indirect branch speculation misfeature.
+ IndirectBranchSpeculation = PR_SPEC_INDIRECT_BRANCH,
+ /// Flush L1D Cache on context switch out of the task.
+ FlushL1DCacheOnContextSwitchOutOfTask = PR_SPEC_L1D_FLUSH,
+}
+
+impl TryFrom<u32> for SpeculationFeature {
+ type Error = io::Errno;
+
+ fn try_from(value: u32) -> Result<Self, Self::Error> {
+ match value {
+ PR_SPEC_STORE_BYPASS => Ok(Self::SpeculativeStoreBypass),
+ PR_SPEC_INDIRECT_BRANCH => Ok(Self::IndirectBranchSpeculation),
+ PR_SPEC_L1D_FLUSH => Ok(Self::FlushL1DCacheOnContextSwitchOutOfTask),
+ _ => Err(io::Errno::RANGE),
+ }
+ }
+}
+
+bitflags! {
+ /// `PR_SPEC_*` flags for use with [`control_speculative_feature`].
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct SpeculationFeatureControl: u32 {
+ /// The speculation feature is enabled, mitigation is disabled.
+ const ENABLE = 1_u32 << 1;
+ /// The speculation feature is disabled, mitigation is enabled.
+ const DISABLE = 1_u32 << 2;
+ /// The speculation feature is disabled, mitigation is enabled, and it
+ /// cannot be undone.
+ const FORCE_DISABLE = 1_u32 << 3;
+ /// The speculation feature is disabled, mitigation is enabled, and the
+ /// state will be cleared on `execve`.
+ const DISABLE_NOEXEC = 1_u32 << 4;
+ }
+}
+
+bitflags! {
+ /// Zero means the processors are not vulnerable.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct SpeculationFeatureState: u32 {
+ /// Mitigation can be controlled per thread by
+ /// [`control_speculative_feature`].
+ const PRCTL = 1_u32 << 0;
+ /// The speculation feature is enabled, mitigation is disabled.
+ const ENABLE = 1_u32 << 1;
+ /// The speculation feature is disabled, mitigation is enabled.
+ const DISABLE = 1_u32 << 2;
+ /// The speculation feature is disabled, mitigation is enabled, and it
+ /// cannot be undone.
+ const FORCE_DISABLE = 1_u32 << 3;
+ /// The speculation feature is disabled, mitigation is enabled, and the
+ /// state will be cleared on `execve`.
+ const DISABLE_NOEXEC = 1_u32 << 4;
+ }
+}
+
+/// Get the state of the speculation misfeature.
+///
+/// # References
+/// - [`prctl(PR_GET_SPECULATION_CTRL,…)`]
+///
+/// [`prctl(PR_GET_SPECULATION_CTRL,…)`]: https://www.kernel.org/doc/html/v6.13/userspace-api/spec_ctrl.html
+#[inline]
+#[doc(alias = "PR_GET_SPECULATION_CTRL")]
+pub fn speculative_feature_state(
+ feature: SpeculationFeature,
+) -> io::Result<Option<SpeculationFeatureState>> {
+ let r = unsafe { prctl_2args(PR_GET_SPECULATION_CTRL, feature as usize as *mut _)? } as c_uint;
+ Ok(SpeculationFeatureState::from_bits(r))
+}
+
+const PR_SET_SPECULATION_CTRL: c_int = 53;
+
+/// Sets the state of the speculation misfeature.
+///
+/// # References
+/// - [`prctl(PR_SET_SPECULATION_CTRL,…)`]
+///
+/// [`prctl(PR_SET_SPECULATION_CTRL,…)`]: https://www.kernel.org/doc/html/v6.13/userspace-api/spec_ctrl.html
+#[inline]
+#[doc(alias = "PR_SET_SPECULATION_CTRL")]
+pub fn control_speculative_feature(
+ feature: SpeculationFeature,
+ config: SpeculationFeatureControl,
+) -> io::Result<()> {
+ let feature = feature as usize as *mut _;
+ let config = config.bits() as usize as *mut _;
+ unsafe { prctl_3args(PR_SET_SPECULATION_CTRL, feature, config) }.map(|_r| ())
+}
+
+//
+// PR_GET_IO_FLUSHER/PR_SET_IO_FLUSHER
+//
+
+const PR_GET_IO_FLUSHER: c_int = 58;
+
+/// Get the `IO_FLUSHER` state of the caller.
+///
+/// # References
+/// - [`prctl(PR_GET_IO_FLUSHER,…)`]
+///
+/// [`prctl(PR_GET_IO_FLUSHER,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_GET_IO_FLUSHER")]
+pub fn is_io_flusher() -> io::Result<bool> {
+ unsafe { prctl_1arg(PR_GET_IO_FLUSHER) }.map(|r| r != 0)
+}
+
+const PR_SET_IO_FLUSHER: c_int = 57;
+
+/// Put the process in the `IO_FLUSHER` state, allowing it to make progress
+/// when allocating memory.
+///
+/// # References
+/// - [`prctl(PR_SET_IO_FLUSHER,…)`]
+///
+/// [`prctl(PR_SET_IO_FLUSHER,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[doc(alias = "PR_SET_IO_FLUSHER")]
+pub fn configure_io_flusher_behavior(enable: bool) -> io::Result<()> {
+ unsafe { prctl_2args(PR_SET_IO_FLUSHER, usize::from(enable) as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_PAC_GET_ENABLED_KEYS/PR_PAC_SET_ENABLED_KEYS
+//
+
+const PR_PAC_GET_ENABLED_KEYS: c_int = 61;
+
+/// Get enabled pointer authentication keys.
+///
+/// # References
+/// - [`prctl(PR_PAC_GET_ENABLED_KEYS,…)`]
+///
+/// [`prctl(PR_PAC_GET_ENABLED_KEYS,…)`]: https://www.kernel.org/doc/html/v6.13/arch/arm64/pointer-authentication.html
+#[inline]
+#[doc(alias = "PR_PAC_GET_ENABLED_KEYS")]
+pub fn enabled_pointer_authentication_keys() -> io::Result<PointerAuthenticationKeys> {
+ let r = unsafe { prctl_1arg(PR_PAC_GET_ENABLED_KEYS)? } as c_uint;
+ PointerAuthenticationKeys::from_bits(r).ok_or(io::Errno::RANGE)
+}
+
+const PR_PAC_SET_ENABLED_KEYS: c_int = 60;
+
+/// Set enabled pointer authentication keys.
+///
+/// # References
+/// - [`prctl(PR_PAC_SET_ENABLED_KEYS,…)`]
+///
+/// # Safety
+///
+/// Please ensure the conditions necessary to safely call this function, as
+/// detailed in the references above.
+///
+/// [`prctl(PR_PAC_SET_ENABLED_KEYS,…)`]: https://www.kernel.org/doc/html/v6.13/arch/arm64/pointer-authentication.html
+#[inline]
+#[doc(alias = "PR_PAC_SET_ENABLED_KEYS")]
+pub unsafe fn configure_pointer_authentication_keys<
+ Config: Iterator<Item = (PointerAuthenticationKeys, bool)>,
+>(
+ config: Config,
+) -> io::Result<()> {
+ let mut affected_keys: u32 = 0;
+ let mut enabled_keys: u32 = 0;
+
+ for (key, enable) in config {
+ let key = key.bits();
+ affected_keys |= key;
+
+ if enable {
+ enabled_keys |= key;
+ } else {
+ enabled_keys &= !key;
+ }
+ }
+
+ if affected_keys == 0 {
+ return Ok(()); // Nothing to do.
+ }
+
+ prctl_3args(
+ PR_PAC_SET_ENABLED_KEYS,
+ affected_keys as usize as *mut _,
+ enabled_keys as usize as *mut _,
+ )
+ .map(|_r| ())
+}
+
+//
+// PR_SET_VMA
+//
+
+const PR_SET_VMA: c_int = 0x53_56_4d_41;
+
+const PR_SET_VMA_ANON_NAME: usize = 0;
+
+/// Set the name for a virtual memory region.
+///
+/// # References
+/// - [`prctl(PR_SET_VMA,PR_SET_VMA_ANON_NAME,…)`]
+///
+/// [`prctl(PR_SET_VMA,PR_SET_VMA_ANON_NAME,…)`]: https://lwn.net/Articles/867818/
+#[inline]
+#[doc(alias = "PR_SET_VMA")]
+#[doc(alias = "PR_SET_VMA_ANON_NAME")]
+pub fn set_virtual_memory_region_name(region: &[u8], name: Option<&CStr>) -> io::Result<()> {
+ unsafe {
+ syscalls::prctl(
+ PR_SET_VMA,
+ PR_SET_VMA_ANON_NAME as *mut _,
+ region.as_ptr() as *mut _,
+ region.len() as *mut _,
+ name.map_or_else(null, CStr::as_ptr) as *mut _,
+ )
+ .map(|_r| ())
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/process/priority.rs b/vendor/rustix-1.0.8/src/process/priority.rs
new file mode 100644
index 0000000..0051b06
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/priority.rs
@@ -0,0 +1,132 @@
+#[cfg(not(any(target_os = "espidf", target_os = "horizon")))]
+use crate::process::{Pid, Uid};
+use crate::{backend, io};
+
+/// `nice(inc)`—Adjust the scheduling priority of the current process.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/nice.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/nice.2.html
+#[inline]
+pub fn nice(inc: i32) -> io::Result<i32> {
+ backend::process::syscalls::nice(inc)
+}
+
+/// `getpriority(PRIO_USER, uid)`—Get the scheduling priority of the given
+/// user.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getpriority.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/getpriority.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/setpriority.2.html
+#[cfg(not(any(target_os = "espidf", target_os = "horizon")))]
+#[inline]
+#[doc(alias = "getpriority")]
+pub fn getpriority_user(uid: Uid) -> io::Result<i32> {
+ backend::process::syscalls::getpriority_user(uid)
+}
+
+/// `getpriority(PRIO_PGRP, gid)`—Get the scheduling priority of the given
+/// process group.
+///
+/// A `pgid` of `None` means the process group of the calling process.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getpriority.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/getpriority.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/setpriority.2.html
+#[cfg(not(any(target_os = "espidf", target_os = "horizon")))]
+#[inline]
+#[doc(alias = "getpriority")]
+pub fn getpriority_pgrp(pgid: Option<Pid>) -> io::Result<i32> {
+ backend::process::syscalls::getpriority_pgrp(pgid)
+}
+
+/// `getpriority(PRIO_PROCESS, pid)`—Get the scheduling priority of the given
+/// process.
+///
+/// A `pid` of `None` means the calling process.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getpriority.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/getpriority.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/setpriority.2.html
+#[cfg(not(any(target_os = "espidf", target_os = "horizon")))]
+#[inline]
+#[doc(alias = "getpriority")]
+pub fn getpriority_process(pid: Option<Pid>) -> io::Result<i32> {
+ backend::process::syscalls::getpriority_process(pid)
+}
+
+/// `setpriority(PRIO_USER, uid)`—Get the scheduling priority of the given
+/// user.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/setpriority.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/setpriority.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/setpriority.2.html
+#[cfg(not(any(target_os = "espidf", target_os = "horizon")))]
+#[inline]
+#[doc(alias = "setpriority")]
+pub fn setpriority_user(uid: Uid, priority: i32) -> io::Result<()> {
+ backend::process::syscalls::setpriority_user(uid, priority)
+}
+
+/// `setpriority(PRIO_PGRP, pgid)`—Get the scheduling priority of the given
+/// process group.
+///
+/// A `pgid` of `None` means the process group of the calling process.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/setpriority.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/setpriority.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/setpriority.2.html
+#[cfg(not(any(target_os = "espidf", target_os = "horizon")))]
+#[inline]
+#[doc(alias = "setpriority")]
+pub fn setpriority_pgrp(pgid: Option<Pid>, priority: i32) -> io::Result<()> {
+ backend::process::syscalls::setpriority_pgrp(pgid, priority)
+}
+
+/// `setpriority(PRIO_PROCESS, pid)`—Get the scheduling priority of the given
+/// process.
+///
+/// A `pid` of `None` means the calling process.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/setpriority.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/setpriority.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/setpriority.2.html
+#[cfg(not(any(target_os = "espidf", target_os = "horizon")))]
+#[inline]
+#[doc(alias = "setpriority")]
+pub fn setpriority_process(pid: Option<Pid>, priority: i32) -> io::Result<()> {
+ backend::process::syscalls::setpriority_process(pid, priority)
+}
diff --git a/vendor/rustix-1.0.8/src/process/procctl.rs b/vendor/rustix-1.0.8/src/process/procctl.rs
new file mode 100644
index 0000000..24d5530
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/procctl.rs
@@ -0,0 +1,547 @@
+//! Bindings for the FreeBSD `procctl` system call.
+//!
+//! There are similarities (but also differences) with Linux's `prctl` system
+//! call, whose interface is located in the `prctl.rs` file.
+
+#![allow(unsafe_code)]
+
+#[cfg(feature = "alloc")]
+use alloc::{vec, vec::Vec};
+use core::mem::MaybeUninit;
+use core::num::NonZeroI32;
+use core::ptr;
+
+use bitflags::bitflags;
+
+use crate::backend::process::syscalls;
+use crate::backend::process::types::RawId;
+use crate::ffi::{c_int, c_uint, c_void};
+use crate::io;
+use crate::process::{Pid, RawPid};
+use crate::signal::Signal;
+use crate::utils::{as_mut_ptr, as_ptr};
+
+//
+// Helper functions.
+//
+
+/// Subset of `idtype_t` C enum, with only the values allowed by `procctl`.
+#[repr(i32)]
+pub enum IdType {
+ /// Process id.
+ Pid = 0,
+ /// Process group id.
+ Pgid = 2,
+}
+
+/// A process selector for use with the `procctl` interface.
+///
+/// `None` represents the current process. `Some((IdType::Pid, pid))`
+/// represents the process with pid `pid`. `Some((IdType::Pgid, pgid))`
+/// represents the control processes belonging to the process group with id
+/// `pgid`.
+pub type ProcSelector = Option<(IdType, Pid)>;
+fn proc_selector_to_raw(selector: ProcSelector) -> (IdType, RawPid) {
+ match selector {
+ Some((idtype, id)) => (idtype, id.as_raw_nonzero().get()),
+ None => (IdType::Pid, 0),
+ }
+}
+
+#[inline]
+pub(crate) unsafe fn procctl(
+ option: c_int,
+ process: ProcSelector,
+ data: *mut c_void,
+) -> io::Result<()> {
+ let (idtype, id) = proc_selector_to_raw(process);
+ syscalls::procctl(idtype as c_uint, id as RawId, option, data)
+}
+
+#[inline]
+pub(crate) unsafe fn procctl_set<P>(
+ option: c_int,
+ process: ProcSelector,
+ data: &P,
+) -> io::Result<()> {
+ procctl(option, process, (as_ptr(data) as *mut P).cast())
+}
+
+#[inline]
+pub(crate) unsafe fn procctl_get_optional<P>(
+ option: c_int,
+ process: ProcSelector,
+) -> io::Result<P> {
+ let mut value: MaybeUninit<P> = MaybeUninit::uninit();
+ procctl(option, process, value.as_mut_ptr().cast())?;
+ Ok(value.assume_init())
+}
+
+//
+// PROC_PDEATHSIG_STATUS/PROC_PDEATHSIG_CTL
+//
+
+const PROC_PDEATHSIG_STATUS: c_int = 12;
+
+/// Get the current value of the parent process death signal.
+///
+/// # References
+/// - [Linux: `prctl(PR_GET_PDEATHSIG,…)`]
+/// - [FreeBSD: `procctl(PROC_PDEATHSIG_STATUS,…)`]
+///
+/// [Linux: `prctl(PR_GET_PDEATHSIG,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+/// [FreeBSD: `procctl(PROC_PDEATHSIG_STATUS,…)`]: https://man.freebsd.org/cgi/man.cgi?query=procctl&sektion=2
+#[inline]
+pub fn parent_process_death_signal() -> io::Result<Option<Signal>> {
+ let raw = unsafe { procctl_get_optional::<c_int>(PROC_PDEATHSIG_STATUS, None) }?;
+ if let Some(non_zero) = NonZeroI32::new(raw) {
+ // SAFETY: The only way to get a libc-reserved signal number in
+ // here would be to do something equivalent to
+ // `set_parent_process_death_signal`, but that would have required
+ // using a `Signal` with a libc-reserved value.
+ Ok(Some(unsafe {
+ Signal::from_raw_nonzero_unchecked(non_zero)
+ }))
+ } else {
+ Ok(None)
+ }
+}
+
+const PROC_PDEATHSIG_CTL: c_int = 11;
+
+/// Set the parent-death signal of the calling process.
+///
+/// # References
+/// - [Linux: `prctl(PR_SET_PDEATHSIG,…)`]
+/// - [FreeBSD: `procctl(PROC_PDEATHSIG_CTL,…)`]
+///
+/// [Linux: `prctl(PR_SET_PDEATHSIG,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+/// [FreeBSD: `procctl(PROC_PDEATHSIG_CTL,…)`]: https://man.freebsd.org/cgi/man.cgi?query=procctl&sektion=2
+#[inline]
+pub fn set_parent_process_death_signal(signal: Option<Signal>) -> io::Result<()> {
+ let signal = signal.map_or(0, |signal| signal.as_raw());
+ unsafe { procctl_set::<c_int>(PROC_PDEATHSIG_CTL, None, &signal) }
+}
+
+//
+// PROC_TRACE_CTL
+//
+
+const PROC_TRACE_CTL: c_int = 7;
+
+const PROC_TRACE_CTL_ENABLE: i32 = 1;
+const PROC_TRACE_CTL_DISABLE: i32 = 2;
+const PROC_TRACE_CTL_DISABLE_EXEC: i32 = 3;
+
+/// `PROC_TRACE_CTL_*`
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(i32)]
+pub enum DumpableBehavior {
+ /// Not dumpable.
+ NotDumpable = PROC_TRACE_CTL_DISABLE,
+ /// Dumpable.
+ Dumpable = PROC_TRACE_CTL_ENABLE,
+ /// Not dumpable, and this behaviour is preserved across `execve` calls.
+ NotDumpableExecPreserved = PROC_TRACE_CTL_DISABLE_EXEC,
+}
+
+/// Set the state of the `dumpable` attribute for the process indicated by
+/// `idtype` and `id`.
+///
+/// This determines whether the process can be traced and whether core dumps
+/// are produced for the process upon delivery of a signal whose default
+/// behavior is to produce a core dump.
+///
+/// This is similar to `set_dumpable_behavior` on Linux, with the exception
+/// that on FreeBSD there is an extra argument `process`. When `process` is set
+/// to `None`, the operation is performed for the current process, like on
+/// Linux.
+///
+/// # References
+/// - [FreeBSD `procctl(PROC_TRACE_CTL,…)`]
+///
+/// [FreeBSD `procctl(PROC_TRACE_CTL,…)`]: https://man.freebsd.org/cgi/man.cgi?query=procctl&sektion=2
+#[inline]
+pub fn set_dumpable_behavior(process: ProcSelector, config: DumpableBehavior) -> io::Result<()> {
+ unsafe { procctl(PROC_TRACE_CTL, process, config as usize as *mut _) }
+}
+
+//
+// PROC_TRACE_STATUS
+//
+
+const PROC_TRACE_STATUS: c_int = 8;
+
+/// Tracing status as returned by [`trace_status`].
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+pub enum TracingStatus {
+ /// Tracing is disabled for the process.
+ NotTraceble,
+ /// Tracing is not disabled for the process, but not debugger/tracer is
+ /// attached.
+ Tracable,
+ /// The process is being traced by the process whose pid is stored in the
+ /// first component of this variant.
+ BeingTraced(Pid),
+}
+
+/// Get the tracing status of the process indicated by `idtype` and `id`.
+///
+/// # References
+/// - [FreeBSD `procctl(PROC_TRACE_STATUS,…)`]
+///
+/// [FreeBSD `procctl(PROC_TRACE_STATUS,…)`]: https://man.freebsd.org/cgi/man.cgi?query=procctl&sektion=2
+#[inline]
+pub fn trace_status(process: ProcSelector) -> io::Result<TracingStatus> {
+ let val = unsafe { procctl_get_optional::<c_int>(PROC_TRACE_STATUS, process) }?;
+ match val {
+ -1 => Ok(TracingStatus::NotTraceble),
+ 0 => Ok(TracingStatus::Tracable),
+ pid => {
+ let pid = Pid::from_raw(pid as RawPid).ok_or(io::Errno::RANGE)?;
+ Ok(TracingStatus::BeingTraced(pid))
+ }
+ }
+}
+
+//
+// PROC_REAP_*
+//
+
+const PROC_REAP_ACQUIRE: c_int = 2;
+const PROC_REAP_RELEASE: c_int = 3;
+
+/// Acquire or release the reaper status of the calling process.
+///
+/// # References
+/// - [FreeBSD: `procctl(PROC_REAP_ACQUIRE/RELEASE,…)`]
+///
+/// [FreeBSD: `procctl(PROC_REAP_ACQUIRE/RELEASE,…)`]: https://man.freebsd.org/cgi/man.cgi?query=procctl&sektion=2
+#[inline]
+pub fn set_reaper_status(reaper: bool) -> io::Result<()> {
+ unsafe {
+ procctl(
+ if reaper {
+ PROC_REAP_ACQUIRE
+ } else {
+ PROC_REAP_RELEASE
+ },
+ None,
+ ptr::null_mut(),
+ )
+ }
+}
+
+const PROC_REAP_STATUS: c_int = 4;
+
+bitflags! {
+ /// `REAPER_STATUS_*`
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ReaperStatusFlags: c_uint {
+ /// The process has acquired reaper status.
+ const OWNED = 1;
+ /// The process is the root of the reaper tree ([`Pid::INIT`]).
+ const REALINIT = 2;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[repr(C)]
+struct procctl_reaper_status {
+ rs_flags: c_uint,
+ rs_children: c_uint,
+ rs_descendants: c_uint,
+ rs_reaper: RawPid,
+ rs_pid: RawPid,
+ rs_pad0: [c_uint; 15],
+}
+
+/// Reaper status as returned by [`get_reaper_status`].
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+pub struct ReaperStatus {
+ /// The flags.
+ pub flags: ReaperStatusFlags,
+ /// The number of children of the reaper among the descendants.
+ pub children: usize,
+ /// The total number of descendants of the reaper(s), not counting
+ /// descendants of the reaper in the subtree.
+ pub descendants: usize,
+ /// The pid of the reaper for the specified process id.
+ pub reaper: Pid,
+ /// The pid of one reaper child if there are any descendants.
+ pub pid: Option<Pid>,
+}
+
+/// Get information about the reaper of the specified process (or the process
+/// itself if it is a reaper).
+///
+/// # References
+/// - [FreeBSD: `procctl(PROC_REAP_STATUS,…)`]
+///
+/// [FreeBSD: `procctl(PROC_REAP_STATUS,…)`]: https://man.freebsd.org/cgi/man.cgi?query=procctl&sektion=2
+#[inline]
+pub fn get_reaper_status(process: ProcSelector) -> io::Result<ReaperStatus> {
+ let raw = unsafe { procctl_get_optional::<procctl_reaper_status>(PROC_REAP_STATUS, process) }?;
+ Ok(ReaperStatus {
+ flags: ReaperStatusFlags::from_bits_retain(raw.rs_flags),
+ children: raw.rs_children as _,
+ descendants: raw.rs_descendants as _,
+ reaper: Pid::from_raw(raw.rs_reaper).ok_or(io::Errno::RANGE)?,
+ pid: if raw.rs_pid == -1 {
+ None
+ } else {
+ Some(Pid::from_raw(raw.rs_pid).ok_or(io::Errno::RANGE)?)
+ },
+ })
+}
+
+#[cfg(feature = "alloc")]
+const PROC_REAP_GETPIDS: c_int = 5;
+
+bitflags! {
+ /// `REAPER_PIDINFO_*`
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct PidInfoFlags: c_uint {
+ /// This structure was filled by the kernel.
+ const VALID = 1;
+ /// The pid field identifies a direct child of the reaper.
+ const CHILD = 2;
+ /// The reported process is itself a reaper. Descendants of a
+ /// subordinate reaper are not reported.
+ const REAPER = 4;
+ /// The reported process is in the zombie state.
+ const ZOMBIE = 8;
+ /// The reported process is stopped by
+ /// [`Signal::Stop`]/[`Signal::Tstp`].
+ const STOPPED = 16;
+ /// The reported process is in the process of exiting.
+ const EXITING = 32;
+ }
+}
+
+#[repr(C)]
+#[derive(Default, Clone)]
+struct procctl_reaper_pidinfo {
+ pi_pid: RawPid,
+ pi_subtree: RawPid,
+ pi_flags: c_uint,
+ pi_pad0: [c_uint; 15],
+}
+
+#[repr(C)]
+struct procctl_reaper_pids {
+ rp_count: c_uint,
+ rp_pad0: [c_uint; 15],
+ rp_pids: *mut procctl_reaper_pidinfo,
+}
+
+/// A child process of a reaper.
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+pub struct PidInfo {
+ /// The flags of the process.
+ pub flags: PidInfoFlags,
+ /// The pid of the process.
+ pub pid: Pid,
+ /// The pid of the child of the reaper which is the (grand-…)parent of the
+ /// process.
+ pub subtree: Pid,
+}
+
+/// Get the list of descendants of the specified reaper process.
+///
+/// # References
+/// - [FreeBSD: `procctl(PROC_REAP_GETPIDS,…)`]
+///
+/// [FreeBSD: `procctl(PROC_REAP_GETPIDS,…)`]: https://man.freebsd.org/cgi/man.cgi?query=procctl&sektion=2
+#[cfg(feature = "alloc")]
+#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
+pub fn get_reaper_pids(process: ProcSelector) -> io::Result<Vec<PidInfo>> {
+ // Sadly no better way to guarantee that we get all the results than to
+ // allocate ≈8MB of memory…
+ const PID_MAX: usize = 99999;
+ let mut pids: Vec<procctl_reaper_pidinfo> = vec![Default::default(); PID_MAX];
+ let mut pinfo = procctl_reaper_pids {
+ rp_count: PID_MAX as _,
+ rp_pad0: [0; 15],
+ rp_pids: pids.as_mut_slice().as_mut_ptr(),
+ };
+ unsafe { procctl(PROC_REAP_GETPIDS, process, as_mut_ptr(&mut pinfo).cast())? };
+ let mut result = Vec::new();
+ for raw in pids.into_iter() {
+ let flags = PidInfoFlags::from_bits_retain(raw.pi_flags);
+ if !flags.contains(PidInfoFlags::VALID) {
+ break;
+ }
+ result.push(PidInfo {
+ flags,
+ subtree: Pid::from_raw(raw.pi_subtree).ok_or(io::Errno::RANGE)?,
+ pid: Pid::from_raw(raw.pi_pid).ok_or(io::Errno::RANGE)?,
+ });
+ }
+ Ok(result)
+}
+
+const PROC_REAP_KILL: c_int = 6;
+
+bitflags! {
+ /// `REAPER_KILL_*`
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ struct KillFlags: c_uint {
+ const CHILDREN = 1;
+ const SUBTREE = 2;
+ }
+}
+
+#[repr(C)]
+struct procctl_reaper_kill {
+ rk_sig: c_int,
+ rk_flags: c_uint,
+ rk_subtree: RawPid,
+ rk_killed: c_uint,
+ rk_fpid: RawPid,
+ rk_pad0: [c_uint; 15],
+}
+
+/// Reaper status as returned by [`get_reaper_status`].
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+pub struct KillResult {
+ /// The number of processes that were signalled.
+ pub killed: usize,
+ /// The pid of the first process that wasn't successfully signalled.
+ pub first_failed: Option<Pid>,
+}
+
+/// Deliver a signal to some subset of the descendants of the reaper.
+///
+/// # References
+/// - [FreeBSD: `procctl(PROC_REAP_KILL,…)`]
+///
+/// [FreeBSD: `procctl(PROC_REAP_KILL,…)`]: https://man.freebsd.org/cgi/man.cgi?query=procctl&sektion=2
+pub fn reaper_kill(
+ process: ProcSelector,
+ signal: Signal,
+ direct_children: bool,
+ subtree: Option<Pid>,
+) -> io::Result<KillResult> {
+ let mut flags = KillFlags::empty();
+ flags.set(KillFlags::CHILDREN, direct_children);
+ flags.set(KillFlags::SUBTREE, subtree.is_some());
+ let mut req = procctl_reaper_kill {
+ rk_sig: signal.as_raw(),
+ rk_flags: flags.bits(),
+ rk_subtree: subtree.map(|p| p.as_raw_nonzero().into()).unwrap_or(0),
+ rk_killed: 0,
+ rk_fpid: 0,
+ rk_pad0: [0; 15],
+ };
+ unsafe { procctl(PROC_REAP_KILL, process, as_mut_ptr(&mut req).cast())? };
+ Ok(KillResult {
+ killed: req.rk_killed as _,
+ first_failed: Pid::from_raw(req.rk_fpid),
+ })
+}
+
+//
+// PROC_TRAPCAP_STATUS/PROC_TRAPCAP_CTL
+//
+
+const PROC_TRAPCAP_CTL: c_int = 9;
+
+const PROC_TRAPCAP_CTL_ENABLE: i32 = 1;
+const PROC_TRAPCAP_CTL_DISABLE: i32 = 2;
+
+/// `PROC_TRAPCAP_CTL_*`
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(i32)]
+pub enum TrapCapBehavior {
+ /// Disable the [`Signal::Trap`] signal delivery on capability mode access
+ /// violations.
+ Disable = PROC_TRAPCAP_CTL_DISABLE,
+ /// Enable the [`Signal::Trap`] signal delivery on capability mode access
+ /// violations.
+ Enable = PROC_TRAPCAP_CTL_ENABLE,
+}
+
+/// Set the current value of the capability mode violation trapping behavior.
+///
+/// If this behavior is enabled, the kernel would deliver a [`Signal::Trap`]
+/// signal on any return from a system call that would result in a
+/// [`io::Errno::NOTCAPABLE`] or [`io::Errno::CAPMODE`] error.
+///
+/// This behavior is inherited by the children of the process and is kept
+/// across `execve` calls.
+///
+/// # References
+/// - [FreeBSD: `procctl(PROC_TRAPCAP_CTL,…)`]
+///
+/// [FreeBSD: `procctl(PROC_TRAPCAP_CTL,…)`]: https://man.freebsd.org/cgi/man.cgi?query=procctl&sektion=2
+#[inline]
+pub fn set_trap_cap_behavior(process: ProcSelector, config: TrapCapBehavior) -> io::Result<()> {
+ let config = config as c_int;
+ unsafe { procctl_set::<c_int>(PROC_TRAPCAP_CTL, process, &config) }
+}
+
+const PROC_TRAPCAP_STATUS: c_int = 10;
+
+/// Get the current value of the capability mode violation trapping behavior.
+///
+/// # References
+/// - [FreeBSD: `procctl(PROC_TRAPCAP_STATUS,…)`]
+///
+/// [FreeBSD: `procctl(PROC_TRAPCAP_STATUS,…)`]: https://man.freebsd.org/cgi/man.cgi?query=procctl&sektion=2
+#[inline]
+pub fn trap_cap_behavior(process: ProcSelector) -> io::Result<TrapCapBehavior> {
+ let val = unsafe { procctl_get_optional::<c_int>(PROC_TRAPCAP_STATUS, process) }?;
+ match val {
+ PROC_TRAPCAP_CTL_DISABLE => Ok(TrapCapBehavior::Disable),
+ PROC_TRAPCAP_CTL_ENABLE => Ok(TrapCapBehavior::Enable),
+ _ => Err(io::Errno::RANGE),
+ }
+}
+
+//
+// PROC_NO_NEW_PRIVS_STATUS/PROC_NO_NEW_PRIVS_CTL
+//
+
+const PROC_NO_NEW_PRIVS_CTL: c_int = 19;
+
+const PROC_NO_NEW_PRIVS_ENABLE: c_int = 1;
+
+/// Enable the `no_new_privs` mode that ignores SUID and SGID bits on `execve`
+/// in the specified process and its future descendants.
+///
+/// This is similar to `set_no_new_privs` on Linux, with the exception that on
+/// FreeBSD there is no argument `no_new_privs` argument as it's only possible
+/// to enable this mode and there's no going back.
+///
+/// # References
+/// - [Linux: `prctl(PR_SET_NO_NEW_PRIVS,…)`]
+/// - [FreeBSD: `procctl(PROC_NO_NEW_PRIVS_CTL,…)`]
+///
+/// [Linux: `prctl(PR_SET_NO_NEW_PRIVS,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+/// [FreeBSD: `procctl(PROC_NO_NEW_PRIVS_CTL,…)`]: https://man.freebsd.org/cgi/man.cgi?query=procctl&sektion=2
+#[inline]
+pub fn set_no_new_privs(process: ProcSelector) -> io::Result<()> {
+ unsafe { procctl_set::<c_int>(PROC_NO_NEW_PRIVS_CTL, process, &PROC_NO_NEW_PRIVS_ENABLE) }
+}
+
+const PROC_NO_NEW_PRIVS_STATUS: c_int = 20;
+
+/// Check the `no_new_privs` mode of the specified process.
+///
+/// # References
+/// - [Linux: `prctl(PR_GET_NO_NEW_PRIVS,…)`]
+/// - [FreeBSD: `procctl(PROC_NO_NEW_PRIVS_STATUS,…)`]
+///
+/// [Linux: `prctl(PR_GET_NO_NEW_PRIVS,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+/// [FreeBSD: `procctl(PROC_NO_NEW_PRIVS_STATUS,…)`]: https://man.freebsd.org/cgi/man.cgi?query=procctl&sektion=2
+#[inline]
+pub fn no_new_privs(process: ProcSelector) -> io::Result<bool> {
+ unsafe { procctl_get_optional::<c_int>(PROC_NO_NEW_PRIVS_STATUS, process) }
+ .map(|x| x == PROC_NO_NEW_PRIVS_ENABLE)
+}
diff --git a/vendor/rustix-1.0.8/src/process/rlimit.rs b/vendor/rustix-1.0.8/src/process/rlimit.rs
new file mode 100644
index 0000000..124ca51
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/rlimit.rs
@@ -0,0 +1,53 @@
+#[cfg(linux_kernel)]
+use crate::process::Pid;
+use crate::{backend, io};
+
+pub use backend::process::types::Resource;
+
+/// `struct rlimit`—Current and maximum values used in [`getrlimit`],
+/// [`setrlimit`], and [`prlimit`].
+#[derive(Debug, Clone, Copy, PartialEq, Eq)]
+pub struct Rlimit {
+ /// Current effective, “soft”, limit.
+ pub current: Option<u64>,
+ /// Maximum, “hard”, value that `current` may be dynamically increased to.
+ pub maximum: Option<u64>,
+}
+
+/// `getrlimit(resource)`—Get a process resource limit value.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/getrlimit.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/getrlimit.2.html
+#[inline]
+pub fn getrlimit(resource: Resource) -> Rlimit {
+ backend::process::syscalls::getrlimit(resource)
+}
+
+/// `setrlimit(resource, new)`—Set a process resource limit value.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/setrlimit.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/setrlimit.2.html
+#[inline]
+pub fn setrlimit(resource: Resource, new: Rlimit) -> io::Result<()> {
+ backend::process::syscalls::setrlimit(resource, new)
+}
+
+/// `prlimit(pid, resource, new)`—Get and set a process resource limit value.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/prlimit.2.html
+#[cfg(linux_kernel)]
+#[inline]
+pub fn prlimit(pid: Option<Pid>, resource: Resource, new: Rlimit) -> io::Result<Rlimit> {
+ backend::process::syscalls::prlimit(pid, resource, new)
+}
diff --git a/vendor/rustix-1.0.8/src/process/types.rs b/vendor/rustix-1.0.8/src/process/types.rs
new file mode 100644
index 0000000..0adb47e
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/types.rs
@@ -0,0 +1,94 @@
+//! Types for use with [`rustix::process`] functions.
+//!
+//! [`rustix::process`]: crate::process
+
+#![allow(unsafe_code)]
+
+use crate::backend::c;
+use crate::pid::Pid;
+use core::mem::transmute;
+
+/// File lock data structure used in [`fcntl_getlk`].
+///
+/// [`fcntl_getlk`]: crate::process::fcntl_getlk()
+#[cfg(not(target_os = "horizon"))]
+#[derive(Clone, Copy, Debug, PartialEq, Eq)]
+pub struct Flock {
+ /// Starting offset for lock
+ pub start: u64,
+ /// Number of bytes to lock
+ pub length: u64,
+ /// PID of process blocking our lock. If set to `None`, it refers to the
+ /// current process
+ pub pid: Option<Pid>,
+ /// Type of lock
+ pub typ: FlockType,
+ /// Offset type of lock
+ pub offset_type: FlockOffsetType,
+}
+
+#[cfg(not(target_os = "horizon"))]
+impl Flock {
+ pub(crate) const unsafe fn from_raw_unchecked(raw_fl: c::flock) -> Self {
+ Self {
+ start: raw_fl.l_start as _,
+ length: raw_fl.l_len as _,
+ pid: Pid::from_raw(raw_fl.l_pid),
+ typ: transmute::<i16, FlockType>(raw_fl.l_type),
+ offset_type: transmute::<i16, FlockOffsetType>(raw_fl.l_whence),
+ }
+ }
+
+ pub(crate) fn as_raw(&self) -> c::flock {
+ let mut f: c::flock = unsafe { core::mem::zeroed() };
+ f.l_start = self.start as _;
+ f.l_len = self.length as _;
+ f.l_pid = Pid::as_raw(self.pid);
+ f.l_type = self.typ as _;
+ f.l_whence = self.offset_type as _;
+ f
+ }
+}
+
+#[cfg(not(target_os = "horizon"))]
+impl From<FlockType> for Flock {
+ fn from(value: FlockType) -> Self {
+ Self {
+ start: 0,
+ length: 0,
+ pid: None,
+ typ: value,
+ offset_type: FlockOffsetType::Set,
+ }
+ }
+}
+
+/// `F_*LCK` constants for use with [`fcntl_getlk`].
+///
+/// [`fcntl_getlk`]: crate::process::fcntl_getlk()
+#[cfg(not(target_os = "horizon"))]
+#[derive(Clone, Copy, Debug, PartialEq, Eq)]
+#[repr(i16)]
+pub enum FlockType {
+ /// `F_RDLCK`
+ ReadLock = c::F_RDLCK as _,
+ /// `F_WRLCK`
+ WriteLock = c::F_WRLCK as _,
+ /// `F_UNLCK`
+ Unlocked = c::F_UNLCK as _,
+}
+
+/// `F_SEEK*` constants for use with [`fcntl_getlk`].
+///
+/// [`fcntl_getlk`]: crate::process::fcntl_getlk()
+#[cfg(not(target_os = "horizon"))]
+#[derive(Clone, Copy, Debug, PartialEq, Eq)]
+#[repr(i16)]
+pub enum FlockOffsetType {
+ /// `F_SEEK_SET`
+ Set = c::SEEK_SET as _,
+ /// `F_SEEK_CUR`
+ Current = c::SEEK_CUR as _,
+ /// `F_SEEK_END`
+ End = c::SEEK_END as _,
+}
diff --git a/vendor/rustix-1.0.8/src/process/umask.rs b/vendor/rustix-1.0.8/src/process/umask.rs
new file mode 100644
index 0000000..16bd550
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/umask.rs
@@ -0,0 +1,21 @@
+//! Umask support.
+
+#[cfg(feature = "fs")]
+use crate::backend;
+#[cfg(feature = "fs")]
+use crate::fs::Mode;
+
+/// `umask(mask)`—Set the process file creation mask.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/umask.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/umask.2.html
+#[cfg(feature = "fs")]
+#[cfg_attr(docsrs, doc(cfg(feature = "fs")))]
+#[inline]
+pub fn umask(mask: Mode) -> Mode {
+ backend::process::syscalls::umask(mask)
+}
diff --git a/vendor/rustix-1.0.8/src/process/wait.rs b/vendor/rustix-1.0.8/src/process/wait.rs
new file mode 100644
index 0000000..0e004f3
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/process/wait.rs
@@ -0,0 +1,493 @@
+//! Wait for processes to change state.
+//!
+//! # Safety
+//!
+//! This code needs to implement `Send` and `Sync` for `WaitIdStatus` because
+//! the linux-raw-sys bindings generate a type that doesn't do so
+//! automatically.
+#![allow(unsafe_code)]
+use crate::process::Pid;
+use crate::{backend, io};
+use bitflags::bitflags;
+use core::fmt;
+
+#[cfg(target_os = "linux")]
+use crate::fd::BorrowedFd;
+
+#[cfg(linux_raw)]
+use crate::backend::process::wait::SiginfoExt as _;
+
+bitflags! {
+ /// Options for modifying the behavior of [`wait`]/[`waitpid`].
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct WaitOptions: u32 {
+ /// Return immediately if no child has exited.
+ const NOHANG = bitcast!(backend::process::wait::WNOHANG);
+ /// Return if a child has stopped (but not traced via [`ptrace`]).
+ ///
+ /// [`ptrace`]: https://man7.org/linux/man-pages/man2/ptrace.2.html
+ #[cfg(not(target_os = "horizon"))]
+ const UNTRACED = bitcast!(backend::process::wait::WUNTRACED);
+ /// Return if a stopped child has been resumed by delivery of
+ /// [`Signal::Cont`].
+ ///
+ /// [`Signal::Cont`]: crate::process::Signal::Cont
+ #[cfg(not(target_os = "horizon"))]
+ const CONTINUED = bitcast!(backend::process::wait::WCONTINUED);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(not(any(
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "wasi"
+)))]
+bitflags! {
+ /// Options for modifying the behavior of [`waitid`].
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct WaitIdOptions: u32 {
+ /// Return immediately if no child has exited.
+ const NOHANG = bitcast!(backend::process::wait::WNOHANG);
+ /// Return if a stopped child has been resumed by delivery of
+ /// [`Signal::Cont`].
+ ///
+ /// [`Signal::Cont`]: crate::process::Signal::Cont
+ const CONTINUED = bitcast!(backend::process::wait::WCONTINUED);
+ /// Wait for processed that have exited.
+ #[cfg(not(target_os = "cygwin"))]
+ const EXITED = bitcast!(backend::process::wait::WEXITED);
+ /// Keep processed in a waitable state.
+ #[cfg(not(target_os = "cygwin"))]
+ const NOWAIT = bitcast!(backend::process::wait::WNOWAIT);
+ /// Wait for processes that have been stopped.
+ #[cfg(not(target_os = "cygwin"))]
+ const STOPPED = bitcast!(backend::process::wait::WSTOPPED);
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// The status of a child process after calling [`wait`]/[`waitpid`].
+#[derive(Clone, Copy)]
+#[repr(transparent)]
+pub struct WaitStatus(i32);
+
+impl WaitStatus {
+ /// Creates a `WaitStatus` out of an integer.
+ #[inline]
+ pub(crate) fn new(status: i32) -> Self {
+ Self(status)
+ }
+
+ /// Converts a `WaitStatus` into its raw representation as an integer.
+ #[inline]
+ pub const fn as_raw(self) -> i32 {
+ self.0
+ }
+
+ /// Returns whether the process is currently stopped.
+ #[inline]
+ #[doc(alias = "WIFSTOPPED")]
+ pub fn stopped(self) -> bool {
+ backend::process::wait::WIFSTOPPED(self.0)
+ }
+
+ /// Returns whether the process has exited normally.
+ #[inline]
+ #[doc(alias = "WIFEXITED")]
+ pub fn exited(self) -> bool {
+ backend::process::wait::WIFEXITED(self.0)
+ }
+
+ /// Returns whether the process was terminated by a signal.
+ #[inline]
+ #[doc(alias = "WIFSIGNALED")]
+ pub fn signaled(self) -> bool {
+ backend::process::wait::WIFSIGNALED(self.0)
+ }
+
+ /// Returns whether the process has continued from a job control stop.
+ #[inline]
+ #[doc(alias = "WIFCONTINUED")]
+ pub fn continued(self) -> bool {
+ backend::process::wait::WIFCONTINUED(self.0)
+ }
+
+ /// Returns the number of the signal that stopped the process, if the
+ /// process was stopped by a signal.
+ #[inline]
+ #[doc(alias = "WSTOPSIG")]
+ pub fn stopping_signal(self) -> Option<i32> {
+ if self.stopped() {
+ Some(backend::process::wait::WSTOPSIG(self.0))
+ } else {
+ None
+ }
+ }
+
+ /// Returns the exit status number returned by the process, if it exited
+ /// normally.
+ #[inline]
+ #[doc(alias = "WEXITSTATUS")]
+ pub fn exit_status(self) -> Option<i32> {
+ if self.exited() {
+ Some(backend::process::wait::WEXITSTATUS(self.0))
+ } else {
+ None
+ }
+ }
+
+ /// Returns the number of the signal that terminated the process, if the
+ /// process was terminated by a signal.
+ #[inline]
+ #[doc(alias = "WTERMSIG")]
+ pub fn terminating_signal(self) -> Option<i32> {
+ if self.signaled() {
+ Some(backend::process::wait::WTERMSIG(self.0))
+ } else {
+ None
+ }
+ }
+}
+
+impl fmt::Debug for WaitStatus {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ let mut s = f.debug_struct("WaitStatus");
+ s.field("stopped", &self.stopped());
+ s.field("exited", &self.exited());
+ s.field("signaled", &self.signaled());
+ s.field("continued", &self.continued());
+ if let Some(stopping_signal) = self.stopping_signal() {
+ s.field("stopping_signal", &stopping_signal);
+ }
+ if let Some(exit_status) = self.exit_status() {
+ s.field("exit_status", &exit_status);
+ }
+ if let Some(terminating_signal) = self.terminating_signal() {
+ s.field("terminating_signal", &terminating_signal);
+ }
+ s.finish()
+ }
+}
+
+/// The status of a process after calling [`waitid`].
+#[derive(Clone, Copy)]
+#[repr(transparent)]
+#[cfg(not(any(
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "wasi"
+)))]
+pub struct WaitIdStatus(pub(crate) backend::c::siginfo_t);
+
+#[cfg(linux_raw)]
+// SAFETY: `siginfo_t` does contain some raw pointers, such as the `si_ptr`
+// and the `si_addr` fields, however it's up to users to use those correctly.
+unsafe impl Send for WaitIdStatus {}
+
+#[cfg(linux_raw)]
+// SAFETY: Same as with `Send`.
+unsafe impl Sync for WaitIdStatus {}
+
+#[cfg(not(any(
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "wasi"
+)))]
+impl WaitIdStatus {
+ /// Returns whether the process is currently stopped.
+ #[inline]
+ pub fn stopped(&self) -> bool {
+ self.raw_code() == bitcast!(backend::c::CLD_STOPPED)
+ }
+
+ /// Returns whether the process is currently trapped.
+ #[inline]
+ pub fn trapped(&self) -> bool {
+ self.raw_code() == bitcast!(backend::c::CLD_TRAPPED)
+ }
+
+ /// Returns whether the process has exited normally.
+ #[inline]
+ pub fn exited(&self) -> bool {
+ self.raw_code() == bitcast!(backend::c::CLD_EXITED)
+ }
+
+ /// Returns whether the process was terminated by a signal and did not
+ /// create a core file.
+ #[inline]
+ pub fn killed(&self) -> bool {
+ self.raw_code() == bitcast!(backend::c::CLD_KILLED)
+ }
+
+ /// Returns whether the process was terminated by a signal and did create a
+ /// core file.
+ #[inline]
+ pub fn dumped(&self) -> bool {
+ self.raw_code() == bitcast!(backend::c::CLD_DUMPED)
+ }
+
+ /// Returns whether the process has continued from a job control stop.
+ #[inline]
+ pub fn continued(&self) -> bool {
+ self.raw_code() == bitcast!(backend::c::CLD_CONTINUED)
+ }
+
+ /// Returns the number of the signal that stopped the process, if the
+ /// process was stopped by a signal.
+ #[inline]
+ #[cfg(not(any(target_os = "emscripten", target_os = "fuchsia", target_os = "netbsd")))]
+ pub fn stopping_signal(&self) -> Option<i32> {
+ if self.stopped() {
+ Some(self.si_status())
+ } else {
+ None
+ }
+ }
+
+ /// Returns the number of the signal that trapped the process, if the
+ /// process was trapped by a signal.
+ #[inline]
+ #[cfg(not(any(target_os = "emscripten", target_os = "fuchsia", target_os = "netbsd")))]
+ pub fn trapping_signal(&self) -> Option<i32> {
+ if self.trapped() {
+ Some(self.si_status())
+ } else {
+ None
+ }
+ }
+
+ /// Returns the exit status number returned by the process, if it exited
+ /// normally.
+ #[inline]
+ #[cfg(not(any(target_os = "emscripten", target_os = "fuchsia", target_os = "netbsd")))]
+ pub fn exit_status(&self) -> Option<i32> {
+ if self.exited() {
+ Some(self.si_status())
+ } else {
+ None
+ }
+ }
+
+ /// Returns the number of the signal that terminated the process, if the
+ /// process was terminated by a signal.
+ #[inline]
+ #[cfg(not(any(target_os = "emscripten", target_os = "fuchsia", target_os = "netbsd")))]
+ pub fn terminating_signal(&self) -> Option<i32> {
+ if self.killed() || self.dumped() {
+ Some(self.si_status())
+ } else {
+ None
+ }
+ }
+
+ /// Return the raw `si_signo` value returned from `waitid`.
+ #[cfg(linux_raw)]
+ pub fn raw_signo(&self) -> crate::ffi::c_int {
+ self.0.si_signo()
+ }
+
+ /// Return the raw `si_signo` value returned from `waitid`.
+ #[cfg(not(linux_raw))]
+ pub fn raw_signo(&self) -> crate::ffi::c_int {
+ self.0.si_signo
+ }
+
+ /// Return the raw `si_errno` value returned from `waitid`.
+ #[cfg(linux_raw)]
+ pub fn raw_errno(&self) -> crate::ffi::c_int {
+ self.0.si_errno()
+ }
+
+ /// Return the raw `si_errno` value returned from `waitid`.
+ #[cfg(not(linux_raw))]
+ pub fn raw_errno(&self) -> crate::ffi::c_int {
+ self.0.si_errno
+ }
+
+ /// Return the raw `si_code` value returned from `waitid`.
+ #[cfg(linux_raw)]
+ pub fn raw_code(&self) -> crate::ffi::c_int {
+ self.0.si_code()
+ }
+
+ /// Return the raw `si_code` value returned from `waitid`.
+ #[cfg(not(linux_raw))]
+ pub fn raw_code(&self) -> crate::ffi::c_int {
+ self.0.si_code
+ }
+
+ // This is disabled on NetBSD because the libc crate's `si_status()`
+ // implementation doesn't appear to match what's in NetBSD's headers and we
+ // don't get a meaningful value returned.
+ // TODO: Report this upstream.
+ #[cfg(not(any(target_os = "emscripten", target_os = "fuchsia", target_os = "netbsd")))]
+ #[allow(unsafe_code)]
+ fn si_status(&self) -> crate::ffi::c_int {
+ // SAFETY: POSIX [specifies] that the `siginfo_t` returned by a
+ // `waitid` call always has a valid `si_status` value.
+ //
+ // [specifies]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/signal.h.html
+ unsafe { self.0.si_status() }
+ }
+}
+
+#[cfg(not(any(
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "wasi"
+)))]
+impl fmt::Debug for WaitIdStatus {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ let mut s = f.debug_struct("WaitIdStatus");
+ s.field("stopped", &self.stopped());
+ s.field("exited", &self.exited());
+ s.field("killed", &self.killed());
+ s.field("trapped", &self.trapped());
+ s.field("dumped", &self.dumped());
+ s.field("continued", &self.continued());
+ #[cfg(not(any(target_os = "emscripten", target_os = "fuchsia", target_os = "netbsd")))]
+ if let Some(stopping_signal) = self.stopping_signal() {
+ s.field("stopping_signal", &stopping_signal);
+ }
+ #[cfg(not(any(target_os = "emscripten", target_os = "fuchsia", target_os = "netbsd")))]
+ if let Some(trapping_signal) = self.trapping_signal() {
+ s.field("trapping_signal", &trapping_signal);
+ }
+ #[cfg(not(any(target_os = "emscripten", target_os = "fuchsia", target_os = "netbsd")))]
+ if let Some(exit_status) = self.exit_status() {
+ s.field("exit_status", &exit_status);
+ }
+ #[cfg(not(any(target_os = "emscripten", target_os = "fuchsia", target_os = "netbsd")))]
+ if let Some(terminating_signal) = self.terminating_signal() {
+ s.field("terminating_signal", &terminating_signal);
+ }
+ s.finish()
+ }
+}
+
+/// The identifier to wait on in a call to [`waitid`].
+#[cfg(not(any(target_os = "openbsd", target_os = "redox", target_os = "wasi")))]
+#[derive(Debug, Clone)]
+#[non_exhaustive]
+pub enum WaitId<'a> {
+ /// Wait on all processes.
+ #[doc(alias = "P_ALL")]
+ All,
+
+ /// Wait for a specific process ID.
+ #[doc(alias = "P_PID")]
+ Pid(Pid),
+
+ /// Wait for a specific process group ID, or the calling process' group ID.
+ #[doc(alias = "P_PGID")]
+ Pgid(Option<Pid>),
+
+ /// Wait for a specific process file descriptor.
+ #[cfg(target_os = "linux")]
+ #[doc(alias = "P_PIDFD")]
+ PidFd(BorrowedFd<'a>),
+
+ /// Eat the lifetime for non-Linux platforms.
+ #[doc(hidden)]
+ #[cfg(not(target_os = "linux"))]
+ __EatLifetime(core::marker::PhantomData<&'a ()>),
+}
+
+/// `waitpid(pid, waitopts)`—Wait for a specific process to change state.
+///
+/// If the pid is `None`, the call will wait for any child process whose
+/// process group id matches that of the calling process. Otherwise, the call
+/// will wait for the child process with the given pid.
+///
+/// On Success, returns the status of the selected process.
+///
+/// If `NOHANG` was specified in the options, and the selected child process
+/// didn't change state, returns `None`.
+///
+/// To wait for a given process group (the `< -1` case of `waitpid`), use
+/// [`waitpgid`] or [`waitid`]. To wait for any process (the `-1` case of
+/// `waitpid`), use [`wait`].
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/wait.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/waitpid.2.html
+#[doc(alias = "wait4")]
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+pub fn waitpid(pid: Option<Pid>, waitopts: WaitOptions) -> io::Result<Option<(Pid, WaitStatus)>> {
+ backend::process::syscalls::waitpid(pid, waitopts)
+}
+
+/// `waitpid(-pgid, waitopts)`—Wait for a process in a specific process group
+/// to change state.
+///
+/// The call will wait for any child process with the given pgid.
+///
+/// On Success, returns the status of the selected process.
+///
+/// If `NOHANG` was specified in the options, and no selected child process
+/// changed state, returns `None`.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/wait.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/waitpid.2.html
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+pub fn waitpgid(pgid: Pid, waitopts: WaitOptions) -> io::Result<Option<(Pid, WaitStatus)>> {
+ backend::process::syscalls::waitpgid(pgid, waitopts)
+}
+
+/// `wait(waitopts)`—Wait for any of the children of calling process to
+/// change state.
+///
+/// On success, returns the pid of the child process whose state changed, and
+/// the status of said process.
+///
+/// If `NOHANG` was specified in the options, and the selected child process
+/// didn't change state, returns `None`.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/wait.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/waitpid.2.html
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+pub fn wait(waitopts: WaitOptions) -> io::Result<Option<(Pid, WaitStatus)>> {
+ backend::process::syscalls::wait(waitopts)
+}
+
+/// `waitid(_, _, _, opts)`—Wait for the specified child process to change
+/// state.
+#[cfg(not(any(
+ target_os = "cygwin",
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "wasi",
+)))]
+#[inline]
+pub fn waitid<'a, Id: Into<WaitId<'a>>>(
+ id: Id,
+ options: WaitIdOptions,
+) -> io::Result<Option<WaitIdStatus>> {
+ backend::process::syscalls::waitid(id.into(), options)
+}
diff --git a/vendor/rustix-1.0.8/src/pty.rs b/vendor/rustix-1.0.8/src/pty.rs
new file mode 100644
index 0000000..560dfc1
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/pty.rs
@@ -0,0 +1,223 @@
+//! Pseudoterminal operations.
+//!
+//! For the `openpty` and `login_tty` functions, see the
+//! [rustix-openpty crate].
+//!
+//! [rustix-openpty crate]: https://crates.io/crates/rustix-openpty
+
+#![allow(unsafe_code)]
+
+use crate::backend::c;
+use crate::fd::{AsFd, OwnedFd};
+use crate::fs::OFlags;
+use crate::{backend, io};
+#[cfg(all(
+ feature = "alloc",
+ any(
+ apple,
+ linux_like,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "illumos"
+ )
+))]
+use {crate::ffi::CString, alloc::vec::Vec};
+
+#[cfg(target_os = "linux")]
+use crate::{fd::FromRawFd as _, ioctl};
+
+bitflags::bitflags! {
+ /// `O_*` flags for use with [`openpt`] and [`ioctl_tiocgptpeer`].
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct OpenptFlags: u32 {
+ /// `O_RDWR`
+ const RDWR = c::O_RDWR as c::c_uint;
+
+ /// `O_NOCTTY`
+ #[cfg(not(any(target_os = "espidf", target_os = "horizon", target_os = "l4re", target_os = "redox", target_os = "vita")))]
+ const NOCTTY = c::O_NOCTTY as c::c_uint;
+
+ /// `O_CLOEXEC`
+ ///
+ /// The standard `posix_openpt` function doesn't support `CLOEXEC`, but
+ /// rustix supports it on Linux, and FreeBSD and NetBSD support it.
+ #[cfg(any(linux_kernel, target_os = "freebsd", target_os = "netbsd"))]
+ const CLOEXEC = c::O_CLOEXEC as c::c_uint;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+impl From<OpenptFlags> for OFlags {
+ #[inline]
+ fn from(flags: OpenptFlags) -> Self {
+ // `OpenptFlags` is a subset of `OFlags`.
+ Self::from_bits_retain(flags.bits() as _)
+ }
+}
+
+/// `posix_openpt(flags)`—Open a pseudoterminal device.
+///
+/// On Linux, an additional `CLOEXEC` flag value may be passed to request the
+/// close-on-exec flag be set.
+///
+/// On Linux, if the system has no free pseudoterminals available, the
+/// underlying system call fails with [`io::Errno::NOSPC`], however this rustix
+/// function translates that to [`io::Errno::AGAIN`], so that the linux_raw and
+/// libc backends have the same behavior.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [FreeBSD]
+/// - [DragonFly BSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [illumos]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_openpt.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/posix_openpt.3.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/posix_openpt.3.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=posix_openpt&sektion=2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=posix_openpt§ion=3
+/// [NetBSD]: https://man.netbsd.org/posix_openpt.3
+/// [OpenBSD]: https://man.openbsd.org/posix_openpt
+/// [illumos]: https://illumos.org/man/3C/posix_openpt
+#[inline]
+#[doc(alias = "posix_openpt")]
+pub fn openpt(flags: OpenptFlags) -> io::Result<OwnedFd> {
+ // On Linux, open the device ourselves so that we can support `CLOEXEC`.
+ #[cfg(linux_kernel)]
+ {
+ use crate::fs::{open, Mode};
+ match open(cstr!("/dev/ptmx"), flags.into(), Mode::empty()) {
+ // Match libc `openat` behavior with `ENOSPC`.
+ Err(io::Errno::NOSPC) => Err(io::Errno::AGAIN),
+ otherwise => otherwise,
+ }
+ }
+
+ // On all other platforms, use `openpt`.
+ #[cfg(not(linux_kernel))]
+ {
+ backend::pty::syscalls::openpt(flags)
+ }
+}
+
+/// `ptsname(fd)`—Return the name of a pseudoterminal.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/ptsname.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/ptsname.3.html
+/// [illumos]: https://www.illumos.org/man/3C/ptsname
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Allocation.html#index-ptsname
+#[cfg(all(
+ feature = "alloc",
+ any(
+ apple,
+ linux_like,
+ target_os = "freebsd",
+ target_os = "fuchsia",
+ target_os = "illumos"
+ )
+))]
+#[inline]
+#[doc(alias = "ptsname_r")]
+#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
+pub fn ptsname<Fd: AsFd, B: Into<Vec<u8>>>(fd: Fd, reuse: B) -> io::Result<CString> {
+ backend::pty::syscalls::ptsname(fd.as_fd(), reuse.into())
+}
+
+/// `unlockpt(fd)`—Unlock a pseudoterminal.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/unlockpt.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/unlockpt.3.html
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Allocation.html#index-unlockpt
+#[inline]
+pub fn unlockpt<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ backend::pty::syscalls::unlockpt(fd.as_fd())
+}
+
+/// `grantpt(fd)`—Grant access to the user side of a pseudoterminal.
+///
+/// On Linux, calling this function has no effect, as the kernel is expected to
+/// grant the appropriate access. On all other platforms, this function has
+/// unspecified behavior if the calling process has a [`Signal::CHILD`] signal
+/// handler installed.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/grantpt.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/grantpt.3.html
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Allocation.html#index-grantpt
+/// [`Signal::CHILD`]: crate::process::Signal::CHILD
+#[inline]
+pub fn grantpt<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ #[cfg(not(linux_kernel))]
+ {
+ backend::pty::syscalls::grantpt(fd.as_fd())
+ }
+
+ // On Linux, we assume the kernel has already granted the needed
+ // permissions to the user side of the pseudoterminal.
+ #[cfg(linux_kernel)]
+ {
+ let _ = fd;
+ Ok(())
+ }
+}
+
+/// `ioctl(fd, TIOCGPTPEER)`—Open the user side of a pseudoterminal.
+///
+/// This function is currently only implemented on Linux.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/ioctl_tty.2.html
+#[cfg(target_os = "linux")]
+#[inline]
+pub fn ioctl_tiocgptpeer<Fd: AsFd>(fd: Fd, flags: OpenptFlags) -> io::Result<OwnedFd> {
+ unsafe { ioctl::ioctl(fd, Tiocgptpeer(flags)) }
+}
+
+#[cfg(target_os = "linux")]
+struct Tiocgptpeer(OpenptFlags);
+
+#[cfg(target_os = "linux")]
+unsafe impl ioctl::Ioctl for Tiocgptpeer {
+ type Output = OwnedFd;
+
+ const IS_MUTATING: bool = false;
+
+ fn opcode(&self) -> ioctl::Opcode {
+ c::TIOCGPTPEER as ioctl::Opcode
+ }
+
+ fn as_ptr(&mut self) -> *mut c::c_void {
+ self.0.bits() as *mut c::c_void
+ }
+
+ unsafe fn output_from_ptr(
+ ret: ioctl::IoctlOutput,
+ _arg: *mut c::c_void,
+ ) -> io::Result<Self::Output> {
+ Ok(OwnedFd::from_raw_fd(ret))
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/rand/getrandom.rs b/vendor/rustix-1.0.8/src/rand/getrandom.rs
new file mode 100644
index 0000000..69af9a3
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/rand/getrandom.rs
@@ -0,0 +1,33 @@
+//! Wrappers for `getrandom`.
+
+#![allow(unsafe_code)]
+
+use crate::buffer::Buffer;
+use crate::{backend, io};
+
+pub use backend::rand::types::GetRandomFlags;
+
+/// `getrandom(buf, flags)`—Reads a sequence of random bytes.
+///
+/// This is a very low-level API which may be difficult to use correctly. Most
+/// users should prefer to use [`getrandom`] or [`rand`] APIs instead.
+///
+/// This function is implemented using a system call, and not the
+/// [vDSO mechanism] introduced in Linux 6.11. See [#1185] for details.
+///
+/// [`getrandom`]: https://crates.io/crates/getrandom
+/// [`rand`]: https://crates.io/crates/rand
+/// [vDSO mechanism]: https://lwn.net/Articles/983186/
+/// [#1185]: https://github.com/bytecodealliance/rustix/issues/1185
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/getrandom.2.html
+#[inline]
+pub fn getrandom<Buf: Buffer<u8>>(mut buf: Buf, flags: GetRandomFlags) -> io::Result<Buf::Output> {
+ // SAFETY: `getrandom` behaves.
+ let len = unsafe { backend::rand::syscalls::getrandom(buf.parts_mut(), flags)? };
+ // SAFETY: `getrandom` behaves.
+ unsafe { Ok(buf.assume_init(len)) }
+}
diff --git a/vendor/rustix-1.0.8/src/rand/mod.rs b/vendor/rustix-1.0.8/src/rand/mod.rs
new file mode 100644
index 0000000..e767c59
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/rand/mod.rs
@@ -0,0 +1,7 @@
+//! Random-related operations.
+
+#[cfg(linux_kernel)]
+mod getrandom;
+
+#[cfg(linux_kernel)]
+pub use getrandom::{getrandom, GetRandomFlags};
diff --git a/vendor/rustix-1.0.8/src/runtime.rs b/vendor/rustix-1.0.8/src/runtime.rs
new file mode 100644
index 0000000..9b612b8
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/runtime.rs
@@ -0,0 +1,925 @@
+//! Experimental low-level implementation details for libc-like runtime
+//! libraries such as [Origin].
+//!
+//! ⚠ These are not normal functions. ⚠
+//!
+//! - Some of the functions in this module cannot be used in a process which
+//! also has a libc present. This can be true even for functions that have
+//! the same name as a libc function that Rust code can use. Such functions
+//! are not marked `unsafe` (unless they are unsafe for other reasons), even
+//! though they invoke Undefined Behavior if called in a process which has a
+//! libc present.
+//!
+//! - Some of the functions in this module don't behave exactly the same way
+//! as functions in libc with similar names. Sometimes information about the
+//! differences is included in the Linux documentation under “C
+//! library/kernel differences” sections. But not always.
+//!
+//! - The safety requirements of the functions in this module are not fully
+//! documented.
+//!
+//! - The API for these functions is not considered stable, and this module is
+//! `doc(hidden)`.
+//!
+//! ⚠ Caution is indicated. ⚠
+//!
+//! These functions are for implementing thread-local storage (TLS), managing
+//! threads, loaded libraries, and other process-wide resources. Most of
+//! `rustix` doesn't care about what other libraries are linked into the
+//! program or what they're doing, but the features in this module generally
+//! can only be used by one entity within a process.
+//!
+//! All that said, there are some functions in this module would could
+//! potentially be stabilized and moved to other modules. See also the
+//! documentation for specific functions in the [`not_implemented`] module, and
+//! the discussion in [#1314].
+//!
+//! [Origin]: https://github.com/sunfishcode/origin#readme
+//! [`not_implemented`]: crate::not_implemented
+//! [#1314]: https://github.com/bytecodealliance/rustix/issues/1314
+//!
+//! # Safety
+//!
+//! This module is intended to be used for implementing a runtime library such
+//! as libc. Use of these features for any other purpose is likely to create
+//! serious problems.
+#![allow(unsafe_code)]
+
+use crate::ffi::CStr;
+#[cfg(feature = "fs")]
+use crate::fs::AtFlags;
+use crate::pid::Pid;
+use crate::{backend, io};
+#[cfg(feature = "fs")]
+use backend::fd::AsFd;
+use core::ffi::c_void;
+
+pub use crate::kernel_sigset::KernelSigSet;
+pub use crate::signal::Signal;
+
+/// `kernel_sigaction`
+///
+/// On some architectures, the `sa_restorer` field is omitted.
+///
+/// This type does not have the same layout as `libc::sigaction`.
+#[allow(missing_docs)]
+#[derive(Debug, Default, Clone)]
+#[repr(C)]
+pub struct KernelSigaction {
+ pub sa_handler_kernel: KernelSighandler,
+ pub sa_flags: KernelSigactionFlags,
+ #[cfg(not(any(
+ target_arch = "csky",
+ target_arch = "loongarch64",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "riscv32",
+ target_arch = "riscv64"
+ )))]
+ pub sa_restorer: KernelSigrestore,
+ pub sa_mask: KernelSigSet,
+}
+
+bitflags::bitflags! {
+ /// Flags for use with [`KernelSigaction`].
+ ///
+ /// This type does not have the same layout as `sa_flags` field in
+ /// `libc::sigaction`, however the flags have the same values as their
+ /// libc counterparts.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug, Default)]
+ pub struct KernelSigactionFlags: crate::ffi::c_ulong {
+ /// `SA_NOCLDSTOP`
+ const NOCLDSTOP = linux_raw_sys::general::SA_NOCLDSTOP as _;
+
+ /// `SA_NOCLDWAIT` (since Linux 2.6)
+ const NOCLDWAIT = linux_raw_sys::general::SA_NOCLDWAIT as _;
+
+ /// `SA_NODEFER`
+ const NODEFER = linux_raw_sys::general::SA_NODEFER as _;
+
+ /// `SA_ONSTACK`
+ const ONSTACK = linux_raw_sys::general::SA_ONSTACK as _;
+
+ /// `SA_RESETHAND`
+ const RESETHAND = linux_raw_sys::general::SA_RESETHAND as _;
+
+ /// `SA_RESTART`
+ const RESTART = linux_raw_sys::general::SA_RESTART as _;
+
+ /// `SA_RESTORER`
+ #[cfg(not(any(
+ target_arch = "csky",
+ target_arch = "loongarch64",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "riscv32",
+ target_arch = "riscv64"
+ )))]
+ const RESTORER = linux_raw_sys::general::SA_RESTORER as _;
+
+ /// `SA_SIGINFO` (since Linux 2.2)
+ const SIGINFO = linux_raw_sys::general::SA_SIGINFO as _;
+
+ /// `SA_UNSUPPORTED` (since Linux 5.11)
+ const UNSUPPORTED = linux_raw_sys::general::SA_UNSUPPORTED as _;
+
+ /// `SA_EXPOSE_TAGBITS` (since Linux 5.11)
+ const EXPOSE_TAGBITS = linux_raw_sys::general::SA_EXPOSE_TAGBITS as _;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `__sigrestore_t`
+///
+/// This type differs from `libc::sigrestore_t`, but can be transmuted to it.
+pub type KernelSigrestore = Option<unsafe extern "C" fn()>;
+
+/// `__kernel_sighandler_t`
+///
+/// This type differs from `libc::sighandler_t`, but can be transmuted to it.
+pub type KernelSighandler = Option<unsafe extern "C" fn(arg1: crate::ffi::c_int)>;
+
+/// Return a special “ignore” signal handler for ignoring signals.
+///
+/// This isn't the `SIG_IGN` value itself; it's a function that returns the
+/// `SIG_IGN` value.
+///
+/// If you're looking for `kernel_sig_dfl`; use [`KERNEL_SIG_DFL`].
+#[doc(alias = "SIG_IGN")]
+#[must_use]
+pub const fn kernel_sig_ign() -> KernelSighandler {
+ linux_raw_sys::signal_macros::sig_ign()
+}
+
+/// A special “default” signal handler representing the default behavior
+/// for handling a signal.
+///
+/// If you're looking for `KERNEL_SIG_IGN`; use [`kernel_sig_ign`].
+#[doc(alias = "SIG_DFL")]
+pub const KERNEL_SIG_DFL: KernelSighandler = linux_raw_sys::signal_macros::SIG_DFL;
+
+/// `stack_t`
+///
+/// This type is guaranteed to have the same layout as `libc::stack_t`.
+///
+/// If we want to expose this in public APIs, we should encapsulate the
+/// `linux_raw_sys` type.
+pub use linux_raw_sys::general::stack_t as Stack;
+
+/// `siginfo_t`
+///
+/// This type is guaranteed to have the same layout as `libc::siginfo_t`.
+///
+/// If we want to expose this in public APIs, we should encapsulate the
+/// `linux_raw_sys` type.
+pub use linux_raw_sys::general::siginfo_t as Siginfo;
+
+pub use crate::timespec::{Nsecs, Secs, Timespec};
+
+/// `SIG_*` constants for use with [`kernel_sigprocmask`].
+#[repr(u32)]
+pub enum How {
+ /// `SIG_BLOCK`
+ BLOCK = linux_raw_sys::general::SIG_BLOCK,
+
+ /// `SIG_UNBLOCK`
+ UNBLOCK = linux_raw_sys::general::SIG_UNBLOCK,
+
+ /// `SIG_SETMASK`
+ SETMASK = linux_raw_sys::general::SIG_SETMASK,
+}
+
+#[cfg(target_arch = "x86")]
+#[inline]
+pub unsafe fn set_thread_area(u_info: &mut UserDesc) -> io::Result<()> {
+ backend::runtime::syscalls::tls::set_thread_area(u_info)
+}
+
+#[cfg(target_arch = "arm")]
+#[inline]
+pub unsafe fn arm_set_tls(data: *mut c_void) -> io::Result<()> {
+ backend::runtime::syscalls::tls::arm_set_tls(data)
+}
+
+/// `prctl(PR_SET_FS, data)`—Set the x86-64 `fs` register.
+///
+/// # Safety
+///
+/// This is a very low-level feature for implementing threading libraries.
+/// See the references links above.
+#[cfg(target_arch = "x86_64")]
+#[inline]
+pub unsafe fn set_fs(data: *mut c_void) {
+ backend::runtime::syscalls::tls::set_fs(data)
+}
+
+/// Set the x86-64 thread ID address.
+///
+/// # Safety
+///
+/// This is a very low-level feature for implementing threading libraries.
+/// See the references links above.
+#[inline]
+pub unsafe fn set_tid_address(data: *mut c_void) -> Pid {
+ backend::runtime::syscalls::tls::set_tid_address(data)
+}
+
+#[cfg(target_arch = "x86")]
+pub use backend::runtime::tls::UserDesc;
+
+/// `syscall(SYS_exit, status)`—Exit the current thread.
+///
+/// # Safety
+///
+/// This is a very low-level feature for implementing threading libraries.
+#[inline]
+pub unsafe fn exit_thread(status: i32) -> ! {
+ backend::runtime::syscalls::tls::exit_thread(status)
+}
+
+/// Exit all the threads in the current process' thread group.
+///
+/// This is equivalent to `_exit` and `_Exit` in libc.
+///
+/// This does not call any `__cxa_atexit`, `atexit`, or any other destructors.
+/// Most programs should use [`std::process::exit`] instead of calling this
+/// directly.
+///
+/// # References
+/// - [POSIX `_Exit`]
+/// - [Linux `exit_group`]
+/// - [Linux `_Exit`]
+///
+/// [POSIX `_Exit`]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/_Exit.html
+/// [Linux `exit_group`]: https://man7.org/linux/man-pages/man2/exit_group.2.html
+/// [Linux `_Exit`]: https://man7.org/linux/man-pages/man2/_Exit.2.html
+#[doc(alias = "_exit", alias = "_Exit")]
+#[inline]
+pub fn exit_group(status: i32) -> ! {
+ backend::runtime::syscalls::exit_group(status)
+}
+
+/// `EXIT_SUCCESS` for use with [`exit_group`].
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/stdlib.h.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/exit.3.html
+pub const EXIT_SUCCESS: i32 = backend::c::EXIT_SUCCESS;
+
+/// `EXIT_FAILURE` for use with [`exit_group`].
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/stdlib.h.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/exit.3.html
+pub const EXIT_FAILURE: i32 = backend::c::EXIT_FAILURE;
+
+/// `(getauxval(AT_PHDR), getauxval(AT_PHENT), getauxval(AT_PHNUM))`—Returns
+/// the address, ELF segment header size, and number of ELF segment headers for
+/// the main executable.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man3/getauxval.3.html
+#[inline]
+pub fn exe_phdrs() -> (*const c_void, usize, usize) {
+ backend::param::auxv::exe_phdrs()
+}
+
+/// `getauxval(AT_ENTRY)`—Returns the address of the program entrypoint.
+///
+/// Most code interested in the program entrypoint address should instead use a
+/// symbol reference to `_start`. That will be properly PC-relative or
+/// relocated if needed, and will come with appropriate pointer type and
+/// pointer provenance.
+///
+/// This function is intended only for use in code that implements those
+/// relocations, to compute the ASLR offset. It has type `usize`, so it doesn't
+/// carry any provenance, and it shouldn't be used to dereference memory.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man3/getauxval.3.html
+#[inline]
+pub fn entry() -> usize {
+ backend::param::auxv::entry()
+}
+
+/// `getauxval(AT_RANDOM)`—Returns the address of 16 pseudorandom bytes.
+///
+/// These bytes are for use by libc. For anything else, use the `rand` crate.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man3/getauxval.3.html
+#[inline]
+pub fn random() -> *const [u8; 16] {
+ backend::param::auxv::random()
+}
+
+/// `fork()`—Creates a new process by duplicating the calling process.
+///
+/// On success, `Fork::ParentOf` containing the pid of the child process is
+/// returned in the parent, and `Fork::Child` containing the pid of the child
+/// process is returned in the child.
+///
+/// Unlike its POSIX and libc counterparts, this `fork` does not invoke any
+/// handlers (such as those registered with `pthread_atfork`).
+///
+/// The program environment in the child after a `fork` and before an `execve`
+/// is very special. All code that executes in this environment must avoid:
+///
+/// - Acquiring any other locks that are held in other threads on the parent
+/// at the time of the `fork`, as the child only contains one thread, and
+/// attempting to acquire such locks will deadlock (though this is [not
+/// considered unsafe]).
+///
+/// - Performing any dynamic allocation using the global allocator, since
+/// global allocators may use locks to ensure thread safety, and their locks
+/// may not be released in the child process, so attempts to allocate may
+/// deadlock (as described in the previous point).
+///
+/// - Accessing any external state which the parent assumes it has exclusive
+/// access to, such as a file protected by a file lock, as this could
+/// corrupt the external state.
+///
+/// - Accessing any random-number-generator state inherited from the parent,
+/// as the parent may have the same state and generate the same random
+/// numbers, which may violate security invariants.
+///
+/// - Accessing any thread runtime state, since this function does not update
+/// the thread id in the thread runtime, so thread runtime functions could
+/// cause undefined behavior.
+///
+/// - Accessing any memory shared with the parent, such as a [`MAP_SHARED`]
+/// mapping, even with anonymous or [`memfd_create`] mappings, as this could
+/// cause undefined behavior.
+///
+/// - Calling any C function which isn't known to be [async-signal-safe], as
+/// that could cause undefined behavior. The extent to which this also
+/// applies to Rust functions is unclear at this time.
+///
+/// - And more.
+///
+/// # Safety
+///
+/// The child must avoid accessing any memory shared with the parent in a
+/// way that invokes undefined behavior. It must avoid accessing any threading
+/// runtime functions in a way that invokes undefined behavior. And it must
+/// avoid invoking any undefined behavior through any function that is not
+/// guaranteed to be async-signal-safe. But, what does async-signal-safe even
+/// mean in a Rust program? This documentation does not have all the answers.
+///
+/// So you're on your own. And on top of all the troubles with `fork` in
+/// general, this wrapper implementation is highly experimental.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// # Literary interlude
+///
+/// > Do not jump on ancient uncles.
+/// > Do not yell at average mice.
+/// > Do not wear a broom to breakfast.
+/// > Do not ask a snake’s advice.
+/// > Do not bathe in chocolate pudding.
+/// > Do not talk to bearded bears.
+/// > Do not smoke cigars on sofas.
+/// > Do not dance on velvet chairs.
+/// > Do not take a whale to visit
+/// > Russell’s mother’s cousin’s yacht.
+/// > And whatever else you do do
+/// > It is better you
+/// > Do not.
+///
+/// — “Rules”, by Karla Kuskin
+///
+/// [`MAP_SHARED`]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/mmap.html
+/// [not considered unsafe]: https://doc.rust-lang.org/reference/behavior-not-considered-unsafe.html#deadlocks
+/// [`memfd_create`]: https://man7.org/linux/man-pages/man2/memfd_create.2.html
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/fork.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/fork.2.html
+/// [async-signal-safe]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/V2_chap02.html#tag_15_04_03
+pub unsafe fn kernel_fork() -> io::Result<Fork> {
+ backend::runtime::syscalls::kernel_fork()
+}
+
+/// Regular Unix `fork` doesn't tell the child its own PID because it assumes
+/// the child can just do `getpid`. That's true, but it's more fun if it
+/// doesn't have to.
+pub enum Fork {
+ /// This is returned in the child process after a `fork`. It holds the PID
+ /// of the child.
+ Child(Pid),
+
+ /// This is returned in the parent process after a `fork`. It holds the PID
+ /// of the child.
+ ParentOf(Pid),
+}
+
+/// `execveat(dirfd, path.as_c_str(), argv, envp, flags)`—Execute a new
+/// command using the current process.
+///
+/// Taking raw-pointers-to-raw-pointers is convenient for c-scape, but we
+/// should think about potentially a more Rust-idiomatic API if this is ever
+/// made public.
+///
+/// # Safety
+///
+/// The `argv` and `envp` pointers must point to NUL-terminated arrays, and
+/// their contents must be pointers to NUL-terminated byte arrays.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/execveat.2.html
+#[inline]
+#[cfg(feature = "fs")]
+#[cfg_attr(docsrs, doc(cfg(feature = "fs")))]
+#[must_use]
+pub unsafe fn execveat<Fd: AsFd>(
+ dirfd: Fd,
+ path: &CStr,
+ argv: *const *const u8,
+ envp: *const *const u8,
+ flags: AtFlags,
+) -> io::Errno {
+ backend::runtime::syscalls::execveat(dirfd.as_fd(), path, argv, envp, flags)
+}
+
+/// `execve(path.as_c_str(), argv, envp)`—Execute a new command using the
+/// current process.
+///
+/// Taking raw-pointers-to-raw-pointers is convenient for c-scape, but we
+/// should think about potentially a more Rust-idiomatic API if this is ever
+/// made public.
+///
+/// # Safety
+///
+/// The `argv` and `envp` pointers must point to NUL-terminated arrays, and
+/// their contents must be pointers to NUL-terminated byte arrays.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/execve.2.html
+#[inline]
+#[must_use]
+pub unsafe fn execve(path: &CStr, argv: *const *const u8, envp: *const *const u8) -> io::Errno {
+ backend::runtime::syscalls::execve(path, argv, envp)
+}
+
+/// `sigaction(signal, &new, &old)`—Modify and/or query a signal handler.
+///
+/// # Safety
+///
+/// You're on your own. And on top of all the troubles with signal handlers,
+/// this implementation is highly experimental. Even further, it differs from
+/// the libc `sigaction` in several non-obvious and unsafe ways.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/sigaction.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/sigaction.2.html
+#[inline]
+pub unsafe fn kernel_sigaction(
+ signal: Signal,
+ new: Option<KernelSigaction>,
+) -> io::Result<KernelSigaction> {
+ backend::runtime::syscalls::kernel_sigaction(signal, new)
+}
+
+/// `sigaltstack(new, old)`—Modify and/or query a signal stack.
+///
+/// # Safety
+///
+/// The memory region described by `new` must readable and writable and larger
+/// than the platform minimum signal stack size, and must have a guard region
+/// that conforms to the platform conventions for stack guard regions. The
+/// flags in `new` must be valid. This function does not diagnose all the
+/// errors that libc `sigaltstack` functions are documented as diagnosing.
+///
+/// While the memory region pointed to by `new` is registered as a signal
+/// stack, it must remain readable and writable, and must not be mutated in
+/// any way other than by having a signal handler run in it, and must not be
+/// the referent of a Rust reference from outside the signal handler.
+///
+/// If code elsewhere in the program is depending on signal handlers being run
+/// on a particular stack, this could break that code's assumptions. And if the
+/// caller is depending on signal handlers being run on the stack specified in
+/// the call, its assumptions could be broken by code elsewhere in the program
+/// calling this function.
+///
+/// There are probably things out there that assume that all alternate signal
+/// stack registration goes through libc, and this does not go through libc.
+///
+/// There may be further safety hazards not yet documented here.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/sigaltstack.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/sigaltstack.2.html
+#[inline]
+pub unsafe fn kernel_sigaltstack(new: Option<Stack>) -> io::Result<Stack> {
+ backend::runtime::syscalls::kernel_sigaltstack(new)
+}
+
+/// `tkill(tid, sig)`—Send a signal to a thread.
+///
+/// # Safety
+///
+/// Causing an individual thread to abruptly terminate without involving the
+/// process' thread runtime (such as the libpthread or the libc) evokes
+/// undefined behavior.
+///
+/// Also, this is not `tgkill`, so the warning about the hazard of recycled
+/// thread IDs applies.
+///
+/// There may be further safety hazards not yet documented here.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/tkill.2.html
+#[inline]
+pub unsafe fn tkill(tid: Pid, sig: Signal) -> io::Result<()> {
+ backend::runtime::syscalls::tkill(tid, sig)
+}
+
+/// `rt_sigprocmask(how, set, oldset)`—Adjust the process signal mask.
+///
+/// If this is ever exposed publicly, we should think about whether it should
+/// mask out signals reserved by libc.
+///
+/// # Safety
+///
+/// If there is a libc in the process, the `set` must not contain any signal
+/// reserved by the libc.
+///
+/// If code elsewhere in the program is depending on delivery of a signal for
+/// any reason, for example to prevent it from executing some code, this could
+/// cause it to miss that signal, and for example execute that code. And if the
+/// caller is depending on delivery of a signal for any reason, its assumptions
+/// could be broken by code elsewhere in the program calling this function.
+///
+/// There may be further safety hazards not yet documented here.
+///
+/// # References
+/// - [Linux `rt_sigprocmask`]
+/// - [Linux `pthread_sigmask`]
+///
+/// [Linux `rt_sigprocmask`]: https://man7.org/linux/man-pages/man2/rt_sigprocmask.2.html
+/// [Linux `pthread_sigmask`]: https://man7.org/linux/man-pages/man3/pthread_sigmask.3.html
+#[inline]
+#[doc(alias = "pthread_sigmask")]
+#[doc(alias = "rt_sigprocmask")]
+pub unsafe fn kernel_sigprocmask(how: How, set: Option<&KernelSigSet>) -> io::Result<KernelSigSet> {
+ backend::runtime::syscalls::kernel_sigprocmask(how, set)
+}
+
+/// `sigpending()`—Query the pending signals.
+///
+/// If this is ever exposed publicly, we should think about whether it should
+/// mask out signals reserved by libc.
+///
+/// # References
+/// - [Linux `sigpending`]
+///
+/// [Linux `sigpending`]: https://man7.org/linux/man-pages/man2/sigpending.2.html
+#[inline]
+pub fn kernel_sigpending() -> KernelSigSet {
+ backend::runtime::syscalls::kernel_sigpending()
+}
+
+/// `sigsuspend(set)`—Suspend the calling thread and wait for signals.
+///
+/// If this is ever exposed publicly, we should think about whether it should
+/// be made to fail if given signals reserved by libc.
+///
+/// # References
+/// - [Linux `sigsuspend`]
+///
+/// [Linux `sigsuspend`]: https://man7.org/linux/man-pages/man2/sigsuspend.2.html
+#[inline]
+pub fn kernel_sigsuspend(set: &KernelSigSet) -> io::Result<()> {
+ backend::runtime::syscalls::kernel_sigsuspend(set)
+}
+
+/// `sigwait(set)`—Wait for signals.
+///
+/// If this is ever exposed publicly, we should think about whether it should
+/// mask out signals reserved by libc.
+///
+/// # Safety
+///
+/// If there is a libc in the process, the `set` must not contain any signal
+/// reserved by the libc.
+///
+/// If code elsewhere in the program is depending on delivery of a signal for
+/// any reason, for example to prevent it from executing some code, this could
+/// cause it to miss that signal, and for example execute that code. And if the
+/// caller is depending on delivery of a signal for any reason, its assumptions
+/// could be broken by code elsewhere in the program calling this function.
+///
+/// There may be further safety hazards not yet documented here.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man3/sigwait.3.html
+#[inline]
+pub unsafe fn kernel_sigwait(set: &KernelSigSet) -> io::Result<Signal> {
+ backend::runtime::syscalls::kernel_sigwait(set)
+}
+
+/// `sigwaitinfo(set)`—Wait for signals, returning a [`Siginfo`].
+///
+/// If this is ever exposed publicly, we should think about whether it should
+/// mask out signals reserved by libc.
+///
+/// # Safety
+///
+/// If there is a libc in the process, the `set` must not contain any signal
+/// reserved by the libc.
+///
+/// If code elsewhere in the program is depending on delivery of a signal for
+/// any reason, for example to prevent it from executing some code, this could
+/// cause it to miss that signal, and for example execute that code. And if the
+/// caller is depending on delivery of a signal for any reason, its assumptions
+/// could be broken by code elsewhere in the program calling this function.
+///
+/// There may be further safety hazards not yet documented here.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/sigwaitinfo.2.html
+#[inline]
+pub unsafe fn kernel_sigwaitinfo(set: &KernelSigSet) -> io::Result<Siginfo> {
+ backend::runtime::syscalls::kernel_sigwaitinfo(set)
+}
+
+/// `sigtimedwait(set)`—Wait for signals, optionally with a timeout.
+///
+/// If this is ever exposed publicly, we should think about whether it should
+/// mask out signals reserved by libc.
+///
+/// # Safety
+///
+/// If there is a libc in the process, the `set` must not contain any signal
+/// reserved by the libc.
+///
+/// If code elsewhere in the program is depending on delivery of a signal for
+/// any reason, for example to prevent it from executing some code, this could
+/// cause it to miss that signal, and for example execute that code. And if the
+/// caller is depending on delivery of a signal for any reason, its assumptions
+/// could be broken by code elsewhere in the program calling this function.
+///
+/// There may be further safety hazards not yet documented here.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/sigtimedwait.2.html
+#[inline]
+pub unsafe fn kernel_sigtimedwait(
+ set: &KernelSigSet,
+ timeout: Option<&Timespec>,
+) -> io::Result<Siginfo> {
+ backend::runtime::syscalls::kernel_sigtimedwait(set, timeout)
+}
+
+/// `getauxval(AT_SECURE)`—Returns the Linux “secure execution” mode.
+///
+/// Return a boolean value indicating whether “secure execution” mode was
+/// requested, due to the process having elevated privileges. This includes
+/// whether the `AT_SECURE` AUX value is set, and whether the initial real UID
+/// and GID differ from the initial effective UID and GID.
+///
+/// The meaning of “secure execution” mode is beyond the scope of this
+/// comment.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man3/getauxval.3.html
+#[inline]
+pub fn linux_secure() -> bool {
+ backend::param::auxv::linux_secure()
+}
+
+/// `brk(addr)`—Change the location of the “program break”.
+///
+/// # Safety
+///
+/// This is not identical to `brk` in libc. libc `brk` may have bookkeeping
+/// that needs to be kept up to date that this doesn't keep up to date, so
+/// don't use it unless you know your code won't share a process with a libc
+/// (perhaps because you yourself are implementing a libc).
+#[inline]
+pub unsafe fn kernel_brk(addr: *mut c_void) -> io::Result<*mut c_void> {
+ backend::runtime::syscalls::kernel_brk(addr)
+}
+
+/// `SIGRTMIN`—The start of the raw OS “real-time” signal range.
+///
+/// This is the raw `SIGRTMIN` value from the OS, which is not the same as the
+/// `SIGRTMIN` macro provided by libc. Don't use this unless you know your code
+/// won't share a process with a libc (perhaps because you yourself are
+/// implementing a libc).
+pub const KERNEL_SIGRTMIN: i32 = linux_raw_sys::general::SIGRTMIN as i32;
+
+/// `SIGRTMAX`—The last of the raw OS “real-time” signal range.
+///
+/// This is the raw `SIGRTMAX` value from the OS, which is not the same as the
+/// `SIGRTMAX` macro provided by libc. Don't use this unless you know your code
+/// won't share a process with a libc (perhaps because you yourself are
+/// implementing a libc).
+pub const KERNEL_SIGRTMAX: i32 = {
+ // Use the actual `SIGRTMAX` value on platforms which define it.
+ #[cfg(not(any(
+ target_arch = "arm",
+ target_arch = "s390x",
+ target_arch = "x86",
+ target_arch = "x86_64",
+ )))]
+ {
+ linux_raw_sys::general::SIGRTMAX as i32
+ }
+
+ // On platforms that don't, derive it from `_NSIG`.
+ //
+ // In the Linux kernel headers, `_NSIG` refers to the number of signals
+ // known to the kernel. It's 64 on most architectures.
+ //
+ // In libc headers, `_NSIG` refers to the exclusive upper bound of the
+ // signals known to the kernel. It's 65 on most architectures.
+ //
+ // This discrepancy arises because a signal value of 0 is used as a
+ // sentinel, and the first `sigset_t` bit is signal 1 instead of 0. The
+ // Linux kernel headers and libc headers disagree on the interpretation of
+ // `_NSIG` as a result.
+ //
+ // Here, we use the Linux kernel header value.
+ #[cfg(any(
+ target_arch = "arm",
+ target_arch = "s390x",
+ target_arch = "x86",
+ target_arch = "x86_64",
+ ))]
+ {
+ linux_raw_sys::general::_NSIG as i32
+ }
+};
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_assumptions() {
+ assert!(libc::SIGSYS < KERNEL_SIGRTMIN);
+ assert!(KERNEL_SIGRTMIN <= libc::SIGRTMIN());
+
+ // POSIX guarantees at least 8 RT signals.
+ assert!(libc::SIGRTMIN() + 8 <= KERNEL_SIGRTMAX);
+
+ // POSIX guarantees at least 8 RT signals, and it's not uncommon for
+ // libc implementations to reserve up to 3 for their own purposes.
+ assert!(KERNEL_SIGRTMIN + 8 + 3 <= KERNEL_SIGRTMAX);
+
+ assert!(KERNEL_SIGRTMAX <= libc::SIGRTMAX());
+ assert!(libc::SIGRTMAX() as u32 <= linux_raw_sys::general::_NSIG);
+
+ assert!(KERNEL_SIGRTMAX as usize - 1 < core::mem::size_of::<KernelSigSet>() * 8);
+ }
+
+ #[test]
+ fn test_layouts_matching_libc() {
+ use linux_raw_sys::general::siginfo__bindgen_ty_1__bindgen_ty_1;
+
+ // c-scape assumes rustix's `Siginfo` matches libc's. We don't use
+ // check_types macros because we want to test compatibility with actual
+ // libc, not the `crate::backend::c` which might be our own
+ // implementation.
+ assert_eq_size!(Siginfo, libc::siginfo_t);
+ assert_eq_align!(Siginfo, libc::siginfo_t);
+ assert_eq!(
+ memoffset::span_of!(Siginfo, ..),
+ memoffset::span_of!(Siginfo, __bindgen_anon_1)
+ );
+ assert_eq!(
+ memoffset::span_of!(siginfo__bindgen_ty_1__bindgen_ty_1, si_signo),
+ memoffset::span_of!(libc::siginfo_t, si_signo)
+ );
+ assert_eq!(
+ memoffset::span_of!(siginfo__bindgen_ty_1__bindgen_ty_1, si_errno),
+ memoffset::span_of!(libc::siginfo_t, si_errno)
+ );
+ assert_eq!(
+ memoffset::span_of!(siginfo__bindgen_ty_1__bindgen_ty_1, si_code),
+ memoffset::span_of!(libc::siginfo_t, si_code)
+ );
+
+ // c-scape assumes rustix's `Stack` matches libc's. Similar to above.
+ assert_eq_size!(Stack, libc::stack_t);
+ assert_eq_align!(Stack, libc::stack_t);
+ assert_eq!(
+ memoffset::span_of!(Stack, ss_sp),
+ memoffset::span_of!(libc::stack_t, ss_sp)
+ );
+ assert_eq!(
+ memoffset::span_of!(Stack, ss_flags),
+ memoffset::span_of!(libc::stack_t, ss_flags)
+ );
+ assert_eq!(
+ memoffset::span_of!(Stack, ss_size),
+ memoffset::span_of!(libc::stack_t, ss_size)
+ );
+ }
+
+ #[test]
+ fn test_layouts_matching_kernel() {
+ use linux_raw_sys::general as c;
+
+ // Rustix's versions of these must match the kernel's versions.
+ // Some architectures have `sa_restorer`.
+ #[cfg(not(any(
+ target_arch = "csky",
+ target_arch = "loongarch64",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "riscv32",
+ target_arch = "riscv64"
+ )))]
+ check_renamed_struct!(
+ KernelSigaction,
+ kernel_sigaction,
+ sa_handler_kernel,
+ sa_flags,
+ sa_restorer,
+ sa_mask
+ );
+ // Some architectures omit `sa_restorer`.
+ #[cfg(any(
+ target_arch = "csky",
+ target_arch = "loongarch64",
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "riscv32",
+ target_arch = "riscv64"
+ ))]
+ check_renamed_struct!(
+ KernelSigaction,
+ kernel_sigaction,
+ sa_handler_kernel,
+ sa_flags,
+ sa_mask
+ );
+ assert_eq_size!(KernelSigactionFlags, crate::ffi::c_ulong);
+ assert_eq_align!(KernelSigactionFlags, crate::ffi::c_ulong);
+ check_renamed_type!(KernelSigrestore, __sigrestore_t);
+ check_renamed_type!(KernelSighandler, __kernel_sighandler_t);
+
+ assert_eq!(
+ libc::SA_NOCLDSTOP,
+ KernelSigactionFlags::NOCLDSTOP.bits() as _
+ );
+ assert_eq!(
+ libc::SA_NOCLDWAIT,
+ KernelSigactionFlags::NOCLDWAIT.bits() as _
+ );
+ assert_eq!(libc::SA_NODEFER, KernelSigactionFlags::NODEFER.bits() as _);
+ assert_eq!(libc::SA_ONSTACK, KernelSigactionFlags::ONSTACK.bits() as _);
+ assert_eq!(
+ libc::SA_RESETHAND,
+ KernelSigactionFlags::RESETHAND.bits() as _
+ );
+ assert_eq!(libc::SA_RESTART, KernelSigactionFlags::RESTART.bits() as _);
+ assert_eq!(libc::SA_SIGINFO, KernelSigactionFlags::SIGINFO.bits() as _);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/shm.rs b/vendor/rustix-1.0.8/src/shm.rs
new file mode 100644
index 0000000..f279250
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/shm.rs
@@ -0,0 +1,96 @@
+//! POSIX shared memory
+//!
+//! # Examples
+//!
+//! ```
+//! use rustix::fs::{ftruncate, Mode};
+//! use rustix::mm::{mmap, MapFlags, ProtFlags};
+//! use rustix::{io, shm};
+//! use std::mem::size_of;
+//! use std::ptr::null_mut;
+//!
+//! # fn example() -> io::Result<()> {
+//! // A type describing the data to be shared.
+//! #[repr(C)]
+//! struct MyBufferType {
+//! // …
+//! }
+//!
+//! // Create the shared memory object.
+//! let shm_path = "/rustix-shm-example";
+//! let fd = shm::open(
+//! shm_path,
+//! shm::OFlags::CREATE | shm::OFlags::EXCL | shm::OFlags::RDWR,
+//! Mode::RUSR | Mode::WUSR,
+//! )?;
+//!
+//! // Resize the shared memory object to the size of our data.
+//! ftruncate(&fd, size_of::<MyBufferType>() as u64)?;
+//!
+//! // Map the shared memory object into our address space.
+//! //
+//! // SAFETY: We're creating a new mapping that's independent of any existing
+//! // memory allocations. There are interesting things to say about *using*
+//! // `ptr`, but that's for another safety comment.
+//! let ptr = unsafe {
+//! mmap(
+//! null_mut(),
+//! size_of::<MyBufferType>(),
+//! ProtFlags::READ | ProtFlags::WRITE,
+//! MapFlags::SHARED,
+//! &fd,
+//! 0,
+//! )?
+//! };
+//!
+//! // Use `ptr`…
+//!
+//! // Remove the shared memory object name.
+//! shm::unlink(shm_path)?;
+//! # Ok(())
+//! # }
+//! ```
+
+#![allow(unused_qualifications)]
+
+use crate::fd::OwnedFd;
+use crate::{backend, io, path};
+
+use super::shm;
+pub use crate::backend::fs::types::Mode;
+pub use crate::backend::shm::types::ShmOFlags as OFlags;
+
+/// `shm_open(name, oflags, mode)`—Opens a shared memory object.
+///
+/// For portability, `name` should begin with a slash, contain no other
+/// slashes, and be no longer than an implementation-defined limit (255 on
+/// Linux).
+///
+/// Exactly one of [`shm::OFlags::RDONLY`] and [`shm::OFlags::RDWR`] should be
+/// passed. The file descriptor will be opened with `FD_CLOEXEC` set.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/shm_open.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/shm_open.3.html
+#[doc(alias = "shm_open")]
+#[inline]
+pub fn open<P: path::Arg>(name: P, flags: shm::OFlags, mode: Mode) -> io::Result<OwnedFd> {
+ name.into_with_c_str(|name| backend::shm::syscalls::shm_open(name, flags, mode))
+}
+
+/// `shm_unlink(name)`—Unlinks a shared memory object.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/shm_unlink.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/shm_unlink.3.html
+#[doc(alias = "shm_unlink")]
+#[inline]
+pub fn unlink<P: path::Arg>(name: P) -> io::Result<()> {
+ name.into_with_c_str(backend::shm::syscalls::shm_unlink)
+}
diff --git a/vendor/rustix-1.0.8/src/signal.rs b/vendor/rustix-1.0.8/src/signal.rs
new file mode 100644
index 0000000..e69c64b
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/signal.rs
@@ -0,0 +1,539 @@
+//! Signal numbers.
+//!
+//! # Safety
+//!
+//! Some signal numbers are reserved by the libc.
+//! [`Signal::from_raw_unchecked`] and [`Signal::from_raw_nonzero_unchecked`]
+//! allow constructing `Signal` values with arbitrary values. Users must avoid
+//! using reserved values to send, consume, or block any signals or alter any
+//! signal handlers.
+//!
+//! See the individual functions' safety comments for more details.
+#![allow(unsafe_code)]
+
+use crate::backend::c;
+use core::fmt;
+use core::num::NonZeroI32;
+
+/// A signal number for use with [`kill_process`], [`kill_process_group`], and
+/// [`kill_current_process_group`].
+///
+/// For additional constructors such as [`Signal::rt_min`]
+/// (aka `libc::SIGRTMIN`), [`Signal::rt_max`] (aka `libc::SIGRTMAX`),
+/// [`Signal::rt`] (aka `|n| libc::SIGRTMIN() + n`), [`Signal::from_raw`], and
+/// [`Signal::from_raw_nonzero`], see [rustix-libc-wrappers].
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/signal.h.html
+/// [Linux]: https://man7.org/linux/man-pages/man7/signal.7.html
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Standard-Signals.html
+///
+/// [`kill_process`]: crate::process::kill_process
+/// [`kill_process_group`]: crate::process::kill_process_group
+/// [`kill_current_process_group`]: crate::process::kill_current_process_group
+/// [`Signal::rt_min`]: https://docs.rs/rustix-libc-wrappers/*/rustix_libc_wrappers/trait.SignalExt.html#tymethod.rt_min
+/// [`Signal::rt_max`]: https://docs.rs/rustix-libc-wrappers/*/rustix_libc_wrappers/trait.SignalExt.html#tymethod.rt_max
+/// [`Signal::rt`]: https://docs.rs/rustix-libc-wrappers/*/rustix_libc_wrappers/trait.SignalExt.html#tymethod.rt
+/// [`Signal::from_raw`]: https://docs.rs/rustix-libc-wrappers/*/rustix_libc_wrappers/trait.SignalExt.html#tymethod.from_raw
+/// [`Signal::from_raw_nonzero`]: https://docs.rs/rustix-libc-wrappers/*/rustix_libc_wrappers/trait.SignalExt.html#tymethod.from_raw_nonzero
+/// [rustix-libc-wrappers]: https://docs.rs/rustix-libc-wrappers
+#[doc(alias = "SIGRTMIN")]
+#[doc(alias = "SIGRTMAX")]
+#[derive(Copy, Clone, Eq, PartialEq)]
+#[repr(transparent)]
+pub struct Signal(NonZeroI32);
+
+// SAFETY: The libc-defined signal values are all non-zero.
+#[rustfmt::skip]
+impl Signal {
+ /// `SIGHUP`
+ pub const HUP: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGHUP) });
+ /// `SIGINT`
+ pub const INT: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGINT) });
+ /// `SIGQUIT`
+ pub const QUIT: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGQUIT) });
+ /// `SIGILL`
+ pub const ILL: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGILL) });
+ /// `SIGTRAP`
+ pub const TRAP: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGTRAP) });
+ /// `SIGABRT`, aka `SIGIOT`
+ #[doc(alias = "IOT")]
+ #[doc(alias = "ABRT")]
+ pub const ABORT: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGABRT) });
+ /// `SIGBUS`
+ pub const BUS: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGBUS) });
+ /// `SIGFPE`
+ pub const FPE: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGFPE) });
+ /// `SIGKILL`
+ pub const KILL: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGKILL) });
+ /// `SIGUSR1`
+ #[cfg(not(target_os = "vita"))]
+ pub const USR1: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGUSR1) });
+ /// `SIGSEGV`
+ pub const SEGV: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGSEGV) });
+ /// `SIGUSR2`
+ #[cfg(not(target_os = "vita"))]
+ pub const USR2: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGUSR2) });
+ /// `SIGPIPE`
+ pub const PIPE: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGPIPE) });
+ /// `SIGALRM`
+ #[doc(alias = "ALRM")]
+ pub const ALARM: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGALRM) });
+ /// `SIGTERM`
+ pub const TERM: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGTERM) });
+ /// `SIGSTKFLT`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "vita",
+ all(
+ linux_kernel,
+ any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "sparc",
+ target_arch = "sparc64"
+ ),
+ ),
+ )))]
+ pub const STKFLT: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGSTKFLT) });
+ /// `SIGCHLD`
+ #[cfg(not(target_os = "vita"))]
+ #[doc(alias = "CHLD")]
+ pub const CHILD: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGCHLD) });
+ /// `SIGCONT`
+ #[cfg(not(target_os = "vita"))]
+ pub const CONT: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGCONT) });
+ /// `SIGSTOP`
+ #[cfg(not(target_os = "vita"))]
+ pub const STOP: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGSTOP) });
+ /// `SIGTSTP`
+ #[cfg(not(target_os = "vita"))]
+ pub const TSTP: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGTSTP) });
+ /// `SIGTTIN`
+ #[cfg(not(target_os = "vita"))]
+ pub const TTIN: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGTTIN) });
+ /// `SIGTTOU`
+ #[cfg(not(target_os = "vita"))]
+ pub const TTOU: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGTTOU) });
+ /// `SIGURG`
+ #[cfg(not(target_os = "vita"))]
+ pub const URG: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGURG) });
+ /// `SIGXCPU`
+ #[cfg(not(target_os = "vita"))]
+ pub const XCPU: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGXCPU) });
+ /// `SIGXFSZ`
+ #[cfg(not(target_os = "vita"))]
+ pub const XFSZ: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGXFSZ) });
+ /// `SIGVTALRM`
+ #[cfg(not(target_os = "vita"))]
+ #[doc(alias = "VTALRM")]
+ pub const VTALARM: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGVTALRM) });
+ /// `SIGPROF`
+ #[cfg(not(target_os = "vita"))]
+ pub const PROF: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGPROF) });
+ /// `SIGWINCH`
+ #[cfg(not(target_os = "vita"))]
+ pub const WINCH: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGWINCH) });
+ /// `SIGIO`, aka `SIGPOLL`
+ #[doc(alias = "POLL")]
+ #[cfg(not(any(target_os = "haiku", target_os = "vita")))]
+ pub const IO: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGIO) });
+ /// `SIGPWR`
+ #[cfg(not(any(
+ bsd,
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "vita"
+ )))]
+ #[doc(alias = "PWR")]
+ pub const POWER: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGPWR) });
+ /// `SIGSYS`, aka `SIGUNUSED`
+ #[doc(alias = "UNUSED")]
+ pub const SYS: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGSYS) });
+ /// `SIGEMT`
+ #[cfg(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "hermit",
+ all(
+ linux_kernel,
+ any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "sparc",
+ target_arch = "sparc64"
+ )
+ )
+ ))]
+ pub const EMT: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGEMT) });
+ /// `SIGINFO`
+ #[cfg(bsd)]
+ pub const INFO: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGINFO) });
+ /// `SIGTHR`
+ #[cfg(target_os = "freebsd")]
+ #[doc(alias = "LWP")]
+ pub const THR: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGTHR) });
+ /// `SIGLIBRT`
+ #[cfg(target_os = "freebsd")]
+ pub const LIBRT: Self = Self(unsafe { NonZeroI32::new_unchecked(c::SIGLIBRT) });
+}
+
+impl Signal {
+ /// Convert a `Signal` to a raw signal number.
+ ///
+ /// To convert to a `NonZeroI32`, use [`Signal::as_raw_nonzero`].
+ #[inline]
+ pub const fn as_raw(self) -> i32 {
+ self.0.get()
+ }
+
+ /// Convert a `Signal` to a raw non-zero signal number.
+ #[inline]
+ pub const fn as_raw_nonzero(self) -> NonZeroI32 {
+ self.0
+ }
+
+ /// Convert a raw signal number into a `Signal` without checks.
+ ///
+ /// For a safe checked version, see [`Signal::from_raw`] in
+ /// [rustix-libc-wrappers].
+ ///
+ /// # Safety
+ ///
+ /// `sig` must be a valid and non-zero signal number.
+ ///
+ /// And, if `sig` is a signal number reserved by the libc, such as a value
+ /// from the libc [`SIGRTMIN`] to the libc [`SIGRTMAX`], inclusive, then
+ /// the resulting `Signal` must not be used to send, consume, or block any
+ /// signals or alter any signal handlers.
+ ///
+ /// [`Signal::from_raw`]: https://docs.rs/rustix-libc-wrappers/*/rustix_libc_wrappers/trait.SignalExt.html#tymethod.from_raw
+ /// [rustix-libc-wrappers]: https://docs.rs/rustix-libc-wrappers
+ /// [`SIGRTMIN`]: https://docs.rs/libc/*/libc/fn.SIGRTMIN.html
+ /// [`SIGRTMAX`]: https://docs.rs/libc/*/libc/fn.SIGRTMAX.html
+ #[inline]
+ pub const unsafe fn from_raw_unchecked(sig: i32) -> Self {
+ Self::from_raw_nonzero_unchecked(NonZeroI32::new_unchecked(sig))
+ }
+
+ /// Convert a raw non-zero signal number into a `Signal` without checks.
+ ///
+ /// For a safe checked version, see [`Signal::from_raw_nonzero`] in
+ /// [rustix-libc-wrappers].
+ ///
+ /// # Safety
+ ///
+ /// `sig` must be a valid signal number.
+ ///
+ /// And, if `sig` is a signal number reserved by the libc, such as a value
+ /// from [`SIGRTMIN`] to [`SIGRTMAX`] inclusive, then the resulting
+ /// `Signal` must not be used to send, consume, or block any signals or
+ /// alter any signal handlers.
+ ///
+ /// [`Signal::from_raw_nonzero`]: https://docs.rs/rustix-libc-wrappers/*/rustix_libc_wrappers/trait.SignalExt.html#tymethod.from_raw_nonzero
+ /// [rustix-libc-wrappers]: https://docs.rs/rustix-libc-wrappers
+ /// [`SIGRTMIN`]: https://docs.rs/libc/*/libc/fn.SIGRTMIN.html
+ /// [`SIGRTMAX`]: https://docs.rs/libc/*/libc/fn.SIGRTMAX.html
+ #[inline]
+ pub const unsafe fn from_raw_nonzero_unchecked(sig: NonZeroI32) -> Self {
+ Self(sig)
+ }
+
+ /// Convert a raw named signal number into a `Signal`.
+ ///
+ /// If the given signal number corresponds to one of the named constant
+ /// signal values, such as [`Signal::HUP`] or [`Signal::INT`], return the
+ /// `Signal` value. Otherwise return `None`.
+ ///
+ /// Signals in the range `SIGRTMIN` through `SIGRTMAX` are not supported by
+ /// this function. For a constructor that does recognize those values, see
+ /// [`Signal::from_raw`] in [rustix-libc-wrappers].
+ ///
+ /// [`Signal::from_raw`]: https://docs.rs/rustix-libc-wrappers/*/rustix_libc_wrappers/trait.SignalExt.html#tymethod.from_raw
+ /// [rustix-libc-wrappers]: https://docs.rs/rustix-libc-wrappers
+ pub const fn from_named_raw(sig: i32) -> Option<Self> {
+ if let Some(sig) = NonZeroI32::new(sig) {
+ Self::from_named_raw_nonzero(sig)
+ } else {
+ None
+ }
+ }
+
+ /// Convert a raw non-zero named signal number into a `Signal`.
+ ///
+ /// If the given signal number corresponds to one of the constant signal
+ /// values, such as [`Signal::HUP`] or [`Signal::INT`], return the
+ /// `Signal` value. Otherwise return `None`.
+ ///
+ /// Signals in the range `SIGRTMIN` through `SIGRTMAX` are not supported by
+ /// this function. For a constructor that does recognize those values, see
+ /// [`Signal::from_raw_nonzero`] in [rustix-libc-wrappers].
+ ///
+ /// [`Signal::from_raw_nonzero`]: https://docs.rs/rustix-libc-wrappers/*/rustix_libc_wrappers/trait.SignalExt.html#tymethod.from_raw_nonzero
+ /// [rustix-libc-wrappers]: https://docs.rs/rustix-libc-wrappers
+ pub const fn from_named_raw_nonzero(sig: NonZeroI32) -> Option<Self> {
+ match sig.get() {
+ c::SIGHUP => Some(Self::HUP),
+ c::SIGINT => Some(Self::INT),
+ c::SIGQUIT => Some(Self::QUIT),
+ c::SIGILL => Some(Self::ILL),
+ c::SIGTRAP => Some(Self::TRAP),
+ c::SIGABRT => Some(Self::ABORT),
+ c::SIGBUS => Some(Self::BUS),
+ c::SIGFPE => Some(Self::FPE),
+ c::SIGKILL => Some(Self::KILL),
+ #[cfg(not(target_os = "vita"))]
+ c::SIGUSR1 => Some(Self::USR1),
+ c::SIGSEGV => Some(Self::SEGV),
+ #[cfg(not(target_os = "vita"))]
+ c::SIGUSR2 => Some(Self::USR2),
+ c::SIGPIPE => Some(Self::PIPE),
+ c::SIGALRM => Some(Self::ALARM),
+ c::SIGTERM => Some(Self::TERM),
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "vita",
+ all(
+ linux_kernel,
+ any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "sparc",
+ target_arch = "sparc64"
+ ),
+ )
+ )))]
+ c::SIGSTKFLT => Some(Self::STKFLT),
+ #[cfg(not(target_os = "vita"))]
+ c::SIGCHLD => Some(Self::CHILD),
+ #[cfg(not(target_os = "vita"))]
+ c::SIGCONT => Some(Self::CONT),
+ #[cfg(not(target_os = "vita"))]
+ c::SIGSTOP => Some(Self::STOP),
+ #[cfg(not(target_os = "vita"))]
+ c::SIGTSTP => Some(Self::TSTP),
+ #[cfg(not(target_os = "vita"))]
+ c::SIGTTIN => Some(Self::TTIN),
+ #[cfg(not(target_os = "vita"))]
+ c::SIGTTOU => Some(Self::TTOU),
+ #[cfg(not(target_os = "vita"))]
+ c::SIGURG => Some(Self::URG),
+ #[cfg(not(target_os = "vita"))]
+ c::SIGXCPU => Some(Self::XCPU),
+ #[cfg(not(target_os = "vita"))]
+ c::SIGXFSZ => Some(Self::XFSZ),
+ #[cfg(not(target_os = "vita"))]
+ c::SIGVTALRM => Some(Self::VTALARM),
+ #[cfg(not(target_os = "vita"))]
+ c::SIGPROF => Some(Self::PROF),
+ #[cfg(not(target_os = "vita"))]
+ c::SIGWINCH => Some(Self::WINCH),
+ #[cfg(not(any(target_os = "haiku", target_os = "vita")))]
+ c::SIGIO => Some(Self::IO),
+ #[cfg(not(any(
+ bsd,
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "vita"
+ )))]
+ c::SIGPWR => Some(Self::POWER),
+ c::SIGSYS => Some(Self::SYS),
+ #[cfg(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "hermit",
+ all(
+ linux_kernel,
+ any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "sparc",
+ target_arch = "sparc64"
+ )
+ )
+ ))]
+ c::SIGEMT => Some(Self::EMT),
+ #[cfg(bsd)]
+ c::SIGINFO => Some(Self::INFO),
+ #[cfg(target_os = "freebsd")]
+ c::SIGTHR => Some(Self::THR),
+ #[cfg(target_os = "freebsd")]
+ c::SIGLIBRT => Some(Self::LIBRT),
+
+ _ => None,
+ }
+ }
+}
+
+impl fmt::Debug for Signal {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ match *self {
+ Self::HUP => "Signal::HUP".fmt(f),
+ Self::INT => "Signal::INT".fmt(f),
+ Self::QUIT => "Signal::QUIT".fmt(f),
+ Self::ILL => "Signal::ILL".fmt(f),
+ Self::TRAP => "Signal::TRAP".fmt(f),
+ Self::ABORT => "Signal::ABORT".fmt(f),
+ Self::BUS => "Signal::BUS".fmt(f),
+ Self::FPE => "Signal::FPE".fmt(f),
+ Self::KILL => "Signal::KILL".fmt(f),
+ #[cfg(not(target_os = "vita"))]
+ Self::USR1 => "Signal::USR1".fmt(f),
+ Self::SEGV => "Signal::SEGV".fmt(f),
+ #[cfg(not(target_os = "vita"))]
+ Self::USR2 => "Signal::USR2".fmt(f),
+ Self::PIPE => "Signal::PIPE".fmt(f),
+ Self::ALARM => "Signal::ALARM".fmt(f),
+ Self::TERM => "Signal::TERM".fmt(f),
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "vita",
+ all(
+ linux_kernel,
+ any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "sparc",
+ target_arch = "sparc64"
+ ),
+ ),
+ )))]
+ Self::STKFLT => "Signal::STKFLT".fmt(f),
+ #[cfg(not(target_os = "vita"))]
+ Self::CHILD => "Signal::CHILD".fmt(f),
+ #[cfg(not(target_os = "vita"))]
+ Self::CONT => "Signal::CONT".fmt(f),
+ #[cfg(not(target_os = "vita"))]
+ Self::STOP => "Signal::STOP".fmt(f),
+ #[cfg(not(target_os = "vita"))]
+ Self::TSTP => "Signal::TSTP".fmt(f),
+ #[cfg(not(target_os = "vita"))]
+ Self::TTIN => "Signal::TTIN".fmt(f),
+ #[cfg(not(target_os = "vita"))]
+ Self::TTOU => "Signal::TTOU".fmt(f),
+ #[cfg(not(target_os = "vita"))]
+ Self::URG => "Signal::URG".fmt(f),
+ #[cfg(not(target_os = "vita"))]
+ Self::XCPU => "Signal::XCPU".fmt(f),
+ #[cfg(not(target_os = "vita"))]
+ Self::XFSZ => "Signal::XFSZ".fmt(f),
+ #[cfg(not(target_os = "vita"))]
+ Self::VTALARM => "Signal::VTALARM".fmt(f),
+ #[cfg(not(target_os = "vita"))]
+ Self::PROF => "Signal::PROF".fmt(f),
+ #[cfg(not(target_os = "vita"))]
+ Self::WINCH => "Signal::WINCH".fmt(f),
+ #[cfg(not(any(target_os = "haiku", target_os = "vita")))]
+ Self::IO => "Signal::IO".fmt(f),
+ #[cfg(not(any(
+ bsd,
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "hurd",
+ target_os = "vita"
+ )))]
+ Self::POWER => "Signal::POWER".fmt(f),
+ Self::SYS => "Signal::SYS".fmt(f),
+ #[cfg(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "hermit",
+ all(
+ linux_kernel,
+ any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "sparc",
+ target_arch = "sparc64"
+ )
+ )
+ ))]
+ Self::EMT => "Signal::EMT".fmt(f),
+ #[cfg(bsd)]
+ Self::INFO => "Signal::INFO".fmt(f),
+ #[cfg(target_os = "freebsd")]
+ Self::THR => "Signal::THR".fmt(f),
+ #[cfg(target_os = "freebsd")]
+ Self::LIBRT => "Signal::LIBRT".fmt(f),
+
+ n => {
+ "Signal::from_raw(".fmt(f)?;
+ n.as_raw().fmt(f)?;
+ ")".fmt(f)
+ }
+ }
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_basics() {
+ assert_eq!(Signal::HUP.as_raw(), libc::SIGHUP);
+ unsafe {
+ assert_eq!(Signal::from_raw_unchecked(libc::SIGHUP), Signal::HUP);
+ assert_eq!(
+ Signal::from_raw_nonzero_unchecked(NonZeroI32::new(libc::SIGHUP).unwrap()),
+ Signal::HUP
+ );
+ }
+ }
+
+ #[test]
+ fn test_named() {
+ assert_eq!(Signal::from_named_raw(-1), None);
+ assert_eq!(Signal::from_named_raw(0), None);
+ assert_eq!(Signal::from_named_raw(c::SIGHUP), Some(Signal::HUP));
+ assert_eq!(Signal::from_named_raw(c::SIGSEGV), Some(Signal::SEGV));
+ assert_eq!(Signal::from_named_raw(c::SIGSYS), Some(Signal::SYS));
+ #[cfg(any(linux_like, solarish, target_os = "hurd"))]
+ {
+ assert_eq!(Signal::from_named_raw(libc::SIGRTMIN()), None);
+ assert_eq!(Signal::from_named_raw(libc::SIGRTMAX()), None);
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/static_assertions.rs b/vendor/rustix-1.0.8/src/static_assertions.rs
new file mode 100644
index 0000000..3d07118
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/static_assertions.rs
@@ -0,0 +1,36 @@
+//! Workarounds for Rust 1.63 where some things in the `static_assertions`
+//! crate do things that don't work in const contexts. We want to call them in
+//! const contexts in Rust versions where that's supported so that problems are
+//! caught at compile time, and fall back to dynamic asserts in Rust 1.63.
+
+#![allow(unused_macros)]
+
+macro_rules! assert_eq_size {
+ ($x:ty, $y:ty) => {
+ assert_eq!(core::mem::size_of::<$x>(), core::mem::size_of::<$y>());
+ };
+}
+
+macro_rules! assert_eq_align {
+ ($x:ty, $y:ty) => {
+ assert_eq!(core::mem::align_of::<$x>(), core::mem::align_of::<$y>());
+ };
+}
+
+macro_rules! const_assert_eq {
+ ($x:expr, $y:expr) => {
+ assert_eq!($x, $y);
+ };
+}
+
+macro_rules! const_assert_ne {
+ ($x:expr, $y:expr) => {
+ assert_ne!($x, $y);
+ };
+}
+
+macro_rules! const_assert {
+ ($x:expr) => {
+ assert!($x);
+ };
+}
diff --git a/vendor/rustix-1.0.8/src/stdio.rs b/vendor/rustix-1.0.8/src/stdio.rs
new file mode 100644
index 0000000..e5ea0d4
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/stdio.rs
@@ -0,0 +1,523 @@
+//! Functions returning the stdio file descriptors.
+//!
+//! # Safety
+//!
+//! Some of the functions in this module can cause the process' stdio file
+//! descriptors to be closed, which breaks the assumption made in Rust's std
+//! that these file descriptors are always open.
+//!
+//! And in no-std mode, some of the functions in this module similarly assume
+//! that the process' stdio file descriptors are open, which we don't take as
+//! given in no-std mode because we don't have std also making that assumption.
+//!
+//! See the individual functions' safety comments for more details.
+#![allow(unsafe_code)]
+
+use crate::backend;
+use crate::fd::OwnedFd;
+use backend::c;
+use backend::fd::{BorrowedFd, FromRawFd as _, RawFd};
+
+#[cfg(not(any(windows, target_os = "wasi")))]
+use {
+ crate::io,
+ backend::fd::{AsFd, AsRawFd as _},
+ core::mem::ManuallyDrop,
+};
+
+/// `STDIN_FILENO`—Standard input, borrowed.
+///
+/// In `std`-using configurations, this is a safe function, because the
+/// standard library already assumes that the stdin file descriptor is always
+/// valid. In `no_std` configurations, it is `unsafe`.
+///
+/// # Warning
+///
+/// This function allows reading directly from stdin without coordinating
+/// with the buffering performed by [`std::io::Stdin`], so it could cause
+/// corrupted input.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/stdin.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/stdin.3.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=stdin&sektion=4
+/// [NetBSD]: https://man.netbsd.org/stdin.4
+/// [OpenBSD]: https://man.openbsd.org/stdin.4
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=stdin§ion=4
+/// [illumos]: https://illumos.org/man/4FS/stdin
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Standard-Streams.html#index-stdin
+#[cfg(feature = "std")]
+#[doc(alias = "STDIN_FILENO")]
+#[inline]
+pub const fn stdin() -> BorrowedFd<'static> {
+ // SAFETY: When "std" is enabled, the standard library assumes that the
+ // stdio file descriptors are all valid.
+ unsafe { BorrowedFd::borrow_raw(c::STDIN_FILENO as RawFd) }
+}
+
+/// `STDIN_FILENO`—Standard input, borrowed.
+///
+/// In `std`-using configurations, this is a safe function, because the
+/// standard library already assumes that the stdin file descriptor is always
+/// valid. In `no_std` configurations, it is `unsafe`.
+///
+/// # Safety
+///
+/// In `no_std` configurations, the process' stdin file descriptor can be
+/// closed, potentially on other threads, in which case the file descriptor
+/// index number (`STDIN_FILENO`) could be dynamically reused for other
+/// purposes, potentially on different threads.
+///
+/// # Warning
+///
+/// This function allows reading directly from stdin without coordinating
+/// with the buffering performed by [`std::io::Stdin`], so it could cause
+/// corrupted input.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/stdin.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/stdin.3.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=stdin&sektion=4
+/// [NetBSD]: https://man.netbsd.org/stdin.4
+/// [OpenBSD]: https://man.openbsd.org/stdin.4
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=stdin§ion=4
+/// [illumos]: https://illumos.org/man/4FS/stdin
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Standard-Streams.html#index-stdin
+#[cfg(not(feature = "std"))]
+#[doc(alias = "STDIN_FILENO")]
+#[inline]
+pub const unsafe fn stdin() -> BorrowedFd<'static> {
+ BorrowedFd::borrow_raw(c::STDIN_FILENO as RawFd)
+}
+
+/// `STDIN_FILENO`—Standard input, owned.
+///
+/// This is similar to [`stdin`], however it returns an `OwnedFd` which closes
+/// standard input when it is dropped.
+///
+/// # Safety
+///
+/// Safe `std`-using Rust code is permitted to assume that the stdin file
+/// descriptor is always valid. This function returns an `OwnedFd` which will
+/// close the stdin file descriptor when dropped.
+///
+/// # Warning
+///
+/// This has the same hazards as [`stdin`].
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/stdin.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/stdin.3.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=stdin&sektion=4
+/// [NetBSD]: https://man.netbsd.org/stdin.4
+/// [OpenBSD]: https://man.openbsd.org/stdin.4
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=stdin§ion=4
+/// [illumos]: https://illumos.org/man/4FS/stdin
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Standard-Streams.html#index-stdin
+#[doc(alias = "STDIN_FILENO")]
+#[inline]
+pub unsafe fn take_stdin() -> OwnedFd {
+ backend::fd::OwnedFd::from_raw_fd(c::STDIN_FILENO as RawFd)
+}
+
+/// `STDOUT_FILENO`—Standard output, borrowed.
+///
+/// In `std`-using configurations, this is a safe function, because the
+/// standard library already assumes that the stdout file descriptor is always
+/// valid. In `no_std` configurations, it is `unsafe`.
+///
+/// # Warning
+///
+/// This function allows writing directly to stdout without coordinating
+/// with the buffering performed by [`std::io::Stdout`], so it could cause
+/// corrupted output.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/stdout.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/stdout.3.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=stdout&sektion=4
+/// [NetBSD]: https://man.netbsd.org/stdout.4
+/// [OpenBSD]: https://man.openbsd.org/stdout.4
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=stdout§ion=4
+/// [illumos]: https://illumos.org/man/4FS/stdout
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Standard-Streams.html#index-stdout
+#[cfg(feature = "std")]
+#[doc(alias = "STDOUT_FILENO")]
+#[inline]
+pub const fn stdout() -> BorrowedFd<'static> {
+ // SAFETY: When "std" is enabled, the standard library assumes that the
+ // stdio file descriptors are all valid.
+ unsafe { BorrowedFd::borrow_raw(c::STDOUT_FILENO as RawFd) }
+}
+
+/// `STDOUT_FILENO`—Standard output, borrowed.
+///
+/// In `std`-using configurations, this is a safe function, because the
+/// standard library already assumes that the stdout file descriptor is always
+/// valid. In `no_std` configurations, it is `unsafe`.
+///
+/// # Safety
+///
+/// In `no_std` configurations, the process' stdout file descriptor can be
+/// closed, potentially on other threads, in which case the file descriptor
+/// index number (`STDOUT_FILENO`) could be dynamically reused for other
+/// purposes, potentially on different threads.
+///
+/// # Warning
+///
+/// This function allows writing directly to stdout without coordinating
+/// with the buffering performed by [`std::io::Stdout`], so it could cause
+/// corrupted output.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/stdout.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/stdout.3.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=stdout&sektion=4
+/// [NetBSD]: https://man.netbsd.org/stdout.4
+/// [OpenBSD]: https://man.openbsd.org/stdout.4
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=stdout§ion=4
+/// [illumos]: https://illumos.org/man/4FS/stdout
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Standard-Streams.html#index-stdout
+#[cfg(not(feature = "std"))]
+#[doc(alias = "STDOUT_FILENO")]
+#[inline]
+pub const unsafe fn stdout() -> BorrowedFd<'static> {
+ BorrowedFd::borrow_raw(c::STDOUT_FILENO as RawFd)
+}
+
+/// `STDOUT_FILENO`—Standard output, owned.
+///
+/// This is similar to [`stdout`], however it returns an `OwnedFd` which closes
+/// standard output when it is dropped.
+///
+/// # Safety
+///
+/// Safe `std`-using Rust code is permitted to assume that the stdout file
+/// descriptor is always valid. This function returns an `OwnedFd` which will
+/// close the stdout file descriptor when dropped.
+///
+/// # Warning
+///
+/// This has the same hazards as [`stdout`].
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/stdout.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/stdout.3.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=stdout&sektion=4
+/// [NetBSD]: https://man.netbsd.org/stdout.4
+/// [OpenBSD]: https://man.openbsd.org/stdout.4
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=stdout§ion=4
+/// [illumos]: https://illumos.org/man/4FS/stdout
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Standard-Streams.html#index-stdout
+#[doc(alias = "STDOUT_FILENO")]
+#[inline]
+pub unsafe fn take_stdout() -> OwnedFd {
+ backend::fd::OwnedFd::from_raw_fd(c::STDOUT_FILENO as RawFd)
+}
+
+/// `STDERR_FILENO`—Standard error, borrowed.
+///
+/// In `std`-using configurations, this is a safe function, because the
+/// standard library already assumes that the stderr file descriptor is always
+/// valid. In `no_std` configurations, it is `unsafe`.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/stderr.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/stderr.3.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=stderr&sektion=4
+/// [NetBSD]: https://man.netbsd.org/stderr.4
+/// [OpenBSD]: https://man.openbsd.org/stderr.4
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=stderr§ion=4
+/// [illumos]: https://illumos.org/man/4FS/stderr
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Standard-Streams.html#index-stderr
+#[cfg(feature = "std")]
+#[doc(alias = "STDERR_FILENO")]
+#[inline]
+pub const fn stderr() -> BorrowedFd<'static> {
+ // SAFETY: When "std" is enabled, the standard library assumes that the
+ // stdio file descriptors are all valid.
+ unsafe { BorrowedFd::borrow_raw(c::STDERR_FILENO as RawFd) }
+}
+
+/// `STDERR_FILENO`—Standard error, borrowed.
+///
+/// In `std`-using configurations, this is a safe function, because the
+/// standard library already assumes that the stderr file descriptor is always
+/// valid. In `no_std` configurations, it is `unsafe`.
+///
+/// # Safety
+///
+/// In `no_std` configurations, the process' stderr file descriptor can be
+/// closed, potentially on other threads, in which case the file descriptor
+/// index number (`STDERR_FILENO`) could be dynamically reused for other
+/// purposes, potentially on different threads.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/stderr.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/stderr.3.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=stderr&sektion=4
+/// [NetBSD]: https://man.netbsd.org/stderr.4
+/// [OpenBSD]: https://man.openbsd.org/stderr.4
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=stderr§ion=4
+/// [illumos]: https://illumos.org/man/4FS/stderr
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Standard-Streams.html#index-stderr
+#[cfg(not(feature = "std"))]
+#[doc(alias = "STDERR_FILENO")]
+#[inline]
+pub const unsafe fn stderr() -> BorrowedFd<'static> {
+ BorrowedFd::borrow_raw(c::STDERR_FILENO as RawFd)
+}
+
+/// `STDERR_FILENO`—Standard error, owned.
+///
+/// This is similar to [`stderr`], however it returns an `OwnedFd` which closes
+/// standard output when it is dropped.
+///
+/// # Safety
+///
+/// Safe std-using Rust code is permitted to assume that the stderr file
+/// descriptor is always valid. This function returns an `OwnedFd` which will
+/// close the stderr file descriptor when dropped.
+///
+/// # Other hazards
+///
+/// This has the same hazards as [`stderr`].
+///
+/// And, when the `OwnedFd` is dropped, subsequent newly created file
+/// descriptors may unknowingly reuse the stderr file descriptor number, which
+/// may break common assumptions, so it should typically only be dropped at the
+/// end of a program when no more file descriptors will be created.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/stderr.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/stderr.3.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=stderr&sektion=4
+/// [NetBSD]: https://man.netbsd.org/stderr.4
+/// [OpenBSD]: https://man.openbsd.org/stderr.4
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=stderr§ion=4
+/// [illumos]: https://illumos.org/man/4FS/stderr
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Standard-Streams.html#index-stderr
+#[doc(alias = "STDERR_FILENO")]
+#[inline]
+pub unsafe fn take_stderr() -> OwnedFd {
+ backend::fd::OwnedFd::from_raw_fd(c::STDERR_FILENO as RawFd)
+}
+
+/// `STDIN_FILENO`—Standard input, raw.
+///
+/// This is similar to [`stdin`], however it returns a `RawFd`.
+///
+/// # Other hazards
+///
+/// This has the same hazards as [`stdin`].
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/stdin.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/stdin.3.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=stdin&sektion=4
+/// [NetBSD]: https://man.netbsd.org/stdin.4
+/// [OpenBSD]: https://man.openbsd.org/stdin.4
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=stdin§ion=4
+/// [illumos]: https://illumos.org/man/4FS/stdin
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Standard-Streams.html#index-stdin
+#[doc(alias = "STDIN_FILENO")]
+#[inline]
+pub const fn raw_stdin() -> RawFd {
+ c::STDIN_FILENO as RawFd
+}
+
+/// `STDOUT_FILENO`—Standard output, raw.
+///
+/// This is similar to [`stdout`], however it returns a `RawFd`.
+///
+/// # Other hazards
+///
+/// This has the same hazards as [`stdout`].
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/stdout.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/stdout.3.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=stdout&sektion=4
+/// [NetBSD]: https://man.netbsd.org/stdout.4
+/// [OpenBSD]: https://man.openbsd.org/stdout.4
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=stdout§ion=4
+/// [illumos]: https://illumos.org/man/4FS/stdout
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Standard-Streams.html#index-stdout
+#[doc(alias = "STDOUT_FILENO")]
+#[inline]
+pub const fn raw_stdout() -> RawFd {
+ c::STDOUT_FILENO as RawFd
+}
+
+/// `STDERR_FILENO`—Standard error, raw.
+///
+/// This is similar to [`stderr`], however it returns a `RawFd`.
+///
+/// # Other hazards
+///
+/// This has the same hazards as [`stderr`].
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/stderr.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/stderr.3.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=stderr&sektion=4
+/// [NetBSD]: https://man.netbsd.org/stderr.4
+/// [OpenBSD]: https://man.openbsd.org/stderr.4
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=stderr§ion=4
+/// [illumos]: https://illumos.org/man/4FS/stderr
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Standard-Streams.html#index-stderr
+#[doc(alias = "STDERR_FILENO")]
+#[inline]
+pub const fn raw_stderr() -> RawFd {
+ c::STDERR_FILENO as RawFd
+}
+
+/// Utility function to safely `dup2` over stdin (fd 0).
+#[cfg(not(any(windows, target_os = "wasi")))]
+#[inline]
+pub fn dup2_stdin<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ let fd = fd.as_fd();
+ if fd.as_raw_fd() != c::STDIN_FILENO {
+ // SAFETY: We wrap the returned `OwnedFd` to `ManuallyDrop` so that it
+ // isn't dropped.
+ let mut target = ManuallyDrop::new(unsafe { take_stdin() });
+ backend::io::syscalls::dup2(fd, &mut target)?;
+ }
+ Ok(())
+}
+
+/// Utility function to safely `dup2` over stdout (fd 1).
+#[cfg(not(any(windows, target_os = "wasi")))]
+#[inline]
+pub fn dup2_stdout<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ let fd = fd.as_fd();
+ if fd.as_raw_fd() != c::STDOUT_FILENO {
+ // SAFETY: We wrap the returned `OwnedFd` to `ManuallyDrop` so that it
+ // isn't dropped.
+ let mut target = ManuallyDrop::new(unsafe { take_stdout() });
+ backend::io::syscalls::dup2(fd, &mut target)?;
+ }
+ Ok(())
+}
+
+/// Utility function to safely `dup2` over stderr (fd 2).
+#[cfg(not(any(windows, target_os = "wasi")))]
+#[inline]
+pub fn dup2_stderr<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ let fd = fd.as_fd();
+ if fd.as_raw_fd() != c::STDERR_FILENO {
+ // SAFETY: We wrap the returned `OwnedFd` to `ManuallyDrop` so that it
+ // isn't dropped.
+ let mut target = ManuallyDrop::new(unsafe { take_stderr() });
+ backend::io::syscalls::dup2(fd, &mut target)?;
+ }
+ Ok(())
+}
diff --git a/vendor/rustix-1.0.8/src/system.rs b/vendor/rustix-1.0.8/src/system.rs
new file mode 100644
index 0000000..70204ae
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/system.rs
@@ -0,0 +1,317 @@
+//! Uname and other system-level functions.
+
+#![allow(unsafe_code)]
+
+use crate::backend;
+#[cfg(target_os = "linux")]
+use crate::backend::c;
+use crate::ffi::CStr;
+#[cfg(not(any(target_os = "espidf", target_os = "emscripten", target_os = "vita")))]
+use crate::io;
+use core::fmt;
+
+#[cfg(linux_kernel)]
+pub use backend::system::types::Sysinfo;
+
+#[cfg(linux_kernel)]
+use crate::fd::AsFd;
+#[cfg(linux_kernel)]
+use crate::ffi::c_int;
+
+/// `uname()`—Returns high-level information about the runtime OS and
+/// hardware.
+///
+/// For `gethostname()`, use [`Uname::nodename`] on the result.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [Apple]
+/// - [NetBSD]
+/// - [FreeBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+/// - [glibc]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/uname.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/uname.2.html
+/// [Apple]: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/uname.3.html
+/// [NetBSD]: https://man.netbsd.org/uname.3
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=uname&sektion=3
+/// [OpenBSD]: https://man.openbsd.org/uname.3
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=uname§ion=3
+/// [illumos]: https://illumos.org/man/2/uname
+/// [glibc]: https://sourceware.org/glibc/manual/latest/html_node/Platform-Type.html
+#[doc(alias = "gethostname")]
+#[inline]
+pub fn uname() -> Uname {
+ Uname(backend::system::syscalls::uname())
+}
+
+/// `struct utsname`—Return type for [`uname`].
+#[doc(alias = "utsname")]
+pub struct Uname(backend::system::types::RawUname);
+
+impl Uname {
+ /// `sysname`—Operating system release name.
+ #[inline]
+ pub fn sysname(&self) -> &CStr {
+ Self::to_cstr(self.0.sysname.as_ptr().cast())
+ }
+
+ /// `nodename`—Name with vague meaning.
+ ///
+ /// This is intended to be a network name, however it's unable to convey
+ /// information about hosts that have multiple names, or any information
+ /// about where the names are visible.
+ ///
+ /// This corresponds to the `gethostname` value.
+ #[inline]
+ pub fn nodename(&self) -> &CStr {
+ Self::to_cstr(self.0.nodename.as_ptr().cast())
+ }
+
+ /// `release`—Operating system release version string.
+ #[inline]
+ pub fn release(&self) -> &CStr {
+ Self::to_cstr(self.0.release.as_ptr().cast())
+ }
+
+ /// `version`—Operating system build identifiers.
+ #[inline]
+ pub fn version(&self) -> &CStr {
+ Self::to_cstr(self.0.version.as_ptr().cast())
+ }
+
+ /// `machine`—Hardware architecture identifier.
+ #[inline]
+ pub fn machine(&self) -> &CStr {
+ Self::to_cstr(self.0.machine.as_ptr().cast())
+ }
+
+ /// `domainname`—NIS or YP domain identifier.
+ #[cfg(linux_kernel)]
+ #[inline]
+ pub fn domainname(&self) -> &CStr {
+ Self::to_cstr(self.0.domainname.as_ptr().cast())
+ }
+
+ #[inline]
+ fn to_cstr<'a>(ptr: *const u8) -> &'a CStr {
+ // SAFETY: Strings returned from the kernel are always NUL-terminated.
+ unsafe { CStr::from_ptr(ptr.cast()) }
+ }
+}
+
+impl fmt::Debug for Uname {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ #[cfg(not(linux_kernel))]
+ {
+ write!(
+ f,
+ "{:?} {:?} {:?} {:?} {:?}",
+ self.sysname(),
+ self.nodename(),
+ self.release(),
+ self.version(),
+ self.machine(),
+ )
+ }
+ #[cfg(linux_kernel)]
+ {
+ write!(
+ f,
+ "{:?} {:?} {:?} {:?} {:?} {:?}",
+ self.sysname(),
+ self.nodename(),
+ self.release(),
+ self.version(),
+ self.machine(),
+ self.domainname(),
+ )
+ }
+ }
+}
+
+/// `sysinfo()`—Returns status information about the runtime OS.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/uname.2.html
+#[cfg(linux_kernel)]
+#[inline]
+pub fn sysinfo() -> Sysinfo {
+ backend::system::syscalls::sysinfo()
+}
+
+/// `sethostname(name)`—Sets the system host name.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/sethostname.2.html
+#[cfg(not(any(
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi"
+)))]
+#[inline]
+pub fn sethostname(name: &[u8]) -> io::Result<()> {
+ backend::system::syscalls::sethostname(name)
+}
+
+/// `setdomain(name)`—Sets the system NIS domain name.
+///
+/// # References
+/// - [Linux]
+/// - [FreeBSD]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/setdomainname.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=setdomainname&sektion=3
+#[cfg(not(any(
+ target_os = "cygwin",
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "illumos",
+ target_os = "redox",
+ target_os = "solaris",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+#[inline]
+pub fn setdomainname(name: &[u8]) -> io::Result<()> {
+ backend::system::syscalls::setdomainname(name)
+}
+
+/// Reboot command for use with [`reboot`].
+#[cfg(target_os = "linux")]
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(i32)]
+#[non_exhaustive]
+pub enum RebootCommand {
+ /// Disables the Ctrl-Alt-Del keystroke.
+ ///
+ /// When disabled, the keystroke will send a [`Signal::INT`] to
+ /// [`Pid::INIT`].
+ ///
+ /// [`Signal::INT`]: crate::process::Signal::INT
+ /// [`Pid::INIT`]: crate::process::Pid::INIT
+ CadOff = c::LINUX_REBOOT_CMD_CAD_OFF,
+ /// Enables the Ctrl-Alt-Del keystroke.
+ ///
+ /// When enabled, the keystroke will trigger a [`Restart`].
+ ///
+ /// [`Restart`]: Self::Restart
+ CadOn = c::LINUX_REBOOT_CMD_CAD_ON,
+ /// Prints the message "System halted" and halts the system
+ Halt = c::LINUX_REBOOT_CMD_HALT,
+ /// Execute a kernel that has been loaded earlier with [`kexec_load`].
+ ///
+ /// [`kexec_load`]: https://man7.org/linux/man-pages/man2/kexec_load.2.html
+ Kexec = c::LINUX_REBOOT_CMD_KEXEC,
+ /// Prints the message "Power down.", stops the system, and tries to remove
+ /// all power
+ PowerOff = c::LINUX_REBOOT_CMD_POWER_OFF,
+ /// Prints the message "Restarting system." and triggers a restart
+ Restart = c::LINUX_REBOOT_CMD_RESTART,
+ /// Hibernate the system by suspending to disk
+ SwSuspend = c::LINUX_REBOOT_CMD_SW_SUSPEND,
+}
+
+/// `reboot`—Reboot the system or enable/disable Ctrl-Alt-Del.
+///
+/// The reboot syscall, despite the name, can actually do much more than
+/// reboot.
+///
+/// Among other things, it can:
+/// - Restart, Halt, Power Off, and Suspend the system
+/// - Enable and disable the Ctrl-Alt-Del keystroke
+/// - Execute other kernels
+/// - Terminate init inside PID namespaces
+///
+/// It is highly recommended to carefully read the kernel documentation before
+/// calling this function.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/reboot.2.html
+#[cfg(target_os = "linux")]
+pub fn reboot(cmd: RebootCommand) -> io::Result<()> {
+ backend::system::syscalls::reboot(cmd)
+}
+
+/// `init_module`—Load a kernel module.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/init_module.2.html
+#[inline]
+#[cfg(linux_kernel)]
+pub fn init_module(image: &[u8], param_values: &CStr) -> io::Result<()> {
+ backend::system::syscalls::init_module(image, param_values)
+}
+
+/// `finit_module`—Load a kernel module from a file descriptor.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/finit_module.2.html
+#[inline]
+#[cfg(linux_kernel)]
+pub fn finit_module<Fd: AsFd>(fd: Fd, param_values: &CStr, flags: c_int) -> io::Result<()> {
+ backend::system::syscalls::finit_module(fd.as_fd(), param_values, flags)
+}
+
+/// `delete_module`—Unload a kernel module.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/delete_module.2.html
+#[inline]
+#[cfg(linux_kernel)]
+pub fn delete_module(name: &CStr, flags: c_int) -> io::Result<()> {
+ backend::system::syscalls::delete_module(name, flags)
+}
+
+#[cfg(test)]
+mod tests {
+ #[allow(unused_imports)]
+ use super::*;
+ #[allow(unused_imports)]
+ use crate::backend::c;
+
+ #[cfg(linux_kernel)]
+ #[test]
+ fn test_sysinfo_layouts() {
+ // Don't assert the size for `Sysinfo` because `c::sysinfo` has a
+ // computed-size padding field at the end that bindgen doesn't support,
+ // and `c::sysinfo` may add fields over time.
+ assert_eq!(
+ core::mem::align_of::<Sysinfo>(),
+ core::mem::align_of::<c::sysinfo>()
+ );
+ check_renamed_struct_field!(Sysinfo, sysinfo, uptime);
+ check_renamed_struct_field!(Sysinfo, sysinfo, loads);
+ check_renamed_struct_field!(Sysinfo, sysinfo, totalram);
+ check_renamed_struct_field!(Sysinfo, sysinfo, freeram);
+ check_renamed_struct_field!(Sysinfo, sysinfo, sharedram);
+ check_renamed_struct_field!(Sysinfo, sysinfo, bufferram);
+ check_renamed_struct_field!(Sysinfo, sysinfo, totalswap);
+ check_renamed_struct_field!(Sysinfo, sysinfo, freeswap);
+ check_renamed_struct_field!(Sysinfo, sysinfo, procs);
+ check_renamed_struct_field!(Sysinfo, sysinfo, totalhigh);
+ check_renamed_struct_field!(Sysinfo, sysinfo, freehigh);
+ check_renamed_struct_field!(Sysinfo, sysinfo, mem_unit);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/termios/ioctl.rs b/vendor/rustix-1.0.8/src/termios/ioctl.rs
new file mode 100644
index 0000000..2294556
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/termios/ioctl.rs
@@ -0,0 +1,66 @@
+//! Terminal-related `ioctl` functions.
+
+#![allow(unsafe_code)]
+
+use crate::fd::AsFd;
+use crate::{backend, io, ioctl};
+use backend::c;
+
+/// `ioctl(fd, TIOCEXCL)`—Enables exclusive mode on a terminal.
+///
+/// In exclusive mode, subsequent unprivileged `open` calls on the terminal
+/// device fail with [`io::Errno::BUSY`].
+///
+/// # References
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man4/tty_ioctl.4.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=tty&sektion=4
+/// [NetBSD]: https://man.netbsd.org/tty.4
+/// [OpenBSD]: https://man.openbsd.org/tty.4
+#[cfg(not(any(
+ windows,
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "wasi"
+)))]
+#[inline]
+#[doc(alias = "TIOCEXCL")]
+pub fn ioctl_tiocexcl<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ // SAFETY: `TIOCEXCL` is a no-argument setter opcode.
+ unsafe {
+ let ctl = ioctl::NoArg::<{ c::TIOCEXCL as _ }>::new();
+ ioctl::ioctl(fd, ctl)
+ }
+}
+
+/// `ioctl(fd, TIOCNXCL)`—Disables exclusive mode on a terminal.
+///
+/// # References
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man4/tty_ioctl.4.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=tty&sektion=4
+/// [NetBSD]: https://man.netbsd.org/tty.4
+/// [OpenBSD]: https://man.openbsd.org/tty.4
+#[cfg(not(any(
+ windows,
+ target_os = "horizon",
+ target_os = "redox",
+ target_os = "wasi"
+)))]
+#[inline]
+#[doc(alias = "TIOCNXCL")]
+pub fn ioctl_tiocnxcl<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ // SAFETY: `TIOCNXCL` is a no-argument setter opcode.
+ unsafe {
+ let ctl = ioctl::NoArg::<{ c::TIOCNXCL as _ }>::new();
+ ioctl::ioctl(fd, ctl)
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/termios/mod.rs b/vendor/rustix-1.0.8/src/termios/mod.rs
new file mode 100644
index 0000000..98efb9b
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/termios/mod.rs
@@ -0,0 +1,38 @@
+//! Terminal I/O stream operations.
+//!
+//! This API automatically supports setting arbitrary I/O speeds, on any
+//! platform that supports them, including Linux and the BSDs.
+//!
+//! The [`speed`] module contains various predefined speed constants which are
+//! more likely to be portable, however any `u32` value can be passed to
+//! [`Termios::set_speed`], [`Termios::set_input_speed`], and
+//! [`Termios::set_output_speed`], and they will simply fail if the speed is
+//! not supported by the platform or the device.
+
+#[cfg(not(any(
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "wasi",
+)))]
+mod ioctl;
+#[cfg(not(target_os = "wasi"))]
+mod tc;
+#[cfg(not(windows))]
+mod tty;
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+mod types;
+
+#[cfg(not(any(
+ target_os = "cygwin",
+ target_os = "espidf",
+ target_os = "haiku",
+ target_os = "wasi",
+)))]
+pub use ioctl::*;
+#[cfg(not(target_os = "wasi"))]
+pub use tc::*;
+#[cfg(not(windows))]
+pub use tty::*;
+#[cfg(not(any(target_os = "espidf", target_os = "wasi")))]
+pub use types::*;
diff --git a/vendor/rustix-1.0.8/src/termios/tc.rs b/vendor/rustix-1.0.8/src/termios/tc.rs
new file mode 100644
index 0000000..dabd17e
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/termios/tc.rs
@@ -0,0 +1,225 @@
+use crate::fd::AsFd;
+#[cfg(not(target_os = "espidf"))]
+use crate::termios::{Action, OptionalActions, QueueSelector, Termios, Winsize};
+use crate::{backend, io};
+
+pub use crate::pid::Pid;
+
+/// `tcgetattr(fd)`—Get terminal attributes.
+///
+/// Also known as the `TCGETS` (or `TCGETS2` on Linux) operation with `ioctl`.
+///
+/// On Linux, this uses `TCGETS2`. If that fails in a way that indicates that
+/// the host doesn't support it, this falls back to the old `TCGETS`, manually
+/// initializes the fields that `TCGETS` doesn't initialize, and fails with
+/// `io::Errno::RANGE` if the input or output speeds cannot be supported.
+///
+/// # References
+/// - [POSIX `tcgetattr`]
+/// - [Linux `ioctl_tty`]
+/// - [Linux `termios`]
+///
+/// [POSIX `tcgetattr`]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/tcgetattr.html
+/// [Linux `ioctl_tty`]: https://man7.org/linux/man-pages/man4/tty_ioctl.4.html
+/// [Linux `termios`]: https://man7.org/linux/man-pages/man3/termios.3.html
+#[cfg(not(any(windows, target_os = "espidf", target_os = "wasi")))]
+#[inline]
+#[doc(alias = "TCGETS")]
+#[doc(alias = "TCGETS2")]
+#[doc(alias = "tcgetattr2")]
+pub fn tcgetattr<Fd: AsFd>(fd: Fd) -> io::Result<Termios> {
+ backend::termios::syscalls::tcgetattr(fd.as_fd())
+}
+
+/// `tcgetwinsize(fd)`—Get the current terminal window size.
+///
+/// Also known as the `TIOCGWINSZ` operation with `ioctl`.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man4/tty_ioctl.4.html
+#[cfg(not(any(
+ windows,
+ target_os = "horizon",
+ target_os = "espidf",
+ target_os = "wasi"
+)))]
+#[inline]
+#[doc(alias = "TIOCGWINSZ")]
+pub fn tcgetwinsize<Fd: AsFd>(fd: Fd) -> io::Result<Winsize> {
+ backend::termios::syscalls::tcgetwinsize(fd.as_fd())
+}
+
+/// `tcgetpgrp(fd)`—Get the terminal foreground process group.
+///
+/// Also known as the `TIOCGPGRP` operation with `ioctl`.
+///
+/// On Linux, if `fd` is a pseudo-terminal, the underlying system call here can
+/// return a pid of 0, which rustix's `Pid` type doesn't support. So rustix
+/// instead handles this case by failing with [`io::Errno::OPNOTSUPP`] if the
+/// pid is 0.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/tcgetpgrp.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/tcgetpgrp.3.html
+#[cfg(not(any(windows, target_os = "wasi")))]
+#[inline]
+#[doc(alias = "TIOCGPGRP")]
+pub fn tcgetpgrp<Fd: AsFd>(fd: Fd) -> io::Result<Pid> {
+ backend::termios::syscalls::tcgetpgrp(fd.as_fd())
+}
+
+/// `tcsetpgrp(fd, pid)`—Set the terminal foreground process group.
+///
+/// Also known as the `TIOCSPGRP` operation with `ioctl`.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/tcsetpgrp.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/tcsetpgrp.3.html
+#[cfg(not(any(windows, target_os = "wasi")))]
+#[inline]
+#[doc(alias = "TIOCSPGRP")]
+pub fn tcsetpgrp<Fd: AsFd>(fd: Fd, pid: Pid) -> io::Result<()> {
+ backend::termios::syscalls::tcsetpgrp(fd.as_fd(), pid)
+}
+
+/// `tcsetattr(fd)`—Set terminal attributes.
+///
+/// Also known as the `TCSETS` (or `TCSETS2` on Linux) operation with `ioctl`.
+///
+/// On Linux, this uses `TCSETS2`. If that fails in a way that indicates that
+/// the host doesn't support it, this falls back to the old `TCSETS`, and fails
+/// with `io::Errno::RANGE` if the input or output speeds cannot be supported.
+///
+/// # References
+/// - [POSIX `tcsetattr`]
+/// - [Linux `ioctl_tty`]
+/// - [Linux `termios`]
+///
+/// [POSIX `tcsetattr`]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/tcsetattr.html
+/// [Linux `ioctl_tty`]: https://man7.org/linux/man-pages/man4/tty_ioctl.4.html
+/// [Linux `termios`]: https://man7.org/linux/man-pages/man3/termios.3.html
+#[cfg(not(target_os = "espidf"))]
+#[inline]
+#[doc(alias = "TCSETS")]
+#[doc(alias = "TCSETS2")]
+#[doc(alias = "tcsetattr2")]
+pub fn tcsetattr<Fd: AsFd>(
+ fd: Fd,
+ optional_actions: OptionalActions,
+ termios: &Termios,
+) -> io::Result<()> {
+ backend::termios::syscalls::tcsetattr(fd.as_fd(), optional_actions, termios)
+}
+
+/// `tcsendbreak(fd, 0)`—Transmit zero-valued bits.
+///
+/// This transmits zero-valued bits for at least 0.25 seconds.
+///
+/// This function does not have a `duration` parameter, and always uses the
+/// implementation-defined value, which transmits for at least 0.25 seconds.
+///
+/// Also known as the `TCSBRK` operation with `ioctl`, with a duration
+/// parameter of 0.
+///
+/// # References
+/// - [POSIX `tcsendbreak`]
+/// - [Linux `ioctl_tty`]
+/// - [Linux `termios`]
+///
+/// [POSIX `tcsendbreak`]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/tcsendbreak.html
+/// [Linux `ioctl_tty`]: https://man7.org/linux/man-pages/man4/tty_ioctl.4.html
+/// [Linux `termios`]: https://man7.org/linux/man-pages/man3/termios.3.html
+#[inline]
+#[doc(alias = "TCSBRK")]
+pub fn tcsendbreak<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ backend::termios::syscalls::tcsendbreak(fd.as_fd())
+}
+
+/// `tcdrain(fd, duration)`—Wait until all pending output has been written.
+///
+/// # References
+/// - [POSIX `tcdrain`]
+/// - [Linux `ioctl_tty`]
+/// - [Linux `termios`]
+///
+/// [POSIX `tcsetattr`]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/tcdrain.html
+/// [Linux `ioctl_tty`]: https://man7.org/linux/man-pages/man4/tty_ioctl.4.html
+/// [Linux `termios`]: https://man7.org/linux/man-pages/man3/termios.3.html
+#[cfg(not(target_os = "espidf"))]
+#[inline]
+pub fn tcdrain<Fd: AsFd>(fd: Fd) -> io::Result<()> {
+ backend::termios::syscalls::tcdrain(fd.as_fd())
+}
+
+/// `tcflush(fd, queue_selector)`—Wait until all pending output has been
+/// written.
+///
+/// # References
+/// - [POSIX `tcflush`]
+/// - [Linux `ioctl_tty`]
+/// - [Linux `termios`]
+///
+/// [POSIX `tcflush`]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/tcflush.html
+/// [Linux `ioctl_tty`]: https://man7.org/linux/man-pages/man4/tty_ioctl.4.html
+/// [Linux `termios`]: https://man7.org/linux/man-pages/man3/termios.3.html
+#[cfg(not(target_os = "espidf"))]
+#[inline]
+#[doc(alias = "TCFLSH")]
+pub fn tcflush<Fd: AsFd>(fd: Fd, queue_selector: QueueSelector) -> io::Result<()> {
+ backend::termios::syscalls::tcflush(fd.as_fd(), queue_selector)
+}
+
+/// `tcflow(fd, action)`—Suspend or resume transmission or reception.
+///
+/// # References
+/// - [POSIX `tcflow`]
+/// - [Linux `ioctl_tty`]
+/// - [Linux `termios`]
+///
+/// [POSIX `tcflow`]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/tcflow.html
+/// [Linux `ioctl_tty`]: https://man7.org/linux/man-pages/man4/tty_ioctl.4.html
+/// [Linux `termios`]: https://man7.org/linux/man-pages/man3/termios.3.html
+#[cfg(not(target_os = "espidf"))]
+#[inline]
+#[doc(alias = "TCXONC")]
+pub fn tcflow<Fd: AsFd>(fd: Fd, action: Action) -> io::Result<()> {
+ backend::termios::syscalls::tcflow(fd.as_fd(), action)
+}
+
+/// `tcgetsid(fd)`—Return the session ID of the current session with `fd` as
+/// its controlling terminal.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/tcgetsid.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/tcgetsid.3.html
+#[inline]
+#[doc(alias = "TIOCGSID")]
+pub fn tcgetsid<Fd: AsFd>(fd: Fd) -> io::Result<Pid> {
+ backend::termios::syscalls::tcgetsid(fd.as_fd())
+}
+
+/// `tcsetwinsize(fd)`—Set the current terminal window size.
+///
+/// Also known as the `TIOCSWINSZ` operation with `ioctl`.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man4/tty_ioctl.4.html
+#[cfg(not(any(target_os = "espidf", target_os = "horizon")))]
+#[inline]
+#[doc(alias = "TIOCSWINSZ")]
+pub fn tcsetwinsize<Fd: AsFd>(fd: Fd, winsize: Winsize) -> io::Result<()> {
+ backend::termios::syscalls::tcsetwinsize(fd.as_fd(), winsize)
+}
diff --git a/vendor/rustix-1.0.8/src/termios/tty.rs b/vendor/rustix-1.0.8/src/termios/tty.rs
new file mode 100644
index 0000000..000ec8b
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/termios/tty.rs
@@ -0,0 +1,90 @@
+//! Functions which operate on file descriptors which might be terminals.
+
+use crate::backend;
+#[cfg(feature = "alloc")]
+#[cfg(feature = "fs")]
+#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))]
+use crate::path::SMALL_PATH_BUFFER_SIZE;
+use backend::fd::AsFd;
+#[cfg(feature = "alloc")]
+#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))]
+use {crate::ffi::CString, crate::io, alloc::vec::Vec, backend::fd::BorrowedFd};
+
+/// `isatty(fd)`—Tests whether a file descriptor refers to a terminal.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/isatty.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/isatty.3.html
+#[inline]
+pub fn isatty<Fd: AsFd>(fd: Fd) -> bool {
+ backend::termios::syscalls::isatty(fd.as_fd())
+}
+
+/// `ttyname_r(fd)`—Returns the name of the tty open on `fd`.
+///
+/// If `reuse` already has available capacity, reuse it if possible.
+///
+/// On Linux, this function depends on procfs being mounted on /proc.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/ttyname.html
+/// [Linux]: https://man7.org/linux/man-pages/man3/ttyname.3.html
+#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))]
+#[cfg(feature = "alloc")]
+#[cfg(feature = "fs")]
+#[doc(alias = "ttyname_r")]
+#[cfg_attr(docsrs, doc(cfg(feature = "fs")))]
+#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
+#[inline]
+pub fn ttyname<Fd: AsFd, B: Into<Vec<u8>>>(fd: Fd, reuse: B) -> io::Result<CString> {
+ _ttyname(fd.as_fd(), reuse.into())
+}
+
+#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))]
+#[cfg(feature = "alloc")]
+#[cfg(feature = "fs")]
+#[allow(unsafe_code)]
+fn _ttyname(fd: BorrowedFd<'_>, mut buffer: Vec<u8>) -> io::Result<CString> {
+ buffer.clear();
+ buffer.reserve(SMALL_PATH_BUFFER_SIZE);
+
+ loop {
+ match backend::termios::syscalls::ttyname(fd, buffer.spare_capacity_mut()) {
+ Err(io::Errno::RANGE) => {
+ // Use `Vec` reallocation strategy to grow capacity
+ // exponentially.
+ buffer.reserve(buffer.capacity() + 1);
+ }
+ Ok(len) => {
+ // SAFETY: Assume the backend returns the length of the string
+ // excluding the NUL.
+ unsafe {
+ buffer.set_len(len + 1);
+ }
+
+ // SAFETY:
+ // - “ttyname_r stores this pathname in the buffer buf”
+ // - [POSIX definition 3.271: Pathname]: “A string that is
+ // used to identify a file.”
+ // - [POSIX definition 3.375: String]: “A contiguous sequence
+ // of bytes terminated by and including the first null byte.”
+ //
+ // Thus, there will be a single NUL byte at the end of the
+ // string.
+ //
+ // [POSIX definition 3.271: Pathname]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap03.html#tag_03_271
+ // [POSIX definition 3.375: String]: https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap03.html#tag_03_375
+ unsafe {
+ return Ok(CString::from_vec_with_nul_unchecked(buffer));
+ }
+ }
+ Err(errno) => return Err(errno),
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/termios/types.rs b/vendor/rustix-1.0.8/src/termios/types.rs
new file mode 100644
index 0000000..d958908
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/termios/types.rs
@@ -0,0 +1,1654 @@
+use crate::backend::c;
+use crate::backend::termios::types;
+#[cfg(target_os = "nto")]
+use crate::ffi;
+use crate::{backend, io};
+use bitflags::bitflags;
+
+/// `struct termios` for use with [`tcgetattr`] and [`tcsetattr`].
+///
+/// [`tcgetattr`]: crate::termios::tcgetattr
+/// [`tcsetattr`]: crate::termios::tcsetattr
+#[repr(C)]
+#[derive(Clone)]
+pub struct Termios {
+ /// How is input interpreted?
+ #[doc(alias = "c_iflag")]
+ pub input_modes: InputModes,
+
+ /// How is output translated?
+ #[doc(alias = "c_oflag")]
+ pub output_modes: OutputModes,
+
+ /// Low-level configuration flags.
+ #[doc(alias = "c_cflag")]
+ pub control_modes: ControlModes,
+
+ /// High-level configuration flags.
+ #[doc(alias = "c_lflag")]
+ pub local_modes: LocalModes,
+
+ /// Line discipline.
+ #[doc(alias = "c_line")]
+ #[cfg(not(all(linux_raw, any(target_arch = "powerpc", target_arch = "powerpc64"))))]
+ #[cfg(any(
+ linux_like,
+ target_env = "newlib",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "redox"
+ ))]
+ pub line_discipline: u8,
+
+ /// How are various special control codes handled?
+ #[doc(alias = "c_cc")]
+ #[cfg(not(target_os = "haiku"))]
+ pub special_codes: SpecialCodes,
+
+ #[cfg(target_os = "nto")]
+ pub(crate) __reserved: [ffi::c_uint; 3],
+
+ /// Line discipline.
+ // On PowerPC, this field comes after `c_cc`.
+ #[doc(alias = "c_line")]
+ #[cfg(all(linux_raw, any(target_arch = "powerpc", target_arch = "powerpc64")))]
+ pub line_discipline: c::cc_t,
+
+ /// See the `input_speed` and `set_input_seed` functions.
+ ///
+ /// On Linux and BSDs, this is the arbitrary integer speed value. On all
+ /// other platforms, this is the encoded speed value.
+ #[cfg(not(any(solarish, all(libc, target_env = "newlib"), target_os = "aix")))]
+ pub(crate) input_speed: c::speed_t,
+
+ /// See the `output_speed` and `set_output_seed` functions.
+ ///
+ /// On Linux and BSDs, this is the integer speed value. On all other
+ /// platforms, this is the encoded speed value.
+ #[cfg(not(any(solarish, all(libc, target_env = "newlib"), target_os = "aix")))]
+ pub(crate) output_speed: c::speed_t,
+
+ /// How are various special control codes handled?
+ #[doc(alias = "c_cc")]
+ #[cfg(target_os = "haiku")]
+ pub special_codes: SpecialCodes,
+}
+
+impl Termios {
+ /// `cfmakeraw(self)`—Set a `Termios` value to the settings for “raw” mode.
+ ///
+ /// In raw mode, input is available a byte at a time, echoing is disabled,
+ /// and special terminal input and output codes are disabled.
+ #[cfg(not(target_os = "nto"))]
+ #[doc(alias = "cfmakeraw")]
+ #[inline]
+ pub fn make_raw(&mut self) {
+ backend::termios::syscalls::cfmakeraw(self)
+ }
+
+ /// Return the input communication speed.
+ ///
+ /// Unlike the `c_ispeed` field in glibc and others, this returns the
+ /// integer value of the speed, rather than the `B*` encoded constant
+ /// value.
+ #[doc(alias = "c_ispeed")]
+ #[doc(alias = "cfgetispeed")]
+ #[doc(alias = "cfgetspeed")]
+ #[inline]
+ pub fn input_speed(&self) -> u32 {
+ // On Linux and BSDs, `input_speed` is the arbitrary integer speed.
+ #[cfg(any(linux_kernel, bsd))]
+ {
+ debug_assert!(u32::try_from(self.input_speed).is_ok());
+ self.input_speed as u32
+ }
+
+ // On illumos, `input_speed` is not present.
+ #[cfg(any(solarish, all(libc, target_env = "newlib"), target_os = "aix"))]
+ unsafe {
+ speed::decode(c::cfgetispeed(crate::utils::as_ptr(self).cast())).unwrap()
+ }
+
+ // On other platforms, it's the encoded speed.
+ #[cfg(not(any(
+ linux_kernel,
+ bsd,
+ solarish,
+ all(libc, target_env = "newlib"),
+ target_os = "aix"
+ )))]
+ {
+ speed::decode(self.input_speed).unwrap()
+ }
+ }
+
+ /// Return the output communication speed.
+ ///
+ /// Unlike the `c_ospeed` field in glibc and others, this returns the
+ /// arbitrary integer value of the speed, rather than the `B*` encoded
+ /// constant value.
+ #[inline]
+ pub fn output_speed(&self) -> u32 {
+ // On Linux and BSDs, `output_speed` is the arbitrary integer speed.
+ #[cfg(any(linux_kernel, bsd))]
+ {
+ debug_assert!(u32::try_from(self.output_speed).is_ok());
+ self.output_speed as u32
+ }
+
+ // On illumos, `output_speed` is not present.
+ #[cfg(any(solarish, all(libc, target_env = "newlib"), target_os = "aix"))]
+ unsafe {
+ speed::decode(c::cfgetospeed(crate::utils::as_ptr(self).cast())).unwrap()
+ }
+
+ // On other platforms, it's the encoded speed.
+ #[cfg(not(any(
+ linux_kernel,
+ bsd,
+ solarish,
+ all(libc, target_env = "newlib"),
+ target_os = "aix"
+ )))]
+ {
+ speed::decode(self.output_speed).unwrap()
+ }
+ }
+
+ /// Set the input and output communication speeds.
+ ///
+ /// Unlike the `c_ispeed` and `c_ospeed` fields in glibc and others, this
+ /// takes the arbitrary integer value of the speed, rather than the `B*`
+ /// encoded constant value. Not all implementations support all integer
+ /// values; use the constants in the [`speed`] module for likely-supported
+ /// speeds.
+ #[cfg(not(target_os = "nto"))]
+ #[doc(alias = "cfsetspeed")]
+ #[doc(alias = "CBAUD")]
+ #[doc(alias = "CBAUDEX")]
+ #[doc(alias = "CIBAUD")]
+ #[doc(alias = "CIBAUDEX")]
+ #[inline]
+ pub fn set_speed(&mut self, new_speed: u32) -> io::Result<()> {
+ backend::termios::syscalls::set_speed(self, new_speed)
+ }
+
+ /// Set the input communication speed.
+ ///
+ /// Unlike the `c_ispeed` field in glibc and others, this takes the
+ /// arbitrary integer value of the speed, rather than the `B*` encoded
+ /// constant value. Not all implementations support all integer values; use
+ /// the constants in the [`speed`] module for known-supported speeds.
+ ///
+ /// On some platforms, changing the input speed changes the output speed to
+ /// the same speed.
+ #[doc(alias = "c_ispeed")]
+ #[doc(alias = "cfsetispeed")]
+ #[doc(alias = "CIBAUD")]
+ #[doc(alias = "CIBAUDEX")]
+ #[inline]
+ pub fn set_input_speed(&mut self, new_speed: u32) -> io::Result<()> {
+ backend::termios::syscalls::set_input_speed(self, new_speed)
+ }
+
+ /// Set the output communication speed.
+ ///
+ /// Unlike the `c_ospeed` field in glibc and others, this takes the
+ /// arbitrary integer value of the speed, rather than the `B*` encoded
+ /// constant value. Not all implementations support all integer values; use
+ /// the constants in the [`speed`] module for known-supported speeds.
+ ///
+ /// On some platforms, changing the output speed changes the input speed to
+ /// the same speed.
+ #[doc(alias = "c_ospeed")]
+ #[doc(alias = "cfsetospeed")]
+ #[doc(alias = "CBAUD")]
+ #[doc(alias = "CBAUDEX")]
+ #[inline]
+ pub fn set_output_speed(&mut self, new_speed: u32) -> io::Result<()> {
+ backend::termios::syscalls::set_output_speed(self, new_speed)
+ }
+}
+
+impl core::fmt::Debug for Termios {
+ fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+ let mut d = f.debug_struct("Termios");
+ d.field("input_modes", &self.input_modes);
+ d.field("output_modes", &self.output_modes);
+
+ // This includes any bits set in the `CBAUD` and `CIBAUD` ranges, which
+ // is a little ugly, because we also decode those bits for the speeds
+ // below. However, it seems better to print them here than to hide
+ // them, because hiding them would make the `Termios` debug output
+ // appear to disagree with the `ControlModes` debug output for the same
+ // value, which could be confusing.
+ d.field("control_modes", &self.control_modes);
+
+ d.field("local_modes", &self.local_modes);
+ #[cfg(any(
+ linux_like,
+ target_env = "newlib",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "redox"
+ ))]
+ {
+ d.field("line_discipline", &SpecialCode(self.line_discipline));
+ }
+ d.field("special_codes", &self.special_codes);
+ d.field("input_speed", &self.input_speed());
+ d.field("output_speed", &self.output_speed());
+ d.finish()
+ }
+}
+
+bitflags! {
+ /// Flags controlling terminal input.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct InputModes: types::tcflag_t {
+ /// `IGNBRK`
+ const IGNBRK = c::IGNBRK;
+
+ /// `BRKINT`
+ const BRKINT = c::BRKINT;
+
+ /// `IGNPAR`
+ const IGNPAR = c::IGNPAR;
+
+ /// `PARMRK`
+ const PARMRK = c::PARMRK;
+
+ /// `INPCK`
+ const INPCK = c::INPCK;
+
+ /// `ISTRIP`
+ const ISTRIP = c::ISTRIP;
+
+ /// `INLCR`
+ const INLCR = c::INLCR;
+
+ /// `IGNCR`
+ const IGNCR = c::IGNCR;
+
+ /// `ICRNL`
+ const ICRNL = c::ICRNL;
+
+ /// `IUCLC`
+ #[cfg(any(linux_kernel, solarish, target_os = "aix", target_os = "haiku", target_os = "nto"))]
+ const IUCLC = c::IUCLC;
+
+ /// `IXON`
+ const IXON = c::IXON;
+
+ /// `IXANY`
+ #[cfg(not(target_os = "redox"))]
+ const IXANY = c::IXANY;
+
+ /// `IXOFF`
+ const IXOFF = c::IXOFF;
+
+ /// `IMAXBEL`
+ #[cfg(not(any(target_os = "haiku", target_os = "redox")))]
+ const IMAXBEL = c::IMAXBEL;
+
+ /// `IUTF8`
+ #[cfg(not(any(
+ freebsdlike,
+ netbsdlike,
+ solarish,
+ target_os = "aix",
+ target_os = "emscripten",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "redox",
+ )))]
+ const IUTF8 = c::IUTF8;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// Flags controlling terminal output.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct OutputModes: types::tcflag_t {
+ /// `OPOST`
+ const OPOST = c::OPOST;
+
+ /// `OLCUC`
+ #[cfg(not(any(
+ apple,
+ freebsdlike,
+ target_os = "aix",
+ target_os = "netbsd",
+ target_os = "redox",
+ )))]
+ const OLCUC = c::OLCUC;
+
+ /// `ONLCR`
+ const ONLCR = c::ONLCR;
+
+ /// `OCRNL`
+ const OCRNL = c::OCRNL;
+
+ /// `ONOCR`
+ const ONOCR = c::ONOCR;
+
+ /// `ONLRET`
+ const ONLRET = c::ONLRET;
+
+ /// `OFILL`
+ #[cfg(not(bsd))]
+ const OFILL = c::OFILL;
+
+ /// `OFDEL`
+ #[cfg(not(bsd))]
+ const OFDEL = c::OFDEL;
+
+ /// `NLDLY`
+ #[cfg(not(any(bsd, solarish, target_os = "redox")))]
+ const NLDLY = c::NLDLY;
+
+ /// `NL0`
+ #[cfg(not(any(bsd, solarish, target_os = "fuchsia", target_os = "redox")))]
+ const NL0 = c::NL0;
+
+ /// `NL1`
+ #[cfg(not(any(bsd, solarish, target_os = "fuchsia", target_os = "redox")))]
+ const NL1 = c::NL1;
+
+ /// `CRDLY`
+ #[cfg(not(any(bsd, solarish, target_os = "redox")))]
+ const CRDLY = c::CRDLY;
+
+ /// `CR0`
+ #[cfg(not(any(bsd, solarish, target_os = "fuchsia", target_os = "redox")))]
+ const CR0 = c::CR0;
+
+ /// `CR1`
+ #[cfg(not(any(
+ target_env = "musl",
+ bsd,
+ solarish,
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "redox",
+ )))]
+ const CR1 = c::CR1;
+
+ /// `CR2`
+ #[cfg(not(any(
+ target_env = "musl",
+ bsd,
+ solarish,
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "redox",
+ )))]
+ const CR2 = c::CR2;
+
+ /// `CR3`
+ #[cfg(not(any(
+ target_env = "musl",
+ bsd,
+ solarish,
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "redox",
+ )))]
+ const CR3 = c::CR3;
+
+ /// `TABDLY`
+ #[cfg(not(any(
+ netbsdlike,
+ solarish,
+ target_os = "dragonfly",
+ target_os = "redox",
+ )))]
+ const TABDLY = c::TABDLY;
+
+ /// `TAB0`
+ #[cfg(not(any(
+ netbsdlike,
+ solarish,
+ target_os = "dragonfly",
+ target_os = "fuchsia",
+ target_os = "redox",
+ )))]
+ const TAB0 = c::TAB0;
+
+ /// `TAB1`
+ #[cfg(not(any(
+ target_env = "musl",
+ bsd,
+ solarish,
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "redox",
+ )))]
+ const TAB1 = c::TAB1;
+
+ /// `TAB2`
+ #[cfg(not(any(
+ target_env = "musl",
+ bsd,
+ solarish,
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "redox",
+ )))]
+ const TAB2 = c::TAB2;
+
+ /// `TAB3`
+ #[cfg(not(any(
+ target_env = "musl",
+ bsd,
+ solarish,
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "redox",
+ )))]
+ const TAB3 = c::TAB3;
+
+ /// `XTABS`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "redox",
+ )))]
+ const XTABS = c::XTABS;
+
+ /// `BSDLY`
+ #[cfg(not(any(bsd, solarish, target_os = "redox")))]
+ const BSDLY = c::BSDLY;
+
+ /// `BS0`
+ #[cfg(not(any(bsd, solarish, target_os = "fuchsia", target_os = "redox")))]
+ const BS0 = c::BS0;
+
+ /// `BS1`
+ #[cfg(not(any(
+ target_env = "musl",
+ bsd,
+ solarish,
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "redox",
+ )))]
+ const BS1 = c::BS1;
+
+ /// `FFDLY`
+ #[cfg(not(any(bsd, solarish, target_os = "redox")))]
+ const FFDLY = c::FFDLY;
+
+ /// `FF0`
+ #[cfg(not(any(bsd, solarish, target_os = "fuchsia", target_os = "redox")))]
+ const FF0 = c::FF0;
+
+ /// `FF1`
+ #[cfg(not(any(
+ target_env = "musl",
+ bsd,
+ solarish,
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "redox",
+ )))]
+ const FF1 = c::FF1;
+
+ /// `VTDLY`
+ #[cfg(not(any(bsd, solarish, target_os = "redox")))]
+ const VTDLY = c::VTDLY;
+
+ /// `VT0`
+ #[cfg(not(any(bsd, solarish, target_os = "fuchsia", target_os = "redox")))]
+ const VT0 = c::VT0;
+
+ /// `VT1`
+ #[cfg(not(any(
+ target_env = "musl",
+ bsd,
+ solarish,
+ target_os = "emscripten",
+ target_os = "fuchsia",
+ target_os = "redox",
+ )))]
+ const VT1 = c::VT1;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// Flags controlling special terminal modes.
+ ///
+ /// `CBAUD`, `CBAUDEX`, `CIBAUD`, `CIBAUDEX`, and various `B*` speed
+ /// constants are often included in the control modes, however rustix
+ /// handles them separately, in [`Termios::set_speed`] and related
+ /// functions. If you see extra bits in the `Debug` output, they're
+ /// probably these flags.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ControlModes: types::tcflag_t {
+ /// `CSIZE`
+ const CSIZE = c::CSIZE;
+
+ /// `CS5`
+ const CS5 = c::CS5;
+
+ /// `CS6`
+ const CS6 = c::CS6;
+
+ /// `CS7`
+ const CS7 = c::CS7;
+
+ /// `CS8`
+ const CS8 = c::CS8;
+
+ /// `CSTOPB`
+ const CSTOPB = c::CSTOPB;
+
+ /// `CREAD`
+ const CREAD = c::CREAD;
+
+ /// `PARENB`
+ const PARENB = c::PARENB;
+
+ /// `PARODD`
+ const PARODD = c::PARODD;
+
+ /// `HUPCL`
+ const HUPCL = c::HUPCL;
+
+ /// `CLOCAL`
+ const CLOCAL = c::CLOCAL;
+
+ /// `CRTSCTS`
+ #[cfg(not(any(target_os = "aix", target_os = "nto", target_os = "redox")))]
+ const CRTSCTS = c::CRTSCTS;
+
+ /// `CMSPAR`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "emscripten",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ target_os = "redox",
+ )))]
+ const CMSPAR = c::CMSPAR;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+bitflags! {
+ /// Flags controlling “local” terminal modes.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct LocalModes: types::tcflag_t {
+ /// `XCASE`
+ #[cfg(any(linux_kernel, target_arch = "s390x", target_os = "haiku"))]
+ const XCASE = c::XCASE;
+
+ /// `ECHOCTL`
+ #[cfg(not(target_os = "redox"))]
+ const ECHOCTL = c::ECHOCTL;
+
+ /// `ECHOPRT`
+ #[cfg(not(any(target_os = "cygwin", target_os = "nto", target_os = "redox")))]
+ const ECHOPRT = c::ECHOPRT;
+
+ /// `ECHOKE`
+ #[cfg(not(target_os = "redox"))]
+ const ECHOKE = c::ECHOKE;
+
+ /// `FLUSHO`
+ #[cfg(not(any(target_os = "nto", target_os = "redox")))]
+ const FLUSHO = c::FLUSHO;
+
+ /// `PENDIN`
+ #[cfg(not(any(target_os = "cygwin", target_os = "nto", target_os = "redox")))]
+ const PENDIN = c::PENDIN;
+
+ /// `EXTPROC`
+ #[cfg(not(any(
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "redox",
+ )))]
+ const EXTPROC = c::EXTPROC;
+
+ /// `ISIG`
+ const ISIG = c::ISIG;
+
+ /// `ICANON`—A flag for the `c_lflag` field of [`Termios`] indicating
+ /// canonical mode.
+ const ICANON = c::ICANON;
+
+ /// `ECHO`
+ const ECHO = c::ECHO;
+
+ /// `ECHOE`
+ const ECHOE = c::ECHOE;
+
+ /// `ECHOK`
+ const ECHOK = c::ECHOK;
+
+ /// `ECHONL`
+ const ECHONL = c::ECHONL;
+
+ /// `NOFLSH`
+ const NOFLSH = c::NOFLSH;
+
+ /// `TOSTOP`
+ const TOSTOP = c::TOSTOP;
+
+ /// `IEXTEN`
+ const IEXTEN = c::IEXTEN;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// Speeds for use with [`Termios::set_speed`], [`Termios::set_input_speed`],
+/// and [`Termios::set_output_speed`].
+///
+/// Unlike in some platforms' libc APIs, these always have the same numerical
+/// value as their names; for example, `B50` has the value `50`, and so on.
+/// Consequently, it's not necessary to use them. They are provided here
+/// because they help identify speeds which are likely to be supported, on
+/// platforms and devices which don't support arbitrary speeds.
+pub mod speed {
+ #[cfg(not(bsd))]
+ use crate::backend::c;
+
+ /// `B0`
+ pub const B0: u32 = 0;
+
+ /// `B50`
+ pub const B50: u32 = 50;
+
+ /// `B75`
+ pub const B75: u32 = 75;
+
+ /// `B110`
+ pub const B110: u32 = 110;
+
+ /// `B134`
+ pub const B134: u32 = 134;
+
+ /// `B150`
+ pub const B150: u32 = 150;
+
+ /// `B200`
+ pub const B200: u32 = 200;
+
+ /// `B300`
+ pub const B300: u32 = 300;
+
+ /// `B600`
+ pub const B600: u32 = 600;
+
+ /// `B1200`
+ pub const B1200: u32 = 1200;
+
+ /// `B1800`
+ pub const B1800: u32 = 1800;
+
+ /// `B2400`
+ pub const B2400: u32 = 2400;
+
+ /// `B4800`
+ pub const B4800: u32 = 4800;
+
+ /// `B9600`
+ pub const B9600: u32 = 9600;
+
+ /// `B19200`
+ #[doc(alias = "EXTA")]
+ pub const B19200: u32 = 19200;
+
+ /// `B38400`
+ #[doc(alias = "EXTB")]
+ pub const B38400: u32 = 38400;
+
+ /// `B57600`
+ #[cfg(not(target_os = "aix"))]
+ pub const B57600: u32 = 57600;
+
+ /// `B115200`
+ #[cfg(not(target_os = "aix"))]
+ pub const B115200: u32 = 115_200;
+
+ /// `B230400`
+ #[cfg(not(target_os = "aix"))]
+ pub const B230400: u32 = 230_400;
+
+ /// `B460800`
+ #[cfg(not(any(
+ apple,
+ target_os = "aix",
+ target_os = "dragonfly",
+ target_os = "haiku",
+ target_os = "openbsd"
+ )))]
+ pub const B460800: u32 = 460_800;
+
+ /// `B500000`
+ #[cfg(not(any(bsd, solarish, target_os = "aix", target_os = "haiku")))]
+ pub const B500000: u32 = 500_000;
+
+ /// `B576000`
+ #[cfg(not(any(bsd, solarish, target_os = "aix", target_os = "haiku")))]
+ pub const B576000: u32 = 576_000;
+
+ /// `B921600`
+ #[cfg(not(any(
+ apple,
+ target_os = "aix",
+ target_os = "dragonfly",
+ target_os = "haiku",
+ target_os = "openbsd"
+ )))]
+ pub const B921600: u32 = 921_600;
+
+ /// `B1000000`
+ #[cfg(not(any(bsd, target_os = "aix", target_os = "haiku", target_os = "solaris")))]
+ pub const B1000000: u32 = 1_000_000;
+
+ /// `B1152000`
+ #[cfg(not(any(bsd, target_os = "aix", target_os = "haiku", target_os = "solaris")))]
+ pub const B1152000: u32 = 1_152_000;
+
+ /// `B1500000`
+ #[cfg(not(any(bsd, target_os = "aix", target_os = "haiku", target_os = "solaris")))]
+ pub const B1500000: u32 = 1_500_000;
+
+ /// `B2000000`
+ #[cfg(not(any(bsd, target_os = "aix", target_os = "haiku", target_os = "solaris")))]
+ pub const B2000000: u32 = 2_000_000;
+
+ /// `B2500000`
+ #[cfg(not(any(
+ target_arch = "sparc",
+ target_arch = "sparc64",
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "solaris",
+ )))]
+ pub const B2500000: u32 = 2_500_000;
+
+ /// `B3000000`
+ #[cfg(not(any(
+ target_arch = "sparc",
+ target_arch = "sparc64",
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "solaris",
+ )))]
+ pub const B3000000: u32 = 3_000_000;
+
+ /// `B3500000`
+ #[cfg(not(any(
+ target_arch = "sparc",
+ target_arch = "sparc64",
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "solaris",
+ )))]
+ pub const B3500000: u32 = 3_500_000;
+
+ /// `B4000000`
+ #[cfg(not(any(
+ target_arch = "sparc",
+ target_arch = "sparc64",
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "solaris",
+ )))]
+ pub const B4000000: u32 = 4_000_000;
+
+ /// Translate from a `c::speed_t` code to an arbitrary integer speed value
+ /// `u32`.
+ ///
+ /// On BSD platforms, integer speed values are already the same as their
+ /// encoded values.
+ ///
+ /// On Linux on PowerPC, `TCGETS`/`TCSETS` support the `c_ispeed` and
+ /// `c_ospeed` fields.
+ ///
+ /// On Linux on architectures other than PowerPC, `TCGETS`/`TCSETS` don't
+ /// support the `c_ispeed` and `c_ospeed` fields, so we have to fall back
+ /// to `TCGETS2`/`TCSETS2` to support them.
+ #[cfg(not(any(
+ bsd,
+ all(linux_kernel, any(target_arch = "powerpc", target_arch = "powerpc64"))
+ )))]
+ pub(crate) const fn decode(encoded_speed: c::speed_t) -> Option<u32> {
+ match encoded_speed {
+ c::B0 => Some(0),
+ c::B50 => Some(50),
+ c::B75 => Some(75),
+ c::B110 => Some(110),
+ c::B134 => Some(134),
+ c::B150 => Some(150),
+ c::B200 => Some(200),
+ c::B300 => Some(300),
+ c::B600 => Some(600),
+ c::B1200 => Some(1200),
+ c::B1800 => Some(1800),
+ c::B2400 => Some(2400),
+ c::B4800 => Some(4800),
+ c::B9600 => Some(9600),
+ c::B19200 => Some(19200),
+ c::B38400 => Some(38400),
+ #[cfg(not(target_os = "aix"))]
+ c::B57600 => Some(57600),
+ #[cfg(not(target_os = "aix"))]
+ c::B115200 => Some(115_200),
+ #[cfg(not(any(target_os = "aix", target_os = "nto")))]
+ c::B230400 => Some(230_400),
+ #[cfg(not(any(
+ apple,
+ target_os = "aix",
+ target_os = "dragonfly",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "openbsd"
+ )))]
+ c::B460800 => Some(460_800),
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto"
+ )))]
+ c::B500000 => Some(500_000),
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto"
+ )))]
+ c::B576000 => Some(576_000),
+ #[cfg(not(any(
+ apple,
+ target_os = "aix",
+ target_os = "dragonfly",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "openbsd"
+ )))]
+ c::B921600 => Some(921_600),
+ #[cfg(not(any(
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris"
+ )))]
+ c::B1000000 => Some(1_000_000),
+ #[cfg(not(any(
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris"
+ )))]
+ c::B1152000 => Some(1_152_000),
+ #[cfg(not(any(
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris"
+ )))]
+ c::B1500000 => Some(1_500_000),
+ #[cfg(not(any(
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris"
+ )))]
+ c::B2000000 => Some(2_000_000),
+ #[cfg(not(any(
+ target_arch = "sparc",
+ target_arch = "sparc64",
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris",
+ )))]
+ c::B2500000 => Some(2_500_000),
+ #[cfg(not(any(
+ target_arch = "sparc",
+ target_arch = "sparc64",
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris",
+ )))]
+ c::B3000000 => Some(3_000_000),
+ #[cfg(not(any(
+ target_arch = "sparc",
+ target_arch = "sparc64",
+ bsd,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris",
+ )))]
+ c::B3500000 => Some(3_500_000),
+ #[cfg(not(any(
+ target_arch = "sparc",
+ target_arch = "sparc64",
+ bsd,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris",
+ )))]
+ c::B4000000 => Some(4_000_000),
+ _ => None,
+ }
+ }
+
+ /// Translate from an arbitrary `u32` arbitrary integer speed value to a
+ /// `c::speed_t` code.
+ #[cfg(not(bsd))]
+ pub(crate) const fn encode(speed: u32) -> Option<c::speed_t> {
+ match speed {
+ 0 => Some(c::B0),
+ 50 => Some(c::B50),
+ 75 => Some(c::B75),
+ 110 => Some(c::B110),
+ 134 => Some(c::B134),
+ 150 => Some(c::B150),
+ 200 => Some(c::B200),
+ 300 => Some(c::B300),
+ 600 => Some(c::B600),
+ 1200 => Some(c::B1200),
+ 1800 => Some(c::B1800),
+ 2400 => Some(c::B2400),
+ 4800 => Some(c::B4800),
+ 9600 => Some(c::B9600),
+ 19200 => Some(c::B19200),
+ 38400 => Some(c::B38400),
+ #[cfg(not(target_os = "aix"))]
+ 57600 => Some(c::B57600),
+ #[cfg(not(target_os = "aix"))]
+ 115_200 => Some(c::B115200),
+ #[cfg(not(any(target_os = "aix", target_os = "nto")))]
+ 230_400 => Some(c::B230400),
+ #[cfg(not(any(
+ apple,
+ target_os = "aix",
+ target_os = "dragonfly",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "openbsd",
+ )))]
+ 460_800 => Some(c::B460800),
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto"
+ )))]
+ 500_000 => Some(c::B500000),
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto"
+ )))]
+ 576_000 => Some(c::B576000),
+ #[cfg(not(any(
+ apple,
+ target_os = "aix",
+ target_os = "dragonfly",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "openbsd"
+ )))]
+ 921_600 => Some(c::B921600),
+ #[cfg(not(any(
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris"
+ )))]
+ 1_000_000 => Some(c::B1000000),
+ #[cfg(not(any(
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris"
+ )))]
+ 1_152_000 => Some(c::B1152000),
+ #[cfg(not(any(
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris"
+ )))]
+ 1_500_000 => Some(c::B1500000),
+ #[cfg(not(any(
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris"
+ )))]
+ 2_000_000 => Some(c::B2000000),
+ #[cfg(not(any(
+ target_arch = "sparc",
+ target_arch = "sparc64",
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris",
+ )))]
+ 2_500_000 => Some(c::B2500000),
+ #[cfg(not(any(
+ target_arch = "sparc",
+ target_arch = "sparc64",
+ bsd,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris",
+ )))]
+ 3_000_000 => Some(c::B3000000),
+ #[cfg(not(any(
+ target_arch = "sparc",
+ target_arch = "sparc64",
+ bsd,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris",
+ )))]
+ 3_500_000 => Some(c::B3500000),
+ #[cfg(not(any(
+ target_arch = "sparc",
+ target_arch = "sparc64",
+ bsd,
+ target_os = "aix",
+ target_os = "cygwin",
+ target_os = "haiku",
+ target_os = "nto",
+ target_os = "solaris",
+ )))]
+ 4_000_000 => Some(c::B4000000),
+ _ => None,
+ }
+ }
+}
+
+/// An array indexed by [`SpecialCodeIndex`] indicating the current values of
+/// various special control codes.
+#[repr(transparent)]
+#[derive(Clone)]
+pub struct SpecialCodes(pub(crate) [c::cc_t; c::NCCS as usize]);
+
+impl core::ops::Index<SpecialCodeIndex> for SpecialCodes {
+ type Output = u8;
+
+ fn index(&self, index: SpecialCodeIndex) -> &Self::Output {
+ &self.0[index.0]
+ }
+}
+
+impl core::ops::IndexMut<SpecialCodeIndex> for SpecialCodes {
+ fn index_mut(&mut self, index: SpecialCodeIndex) -> &mut Self::Output {
+ &mut self.0[index.0]
+ }
+}
+
+impl core::fmt::Debug for SpecialCodes {
+ fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+ write!(f, "SpecialCodes {{")?;
+ let mut first = true;
+ for i in 0..self.0.len() {
+ if first {
+ write!(f, " ")?;
+ } else {
+ write!(f, ", ")?;
+ }
+ first = false;
+ let index = SpecialCodeIndex(i);
+ write!(f, "{:?}: {:?}", index, SpecialCode(self[index]))?;
+ }
+ if !first {
+ write!(f, " ")?;
+ }
+ write!(f, "}}")
+ }
+}
+
+/// A newtype for pretty printing.
+struct SpecialCode(u8);
+
+impl core::fmt::Debug for SpecialCode {
+ fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+ if self.0 == 0 {
+ write!(f, "<undef>")
+ } else if self.0 < 0x20 {
+ write!(f, "^{}", (self.0 + 0x40) as char)
+ } else if self.0 == 0x7f {
+ write!(f, "^?")
+ } else if self.0 >= 0x80 {
+ write!(f, "M-")?;
+ SpecialCode(self.0 - 0x80).fmt(f)
+ } else {
+ write!(f, "{}", (self.0 as char))
+ }
+ }
+}
+
+/// Indices for use with [`Termios::special_codes`].
+#[derive(Copy, Clone, Eq, PartialEq, Hash)]
+pub struct SpecialCodeIndex(usize);
+
+#[rustfmt::skip]
+impl SpecialCodeIndex {
+ /// `VINTR`
+ pub const VINTR: Self = Self(c::VINTR as usize);
+
+ /// `VQUIT`
+ pub const VQUIT: Self = Self(c::VQUIT as usize);
+
+ /// `VERASE`
+ pub const VERASE: Self = Self(c::VERASE as usize);
+
+ /// `VKILL`
+ pub const VKILL: Self = Self(c::VKILL as usize);
+
+ /// `VEOF`
+ pub const VEOF: Self = Self(c::VEOF as usize);
+
+ /// `VTIME`
+ pub const VTIME: Self = Self(c::VTIME as usize);
+
+ /// `VMIN`
+ pub const VMIN: Self = Self(c::VMIN as usize);
+
+ /// `VSWTC`
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ )))]
+ pub const VSWTC: Self = Self(c::VSWTC as usize);
+
+ /// `VSTART`
+ pub const VSTART: Self = Self(c::VSTART as usize);
+
+ /// `VSTOP`
+ pub const VSTOP: Self = Self(c::VSTOP as usize);
+
+ /// `VSUSP`
+ pub const VSUSP: Self = Self(c::VSUSP as usize);
+
+ /// `VEOL`
+ pub const VEOL: Self = Self(c::VEOL as usize);
+
+ /// `VREPRINT`
+ #[cfg(not(target_os = "haiku"))]
+ pub const VREPRINT: Self = Self(c::VREPRINT as usize);
+
+ /// `VDISCARD`
+ #[cfg(not(any(target_os = "aix", target_os = "haiku")))]
+ pub const VDISCARD: Self = Self(c::VDISCARD as usize);
+
+ /// `VWERASE`
+ #[cfg(not(any(target_os = "aix", target_os = "haiku")))]
+ pub const VWERASE: Self = Self(c::VWERASE as usize);
+
+ /// `VLNEXT`
+ #[cfg(not(target_os = "haiku"))]
+ pub const VLNEXT: Self = Self(c::VLNEXT as usize);
+
+ /// `VEOL2`
+ pub const VEOL2: Self = Self(c::VEOL2 as usize);
+
+ /// `VSWTCH`
+ #[cfg(any(solarish, target_os = "haiku", target_os = "nto"))]
+ pub const VSWTCH: Self = Self(c::VSWTCH as usize);
+
+ /// `VDSUSP`
+ #[cfg(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "hurd",
+ target_os = "nto"
+ ))]
+ pub const VDSUSP: Self = Self(c::VDSUSP as usize);
+
+ /// `VSTATUS`
+ #[cfg(any(bsd, target_os = "hurd", target_os = "illumos"))]
+ pub const VSTATUS: Self = Self(c::VSTATUS as usize);
+
+ /// `VERASE2`
+ #[cfg(any(freebsdlike, target_os = "illumos"))]
+ pub const VERASE2: Self = Self(c::VERASE2 as usize);
+}
+
+impl core::fmt::Debug for SpecialCodeIndex {
+ fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+ match *self {
+ Self::VINTR => write!(f, "VINTR"),
+ Self::VQUIT => write!(f, "VQUIT"),
+ Self::VERASE => write!(f, "VERASE"),
+ Self::VKILL => write!(f, "VKILL"),
+ #[cfg(not(any(
+ solarish,
+ all(linux_kernel, any(target_arch = "sparc", target_arch = "sparc64")),
+ target_os = "aix",
+ target_os = "haiku",
+ )))]
+ Self::VEOF => write!(f, "VEOF"),
+ #[cfg(not(any(
+ solarish,
+ all(linux_kernel, any(target_arch = "sparc", target_arch = "sparc64")),
+ target_os = "aix",
+ target_os = "haiku",
+ )))]
+ Self::VTIME => write!(f, "VTIME"),
+ #[cfg(not(any(
+ solarish,
+ all(linux_kernel, any(target_arch = "sparc", target_arch = "sparc64")),
+ target_os = "aix",
+ target_os = "haiku",
+ )))]
+ Self::VMIN => write!(f, "VMIN"),
+
+ // On Solarish platforms, Linux on SPARC, AIX, and Haiku, `VMIN`
+ // and `VTIME` have the same value as `VEOF` and `VEOL`.
+ #[cfg(any(
+ solarish,
+ all(linux_kernel, any(target_arch = "sparc", target_arch = "sparc64")),
+ target_os = "aix",
+ target_os = "haiku",
+ ))]
+ Self::VMIN => write!(f, "VMIN/VEOF"),
+ #[cfg(any(
+ solarish,
+ all(linux_kernel, any(target_arch = "sparc", target_arch = "sparc64")),
+ target_os = "aix",
+ target_os = "haiku",
+ ))]
+ Self::VTIME => write!(f, "VTIME/VEOL"),
+
+ #[cfg(not(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "haiku",
+ target_os = "hurd",
+ target_os = "nto",
+ )))]
+ Self::VSWTC => write!(f, "VSWTC"),
+ Self::VSTART => write!(f, "VSTART"),
+ Self::VSTOP => write!(f, "VSTOP"),
+ Self::VSUSP => write!(f, "VSUSP"),
+ #[cfg(not(any(
+ solarish,
+ all(linux_kernel, any(target_arch = "sparc", target_arch = "sparc64")),
+ target_os = "aix",
+ target_os = "haiku",
+ )))]
+ Self::VEOL => write!(f, "VEOL"),
+ #[cfg(not(target_os = "haiku"))]
+ Self::VREPRINT => write!(f, "VREPRINT"),
+ #[cfg(not(any(target_os = "aix", target_os = "haiku")))]
+ Self::VDISCARD => write!(f, "VDISCARD"),
+ #[cfg(not(any(target_os = "aix", target_os = "haiku")))]
+ Self::VWERASE => write!(f, "VWERASE"),
+ #[cfg(not(target_os = "haiku"))]
+ Self::VLNEXT => write!(f, "VLNEXT"),
+ Self::VEOL2 => write!(f, "VEOL2"),
+ #[cfg(any(solarish, target_os = "haiku", target_os = "nto"))]
+ Self::VSWTCH => write!(f, "VSWTCH"),
+ #[cfg(any(
+ bsd,
+ solarish,
+ target_os = "aix",
+ target_os = "hurd",
+ target_os = "nto"
+ ))]
+ Self::VDSUSP => write!(f, "VDSUSP"),
+ #[cfg(any(bsd, target_os = "hurd", target_os = "illumos"))]
+ Self::VSTATUS => write!(f, "VSTATUS"),
+ #[cfg(any(freebsdlike, target_os = "illumos"))]
+ Self::VERASE2 => write!(f, "VERASE2"),
+
+ _ => write!(f, "unknown"),
+ }
+ }
+}
+
+/// `TCSA*` values for use with [`tcsetattr`].
+///
+/// [`tcsetattr`]: crate::termios::tcsetattr
+#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
+#[repr(u32)]
+pub enum OptionalActions {
+ /// `TCSANOW`—Make the change immediately.
+ #[doc(alias = "TCSANOW")]
+ Now = c::TCSANOW as u32,
+
+ /// `TCSADRAIN`—Make the change after all output has been transmitted.
+ #[doc(alias = "TCSADRAIN")]
+ Drain = c::TCSADRAIN as u32,
+
+ /// `TCSAFLUSH`—Discard any pending input and then make the change
+ /// after all output has been transmitted.
+ #[doc(alias = "TCSAFLUSH")]
+ Flush = c::TCSAFLUSH as u32,
+}
+
+/// `TC*` values for use with [`tcflush`].
+///
+/// [`tcflush`]: crate::termios::tcflush
+#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
+#[repr(u32)]
+pub enum QueueSelector {
+ /// `TCIFLUSH`—Flush data received but not read.
+ #[doc(alias = "TCIFLUSH")]
+ IFlush = c::TCIFLUSH as u32,
+
+ /// `TCOFLUSH`—Flush data written but not transmitted.
+ #[doc(alias = "TCOFLUSH")]
+ OFlush = c::TCOFLUSH as u32,
+
+ /// `TCIOFLUSH`—`IFlush` and `OFlush` combined.
+ #[doc(alias = "TCIOFLUSH")]
+ IOFlush = c::TCIOFLUSH as u32,
+}
+
+/// `TC*` values for use with [`tcflow`].
+///
+/// [`tcflow`]: crate::termios::tcflow
+#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
+#[repr(u32)]
+pub enum Action {
+ /// `TCOOFF`—Suspend output.
+ #[doc(alias = "TCOOFF")]
+ OOff = c::TCOOFF as u32,
+
+ /// `TCOON`—Restart suspended output.
+ #[doc(alias = "TCOON")]
+ OOn = c::TCOON as u32,
+
+ /// `TCIOFF`—Transmits a STOP byte.
+ #[doc(alias = "TCIOFF")]
+ IOff = c::TCIOFF as u32,
+
+ /// `TCION`—Transmits a START byte.
+ #[doc(alias = "TCION")]
+ IOn = c::TCION as u32,
+}
+
+/// `struct winsize` for use with [`tcgetwinsize`].
+///
+/// [`tcgetwinsize`]: crate::termios::tcgetwinsize
+#[doc(alias = "winsize")]
+#[repr(C)]
+#[derive(Debug, Copy, Clone, Eq, Hash, PartialEq)]
+#[allow(missing_docs)]
+pub struct Winsize {
+ /// The number of rows the terminal has.
+ pub ws_row: u16,
+ /// The number of columns the terminal has.
+ pub ws_col: u16,
+
+ pub ws_xpixel: u16,
+ pub ws_ypixel: u16,
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn termios_layouts() {
+ check_renamed_type!(InputModes, tcflag_t);
+ check_renamed_type!(OutputModes, tcflag_t);
+ check_renamed_type!(ControlModes, tcflag_t);
+ check_renamed_type!(LocalModes, tcflag_t);
+ assert_eq_size!(u8, libc::cc_t);
+ assert_eq_size!(types::tcflag_t, libc::tcflag_t);
+
+ check_renamed_struct!(Winsize, winsize, ws_row, ws_col, ws_xpixel, ws_ypixel);
+
+ // On platforms with a termios/termios2 split, check `termios`.
+ #[cfg(linux_raw)]
+ {
+ check_renamed_type!(Termios, termios2);
+ check_renamed_struct_renamed_field!(Termios, termios2, input_modes, c_iflag);
+ check_renamed_struct_renamed_field!(Termios, termios2, output_modes, c_oflag);
+ check_renamed_struct_renamed_field!(Termios, termios2, control_modes, c_cflag);
+ check_renamed_struct_renamed_field!(Termios, termios2, local_modes, c_lflag);
+ check_renamed_struct_renamed_field!(Termios, termios2, line_discipline, c_line);
+ check_renamed_struct_renamed_field!(Termios, termios2, special_codes, c_cc);
+ check_renamed_struct_renamed_field!(Termios, termios2, input_speed, c_ispeed);
+ check_renamed_struct_renamed_field!(Termios, termios2, output_speed, c_ospeed);
+
+ // We assume that `termios` has the same layout as `termios2` minus the
+ // `c_ispeed` and `c_ospeed` fields.
+ check_renamed_struct_renamed_field!(Termios, termios, input_modes, c_iflag);
+ check_renamed_struct_renamed_field!(Termios, termios, output_modes, c_oflag);
+ check_renamed_struct_renamed_field!(Termios, termios, control_modes, c_cflag);
+ check_renamed_struct_renamed_field!(Termios, termios, local_modes, c_lflag);
+ check_renamed_struct_renamed_field!(Termios, termios, special_codes, c_cc);
+
+ // 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")))]
+ const_assert_eq!(
+ memoffset::offset_of!(Termios, input_speed),
+ core::mem::size_of::<c::termios>()
+ );
+
+ // On PowerPC, `termios2` is `termios`.
+ #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))]
+ assert_eq_size!(c::termios2, c::termios);
+ }
+
+ #[cfg(not(linux_raw))]
+ {
+ // On MIPS, SPARC, and Android, the libc lacks the ospeed and ispeed
+ // fields.
+ #[cfg(all(
+ not(all(
+ target_env = "gnu",
+ any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "sparc",
+ target_arch = "sparc64"
+ )
+ )),
+ not(all(libc, target_os = "android"))
+ ))]
+ check_renamed_type!(Termios, termios);
+ #[cfg(not(all(
+ not(all(
+ target_env = "gnu",
+ any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6",
+ target_arch = "sparc",
+ target_arch = "sparc64"
+ )
+ )),
+ not(all(libc, target_os = "android"))
+ )))]
+ const_assert!(core::mem::size_of::<Termios>() >= core::mem::size_of::<c::termios>());
+
+ check_renamed_struct_renamed_field!(Termios, termios, input_modes, c_iflag);
+ check_renamed_struct_renamed_field!(Termios, termios, output_modes, c_oflag);
+ check_renamed_struct_renamed_field!(Termios, termios, control_modes, c_cflag);
+ check_renamed_struct_renamed_field!(Termios, termios, local_modes, c_lflag);
+ #[cfg(any(
+ linux_like,
+ target_env = "newlib",
+ target_os = "fuchsia",
+ target_os = "haiku",
+ target_os = "redox"
+ ))]
+ check_renamed_struct_renamed_field!(Termios, termios, line_discipline, c_line);
+ check_renamed_struct_renamed_field!(Termios, termios, special_codes, c_cc);
+ #[cfg(not(any(
+ linux_kernel,
+ solarish,
+ target_os = "emscripten",
+ target_os = "fuchsia"
+ )))]
+ {
+ check_renamed_struct_renamed_field!(Termios, termios, input_speed, c_ispeed);
+ check_renamed_struct_renamed_field!(Termios, termios, output_speed, c_ospeed);
+ }
+ #[cfg(any(target_env = "musl", target_os = "fuchsia"))]
+ {
+ check_renamed_struct_renamed_field!(Termios, termios, input_speed, __c_ispeed);
+ check_renamed_struct_renamed_field!(Termios, termios, output_speed, __c_ospeed);
+ }
+ }
+
+ check_renamed_type!(OptionalActions, c_int);
+ check_renamed_type!(QueueSelector, c_int);
+ check_renamed_type!(Action, c_int);
+ }
+
+ #[test]
+ #[cfg(not(any(
+ solarish,
+ target_os = "cygwin",
+ target_os = "emscripten",
+ target_os = "haiku",
+ target_os = "redox",
+ )))]
+ fn termios_legacy() {
+ // Check that our doc aliases above are correct.
+ const_assert_eq!(c::EXTA, c::B19200);
+ const_assert_eq!(c::EXTB, c::B38400);
+ }
+
+ #[cfg(bsd)]
+ #[test]
+ fn termios_bsd() {
+ // On BSD platforms we can assume that the `B*` constants have their
+ // arbitrary integer speed value. Confirm this.
+ const_assert_eq!(c::B0, 0);
+ const_assert_eq!(c::B50, 50);
+ const_assert_eq!(c::B19200, 19200);
+ const_assert_eq!(c::B38400, 38400);
+ }
+
+ #[test]
+ #[cfg(not(bsd))]
+ fn termios_speed_encoding() {
+ assert_eq!(speed::encode(0), Some(c::B0));
+ assert_eq!(speed::encode(50), Some(c::B50));
+ assert_eq!(speed::encode(19200), Some(c::B19200));
+ assert_eq!(speed::encode(38400), Some(c::B38400));
+ assert_eq!(speed::encode(1), None);
+ assert_eq!(speed::encode(!0), None);
+
+ #[cfg(not(linux_kernel))]
+ {
+ assert_eq!(speed::decode(c::B0), Some(0));
+ assert_eq!(speed::decode(c::B50), Some(50));
+ assert_eq!(speed::decode(c::B19200), Some(19200));
+ assert_eq!(speed::decode(c::B38400), Some(38400));
+ }
+ }
+
+ #[cfg(linux_kernel)]
+ #[test]
+ fn termios_ioctl_contiguity() {
+ // When using `termios2`, we assume that we can add the optional actions
+ // value to the ioctl request code. Test this assumption.
+
+ const_assert_eq!(c::TCSETS2, c::TCSETS2 + 0);
+ const_assert_eq!(c::TCSETSW2, c::TCSETS2 + 1);
+ const_assert_eq!(c::TCSETSF2, c::TCSETS2 + 2);
+
+ const_assert_eq!(c::TCSANOW - c::TCSANOW, 0);
+ const_assert_eq!(c::TCSADRAIN - c::TCSANOW, 1);
+ const_assert_eq!(c::TCSAFLUSH - c::TCSANOW, 2);
+
+ // MIPS is different here.
+ #[cfg(any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ ))]
+ {
+ assert_eq!(i128::from(c::TCSANOW) - i128::from(c::TCSETS), 0);
+ assert_eq!(i128::from(c::TCSADRAIN) - i128::from(c::TCSETS), 1);
+ assert_eq!(i128::from(c::TCSAFLUSH) - i128::from(c::TCSETS), 2);
+ }
+ #[cfg(not(any(
+ target_arch = "mips",
+ target_arch = "mips32r6",
+ target_arch = "mips64",
+ target_arch = "mips64r6"
+ )))]
+ {
+ const_assert_eq!(c::TCSANOW, 0);
+ const_assert_eq!(c::TCSADRAIN, 1);
+ const_assert_eq!(c::TCSAFLUSH, 2);
+ }
+ }
+
+ #[cfg(linux_kernel)]
+ #[test]
+ fn termios_cibaud() {
+ // Test an assumption.
+ const_assert_eq!(c::CIBAUD, c::CBAUD << c::IBSHIFT);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/thread/clock.rs b/vendor/rustix-1.0.8/src/thread/clock.rs
new file mode 100644
index 0000000..d6be40e
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/thread/clock.rs
@@ -0,0 +1,117 @@
+use crate::{backend, io};
+use core::fmt;
+
+pub use crate::timespec::{Nsecs, Secs, Timespec};
+
+#[cfg(not(any(
+ apple,
+ target_os = "dragonfly",
+ target_os = "espidf",
+ target_os = "freebsd", // FreeBSD 12 has clock_nanosleep, but libc targets FreeBSD 11.
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+pub use crate::clockid::ClockId;
+
+/// `clock_nanosleep(id, 0, request, remain)`—Sleeps for a duration on a
+/// given clock.
+///
+/// This is `clock_nanosleep` specialized for the case of a relative sleep
+/// interval. See [`clock_nanosleep_absolute`] for absolute intervals.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/clock_nanosleep.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/clock_nanosleep.2.html
+#[cfg(not(any(
+ apple,
+ target_os = "dragonfly",
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "freebsd", // FreeBSD 12 has clock_nanosleep, but libc targets FreeBSD 11.
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+#[inline]
+pub fn clock_nanosleep_relative(id: ClockId, request: &Timespec) -> NanosleepRelativeResult {
+ backend::thread::syscalls::clock_nanosleep_relative(id, request)
+}
+
+/// `clock_nanosleep(id, TIMER_ABSTIME, request, NULL)`—Sleeps until an
+/// absolute time on a given clock.
+///
+/// This is `clock_nanosleep` specialized for the case of an absolute sleep
+/// interval. See [`clock_nanosleep_relative`] for relative intervals.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/clock_nanosleep.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/clock_nanosleep.2.html
+#[cfg(not(any(
+ apple,
+ target_os = "dragonfly",
+ target_os = "emscripten",
+ target_os = "espidf",
+ target_os = "freebsd", // FreeBSD 12 has clock_nanosleep, but libc targets FreeBSD 11.
+ target_os = "haiku",
+ target_os = "horizon",
+ target_os = "openbsd",
+ target_os = "redox",
+ target_os = "vita",
+ target_os = "wasi",
+)))]
+#[inline]
+pub fn clock_nanosleep_absolute(id: ClockId, request: &Timespec) -> io::Result<()> {
+ backend::thread::syscalls::clock_nanosleep_absolute(id, request)
+}
+
+/// `nanosleep(request, remain)`—Sleeps for a duration.
+///
+/// This effectively uses the system monotonic clock.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/nanosleep.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/nanosleep.2.html
+#[inline]
+pub fn nanosleep(request: &Timespec) -> NanosleepRelativeResult {
+ backend::thread::syscalls::nanosleep(request)
+}
+
+/// A return type for `nanosleep` and `clock_nanosleep_relative`.
+#[derive(Clone)]
+#[must_use]
+pub enum NanosleepRelativeResult {
+ /// The sleep completed normally.
+ Ok,
+ /// The sleep was interrupted, the remaining time is returned.
+ Interrupted(Timespec),
+ /// An invalid time value was provided.
+ Err(io::Errno),
+}
+
+impl fmt::Debug for NanosleepRelativeResult {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ match self {
+ Self::Ok => f.write_str("Ok"),
+ Self::Interrupted(remaining) => write!(
+ f,
+ "Interrupted(Timespec {{ tv_sec: {:?}, tv_nsec: {:?} }})",
+ remaining.tv_sec, remaining.tv_nsec
+ ),
+ Self::Err(err) => write!(f, "Err({:?})", err),
+ }
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/thread/futex.rs b/vendor/rustix-1.0.8/src/thread/futex.rs
new file mode 100644
index 0000000..9862997
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/thread/futex.rs
@@ -0,0 +1,600 @@
+//! Linux `futex`.
+//!
+//! Futex is a very low-level mechanism for implementing concurrency primitives
+//! such as mutexes, rwlocks, and condvars. For a higher-level API that
+//! provides those abstractions, see [rustix-futex-sync].
+//!
+//! # Examples
+//!
+//! ```
+//! use rustix::thread::futex;
+//! use std::sync::atomic::AtomicU32;
+//!
+//! # fn test(futex: &AtomicU32) -> rustix::io::Result<()> {
+//! // Wake up one waiter.
+//! futex::wake(futex, futex::Flags::PRIVATE, 1)?;
+//! # Ok(())
+//! # }
+//! ```
+//!
+//! # References
+//! - [Linux `futex` system call]
+//! - [Linux `futex` feature]
+//!
+//! [Linux `futex` system call]: https://man7.org/linux/man-pages/man2/futex.2.html
+//! [Linux `futex` feature]: https://man7.org/linux/man-pages/man7/futex.7.html
+//! [rustix-futex-sync]: https://crates.io/crates/rustix-futex-sync
+#![allow(unsafe_code)]
+
+use core::ffi::c_void;
+use core::num::NonZeroU32;
+use core::ptr;
+use core::sync::atomic::AtomicU32;
+
+use crate::backend::thread::futex::Operation;
+use crate::backend::thread::syscalls::{futex_timeout, futex_val2};
+use crate::fd::{FromRawFd as _, OwnedFd, RawFd};
+use crate::{backend, io};
+
+pub use crate::clockid::ClockId;
+pub use crate::timespec::{Nsecs, Secs, Timespec};
+
+pub use backend::thread::futex::{Flags, WaitFlags, OWNER_DIED, WAITERS};
+
+/// `syscall(SYS_futex, uaddr, FUTEX_WAIT, val, timeout, NULL, 0)`
+///
+/// This is a very low-level feature for implementing synchronization
+/// primitives. See the references links.
+///
+/// # References
+/// - [Linux `futex` system call]
+/// - [Linux `futex` feature]
+///
+/// [Linux `futex` system call]: https://man7.org/linux/man-pages/man2/futex.2.html
+/// [Linux `futex` feature]: https://man7.org/linux/man-pages/man7/futex.7.html
+#[inline]
+pub fn wait(
+ uaddr: &AtomicU32,
+ flags: Flags,
+ val: u32,
+ timeout: Option<&Timespec>,
+) -> io::Result<()> {
+ // SAFETY: The raw pointers come from references or null.
+ unsafe {
+ futex_timeout(uaddr, Operation::Wait, flags, val, timeout, ptr::null(), 0).map(|val| {
+ debug_assert_eq!(
+ val, 0,
+ "The return value should always equal zero, if the call is successful"
+ );
+ })
+ }
+}
+
+/// `syscall(SYS_futex, uaddr, FUTEX_WAKE, val, NULL, NULL, 0)`
+///
+/// This is a very low-level feature for implementing synchronization
+/// primitives. See the references links.
+///
+/// # References
+/// - [Linux `futex` system call]
+/// - [Linux `futex` feature]
+///
+/// [Linux `futex` system call]: https://man7.org/linux/man-pages/man2/futex.2.html
+/// [Linux `futex` feature]: https://man7.org/linux/man-pages/man7/futex.7.html
+#[inline]
+pub fn wake(uaddr: &AtomicU32, flags: Flags, val: u32) -> io::Result<usize> {
+ // SAFETY: The raw pointers come from references or null.
+ unsafe { futex_val2(uaddr, Operation::Wake, flags, val, 0, ptr::null(), 0) }
+}
+
+/// `syscall(SYS_futex, uaddr, FUTEX_FD, val, NULL, NULL, 0)`
+///
+/// This is a very low-level feature for implementing synchronization
+/// primitives. See the references links.
+///
+/// # References
+/// - [Linux `futex` system call]
+/// - [Linux `futex` feature]
+///
+/// [Linux `futex` system call]: https://man7.org/linux/man-pages/man2/futex.2.html
+/// [Linux `futex` feature]: https://man7.org/linux/man-pages/man7/futex.7.html
+#[inline]
+pub fn fd(uaddr: &AtomicU32, flags: Flags, val: u32) -> io::Result<OwnedFd> {
+ // SAFETY: The raw pointers come from references or null.
+ unsafe {
+ futex_val2(uaddr, Operation::Fd, flags, val, 0, ptr::null(), 0).map(|val| {
+ let fd = val as RawFd;
+ debug_assert_eq!(fd as usize, val, "return value should be a valid fd");
+ OwnedFd::from_raw_fd(fd)
+ })
+ }
+}
+
+/// `syscall(SYS_futex, uaddr, FUTEX_REQUEUE, val, val2, uaddr2, 0)`
+///
+/// This is a very low-level feature for implementing synchronization
+/// primitives. See the references links.
+///
+/// # References
+/// - [Linux `futex` system call]
+/// - [Linux `futex` feature]
+///
+/// [Linux `futex` system call]: https://man7.org/linux/man-pages/man2/futex.2.html
+/// [Linux `futex` feature]: https://man7.org/linux/man-pages/man7/futex.7.html
+#[inline]
+pub fn requeue(
+ uaddr: &AtomicU32,
+ flags: Flags,
+ val: u32,
+ val2: u32,
+ uaddr2: &AtomicU32,
+) -> io::Result<usize> {
+ // SAFETY: The raw pointers come from references or null.
+ unsafe { futex_val2(uaddr, Operation::Requeue, flags, val, val2, uaddr2, 0) }
+}
+
+/// `syscall(SYS_futex, uaddr, FUTEX_CMP_REQUEUE, val, val2, uaddr2, val3)`
+///
+/// This is a very low-level feature for implementing synchronization
+/// primitives. See the references links.
+///
+/// # References
+/// - [Linux `futex` system call]
+/// - [Linux `futex` feature]
+///
+/// [Linux `futex` system call]: https://man7.org/linux/man-pages/man2/futex.2.html
+/// [Linux `futex` feature]: https://man7.org/linux/man-pages/man7/futex.7.html
+#[inline]
+pub fn cmp_requeue(
+ uaddr: &AtomicU32,
+ flags: Flags,
+ val: u32,
+ val2: u32,
+ uaddr2: &AtomicU32,
+ val3: u32,
+) -> io::Result<usize> {
+ // SAFETY: The raw pointers come from references or null.
+ unsafe { futex_val2(uaddr, Operation::CmpRequeue, flags, val, val2, uaddr2, val3) }
+}
+
+/// `FUTEX_OP_*` operations for use with [`wake_op`].
+#[derive(Debug, Copy, Clone, Eq, PartialEq)]
+#[repr(u32)]
+#[allow(clippy::identity_op)]
+pub enum WakeOp {
+ /// `FUTEX_OP_SET`: `uaddr2 = oparg;`
+ Set = 0,
+ /// `FUTEX_OP_ADD`: `uaddr2 += oparg;`
+ Add = 1,
+ /// `FUTEX_OP_OR`: `uaddr2 |= oparg;`
+ Or = 2,
+ /// `FUTEX_OP_ANDN`: `uaddr2 &= ~oparg;`
+ AndN = 3,
+ /// `FUTEX_OP_XOR`: `uaddr2 ^= oparg;`
+ XOr = 4,
+ /// `FUTEX_OP_SET | FUTEX_OP_ARG_SHIFT`: `uaddr2 = (oparg << 1);`
+ SetShift = 0 | 8,
+ /// `FUTEX_OP_ADD | FUTEX_OP_ARG_SHIFT`: `uaddr2 += (oparg << 1);`
+ AddShift = 1 | 8,
+ /// `FUTEX_OP_OR | FUTEX_OP_ARG_SHIFT`: `uaddr2 |= (oparg << 1);`
+ OrShift = 2 | 8,
+ /// `FUTEX_OP_ANDN | FUTEX_OP_ARG_SHIFT`: `uaddr2 &= !(oparg << 1);`
+ AndNShift = 3 | 8,
+ /// `FUTEX_OP_XOR | FUTEX_OP_ARG_SHIFT`: `uaddr2 ^= (oparg << 1);`
+ XOrShift = 4 | 8,
+}
+
+/// `FUTEX_OP_CMP_*` operations for use with [`wake_op`].
+#[derive(Debug, Copy, Clone, Eq, PartialEq)]
+#[repr(u32)]
+pub enum WakeOpCmp {
+ /// `FUTEX_OP_CMP_EQ`: `if oldval == cmparg { wake(); }`
+ Eq = 0,
+ /// `FUTEX_OP_CMP_EQ`: `if oldval != cmparg { wake(); }`
+ Ne = 1,
+ /// `FUTEX_OP_CMP_EQ`: `if oldval < cmparg { wake(); }`
+ Lt = 2,
+ /// `FUTEX_OP_CMP_EQ`: `if oldval <= cmparg { wake(); }`
+ Le = 3,
+ /// `FUTEX_OP_CMP_EQ`: `if oldval > cmparg { wake(); }`
+ Gt = 4,
+ /// `FUTEX_OP_CMP_EQ`: `if oldval >= cmparg { wake(); }`
+ Ge = 5,
+}
+
+/// `syscall(SYS_futex, uaddr, FUTEX_WAKE_OP, val, val2, uaddr2, val3)`
+///
+/// This is a very low-level feature for implementing synchronization
+/// primitives. See the references links.
+///
+/// # References
+/// - [Linux `futex` system call]
+/// - [Linux `futex` feature]
+///
+/// [Linux `futex` system call]: https://man7.org/linux/man-pages/man2/futex.2.html
+/// [Linux `futex` feature]: https://man7.org/linux/man-pages/man7/futex.7.html
+#[inline]
+#[allow(clippy::too_many_arguments)]
+pub fn wake_op(
+ uaddr: &AtomicU32,
+ flags: Flags,
+ val: u32,
+ val2: u32,
+ uaddr2: &AtomicU32,
+ op: WakeOp,
+ cmp: WakeOpCmp,
+ oparg: u16,
+ cmparg: u16,
+) -> io::Result<usize> {
+ if oparg >= 1 << 12 || cmparg >= 1 << 12 {
+ return Err(io::Errno::INVAL);
+ }
+
+ let val3 =
+ ((op as u32) << 28) | ((cmp as u32) << 24) | ((oparg as u32) << 12) | (cmparg as u32);
+
+ // SAFETY: The raw pointers come from references or null.
+ unsafe { futex_val2(uaddr, Operation::WakeOp, flags, val, val2, uaddr2, val3) }
+}
+
+/// `syscall(SYS_futex, uaddr, FUTEX_LOCK_PI, 0, timeout, NULL, 0)`
+///
+/// This is a very low-level feature for implementing synchronization
+/// primitives. See the references links.
+///
+/// # References
+/// - [Linux `futex` system call]
+/// - [Linux `futex` feature]
+///
+/// [Linux `futex` system call]: https://man7.org/linux/man-pages/man2/futex.2.html
+/// [Linux `futex` feature]: https://man7.org/linux/man-pages/man7/futex.7.html
+#[inline]
+pub fn lock_pi(uaddr: &AtomicU32, flags: Flags, timeout: Option<&Timespec>) -> io::Result<()> {
+ // SAFETY: The raw pointers come from references or null.
+ unsafe {
+ futex_timeout(uaddr, Operation::LockPi, flags, 0, timeout, ptr::null(), 0).map(|val| {
+ debug_assert_eq!(
+ val, 0,
+ "The return value should always equal zero, if the call is successful"
+ );
+ })
+ }
+}
+
+/// `syscall(SYS_futex, uaddr, FUTEX_UNLOCK_PI, 0, NULL, NULL, 0)`
+///
+/// This is a very low-level feature for implementing synchronization
+/// primitives. See the references links.
+///
+/// # References
+/// - [Linux `futex` system call]
+/// - [Linux `futex` feature]
+///
+/// [Linux `futex` system call]: https://man7.org/linux/man-pages/man2/futex.2.html
+/// [Linux `futex` feature]: https://man7.org/linux/man-pages/man7/futex.7.html
+#[inline]
+pub fn unlock_pi(uaddr: &AtomicU32, flags: Flags) -> io::Result<()> {
+ // SAFETY: The raw pointers come from references or null.
+ unsafe {
+ futex_val2(uaddr, Operation::UnlockPi, flags, 0, 0, ptr::null(), 0).map(|val| {
+ debug_assert_eq!(
+ val, 0,
+ "The return value should always equal zero, if the call is successful"
+ );
+ })
+ }
+}
+
+/// `syscall(SYS_futex, uaddr, FUTEX_TRYLOCK_PI, 0, NULL, NULL, 0)`
+///
+/// This is a very low-level feature for implementing synchronization
+/// primitives. See the references links.
+///
+/// # References
+/// - [Linux `futex` system call]
+/// - [Linux `futex` feature]
+///
+/// [Linux `futex` system call]: https://man7.org/linux/man-pages/man2/futex.2.html
+/// [Linux `futex` feature]: https://man7.org/linux/man-pages/man7/futex.7.html
+#[inline]
+pub fn trylock_pi(uaddr: &AtomicU32, flags: Flags) -> io::Result<bool> {
+ // SAFETY: The raw pointers come from references or null.
+ unsafe {
+ futex_val2(uaddr, Operation::TrylockPi, flags, 0, 0, ptr::null(), 0).map(|ret| ret == 0)
+ }
+}
+
+/// `syscall(SYS_futex, uaddr, FUTEX_WAIT_BITSET, val, timeout, NULL, val3)`
+///
+/// This is a very low-level feature for implementing synchronization
+/// primitives. See the references links.
+///
+/// # References
+/// - [Linux `futex` system call]
+/// - [Linux `futex` feature]
+///
+/// [Linux `futex` system call]: https://man7.org/linux/man-pages/man2/futex.2.html
+/// [Linux `futex` feature]: https://man7.org/linux/man-pages/man7/futex.7.html
+#[inline]
+pub fn wait_bitset(
+ uaddr: &AtomicU32,
+ flags: Flags,
+ val: u32,
+ timeout: Option<&Timespec>,
+ val3: NonZeroU32,
+) -> io::Result<()> {
+ // SAFETY: The raw pointers come from references or null.
+ unsafe {
+ futex_timeout(
+ uaddr,
+ Operation::WaitBitset,
+ flags,
+ val,
+ timeout,
+ ptr::null(),
+ val3.get(),
+ )
+ .map(|val| {
+ debug_assert_eq!(
+ val, 0,
+ "The return value should always equal zero, if the call is successful"
+ );
+ })
+ }
+}
+
+/// `syscall(SYS_futex, uaddr, FUTEX_WAKE_BITSET, val, NULL, NULL, val3)`
+///
+/// This is a very low-level feature for implementing synchronization
+/// primitives. See the references links.
+///
+/// # References
+/// - [Linux `futex` system call]
+/// - [Linux `futex` feature]
+///
+/// [Linux `futex` system call]: https://man7.org/linux/man-pages/man2/futex.2.html
+/// [Linux `futex` feature]: https://man7.org/linux/man-pages/man7/futex.7.html
+#[inline]
+pub fn wake_bitset(
+ uaddr: &AtomicU32,
+ flags: Flags,
+ val: u32,
+ val3: NonZeroU32,
+) -> io::Result<usize> {
+ // SAFETY: The raw pointers come from references or null.
+ unsafe {
+ futex_val2(
+ uaddr,
+ Operation::WakeBitset,
+ flags,
+ val,
+ 0,
+ ptr::null(),
+ val3.get(),
+ )
+ }
+}
+
+/// `syscall(SYS_futex, uaddr, FUTEX_WAIT_REQUEUE_PI, val, timeout, uaddr2, 0)`
+///
+/// This is a very low-level feature for implementing synchronization
+/// primitives. See the references links.
+///
+/// # References
+/// - [Linux `futex` system call]
+/// - [Linux `futex` feature]
+///
+/// [Linux `futex` system call]: https://man7.org/linux/man-pages/man2/futex.2.html
+/// [Linux `futex` feature]: https://man7.org/linux/man-pages/man7/futex.7.html
+#[inline]
+pub fn wait_requeue_pi(
+ uaddr: &AtomicU32,
+ flags: Flags,
+ val: u32,
+ timeout: Option<&Timespec>,
+ uaddr2: &AtomicU32,
+) -> io::Result<()> {
+ // SAFETY: The raw pointers come from references or null.
+ unsafe {
+ futex_timeout(
+ uaddr,
+ Operation::WaitRequeuePi,
+ flags,
+ val,
+ timeout,
+ uaddr2,
+ 0,
+ )
+ .map(|val| {
+ debug_assert_eq!(
+ val, 0,
+ "The return value should always equal zero, if the call is successful"
+ );
+ })
+ }
+}
+
+/// `syscall(SYS_futex, uaddr, FUTEX_CMP_REQUEUE_PI, 1, val2, uaddr2, val3)`
+///
+/// This is a very low-level feature for implementing synchronization
+/// primitives. See the references links.
+///
+/// # References
+/// - [Linux `futex` system call]
+/// - [Linux `futex` feature]
+///
+/// [Linux `futex` system call]: https://man7.org/linux/man-pages/man2/futex.2.html
+/// [Linux `futex` feature]: https://man7.org/linux/man-pages/man7/futex.7.html
+#[inline]
+pub fn cmp_requeue_pi(
+ uaddr: &AtomicU32,
+ flags: Flags,
+ val2: u32,
+ uaddr2: &AtomicU32,
+ val3: u32,
+) -> io::Result<usize> {
+ // SAFETY: The raw pointers come from references or null.
+ unsafe { futex_val2(uaddr, Operation::CmpRequeuePi, flags, 1, val2, uaddr2, val3) }
+}
+
+/// `syscall(SYS_futex, uaddr, FUTEX_LOCK_PI2, 0, timeout, NULL, 0)`
+///
+/// This is a very low-level feature for implementing synchronization
+/// primitives. See the references links.
+///
+/// # References
+/// - [Linux `futex` system call]
+/// - [Linux `futex` feature]
+///
+/// [Linux `futex` system call]: https://man7.org/linux/man-pages/man2/futex.2.html
+/// [Linux `futex` feature]: https://man7.org/linux/man-pages/man7/futex.7.html
+#[inline]
+pub fn lock_pi2(uaddr: &AtomicU32, flags: Flags, timeout: Option<&Timespec>) -> io::Result<()> {
+ // SAFETY: The raw pointers come from references or null.
+ unsafe {
+ futex_timeout(uaddr, Operation::LockPi2, flags, 0, timeout, ptr::null(), 0).map(|val| {
+ debug_assert_eq!(
+ val, 0,
+ "The return value should always equal zero, if the call is successful"
+ );
+ })
+ }
+}
+
+/// A pointer in the [`Wait`] struct.
+#[repr(C)]
+#[derive(Copy, Clone)]
+#[non_exhaustive]
+pub struct WaitPtr {
+ #[cfg(all(target_pointer_width = "32", target_endian = "big"))]
+ #[doc(hidden)]
+ pub __pad32: u32,
+ #[cfg(all(target_pointer_width = "16", target_endian = "big"))]
+ #[doc(hidden)]
+ pub __pad16: u16,
+
+ /// The pointer value.
+ pub ptr: *mut c_void,
+
+ #[cfg(all(target_pointer_width = "16", target_endian = "little"))]
+ #[doc(hidden)]
+ pub __pad16: u16,
+ #[cfg(all(target_pointer_width = "32", target_endian = "little"))]
+ #[doc(hidden)]
+ pub __pad32: u32,
+}
+
+impl WaitPtr {
+ /// Construct a new `WaitPtr` holding the given raw pointer value.
+ #[inline]
+ pub const fn new(ptr: *mut c_void) -> Self {
+ Self {
+ ptr,
+
+ #[cfg(target_pointer_width = "16")]
+ __pad16: 0,
+ #[cfg(any(target_pointer_width = "16", target_pointer_width = "32"))]
+ __pad32: 0,
+ }
+ }
+}
+
+impl Default for WaitPtr {
+ #[inline]
+ fn default() -> Self {
+ Self::new(ptr::null_mut())
+ }
+}
+
+impl From<*mut c_void> for WaitPtr {
+ #[inline]
+ fn from(ptr: *mut c_void) -> Self {
+ Self::new(ptr)
+ }
+}
+
+impl core::fmt::Debug for WaitPtr {
+ fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+ self.ptr.fmt(f)
+ }
+}
+
+/// For use with [`waitv`].
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+#[non_exhaustive]
+pub struct Wait {
+ /// The expected value.
+ pub val: u64,
+ /// The address to wait for.
+ pub uaddr: WaitPtr,
+ /// The type and size of futex to perform.
+ pub flags: WaitFlags,
+
+ /// Reserved for future use.
+ pub(crate) __reserved: u32,
+}
+
+impl Wait {
+ /// Construct a zero-initialized `Wait`.
+ #[inline]
+ pub const fn new() -> Self {
+ Self {
+ val: 0,
+ uaddr: WaitPtr::new(ptr::null_mut()),
+ flags: WaitFlags::empty(),
+ __reserved: 0,
+ }
+ }
+}
+
+impl Default for Wait {
+ #[inline]
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
+/// `futex_waitv(waiters.as_ptr(), waiters.len(), flags, timeout, clockd)`—
+/// Wait on an array of futexes, wake on any.
+///
+/// This requires Linux ≥ 5.16.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://www.kernel.org/doc/html/latest/userspace-api/futex2.html
+#[inline]
+pub fn waitv(
+ waiters: &[Wait],
+ flags: WaitvFlags,
+ timeout: Option<&Timespec>,
+ clockid: ClockId,
+) -> io::Result<usize> {
+ backend::thread::syscalls::futex_waitv(waiters, flags, timeout, clockid)
+}
+
+bitflags::bitflags! {
+ /// Flags for use with the flags argument in [`waitv`].
+ ///
+ /// At this time, no flags are defined.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct WaitvFlags: u32 {
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_raw)]
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_layouts() {
+ use crate::backend::c;
+
+ check_renamed_struct!(Wait, futex_waitv, val, uaddr, flags, __reserved);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/thread/id.rs b/vendor/rustix-1.0.8/src/thread/id.rs
new file mode 100644
index 0000000..aa67c9e
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/thread/id.rs
@@ -0,0 +1,184 @@
+//! CPU and thread identifiers.
+//!
+//! # Safety
+//!
+//! The `Cpuid`, type can be constructed from raw integers, which is marked
+//! unsafe because actual OS's assign special meaning to some integer values.
+
+#![allow(unsafe_code)]
+use crate::{backend, io};
+#[cfg(linux_kernel)]
+use backend::thread::types::RawCpuid;
+
+pub use crate::pid::{Pid, RawPid};
+pub use crate::ugid::{Gid, RawGid, RawUid, Uid};
+
+/// A Linux CPU ID.
+#[cfg(linux_kernel)]
+#[repr(transparent)]
+#[derive(Copy, Clone, Eq, PartialEq, Debug, Hash)]
+pub struct Cpuid(RawCpuid);
+
+#[cfg(linux_kernel)]
+impl Cpuid {
+ /// Converts a `RawCpuid` into a `Cpuid`.
+ ///
+ /// # Safety
+ ///
+ /// `raw` must be the value of a valid Linux CPU ID.
+ #[inline]
+ pub const unsafe fn from_raw(raw: RawCpuid) -> Self {
+ Self(raw)
+ }
+
+ /// Converts a `Cpuid` into a `RawCpuid`.
+ #[inline]
+ pub const fn as_raw(self) -> RawCpuid {
+ self.0
+ }
+}
+
+/// `gettid()`—Returns the thread ID.
+///
+/// This returns the OS thread ID, which is not necessarily the same as the
+/// Rust's `std::thread::Thread::id` or the pthread ID.
+///
+/// This function always does a system call. To avoid this overhead, ask the
+/// thread runtime for the ID instead, for example using [`libc::gettid`] or
+/// [`origin::thread::current_id`].
+///
+/// [`libc::gettid`]: https://docs.rs/libc/*/libc/fn.gettid.html
+/// [`origin::thread::current_id`]: https://docs.rs/origin/*/origin/thread/fn.current_id.html
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/gettid.2.html
+#[inline]
+#[must_use]
+pub fn gettid() -> Pid {
+ backend::thread::syscalls::gettid()
+}
+
+/// `setuid(uid)`—Sets the effective user ID of the calling thread.
+///
+/// # Warning
+///
+/// This is not the `setuid` you are looking for… POSIX requires uids to be
+/// process granular, but on Linux they are per-thread. Thus, this call only
+/// changes the uid for the current *thread*, not the entire process even
+/// though that is in violation of the POSIX standard.
+///
+/// For details on this distinction, see the C library vs. kernel differences
+/// in the [manual page][linux_notes]. This call implements the kernel
+/// behavior.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/setuid.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/setuid.2.html
+/// [linux_notes]: https://man7.org/linux/man-pages/man2/setuid.2.html#NOTES
+#[inline]
+pub fn set_thread_uid(uid: Uid) -> io::Result<()> {
+ backend::thread::syscalls::setuid_thread(uid)
+}
+
+/// `setresuid(ruid, euid, suid)`—Sets the real, effective, and saved user ID
+/// of the calling thread.
+///
+/// # Warning
+///
+/// This is not the `setresuid` you are looking for… POSIX requires uids to be
+/// process granular, but on Linux they are per-thread. Thus, this call only
+/// changes the uid for the current *thread*, not the entire process even
+/// though that is in violation of the POSIX standard.
+///
+/// For details on this distinction, see the C library vs. kernel differences
+/// in the [manual page][linux_notes] and the notes in [`set_thread_uid`]. This
+/// call implements the kernel behavior.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/setresuid.2.html
+/// [linux_notes]: https://man7.org/linux/man-pages/man2/setresuid.2.html#NOTES
+#[inline]
+pub fn set_thread_res_uid(ruid: Uid, euid: Uid, suid: Uid) -> io::Result<()> {
+ backend::thread::syscalls::setresuid_thread(ruid, euid, suid)
+}
+
+/// `setgid(gid)`—Sets the effective group ID of the current thread.
+///
+/// # Warning
+///
+/// This is not the `setgid` you are looking for… POSIX requires gids to be
+/// process granular, but on Linux they are per-thread. Thus, this call only
+/// changes the gid for the current *thread*, not the entire process even
+/// though that is in violation of the POSIX standard.
+///
+/// For details on this distinction, see the C library vs. kernel differences
+/// in the [manual page][linux_notes]. This call implements the kernel
+/// behavior.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/setgid.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/setgid.2.html
+/// [linux_notes]: https://man7.org/linux/man-pages/man2/setgid.2.html#NOTES
+#[inline]
+pub fn set_thread_gid(gid: Gid) -> io::Result<()> {
+ backend::thread::syscalls::setgid_thread(gid)
+}
+
+/// `setresgid(rgid, egid, sgid)`—Sets the real, effective, and saved group
+/// ID of the current thread.
+///
+/// # Warning
+///
+/// This is not the `setresgid` you are looking for… POSIX requires gids to be
+/// process granular, but on Linux they are per-thread. Thus, this call only
+/// changes the gid for the current *thread*, not the entire process even
+/// though that is in violation of the POSIX standard.
+///
+/// For details on this distinction, see the C library vs. kernel differences
+/// in the [manual page][linux_notes] and the notes in [`set_thread_gid`]. This
+/// call implements the kernel behavior.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/setresgid.2.html
+/// [linux_notes]: https://man7.org/linux/man-pages/man2/setresgid.2.html#NOTES
+#[inline]
+pub fn set_thread_res_gid(rgid: Gid, egid: Gid, sgid: Gid) -> io::Result<()> {
+ backend::thread::syscalls::setresgid_thread(rgid, egid, sgid)
+}
+
+/// `setgroups(groups)`—Sets the supplementary group IDs for the calling
+/// thread.
+///
+/// # Warning
+///
+/// This is not the `setgroups` you are looking for… POSIX requires gids to be
+/// process granular, but on Linux they are per-thread. Thus, this call only
+/// changes the gids for the current *thread*, not the entire process even
+/// though that is in violation of the POSIX standard.
+///
+/// For details on this distinction, see the C library vs. kernel differences
+/// in the [manual page][linux_notes]. This call implements the kernel
+/// behavior.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/setgroups.2.html
+/// [linux_notes]: https://man7.org/linux/man-pages/man2/setgroups.2.html#NOTES
+#[cfg(linux_kernel)]
+#[inline]
+pub fn set_thread_groups(groups: &[Gid]) -> io::Result<()> {
+ backend::thread::syscalls::setgroups_thread(groups)
+}
diff --git a/vendor/rustix-1.0.8/src/thread/libcap.rs b/vendor/rustix-1.0.8/src/thread/libcap.rs
new file mode 100644
index 0000000..0a0fbb4
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/thread/libcap.rs
@@ -0,0 +1,185 @@
+use bitflags::bitflags;
+use core::mem::MaybeUninit;
+
+use crate::pid::Pid;
+use crate::{backend, io};
+
+/// `__user_cap_data_struct`
+#[derive(Clone, Copy, Debug, PartialEq, Eq)]
+pub struct CapabilitySets {
+ /// `__user_cap_data_struct.effective`
+ pub effective: CapabilityFlags,
+ /// `__user_cap_data_struct.permitted`
+ pub permitted: CapabilityFlags,
+ /// `__user_cap_data_struct.inheritable`
+ pub inheritable: CapabilityFlags,
+}
+
+bitflags! {
+ /// `CAP_*` constants.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct CapabilityFlags: u64 {
+ /// `CAP_CHOWN`
+ const CHOWN = 1 << linux_raw_sys::general::CAP_CHOWN;
+ /// `CAP_DAC_OVERRIDE`
+ const DAC_OVERRIDE = 1 << linux_raw_sys::general::CAP_DAC_OVERRIDE;
+ /// `CAP_DAC_READ_SEARCH`
+ const DAC_READ_SEARCH = 1 << linux_raw_sys::general::CAP_DAC_READ_SEARCH;
+ /// `CAP_FOWNER`
+ const FOWNER = 1 << linux_raw_sys::general::CAP_FOWNER;
+ /// `CAP_FSETID`
+ const FSETID = 1 << linux_raw_sys::general::CAP_FSETID;
+ /// `CAP_KILL`
+ const KILL = 1 << linux_raw_sys::general::CAP_KILL;
+ /// `CAP_SETGID`
+ const SETGID = 1 << linux_raw_sys::general::CAP_SETGID;
+ /// `CAP_SETUID`
+ const SETUID = 1 << linux_raw_sys::general::CAP_SETUID;
+ /// `CAP_SETPCAP`
+ const SETPCAP = 1 << linux_raw_sys::general::CAP_SETPCAP;
+ /// `CAP_LINUX_IMMUTABLE`
+ const LINUX_IMMUTABLE = 1 << linux_raw_sys::general::CAP_LINUX_IMMUTABLE;
+ /// `CAP_NET_BIND_SERVICE`
+ const NET_BIND_SERVICE = 1 << linux_raw_sys::general::CAP_NET_BIND_SERVICE;
+ /// `CAP_NET_BROADCAST`
+ const NET_BROADCAST = 1 << linux_raw_sys::general::CAP_NET_BROADCAST;
+ /// `CAP_NET_ADMIN`
+ const NET_ADMIN = 1 << linux_raw_sys::general::CAP_NET_ADMIN;
+ /// `CAP_NET_RAW`
+ const NET_RAW = 1 << linux_raw_sys::general::CAP_NET_RAW;
+ /// `CAP_IPC_LOCK`
+ const IPC_LOCK = 1 << linux_raw_sys::general::CAP_IPC_LOCK;
+ /// `CAP_IPC_OWNER`
+ const IPC_OWNER = 1 << linux_raw_sys::general::CAP_IPC_OWNER;
+ /// `CAP_SYS_MODULE`
+ const SYS_MODULE = 1 << linux_raw_sys::general::CAP_SYS_MODULE;
+ /// `CAP_SYS_RAWIO`
+ const SYS_RAWIO = 1 << linux_raw_sys::general::CAP_SYS_RAWIO;
+ /// `CAP_SYS_CHROOT`
+ const SYS_CHROOT = 1 << linux_raw_sys::general::CAP_SYS_CHROOT;
+ /// `CAP_SYS_PTRACE`
+ const SYS_PTRACE = 1 << linux_raw_sys::general::CAP_SYS_PTRACE;
+ /// `CAP_SYS_PACCT`
+ const SYS_PACCT = 1 << linux_raw_sys::general::CAP_SYS_PACCT;
+ /// `CAP_SYS_ADMIN`
+ const SYS_ADMIN = 1 << linux_raw_sys::general::CAP_SYS_ADMIN;
+ /// `CAP_SYS_BOOT`
+ const SYS_BOOT = 1 << linux_raw_sys::general::CAP_SYS_BOOT;
+ /// `CAP_SYS_NICE`
+ const SYS_NICE = 1 << linux_raw_sys::general::CAP_SYS_NICE;
+ /// `CAP_SYS_RESOURCE`
+ const SYS_RESOURCE = 1 << linux_raw_sys::general::CAP_SYS_RESOURCE;
+ /// `CAP_SYS_TIME`
+ const SYS_TIME = 1 << linux_raw_sys::general::CAP_SYS_TIME;
+ /// `CAP_SYS_TTY_CONFIG`
+ const SYS_TTY_CONFIG = 1 << linux_raw_sys::general::CAP_SYS_TTY_CONFIG;
+ /// `CAP_MKNOD`
+ const MKNOD = 1 << linux_raw_sys::general::CAP_MKNOD;
+ /// `CAP_LEASE`
+ const LEASE = 1 << linux_raw_sys::general::CAP_LEASE;
+ /// `CAP_AUDIT_WRITE`
+ const AUDIT_WRITE = 1 << linux_raw_sys::general::CAP_AUDIT_WRITE;
+ /// `CAP_AUDIT_CONTROL`
+ const AUDIT_CONTROL = 1 << linux_raw_sys::general::CAP_AUDIT_CONTROL;
+ /// `CAP_SETFCAP`
+ const SETFCAP = 1 << linux_raw_sys::general::CAP_SETFCAP;
+ /// `CAP_MAC_OVERRIDE`
+ const MAC_OVERRIDE = 1 << linux_raw_sys::general::CAP_MAC_OVERRIDE;
+ /// `CAP_MAC_ADMIN`
+ const MAC_ADMIN = 1 << linux_raw_sys::general::CAP_MAC_ADMIN;
+ /// `CAP_SYSLOG`
+ const SYSLOG = 1 << linux_raw_sys::general::CAP_SYSLOG;
+ /// `CAP_WAKE_ALARM`
+ const WAKE_ALARM = 1 << linux_raw_sys::general::CAP_WAKE_ALARM;
+ /// `CAP_BLOCK_SUSPEND`
+ const BLOCK_SUSPEND = 1 << linux_raw_sys::general::CAP_BLOCK_SUSPEND;
+ /// `CAP_AUDIT_READ`
+ const AUDIT_READ = 1 << linux_raw_sys::general::CAP_AUDIT_READ;
+ /// `CAP_PERFMON`
+ const PERFMON = 1 << linux_raw_sys::general::CAP_PERFMON;
+ /// `CAP_BPF`
+ const BPF = 1 << linux_raw_sys::general::CAP_BPF;
+ /// `CAP_CHECKPOINT_RESTORE`
+ const CHECKPOINT_RESTORE = 1 << linux_raw_sys::general::CAP_CHECKPOINT_RESTORE;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// `capget(_LINUX_CAPABILITY_VERSION_3, pid)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/capget.2.html
+#[inline]
+#[doc(alias = "capget")]
+pub fn capabilities(pid: Option<Pid>) -> io::Result<CapabilitySets> {
+ capget(pid)
+}
+
+/// `capset(_LINUX_CAPABILITY_VERSION_3, pid, effective, permitted,
+/// inheritable)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/capget.2.html
+#[inline]
+#[doc(alias = "capset")]
+pub fn set_capabilities(pid: Option<Pid>, sets: CapabilitySets) -> io::Result<()> {
+ capset(pid, sets)
+}
+
+#[inline]
+#[allow(unsafe_code)]
+fn capget(pid: Option<Pid>) -> io::Result<CapabilitySets> {
+ let mut data = [MaybeUninit::<linux_raw_sys::general::__user_cap_data_struct>::uninit(); 2];
+
+ let data = {
+ let mut header = linux_raw_sys::general::__user_cap_header_struct {
+ version: linux_raw_sys::general::_LINUX_CAPABILITY_VERSION_3,
+ pid: Pid::as_raw(pid) as backend::c::c_int,
+ };
+
+ backend::thread::syscalls::capget(&mut header, &mut data)?;
+ // SAFETY: v3 is a 64-bit implementation, so the kernel filled in both
+ // data structs.
+ unsafe { (data[0].assume_init(), data[1].assume_init()) }
+ };
+
+ let effective = u64::from(data.0.effective) | (u64::from(data.1.effective) << u32::BITS);
+ let permitted = u64::from(data.0.permitted) | (u64::from(data.1.permitted) << u32::BITS);
+ let inheritable = u64::from(data.0.inheritable) | (u64::from(data.1.inheritable) << u32::BITS);
+
+ // The kernel returns a partitioned bitset that we just combined above.
+ Ok(CapabilitySets {
+ effective: CapabilityFlags::from_bits_retain(effective),
+ permitted: CapabilityFlags::from_bits_retain(permitted),
+ inheritable: CapabilityFlags::from_bits_retain(inheritable),
+ })
+}
+
+#[inline]
+fn capset(pid: Option<Pid>, sets: CapabilitySets) -> io::Result<()> {
+ let mut header = linux_raw_sys::general::__user_cap_header_struct {
+ version: linux_raw_sys::general::_LINUX_CAPABILITY_VERSION_3,
+ pid: Pid::as_raw(pid) as backend::c::c_int,
+ };
+ let data = [
+ linux_raw_sys::general::__user_cap_data_struct {
+ effective: sets.effective.bits() as u32,
+ permitted: sets.permitted.bits() as u32,
+ inheritable: sets.inheritable.bits() as u32,
+ },
+ linux_raw_sys::general::__user_cap_data_struct {
+ effective: (sets.effective.bits() >> u32::BITS) as u32,
+ permitted: (sets.permitted.bits() >> u32::BITS) as u32,
+ inheritable: (sets.inheritable.bits() >> u32::BITS) as u32,
+ },
+ ];
+
+ backend::thread::syscalls::capset(&mut header, &data)
+}
diff --git a/vendor/rustix-1.0.8/src/thread/membarrier.rs b/vendor/rustix-1.0.8/src/thread/membarrier.rs
new file mode 100644
index 0000000..b3e6508
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/thread/membarrier.rs
@@ -0,0 +1,92 @@
+//! The Linux `membarrier` syscall.
+
+use crate::thread::Cpuid;
+use crate::{backend, io};
+
+pub use backend::thread::types::MembarrierCommand;
+
+#[cfg(linux_kernel)]
+bitflags::bitflags! {
+ /// A result from [`membarrier_query`].
+ ///
+ /// These flags correspond to values of [`MembarrierCommand`] which are
+ /// supported in the OS.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct MembarrierQuery: u32 {
+ /// `MEMBARRIER_CMD_GLOBAL` (also known as `MEMBARRIER_CMD_SHARED`)
+ #[doc(alias = "SHARED")]
+ #[doc(alias = "MEMBARRIER_CMD_SHARED")]
+ const GLOBAL = MembarrierCommand::Global as _;
+ /// `MEMBARRIER_CMD_GLOBAL_EXPEDITED`
+ const GLOBAL_EXPEDITED = MembarrierCommand::GlobalExpedited as _;
+ /// `MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED`
+ const REGISTER_GLOBAL_EXPEDITED = MembarrierCommand::RegisterGlobalExpedited as _;
+ /// `MEMBARRIER_CMD_PRIVATE_EXPEDITED`
+ const PRIVATE_EXPEDITED = MembarrierCommand::PrivateExpedited as _;
+ /// `MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED`
+ const REGISTER_PRIVATE_EXPEDITED = MembarrierCommand::RegisterPrivateExpedited as _;
+ /// `MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE`
+ const PRIVATE_EXPEDITED_SYNC_CORE = MembarrierCommand::PrivateExpeditedSyncCore as _;
+ /// `MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE`
+ const REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = MembarrierCommand::RegisterPrivateExpeditedSyncCore as _;
+ /// `MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ` (since Linux 5.10)
+ const PRIVATE_EXPEDITED_RSEQ = MembarrierCommand::PrivateExpeditedRseq as _;
+ /// `MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ` (since Linux 5.10)
+ const REGISTER_PRIVATE_EXPEDITED_RSEQ = MembarrierCommand::RegisterPrivateExpeditedRseq as _;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+#[cfg(linux_kernel)]
+impl MembarrierQuery {
+ /// Test whether this query result contains the given command.
+ #[inline]
+ pub fn contains_command(self, cmd: MembarrierCommand) -> bool {
+ // `MembarrierCommand` is an enum that only contains values also valid
+ // in `MembarrierQuery`.
+ self.contains(Self::from_bits_retain(cmd as _))
+ }
+}
+
+/// `membarrier(MEMBARRIER_CMD_QUERY, 0, 0)`—Query the supported `membarrier`
+/// commands.
+///
+/// This function doesn't return a `Result` because it always succeeds; if the
+/// underlying OS doesn't support the `membarrier` syscall, it returns an empty
+/// `MembarrierQuery` value.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/membarrier.2.html
+#[inline]
+#[doc(alias = "MEMBARRIER_CMD_QUERY")]
+pub fn membarrier_query() -> MembarrierQuery {
+ backend::thread::syscalls::membarrier_query()
+}
+
+/// `membarrier(cmd, 0, 0)`—Perform a memory barrier.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/membarrier.2.html
+#[inline]
+pub fn membarrier(cmd: MembarrierCommand) -> io::Result<()> {
+ backend::thread::syscalls::membarrier(cmd)
+}
+
+/// `membarrier(cmd, MEMBARRIER_CMD_FLAG_CPU, cpu)`—Perform a memory barrier
+/// with a specific CPU.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/membarrier.2.html
+#[inline]
+pub fn membarrier_cpu(cmd: MembarrierCommand, cpu: Cpuid) -> io::Result<()> {
+ backend::thread::syscalls::membarrier_cpu(cmd, cpu)
+}
diff --git a/vendor/rustix-1.0.8/src/thread/mod.rs b/vendor/rustix-1.0.8/src/thread/mod.rs
new file mode 100644
index 0000000..e32b594
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/thread/mod.rs
@@ -0,0 +1,35 @@
+//! Thread-associated operations.
+
+#[cfg(not(target_os = "redox"))]
+mod clock;
+#[cfg(linux_kernel)]
+pub mod futex;
+#[cfg(linux_kernel)]
+mod id;
+#[cfg(linux_kernel)]
+mod libcap;
+#[cfg(linux_kernel)]
+mod membarrier;
+#[cfg(linux_kernel)]
+mod prctl;
+#[cfg(any(freebsdlike, linux_kernel, target_os = "fuchsia"))]
+mod sched;
+mod sched_yield;
+#[cfg(linux_kernel)]
+mod setns;
+
+#[cfg(not(target_os = "redox"))]
+pub use clock::*;
+#[cfg(linux_kernel)]
+pub use id::*;
+#[cfg(linux_kernel)]
+pub use libcap::{capabilities, set_capabilities, CapabilityFlags, CapabilitySets};
+#[cfg(linux_kernel)]
+pub use membarrier::*;
+#[cfg(linux_kernel)]
+pub use prctl::*;
+#[cfg(any(freebsdlike, linux_kernel, target_os = "fuchsia"))]
+pub use sched::*;
+pub use sched_yield::sched_yield;
+#[cfg(linux_kernel)]
+pub use setns::*;
diff --git a/vendor/rustix-1.0.8/src/thread/prctl.rs b/vendor/rustix-1.0.8/src/thread/prctl.rs
new file mode 100644
index 0000000..4719b1e
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/thread/prctl.rs
@@ -0,0 +1,1014 @@
+//! Linux `prctl` wrappers.
+//!
+//! Rustix wraps variadic/dynamic-dispatch functions like `prctl` in type-safe
+//! wrappers.
+//!
+//! # Safety
+//!
+//! The inner `prctl` calls are dynamically typed and must be called correctly.
+#![allow(unsafe_code)]
+
+use core::mem::MaybeUninit;
+use core::num::NonZeroU64;
+use core::ptr;
+use core::ptr::NonNull;
+use core::sync::atomic::AtomicU8;
+
+use bitflags::bitflags;
+
+use crate::backend::prctl::syscalls;
+#[cfg(feature = "alloc")]
+use crate::ffi::CString;
+use crate::ffi::{c_int, c_uint, c_void, CStr};
+use crate::io;
+use crate::pid::Pid;
+use crate::prctl::{
+ prctl_1arg, prctl_2args, prctl_3args, prctl_get_at_arg2_optional, PointerAuthenticationKeys,
+};
+use crate::utils::as_ptr;
+
+//
+// PR_GET_KEEPCAPS/PR_SET_KEEPCAPS
+//
+
+const PR_GET_KEEPCAPS: c_int = 7;
+
+/// Get the current state of the calling thread's `keep capabilities` flag.
+///
+/// # References
+/// - [`prctl(PR_GET_KEEPCAPS,…)`]
+///
+/// [`prctl(PR_GET_KEEPCAPS,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn get_keep_capabilities() -> io::Result<bool> {
+ unsafe { prctl_1arg(PR_GET_KEEPCAPS) }.map(|r| r != 0)
+}
+
+const PR_SET_KEEPCAPS: c_int = 8;
+
+/// Set the state of the calling thread's `keep capabilities` flag.
+///
+/// # References
+/// - [`prctl(PR_SET_KEEPCAPS,…)`]
+///
+/// [`prctl(PR_SET_KEEPCAPS,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn set_keep_capabilities(enable: bool) -> io::Result<()> {
+ unsafe { prctl_2args(PR_SET_KEEPCAPS, usize::from(enable) as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_GET_NAME/PR_SET_NAME
+//
+
+#[cfg(feature = "alloc")]
+const PR_GET_NAME: c_int = 16;
+
+/// Get the name of the calling thread.
+///
+/// # References
+/// - [`prctl(PR_GET_NAME,…)`]
+///
+/// [`prctl(PR_GET_NAME,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+#[cfg(feature = "alloc")]
+#[cfg_attr(docsrs, doc(cfg(feature = "alloc")))]
+pub fn name() -> io::Result<CString> {
+ let mut buffer = [0_u8; 16];
+ unsafe { prctl_2args(PR_GET_NAME, buffer.as_mut_ptr().cast())? };
+
+ let len = buffer.iter().position(|&x| x == 0_u8).unwrap_or(0);
+ CString::new(&buffer[..len]).map_err(|_r| io::Errno::ILSEQ)
+}
+
+const PR_SET_NAME: c_int = 15;
+
+/// Set the name of the calling thread.
+///
+/// Unlike `pthread_setname_np`, this function silently truncates the name to
+/// 16 bytes, as the Linux syscall does.
+///
+/// # References
+/// - [`prctl(PR_SET_NAME,…)`]
+///
+/// [`prctl(PR_SET_NAME,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn set_name(name: &CStr) -> io::Result<()> {
+ unsafe { prctl_2args(PR_SET_NAME, name.as_ptr() as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_GET_SECCOMP/PR_SET_SECCOMP
+//
+
+const PR_GET_SECCOMP: c_int = 21;
+
+const SECCOMP_MODE_DISABLED: i32 = 0;
+const SECCOMP_MODE_STRICT: i32 = 1;
+const SECCOMP_MODE_FILTER: i32 = 2;
+
+/// `SECCOMP_MODE_*`
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(i32)]
+pub enum SecureComputingMode {
+ /// Secure computing is not in use.
+ Disabled = SECCOMP_MODE_DISABLED,
+ /// Use hard-coded filter.
+ Strict = SECCOMP_MODE_STRICT,
+ /// Use user-supplied filter.
+ Filter = SECCOMP_MODE_FILTER,
+}
+
+impl TryFrom<i32> for SecureComputingMode {
+ type Error = io::Errno;
+
+ fn try_from(value: i32) -> Result<Self, Self::Error> {
+ match value {
+ SECCOMP_MODE_DISABLED => Ok(Self::Disabled),
+ SECCOMP_MODE_STRICT => Ok(Self::Strict),
+ SECCOMP_MODE_FILTER => Ok(Self::Filter),
+ _ => Err(io::Errno::RANGE),
+ }
+ }
+}
+
+/// Get the secure computing mode of the calling thread.
+///
+/// If the caller is not in secure computing mode, this returns
+/// [`SecureComputingMode::Disabled`]. If the caller is in strict secure
+/// computing mode, then this call will cause a [`Signal::KILL`] signal to be
+/// sent to the process. If the caller is in filter mode, and this system call
+/// is allowed by the seccomp filters, it returns
+/// [`SecureComputingMode::Filter`]; otherwise, the process is killed with a
+/// [`Signal::KILL`] signal.
+///
+/// Since Linux 3.8, the Seccomp field of the `/proc/[pid]/status` file
+/// provides a method of obtaining the same information, without the risk that
+/// the process is killed; see [the `proc` manual page].
+///
+/// # References
+/// - [`prctl(PR_GET_SECCOMP,…)`]
+///
+/// [`Signal::KILL`]: crate::signal::Signal::KILL
+/// [`prctl(PR_GET_SECCOMP,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+/// [the `proc` manual page]: https://man7.org/linux/man-pages/man5/proc.5.html
+#[inline]
+pub fn secure_computing_mode() -> io::Result<SecureComputingMode> {
+ unsafe { prctl_1arg(PR_GET_SECCOMP) }.and_then(TryInto::try_into)
+}
+
+const PR_SET_SECCOMP: c_int = 22;
+
+/// Set the secure computing mode for the calling thread, to limit the
+/// available system calls.
+///
+/// # References
+/// - [`prctl(PR_SET_SECCOMP,…)`]
+///
+/// [`prctl(PR_SET_SECCOMP,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn set_secure_computing_mode(mode: SecureComputingMode) -> io::Result<()> {
+ unsafe { prctl_2args(PR_SET_SECCOMP, mode as usize as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_CAPBSET_READ/PR_CAPBSET_DROP
+//
+
+const PR_CAPBSET_READ: c_int = 23;
+
+/// Linux per-thread capability.
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(u32)]
+#[non_exhaustive]
+pub enum Capability {
+ /// In a system with the `_POSIX_CHOWN_RESTRICTED` option defined, this
+ /// overrides the restriction of changing file ownership and group
+ /// ownership.
+ ChangeOwnership = linux_raw_sys::general::CAP_CHOWN,
+ /// Override all DAC access, including ACL execute access if `_POSIX_ACL`
+ /// is defined. Excluding DAC access covered by
+ /// [`Capability::LinuxImmutable`].
+ DACOverride = linux_raw_sys::general::CAP_DAC_OVERRIDE,
+ /// Overrides all DAC restrictions regarding read and search on files and
+ /// directories, including ACL restrictions if `_POSIX_ACL` is defined.
+ /// Excluding DAC access covered by [`Capability::LinuxImmutable`].
+ DACReadSearch = linux_raw_sys::general::CAP_DAC_READ_SEARCH,
+ /// Overrides all restrictions about allowed operations on files, where
+ /// file owner ID must be equal to the user ID, except where
+ /// [`Capability::FileSetID`] is applicable. It doesn't override MAC and
+ /// DAC restrictions.
+ FileOwner = linux_raw_sys::general::CAP_FOWNER,
+ /// Overrides the following restrictions that the effective user ID shall
+ /// match the file owner ID when setting the `S_ISUID` and `S_ISGID` bits
+ /// on that file; that the effective group ID (or one of the supplementary
+ /// group IDs) shall match the file owner ID when setting the `S_ISGID` bit
+ /// on that file; that the `S_ISUID` and `S_ISGID` bits are cleared on
+ /// successful return from `chown` (not implemented).
+ FileSetID = linux_raw_sys::general::CAP_FSETID,
+ /// Overrides the restriction that the real or effective user ID of a
+ /// process sending a signal must match the real or effective user ID of
+ /// the process receiving the signal.
+ Kill = linux_raw_sys::general::CAP_KILL,
+ /// Allows `setgid` manipulation. Allows `setgroups`. Allows forged gids on
+ /// socket credentials passing.
+ SetGroupID = linux_raw_sys::general::CAP_SETGID,
+ /// Allows `set*uid` manipulation (including fsuid). Allows forged pids on
+ /// socket credentials passing.
+ SetUserID = linux_raw_sys::general::CAP_SETUID,
+ /// Without VFS support for capabilities:
+ /// - Transfer any capability in your permitted set to any pid.
+ /// - remove any capability in your permitted set from any pid. With VFS
+ /// support for capabilities (neither of above, but)
+ /// - Add any capability from current's capability bounding set to the
+ /// current process' inheritable set.
+ /// - Allow taking bits out of capability bounding set.
+ /// - Allow modification of the securebits for a process.
+ SetPermittedCapabilities = linux_raw_sys::general::CAP_SETPCAP,
+ /// Allow modification of `S_IMMUTABLE` and `S_APPEND` file attributes.
+ LinuxImmutable = linux_raw_sys::general::CAP_LINUX_IMMUTABLE,
+ /// Allows binding to TCP/UDP sockets below 1024. Allows binding to ATM
+ /// VCIs below 32.
+ NetBindService = linux_raw_sys::general::CAP_NET_BIND_SERVICE,
+ /// Allow broadcasting, listen to multicast.
+ NetBroadcast = linux_raw_sys::general::CAP_NET_BROADCAST,
+ /// Allow interface configuration. Allow administration of IP firewall,
+ /// masquerading and accounting. Allow setting debug option on sockets.
+ /// Allow modification of routing tables. Allow setting arbitrary
+ /// process / process group ownership on sockets. Allow binding to any
+ /// address for transparent proxying (also via [`Capability::NetRaw`]).
+ /// Allow setting TOS (type of service). Allow setting promiscuous
+ /// mode. Allow clearing driver statistics. Allow multicasting. Allow
+ /// read/write of device-specific registers. Allow activation of ATM
+ /// control sockets.
+ NetAdmin = linux_raw_sys::general::CAP_NET_ADMIN,
+ /// Allow use of `RAW` sockets. Allow use of `PACKET` sockets. Allow
+ /// binding to any address for transparent proxying (also via
+ /// [`Capability::NetAdmin`]).
+ NetRaw = linux_raw_sys::general::CAP_NET_RAW,
+ /// Allow locking of shared memory segments. Allow mlock and mlockall
+ /// (which doesn't really have anything to do with IPC).
+ IPCLock = linux_raw_sys::general::CAP_IPC_LOCK,
+ /// Override IPC ownership checks.
+ IPCOwner = linux_raw_sys::general::CAP_IPC_OWNER,
+ /// Insert and remove kernel modules - modify kernel without limit.
+ SystemModule = linux_raw_sys::general::CAP_SYS_MODULE,
+ /// Allow ioperm/iopl access. Allow sending USB messages to any device via
+ /// `/dev/bus/usb`.
+ SystemRawIO = linux_raw_sys::general::CAP_SYS_RAWIO,
+ /// Allow use of `chroot`.
+ SystemChangeRoot = linux_raw_sys::general::CAP_SYS_CHROOT,
+ /// Allow `ptrace` of any process.
+ SystemProcessTrace = linux_raw_sys::general::CAP_SYS_PTRACE,
+ /// Allow configuration of process accounting.
+ SystemProcessAccounting = linux_raw_sys::general::CAP_SYS_PACCT,
+ /// Allow configuration of the secure attention key. Allow administration
+ /// of the random device. Allow examination and configuration of disk
+ /// quotas. Allow setting the domainname. Allow setting the hostname.
+ /// Allow `mount` and `umount`, setting up new smb connection.
+ /// Allow some autofs root ioctls. Allow nfsservctl. Allow
+ /// `VM86_REQUEST_IRQ`. Allow to read/write pci config on alpha. Allow
+ /// `irix_prctl` on mips (setstacksize). Allow flushing all cache on
+ /// m68k (`sys_cacheflush`). Allow removing semaphores. Used instead of
+ /// [`Capability::ChangeOwnership`] to "chown" IPC message queues,
+ /// semaphores and shared memory. Allow locking/unlocking of shared
+ /// memory segment. Allow turning swap on/off. Allow forged pids on
+ /// socket credentials passing. Allow setting readahead and
+ /// flushing buffers on block devices. Allow setting geometry in floppy
+ /// driver. Allow turning DMA on/off in `xd` driver. Allow
+ /// administration of md devices (mostly the above, but some
+ /// extra ioctls). Allow tuning the ide driver. Allow access to the nvram
+ /// device. Allow administration of `apm_bios`, serial and bttv (TV)
+ /// device. Allow manufacturer commands in isdn CAPI support driver.
+ /// Allow reading non-standardized portions of pci configuration space.
+ /// Allow DDI debug ioctl on sbpcd driver. Allow setting up serial ports.
+ /// Allow sending raw qic-117 commands. Allow enabling/disabling tagged
+ /// queuing on SCSI controllers and sending arbitrary SCSI commands.
+ /// Allow setting encryption key on loopback filesystem. Allow setting
+ /// zone reclaim policy. Allow everything under
+ /// [`Capability::BerkeleyPacketFilters`] and
+ /// [`Capability::PerformanceMonitoring`] for backward compatibility.
+ SystemAdmin = linux_raw_sys::general::CAP_SYS_ADMIN,
+ /// Allow use of `reboot`.
+ SystemBoot = linux_raw_sys::general::CAP_SYS_BOOT,
+ /// Allow raising priority and setting priority on other (different UID)
+ /// processes. Allow use of FIFO and round-robin (realtime) scheduling
+ /// on own processes and setting the scheduling algorithm used by
+ /// another process. Allow setting cpu affinity on other processes.
+ /// Allow setting realtime ioprio class. Allow setting ioprio class on
+ /// other processes.
+ SystemNice = linux_raw_sys::general::CAP_SYS_NICE,
+ /// Override resource limits. Set resource limits. Override quota limits.
+ /// Override reserved space on ext2 filesystem. Modify data journaling
+ /// mode on ext3 filesystem (uses journaling resources). NOTE: ext2
+ /// honors fsuid when checking for resource overrides, so you can
+ /// override using fsuid too. Override size restrictions on IPC message
+ /// queues. Allow more than 64hz interrupts from the real-time clock.
+ /// Override max number of consoles on console allocation. Override max
+ /// number of keymaps. Control memory reclaim behavior.
+ SystemResource = linux_raw_sys::general::CAP_SYS_RESOURCE,
+ /// Allow manipulation of system clock. Allow `irix_stime` on mips. Allow
+ /// setting the real-time clock.
+ SystemTime = linux_raw_sys::general::CAP_SYS_TIME,
+ /// Allow configuration of tty devices. Allow `vhangup` of tty.
+ SystemTTYConfig = linux_raw_sys::general::CAP_SYS_TTY_CONFIG,
+ /// Allow the privileged aspects of `mknod`.
+ MakeNode = linux_raw_sys::general::CAP_MKNOD,
+ /// Allow taking of leases on files.
+ Lease = linux_raw_sys::general::CAP_LEASE,
+ /// Allow writing the audit log via unicast netlink socket.
+ AuditWrite = linux_raw_sys::general::CAP_AUDIT_WRITE,
+ /// Allow configuration of audit via unicast netlink socket.
+ AuditControl = linux_raw_sys::general::CAP_AUDIT_CONTROL,
+ /// Set or remove capabilities on files. Map `uid=0` into a child user
+ /// namespace.
+ SetFileCapabilities = linux_raw_sys::general::CAP_SETFCAP,
+ /// Override MAC access. The base kernel enforces no MAC policy. An LSM may
+ /// enforce a MAC policy, and if it does and it chooses to implement
+ /// capability based overrides of that policy, this is the capability it
+ /// should use to do so.
+ MACOverride = linux_raw_sys::general::CAP_MAC_OVERRIDE,
+ /// Allow MAC configuration or state changes. The base kernel requires no
+ /// MAC configuration. An LSM may enforce a MAC policy, and if it does and
+ /// it chooses to implement capability based checks on modifications to
+ /// that policy or the data required to maintain it, this is the capability
+ /// it should use to do so.
+ MACAdmin = linux_raw_sys::general::CAP_MAC_ADMIN,
+ /// Allow configuring the kernel's `syslog` (`printk` behaviour).
+ SystemLog = linux_raw_sys::general::CAP_SYSLOG,
+ /// Allow triggering something that will wake the system.
+ WakeAlarm = linux_raw_sys::general::CAP_WAKE_ALARM,
+ /// Allow preventing system suspends.
+ BlockSuspend = linux_raw_sys::general::CAP_BLOCK_SUSPEND,
+ /// Allow reading the audit log via multicast netlink socket.
+ AuditRead = linux_raw_sys::general::CAP_AUDIT_READ,
+ /// Allow system performance and observability privileged operations using
+ /// `perf_events`, `i915_perf` and other kernel subsystems.
+ PerformanceMonitoring = linux_raw_sys::general::CAP_PERFMON,
+ /// This capability allows the following BPF operations:
+ /// - Creating all types of BPF maps
+ /// - Advanced verifier features
+ /// - Indirect variable access
+ /// - Bounded loops
+ /// - BPF to BPF function calls
+ /// - Scalar precision tracking
+ /// - Larger complexity limits
+ /// - Dead code elimination
+ /// - And potentially other features
+ /// - Loading BPF Type Format (BTF) data
+ /// - Retrieve `xlated` and JITed code of BPF programs
+ /// - Use `bpf_spin_lock` helper
+ ///
+ /// [`Capability::PerformanceMonitoring`] relaxes the verifier checks
+ /// further:
+ /// - BPF progs can use of pointer-to-integer conversions
+ /// - speculation attack hardening measures are bypassed
+ /// - `bpf_probe_read` to read arbitrary kernel memory is allowed
+ /// - `bpf_trace_printk` to print kernel memory is allowed
+ ///
+ /// [`Capability::SystemAdmin`] is required to use `bpf_probe_write_user`.
+ ///
+ /// [`Capability::SystemAdmin`] is required to iterate system-wide loaded
+ /// programs, maps, links, and BTFs, and convert their IDs to file
+ /// descriptors.
+ ///
+ /// [`Capability::PerformanceMonitoring`] and
+ /// [`Capability::BerkeleyPacketFilters`] are required to load tracing
+ /// programs. [`Capability::NetAdmin`] and
+ /// [`Capability::BerkeleyPacketFilters`] are required to load
+ /// networking programs.
+ BerkeleyPacketFilters = linux_raw_sys::general::CAP_BPF,
+ /// Allow checkpoint/restore related operations. Allow PID selection during
+ /// `clone3`. Allow writing to `ns_last_pid`.
+ CheckpointRestore = linux_raw_sys::general::CAP_CHECKPOINT_RESTORE,
+}
+
+/// Check if the specified capability is in the calling thread's capability
+/// bounding set.
+///
+/// # References
+/// - [`prctl(PR_CAPBSET_READ,…)`]
+///
+/// [`prctl(PR_CAPBSET_READ,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn capability_is_in_bounding_set(capability: Capability) -> io::Result<bool> {
+ unsafe { prctl_2args(PR_CAPBSET_READ, capability as usize as *mut _) }.map(|r| r != 0)
+}
+
+const PR_CAPBSET_DROP: c_int = 24;
+
+/// If the calling thread has the [`Capability::SetPermittedCapabilities`]
+/// capability within its user namespace, then drop the specified capability
+/// from the thread's capability bounding set.
+///
+/// # References
+/// - [`prctl(PR_CAPBSET_DROP,…)`]
+///
+/// [`prctl(PR_CAPBSET_DROP,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn remove_capability_from_bounding_set(capability: Capability) -> io::Result<()> {
+ unsafe { prctl_2args(PR_CAPBSET_DROP, capability as usize as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_GET_SECUREBITS/PR_SET_SECUREBITS
+//
+
+const PR_GET_SECUREBITS: c_int = 27;
+
+bitflags! {
+ /// `SECBIT_*`
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct CapabilitiesSecureBits: u32 {
+ /// If this bit is set, then the kernel does not grant capabilities
+ /// when a `set-user-ID-root` program is executed, or when a process
+ /// with an effective or real UID of [`Uid::ROOT`] calls `execve`.
+ const NO_ROOT = 1_u32 << 0;
+ /// Set [`NO_ROOT`] irreversibly.
+ ///
+ /// [`NO_ROOT`]: Self::NO_ROOT
+ const NO_ROOT_LOCKED = 1_u32 << 1;
+ /// Setting this flag stops the kernel from adjusting the process'
+ /// permitted, effective, and ambient capability sets when the thread's
+ /// effective and filesystem UIDs are switched between zero and nonzero
+ /// values.
+ const NO_SETUID_FIXUP = 1_u32 << 2;
+ /// Set [`NO_SETUID_FIXUP`] irreversibly.
+ ///
+ /// [`NO_SETUID_FIXUP`]: Self::NO_SETUID_FIXUP
+ const NO_SETUID_FIXUP_LOCKED = 1_u32 << 3;
+ /// Setting this flag allows a thread that has one or more 0 UIDs to
+ /// retain capabilities in its permitted set when it switches all of
+ /// its UIDs to nonzero values.
+ const KEEP_CAPS = 1_u32 << 4;
+ /// Set [`KEEP_CAPS`] irreversibly.
+ ///
+ /// [`KEEP_CAPS`]: Self::KEEP_CAPS
+ const KEEP_CAPS_LOCKED = 1_u32 << 5;
+ /// Setting this flag disallows raising ambient capabilities via the
+ /// `prctl`'s `PR_CAP_AMBIENT_RAISE` operation.
+ const NO_CAP_AMBIENT_RAISE = 1_u32 << 6;
+ /// Set [`NO_CAP_AMBIENT_RAISE`] irreversibly.
+ ///
+ /// [`NO_CAP_AMBIENT_RAISE`]: Self::NO_CAP_AMBIENT_RAISE
+ const NO_CAP_AMBIENT_RAISE_LOCKED = 1_u32 << 7;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// Get the `securebits` flags of the calling thread.
+///
+/// # References
+/// - [`prctl(PR_GET_SECUREBITS,…)`]
+///
+/// [`prctl(PR_GET_SECUREBITS,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn capabilities_secure_bits() -> io::Result<CapabilitiesSecureBits> {
+ let r = unsafe { prctl_1arg(PR_GET_SECUREBITS)? } as c_uint;
+ CapabilitiesSecureBits::from_bits(r).ok_or(io::Errno::RANGE)
+}
+
+const PR_SET_SECUREBITS: c_int = 28;
+
+/// Set the `securebits` flags of the calling thread.
+///
+/// # References
+/// - [`prctl(PR_SET_SECUREBITS,…)`]
+///
+/// [`prctl(PR_SET_SECUREBITS,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn set_capabilities_secure_bits(bits: CapabilitiesSecureBits) -> io::Result<()> {
+ unsafe { prctl_2args(PR_SET_SECUREBITS, bits.bits() as usize as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_GET_TIMERSLACK/PR_SET_TIMERSLACK
+//
+
+const PR_GET_TIMERSLACK: c_int = 30;
+
+/// Get the `current` timer slack value of the calling thread.
+///
+/// # References
+/// - [`prctl(PR_GET_TIMERSLACK,…)`]
+///
+/// [`prctl(PR_GET_TIMERSLACK,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn current_timer_slack() -> io::Result<u64> {
+ unsafe { prctl_1arg(PR_GET_TIMERSLACK) }.map(|r| r as u64)
+}
+
+const PR_SET_TIMERSLACK: c_int = 29;
+
+/// Sets the `current` timer slack value for the calling thread.
+///
+/// # References
+/// - [`prctl(PR_SET_TIMERSLACK,…)`]
+///
+/// [`prctl(PR_SET_TIMERSLACK,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn set_current_timer_slack(value: Option<NonZeroU64>) -> io::Result<()> {
+ let value = usize::try_from(value.map_or(0, NonZeroU64::get)).map_err(|_r| io::Errno::RANGE)?;
+ unsafe { prctl_2args(PR_SET_TIMERSLACK, value as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_GET_NO_NEW_PRIVS/PR_SET_NO_NEW_PRIVS
+//
+
+const PR_GET_NO_NEW_PRIVS: c_int = 39;
+
+/// Get the value of the `no_new_privs` attribute for the calling thread.
+///
+/// # References
+/// - [`prctl(PR_GET_NO_NEW_PRIVS,…)`]
+///
+/// [`prctl(PR_GET_NO_NEW_PRIVS,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn no_new_privs() -> io::Result<bool> {
+ unsafe { prctl_1arg(PR_GET_NO_NEW_PRIVS) }.map(|r| r != 0)
+}
+
+const PR_SET_NO_NEW_PRIVS: c_int = 38;
+
+/// Set the calling thread's `no_new_privs` attribute.
+///
+/// # References
+/// - [`prctl(PR_SET_NO_NEW_PRIVS,…)`]
+///
+/// [`prctl(PR_SET_NO_NEW_PRIVS,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn set_no_new_privs(no_new_privs: bool) -> io::Result<()> {
+ unsafe { prctl_2args(PR_SET_NO_NEW_PRIVS, usize::from(no_new_privs) as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_GET_TID_ADDRESS
+//
+
+const PR_GET_TID_ADDRESS: c_int = 40;
+
+/// Get the `clear_child_tid` address set by `set_tid_address`
+/// and `clone`'s `CLONE_CHILD_CLEARTID` flag.
+///
+/// # References
+/// - [`prctl(PR_GET_TID_ADDRESS,…)`]
+///
+/// [`prctl(PR_GET_TID_ADDRESS,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn get_clear_child_tid_address() -> io::Result<Option<NonNull<c_void>>> {
+ unsafe { prctl_get_at_arg2_optional::<*mut c_void>(PR_GET_TID_ADDRESS) }.map(NonNull::new)
+}
+
+//
+// PR_GET_THP_DISABLE/PR_SET_THP_DISABLE
+//
+
+const PR_GET_THP_DISABLE: c_int = 42;
+
+/// Get the current setting of the `THP disable` flag for the calling thread.
+///
+/// # References
+/// - [`prctl(PR_GET_THP_DISABLE,…)`]
+///
+/// [`prctl(PR_GET_THP_DISABLE,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn transparent_huge_pages_are_disabled() -> io::Result<bool> {
+ unsafe { prctl_1arg(PR_GET_THP_DISABLE) }.map(|r| r != 0)
+}
+
+const PR_SET_THP_DISABLE: c_int = 41;
+
+/// Set the state of the `THP disable` flag for the calling thread.
+///
+/// # References
+/// - [`prctl(PR_SET_THP_DISABLE,…)`]
+///
+/// [`prctl(PR_SET_THP_DISABLE,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn disable_transparent_huge_pages(thp_disable: bool) -> io::Result<()> {
+ unsafe { prctl_2args(PR_SET_THP_DISABLE, usize::from(thp_disable) as *mut _) }.map(|_r| ())
+}
+
+//
+// PR_CAP_AMBIENT
+//
+
+const PR_CAP_AMBIENT: c_int = 47;
+
+const PR_CAP_AMBIENT_IS_SET: usize = 1;
+
+/// Check if the specified capability is in the ambient set.
+///
+/// # References
+/// - [`prctl(PR_CAP_AMBIENT,PR_CAP_AMBIENT_IS_SET,…)`]
+///
+/// [`prctl(PR_CAP_AMBIENT,PR_CAP_AMBIENT_IS_SET,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn capability_is_in_ambient_set(capability: Capability) -> io::Result<bool> {
+ let cap = capability as usize as *mut _;
+ unsafe { prctl_3args(PR_CAP_AMBIENT, PR_CAP_AMBIENT_IS_SET as *mut _, cap) }.map(|r| r != 0)
+}
+
+const PR_CAP_AMBIENT_CLEAR_ALL: usize = 4;
+
+/// Remove all capabilities from the ambient set.
+///
+/// # References
+/// - [`prctl(PR_CAP_AMBIENT,PR_CAP_AMBIENT_CLEAR_ALL,…)`]
+///
+/// [`prctl(PR_CAP_AMBIENT,PR_CAP_AMBIENT_CLEAR_ALL,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn clear_ambient_capability_set() -> io::Result<()> {
+ unsafe { prctl_2args(PR_CAP_AMBIENT, PR_CAP_AMBIENT_CLEAR_ALL as *mut _) }.map(|_r| ())
+}
+
+const PR_CAP_AMBIENT_RAISE: usize = 2;
+const PR_CAP_AMBIENT_LOWER: usize = 3;
+
+/// Add or remove the specified capability to the ambient set.
+///
+/// # References
+/// - [`prctl(PR_CAP_AMBIENT,…)`]
+///
+/// [`prctl(PR_CAP_AMBIENT,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn configure_capability_in_ambient_set(capability: Capability, enable: bool) -> io::Result<()> {
+ let sub_operation = if enable {
+ PR_CAP_AMBIENT_RAISE
+ } else {
+ PR_CAP_AMBIENT_LOWER
+ };
+ let cap = capability as usize as *mut _;
+
+ unsafe { prctl_3args(PR_CAP_AMBIENT, sub_operation as *mut _, cap) }.map(|_r| ())
+}
+
+//
+// PR_SVE_GET_VL/PR_SVE_SET_VL
+//
+
+const PR_SVE_GET_VL: c_int = 51;
+
+const PR_SVE_VL_LEN_MASK: u32 = 0xffff;
+const PR_SVE_VL_INHERIT: u32 = 1_u32 << 17;
+
+/// Scalable Vector Extension vector length configuration.
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+pub struct SVEVectorLengthConfig {
+ /// Vector length in bytes.
+ pub vector_length_in_bytes: u32,
+ /// Vector length inherited across `execve`.
+ pub vector_length_inherited_across_execve: bool,
+}
+
+/// Get the thread's current SVE vector length configuration.
+///
+/// # References
+/// - [`prctl(PR_SVE_GET_VL,…)`]
+///
+/// [`prctl(PR_SVE_GET_VL,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn sve_vector_length_configuration() -> io::Result<SVEVectorLengthConfig> {
+ let bits = unsafe { prctl_1arg(PR_SVE_GET_VL)? } as c_uint;
+ Ok(SVEVectorLengthConfig {
+ vector_length_in_bytes: bits & PR_SVE_VL_LEN_MASK,
+ vector_length_inherited_across_execve: (bits & PR_SVE_VL_INHERIT) != 0,
+ })
+}
+
+const PR_SVE_SET_VL: c_int = 50;
+
+const PR_SVE_SET_VL_ONEXEC: u32 = 1_u32 << 18;
+
+/// Configure the thread's vector length of Scalable Vector Extension.
+///
+/// # References
+/// - [`prctl(PR_SVE_SET_VL,…)`]
+///
+/// # Safety
+///
+/// Please ensure the conditions necessary to safely call this function,
+/// as detailed in the references above.
+///
+/// [`prctl(PR_SVE_SET_VL,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub unsafe fn set_sve_vector_length_configuration(
+ vector_length_in_bytes: usize,
+ vector_length_inherited_across_execve: bool,
+ defer_change_to_next_execve: bool,
+) -> io::Result<()> {
+ let vector_length_in_bytes =
+ u32::try_from(vector_length_in_bytes).map_err(|_r| io::Errno::RANGE)?;
+
+ let mut bits = vector_length_in_bytes & PR_SVE_VL_LEN_MASK;
+
+ if vector_length_inherited_across_execve {
+ bits |= PR_SVE_VL_INHERIT;
+ }
+
+ if defer_change_to_next_execve {
+ bits |= PR_SVE_SET_VL_ONEXEC;
+ }
+
+ prctl_2args(PR_SVE_SET_VL, bits as usize as *mut _).map(|_r| ())
+}
+
+//
+// PR_PAC_RESET_KEYS
+//
+
+const PR_PAC_RESET_KEYS: c_int = 54;
+
+/// Securely reset the thread's pointer authentication keys to fresh random
+/// values generated by the kernel.
+///
+/// # References
+/// - [`prctl(PR_PAC_RESET_KEYS,…)`]
+///
+/// # Safety
+///
+/// Please ensure the conditions necessary to safely call this function,
+/// as detailed in the references above.
+///
+/// [`prctl(PR_PAC_RESET_KEYS,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub unsafe fn reset_pointer_authentication_keys(
+ keys: Option<PointerAuthenticationKeys>,
+) -> io::Result<()> {
+ let keys = keys.as_ref().map_or(0_u32, PointerAuthenticationKeys::bits);
+ prctl_2args(PR_PAC_RESET_KEYS, keys as usize as *mut _).map(|_r| ())
+}
+
+//
+// PR_GET_TAGGED_ADDR_CTRL/PR_SET_TAGGED_ADDR_CTRL
+//
+
+const PR_GET_TAGGED_ADDR_CTRL: c_int = 56;
+
+const PR_MTE_TAG_SHIFT: u32 = 3;
+const PR_MTE_TAG_MASK: u32 = 0xffff_u32 << PR_MTE_TAG_SHIFT;
+
+bitflags! {
+ /// Zero means addresses that are passed for the purpose of being
+ /// dereferenced by the kernel must be untagged.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct TaggedAddressMode: u32 {
+ /// Addresses that are passed for the purpose of being dereferenced by
+ /// the kernel may be tagged.
+ const ENABLED = 1_u32 << 0;
+ /// Synchronous tag check fault mode.
+ const TCF_SYNC = 1_u32 << 1;
+ /// Asynchronous tag check fault mode.
+ const TCF_ASYNC = 1_u32 << 2;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// Get the current tagged address mode for the calling thread.
+///
+/// # References
+/// - [`prctl(PR_GET_TAGGED_ADDR_CTRL,…)`]
+///
+/// [`prctl(PR_GET_TAGGED_ADDR_CTRL,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub fn current_tagged_address_mode() -> io::Result<(Option<TaggedAddressMode>, u32)> {
+ let r = unsafe { prctl_1arg(PR_GET_TAGGED_ADDR_CTRL)? } as c_uint;
+ let mode = r & 0b111_u32;
+ let mte_tag = (r & PR_MTE_TAG_MASK) >> PR_MTE_TAG_SHIFT;
+ Ok((TaggedAddressMode::from_bits(mode), mte_tag))
+}
+
+const PR_SET_TAGGED_ADDR_CTRL: c_int = 55;
+
+/// Controls support for passing tagged user-space addresses to the kernel.
+///
+/// # References
+/// - [`prctl(PR_SET_TAGGED_ADDR_CTRL,…)`]
+///
+/// # Safety
+///
+/// Please ensure the conditions necessary to safely call this function, as
+/// detailed in the references above.
+///
+/// [`prctl(PR_SET_TAGGED_ADDR_CTRL,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub unsafe fn set_current_tagged_address_mode(
+ mode: Option<TaggedAddressMode>,
+ mte_tag: u32,
+) -> io::Result<()> {
+ let config = mode.as_ref().map_or(0_u32, TaggedAddressMode::bits)
+ | ((mte_tag << PR_MTE_TAG_SHIFT) & PR_MTE_TAG_MASK);
+ prctl_2args(PR_SET_TAGGED_ADDR_CTRL, config as usize as *mut _).map(|_r| ())
+}
+
+//
+// PR_SET_SYSCALL_USER_DISPATCH
+//
+
+const PR_SET_SYSCALL_USER_DISPATCH: c_int = 59;
+
+const PR_SYS_DISPATCH_OFF: usize = 0;
+
+/// Disable Syscall User Dispatch mechanism.
+///
+/// # References
+/// - [`prctl(PR_SET_SYSCALL_USER_DISPATCH,PR_SYS_DISPATCH_OFF,…)`]
+///
+/// # Safety
+///
+/// Please ensure the conditions necessary to safely call this function, as
+/// detailed in the references above.
+///
+/// [`prctl(PR_SET_SYSCALL_USER_DISPATCH,PR_SYS_DISPATCH_OFF,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub unsafe fn disable_syscall_user_dispatch() -> io::Result<()> {
+ prctl_2args(PR_SET_SYSCALL_USER_DISPATCH, PR_SYS_DISPATCH_OFF as *mut _).map(|_r| ())
+}
+
+const PR_SYS_DISPATCH_ON: usize = 1;
+
+/// Allow system calls to be executed.
+const SYSCALL_DISPATCH_FILTER_ALLOW: u8 = 0;
+/// Block system calls from executing.
+const SYSCALL_DISPATCH_FILTER_BLOCK: u8 = 1;
+
+/// Value of the fast switch flag controlling system calls user dispatch
+/// mechanism without the need to issue a syscall.
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(u8)]
+pub enum SysCallUserDispatchFastSwitch {
+ /// System calls are allowed to execute.
+ Allow = SYSCALL_DISPATCH_FILTER_ALLOW,
+ /// System calls are blocked from executing.
+ Block = SYSCALL_DISPATCH_FILTER_BLOCK,
+}
+
+impl TryFrom<u8> for SysCallUserDispatchFastSwitch {
+ type Error = io::Errno;
+
+ fn try_from(value: u8) -> Result<Self, Self::Error> {
+ match value {
+ SYSCALL_DISPATCH_FILTER_ALLOW => Ok(Self::Allow),
+ SYSCALL_DISPATCH_FILTER_BLOCK => Ok(Self::Block),
+ _ => Err(io::Errno::RANGE),
+ }
+ }
+}
+
+/// Enable Syscall User Dispatch mechanism.
+///
+/// # References
+/// - [`prctl(PR_SET_SYSCALL_USER_DISPATCH,PR_SYS_DISPATCH_ON,…)`]
+///
+/// # Safety
+///
+/// Please ensure the conditions necessary to safely call this function, as
+/// detailed in the references above.
+///
+/// [`prctl(PR_SET_SYSCALL_USER_DISPATCH,PR_SYS_DISPATCH_ON,…)`]: https://man7.org/linux/man-pages/man2/prctl.2.html
+#[inline]
+pub unsafe fn enable_syscall_user_dispatch(
+ always_allowed_region: &[u8],
+ fast_switch_flag: &AtomicU8,
+) -> io::Result<()> {
+ syscalls::prctl(
+ PR_SET_SYSCALL_USER_DISPATCH,
+ PR_SYS_DISPATCH_ON as *mut _,
+ always_allowed_region.as_ptr() as *mut _,
+ always_allowed_region.len() as *mut _,
+ as_ptr(fast_switch_flag) as *mut _,
+ )
+ .map(|_r| ())
+}
+
+//
+// PR_SCHED_CORE
+//
+
+const PR_SCHED_CORE: c_int = 62;
+
+const PR_SCHED_CORE_GET: usize = 0;
+
+const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0;
+const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1;
+const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2;
+
+/// `PR_SCHED_CORE_SCOPE_*`
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(u32)]
+pub enum CoreSchedulingScope {
+ /// Operation will be performed for the thread.
+ Thread = PR_SCHED_CORE_SCOPE_THREAD,
+ /// Operation will be performed for all tasks in the task group of the
+ /// process.
+ ThreadGroup = PR_SCHED_CORE_SCOPE_THREAD_GROUP,
+ /// Operation will be performed for all processes in the process group.
+ ProcessGroup = PR_SCHED_CORE_SCOPE_PROCESS_GROUP,
+}
+
+impl TryFrom<u32> for CoreSchedulingScope {
+ type Error = io::Errno;
+
+ fn try_from(value: u32) -> Result<Self, Self::Error> {
+ match value {
+ PR_SCHED_CORE_SCOPE_THREAD => Ok(Self::Thread),
+ PR_SCHED_CORE_SCOPE_THREAD_GROUP => Ok(Self::ThreadGroup),
+ PR_SCHED_CORE_SCOPE_PROCESS_GROUP => Ok(Self::ProcessGroup),
+ _ => Err(io::Errno::RANGE),
+ }
+ }
+}
+
+/// Get core scheduling cookie of a process.
+///
+/// # References
+/// - [`prctl(PR_SCHED_CORE,PR_SCHED_CORE_GET,…)`]
+///
+/// [`prctl(PR_SCHED_CORE,PR_SCHED_CORE_GET,…)`]: https://www.kernel.org/doc/html/v6.13/admin-guide/hw-vuln/core-scheduling.html
+#[inline]
+pub fn core_scheduling_cookie(pid: Pid, scope: CoreSchedulingScope) -> io::Result<u64> {
+ let mut value: MaybeUninit<u64> = MaybeUninit::uninit();
+ unsafe {
+ syscalls::prctl(
+ PR_SCHED_CORE,
+ PR_SCHED_CORE_GET as *mut _,
+ pid.as_raw_nonzero().get() as usize as *mut _,
+ scope as usize as *mut _,
+ value.as_mut_ptr().cast(),
+ )?;
+ Ok(value.assume_init())
+ }
+}
+
+const PR_SCHED_CORE_CREATE: usize = 1;
+
+/// Create unique core scheduling cookie.
+///
+/// # References
+/// - [`prctl(PR_SCHED_CORE,PR_SCHED_CORE_CREATE,…)`]
+///
+/// [`prctl(PR_SCHED_CORE,PR_SCHED_CORE_CREATE,…)`]: https://www.kernel.org/doc/html/v6.13/admin-guide/hw-vuln/core-scheduling.html
+#[inline]
+pub fn create_core_scheduling_cookie(pid: Pid, scope: CoreSchedulingScope) -> io::Result<()> {
+ unsafe {
+ syscalls::prctl(
+ PR_SCHED_CORE,
+ PR_SCHED_CORE_CREATE as *mut _,
+ pid.as_raw_nonzero().get() as usize as *mut _,
+ scope as usize as *mut _,
+ ptr::null_mut(),
+ )
+ .map(|_r| ())
+ }
+}
+
+const PR_SCHED_CORE_SHARE_TO: usize = 2;
+
+/// Push core scheduling cookie to a process.
+///
+/// # References
+/// - [`prctl(PR_SCHED_CORE,PR_SCHED_CORE_SHARE_TO,…)`]
+///
+/// [`prctl(PR_SCHED_CORE,PR_SCHED_CORE_SHARE_TO,…)`]: https://www.kernel.org/doc/html/v6.13/admin-guide/hw-vuln/core-scheduling.html
+#[inline]
+pub fn push_core_scheduling_cookie(pid: Pid, scope: CoreSchedulingScope) -> io::Result<()> {
+ unsafe {
+ syscalls::prctl(
+ PR_SCHED_CORE,
+ PR_SCHED_CORE_SHARE_TO as *mut _,
+ pid.as_raw_nonzero().get() as usize as *mut _,
+ scope as usize as *mut _,
+ ptr::null_mut(),
+ )
+ .map(|_r| ())
+ }
+}
+
+const PR_SCHED_CORE_SHARE_FROM: usize = 3;
+
+/// Pull core scheduling cookie from a process.
+///
+/// # References
+/// - [`prctl(PR_SCHED_CORE,PR_SCHED_CORE_SHARE_FROM,…)`]
+///
+/// [`prctl(PR_SCHED_CORE,PR_SCHED_CORE_SHARE_FROM,…)`]: https://www.kernel.org/doc/html/v6.13/admin-guide/hw-vuln/core-scheduling.html
+#[inline]
+pub fn pull_core_scheduling_cookie(pid: Pid, scope: CoreSchedulingScope) -> io::Result<()> {
+ unsafe {
+ syscalls::prctl(
+ PR_SCHED_CORE,
+ PR_SCHED_CORE_SHARE_FROM as *mut _,
+ pid.as_raw_nonzero().get() as usize as *mut _,
+ scope as usize as *mut _,
+ ptr::null_mut(),
+ )
+ .map(|_r| ())
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/thread/sched.rs b/vendor/rustix-1.0.8/src/thread/sched.rs
new file mode 100644
index 0000000..034b026
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/thread/sched.rs
@@ -0,0 +1,161 @@
+use crate::pid::Pid;
+use crate::{backend, io};
+use core::{fmt, hash};
+
+/// `CpuSet` represents a bit-mask of CPUs.
+///
+/// `CpuSet`s are used by [`sched_setaffinity`] and [`sched_getaffinity`], for
+/// example.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man3/CPU_SET.3.html
+/// [`sched_setaffinity`]: crate::thread::sched_setaffinity
+/// [`sched_getaffinity`]: crate::thread::sched_getaffinity
+#[repr(transparent)]
+#[derive(Clone, Copy)]
+pub struct CpuSet {
+ cpu_set: backend::thread::types::RawCpuSet,
+}
+
+impl CpuSet {
+ /// The maximum number of CPU in `CpuSet`.
+ pub const MAX_CPU: usize = backend::thread::types::CPU_SETSIZE;
+
+ /// Create a new and empty `CpuSet`.
+ #[inline]
+ pub fn new() -> Self {
+ Self {
+ cpu_set: backend::thread::types::raw_cpu_set_new(),
+ }
+ }
+
+ /// Test to see if a CPU is in the `CpuSet`.
+ ///
+ /// `field` is the CPU id to test.
+ #[inline]
+ pub fn is_set(&self, field: usize) -> bool {
+ backend::thread::cpu_set::CPU_ISSET(field, &self.cpu_set)
+ }
+
+ /// Add a CPU to `CpuSet`.
+ ///
+ /// `field` is the CPU id to add.
+ #[inline]
+ pub fn set(&mut self, field: usize) {
+ backend::thread::cpu_set::CPU_SET(field, &mut self.cpu_set)
+ }
+
+ /// Remove a CPU from `CpuSet`.
+ ///
+ /// `field` is the CPU id to remove.
+ #[inline]
+ pub fn unset(&mut self, field: usize) {
+ backend::thread::cpu_set::CPU_CLR(field, &mut self.cpu_set)
+ }
+
+ /// Count the number of CPUs set in the `CpuSet`.
+ #[cfg(linux_kernel)]
+ #[inline]
+ pub fn count(&self) -> u32 {
+ backend::thread::cpu_set::CPU_COUNT(&self.cpu_set)
+ }
+
+ /// Zeroes the `CpuSet`.
+ #[inline]
+ pub fn clear(&mut self) {
+ backend::thread::cpu_set::CPU_ZERO(&mut self.cpu_set)
+ }
+}
+
+impl Default for CpuSet {
+ #[inline]
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
+impl fmt::Debug for CpuSet {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ write!(f, "CpuSet {{")?;
+ let mut first = true;
+ for i in 0..Self::MAX_CPU {
+ if self.is_set(i) {
+ if first {
+ write!(f, " ")?;
+ first = false;
+ } else {
+ write!(f, ", ")?;
+ }
+ write!(f, "cpu{}", i)?;
+ }
+ }
+ write!(f, " }}")
+ }
+}
+
+impl hash::Hash for CpuSet {
+ fn hash<H: hash::Hasher>(&self, state: &mut H) {
+ for i in 0..Self::MAX_CPU {
+ self.is_set(i).hash(state);
+ }
+ }
+}
+
+impl Eq for CpuSet {}
+
+impl PartialEq for CpuSet {
+ fn eq(&self, other: &Self) -> bool {
+ backend::thread::cpu_set::CPU_EQUAL(&self.cpu_set, &other.cpu_set)
+ }
+}
+
+/// `sched_setaffinity(pid, cpuset)`—Set a thread's CPU affinity mask.
+///
+/// `pid` is the thread ID to update. If pid is `None`, then the current thread
+/// is updated.
+///
+/// The `CpuSet` argument specifies the set of CPUs on which the thread will be
+/// eligible to run.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/sched_setaffinity.2.html
+#[inline]
+pub fn sched_setaffinity(pid: Option<Pid>, cpuset: &CpuSet) -> io::Result<()> {
+ backend::thread::syscalls::sched_setaffinity(pid, &cpuset.cpu_set)
+}
+
+/// `sched_getaffinity(pid)`—Get a thread's CPU affinity mask.
+///
+/// `pid` is the thread ID to check. If pid is `None`, then the current thread
+/// is checked.
+///
+/// Returns the set of CPUs on which the thread is eligible to run.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/sched_getaffinity.2.html
+#[inline]
+pub fn sched_getaffinity(pid: Option<Pid>) -> io::Result<CpuSet> {
+ let mut cpuset = CpuSet::new();
+ backend::thread::syscalls::sched_getaffinity(pid, &mut cpuset.cpu_set).and(Ok(cpuset))
+}
+
+/// `sched_getcpu()`—Get the CPU that the current thread is currently on.
+///
+/// # References
+/// - [Linux]
+/// - [DragonFly BSD]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man3/sched_getcpu.3.html
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=sched_getcpu§ion=2
+// FreeBSD added `sched_getcpu` in 13.0.
+#[cfg(any(linux_kernel, target_os = "dragonfly"))]
+#[inline]
+pub fn sched_getcpu() -> usize {
+ backend::thread::syscalls::sched_getcpu()
+}
diff --git a/vendor/rustix-1.0.8/src/thread/sched_yield.rs b/vendor/rustix-1.0.8/src/thread/sched_yield.rs
new file mode 100644
index 0000000..e630a95
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/thread/sched_yield.rs
@@ -0,0 +1,16 @@
+use crate::backend;
+
+/// `sched_yield()`—Hints to the OS that other processes should run.
+///
+/// This function always succeeds.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/sched_yield.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/sched_yield.2.html
+#[inline]
+pub fn sched_yield() {
+ backend::thread::syscalls::sched_yield()
+}
diff --git a/vendor/rustix-1.0.8/src/thread/setns.rs b/vendor/rustix-1.0.8/src/thread/setns.rs
new file mode 100644
index 0000000..9ec1205
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/thread/setns.rs
@@ -0,0 +1,162 @@
+//! Thread-specific namespace functions.
+//!
+//! # Safety
+//!
+//! The `unshare` function can cause threads to use different file descriptor tables.
+#![allow(unsafe_code)]
+
+use bitflags::bitflags;
+use linux_raw_sys::general::{
+ CLONE_FILES, CLONE_FS, CLONE_NEWCGROUP, CLONE_NEWIPC, CLONE_NEWNET, CLONE_NEWNS, CLONE_NEWPID,
+ CLONE_NEWTIME, CLONE_NEWUSER, CLONE_NEWUTS, CLONE_SYSVSEM,
+};
+
+use crate::backend::c::c_int;
+use crate::backend::thread::syscalls;
+use crate::fd::BorrowedFd;
+use crate::io;
+
+bitflags! {
+ /// Thread name space type.
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct ThreadNameSpaceType: u32 {
+ /// Time name space.
+ const TIME = CLONE_NEWTIME;
+ /// Mount name space.
+ const MOUNT = CLONE_NEWNS;
+ /// Control group (CGroup) name space.
+ const CONTROL_GROUP = CLONE_NEWCGROUP;
+ /// `Host name` and `NIS domain name` (UTS) name space.
+ const HOST_NAME_AND_NIS_DOMAIN_NAME = CLONE_NEWUTS;
+ /// Inter-process communication (IPC) name space.
+ const INTER_PROCESS_COMMUNICATION = CLONE_NEWIPC;
+ /// User name space.
+ const USER = CLONE_NEWUSER;
+ /// Process ID name space.
+ const PROCESS_ID = CLONE_NEWPID;
+ /// Network name space.
+ const NETWORK = CLONE_NEWNET;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// Type of name space referred to by a link.
+#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[repr(u32)]
+pub enum LinkNameSpaceType {
+ /// Time name space.
+ Time = CLONE_NEWTIME,
+ /// Mount name space.
+ Mount = CLONE_NEWNS,
+ /// Control group (CGroup) name space.
+ ControlGroup = CLONE_NEWCGROUP,
+ /// `Host name` and `NIS domain name` (UTS) name space.
+ HostNameAndNISDomainName = CLONE_NEWUTS,
+ /// Inter-process communication (IPC) name space.
+ InterProcessCommunication = CLONE_NEWIPC,
+ /// User name space.
+ User = CLONE_NEWUSER,
+ /// Process ID name space.
+ ProcessID = CLONE_NEWPID,
+ /// Network name space.
+ Network = CLONE_NEWNET,
+}
+
+bitflags! {
+ /// `CLONE_*` for use with [`unshare`].
+ #[repr(transparent)]
+ #[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
+ pub struct UnshareFlags: u32 {
+ /// `CLONE_FILES`
+ const FILES = CLONE_FILES;
+ /// `CLONE_FS`
+ const FS = CLONE_FS;
+ /// `CLONE_NEWCGROUP`
+ const NEWCGROUP = CLONE_NEWCGROUP;
+ /// `CLONE_NEWIPC`
+ const NEWIPC = CLONE_NEWIPC;
+ /// `CLONE_NEWNET`
+ const NEWNET = CLONE_NEWNET;
+ /// `CLONE_NEWNS`
+ const NEWNS = CLONE_NEWNS;
+ /// `CLONE_NEWPID`
+ const NEWPID = CLONE_NEWPID;
+ /// `CLONE_NEWTIME`
+ const NEWTIME = CLONE_NEWTIME;
+ /// `CLONE_NEWUSER`
+ const NEWUSER = CLONE_NEWUSER;
+ /// `CLONE_NEWUTS`
+ const NEWUTS = CLONE_NEWUTS;
+ /// `CLONE_SYSVSEM`
+ const SYSVSEM = CLONE_SYSVSEM;
+
+ /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags>
+ const _ = !0;
+ }
+}
+
+/// Reassociate the calling thread with the namespace associated with link
+/// referred to by `fd`.
+///
+/// `fd` must refer to one of the magic links in a `/proc/[pid]/ns/` directory,
+/// or a bind mount to such a link.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/setns.2.html
+#[doc(alias = "setns")]
+pub fn move_into_link_name_space(
+ fd: BorrowedFd<'_>,
+ allowed_type: Option<LinkNameSpaceType>,
+) -> io::Result<()> {
+ let allowed_type = allowed_type.map_or(0, |t| t as c_int);
+ syscalls::setns(fd, allowed_type).map(|_r| ())
+}
+
+/// Atomically move the calling thread into one or more of the same namespaces
+/// as the thread referred to by `fd`.
+///
+/// `fd` must refer to a thread ID. See: `pidfd_open` and `clone`.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/setns.2.html
+#[doc(alias = "setns")]
+pub fn move_into_thread_name_spaces(
+ fd: BorrowedFd<'_>,
+ allowed_types: ThreadNameSpaceType,
+) -> io::Result<()> {
+ syscalls::setns(fd, allowed_types.bits() as c_int).map(|_r| ())
+}
+
+/// `unshare(flags)`—Deprecated in favor of [`unshare_unsafe`].
+///
+/// This function should be unsafe; see the safety comment on `unshare_unsafe`.
+#[deprecated(since = "1.1.0", note = "Use `unshare_unsafe`")]
+pub fn unshare(flags: UnshareFlags) -> io::Result<()> {
+ // SAFETY: This is not actually safe. This function is deprecated and users
+ // should use `unshare_unsafe` instead.
+ unsafe { syscalls::unshare(flags) }
+}
+
+/// `unshare(flags)`—Disassociate parts of the current thread's execution
+/// context with other threads.
+///
+/// # Safety
+///
+/// When using `UnshareFlags::FILES`, this function can cause one thread to be
+/// unable to use file descriptors created on a different thread. Callers must
+/// ensure that threads never observe file descriptors from unshared tables.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/unshare.2.html
+pub unsafe fn unshare_unsafe(flags: UnshareFlags) -> io::Result<()> {
+ syscalls::unshare(flags)
+}
diff --git a/vendor/rustix-1.0.8/src/time/clock.rs b/vendor/rustix-1.0.8/src/time/clock.rs
new file mode 100644
index 0000000..bdc2b11
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/time/clock.rs
@@ -0,0 +1,108 @@
+use crate::{backend, io};
+
+pub use crate::timespec::{Nsecs, Secs, Timespec};
+
+/// `clockid_t`
+#[cfg(not(target_os = "wasi"))]
+pub use crate::clockid::{ClockId, DynamicClockId};
+
+/// `clock_getres(id)`—Returns the resolution of a clock.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/clock_getres.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/clock_getres.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=clock_getres&sektion=2
+/// [NetBSD]: https://man.netbsd.org/clock_getres.2
+/// [OpenBSD]: https://man.openbsd.org/clock_getres.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=clock_getres§ion=2
+/// [illumos]: https://illumos.org/man/3C/clock_getres
+#[cfg(not(any(target_os = "redox", target_os = "wasi")))]
+#[inline]
+#[must_use]
+pub fn clock_getres(id: ClockId) -> Timespec {
+ backend::time::syscalls::clock_getres(id)
+}
+
+/// `clock_gettime(id)`—Returns the current value of a clock.
+///
+/// This function uses `ClockId` which only contains clocks which are known to
+/// always be supported at runtime, allowing this function to be infallible.
+/// For a greater set of clocks and dynamic clock support, see
+/// [`clock_gettime_dynamic`].
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/clock_gettime.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/clock_gettime.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=clock_getres&sektion=2
+/// [NetBSD]: https://man.netbsd.org/clock_getres.2
+/// [OpenBSD]: https://man.openbsd.org/clock_getres.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=clock_getres§ion=2
+/// [illumos]: https://illumos.org/man/3C/clock_gettime
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+#[must_use]
+pub fn clock_gettime(id: ClockId) -> Timespec {
+ backend::time::syscalls::clock_gettime(id)
+}
+
+/// Like [`clock_gettime`] but with support for dynamic clocks.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/clock_gettime.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/clock_gettime.2.html
+#[cfg(not(target_os = "wasi"))]
+#[inline]
+pub fn clock_gettime_dynamic(id: DynamicClockId<'_>) -> io::Result<Timespec> {
+ backend::time::syscalls::clock_gettime_dynamic(id)
+}
+
+/// `clock_settime(id, timespec)`—Sets the current value of a settable clock.
+///
+/// This fails with [`io::Errno::INVAL`] if the clock is not settable, and
+/// [`io::Errno::ACCESS`] if the current process does not have permission to
+/// set it.
+///
+/// # References
+/// - [POSIX]
+/// - [Linux]
+/// - [FreeBSD]
+/// - [NetBSD]
+/// - [OpenBSD]
+/// - [DragonFly BSD]
+/// - [illumos]
+///
+/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/clock_settime.html
+/// [Linux]: https://man7.org/linux/man-pages/man2/clock_settime.2.html
+/// [FreeBSD]: https://man.freebsd.org/cgi/man.cgi?query=clock_settime&sektion=2
+/// [NetBSD]: https://man.netbsd.org/clock_settime.2
+/// [OpenBSD]: https://man.openbsd.org/clock_settime.2
+/// [DragonFly BSD]: https://man.dragonflybsd.org/?command=clock_settime§ion=2
+/// [illumos]: https://illumos.org/man/3C/clock_settime
+#[cfg(not(any(
+ target_os = "redox",
+ target_os = "wasi",
+ all(apple, not(target_os = "macos"))
+)))]
+#[inline]
+pub fn clock_settime(id: ClockId, timespec: Timespec) -> io::Result<()> {
+ backend::time::syscalls::clock_settime(id, timespec)
+}
diff --git a/vendor/rustix-1.0.8/src/time/mod.rs b/vendor/rustix-1.0.8/src/time/mod.rs
new file mode 100644
index 0000000..c633e76
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/time/mod.rs
@@ -0,0 +1,11 @@
+//! Time-related operations.
+
+mod clock;
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+mod timerfd;
+
+// TODO: Convert WASI'S clock APIs to use handles rather than ambient clock
+// identifiers, update `wasi-libc`, and then add support in `rustix`.
+pub use clock::*;
+#[cfg(any(linux_kernel, target_os = "fuchsia"))]
+pub use timerfd::*;
diff --git a/vendor/rustix-1.0.8/src/time/timerfd.rs b/vendor/rustix-1.0.8/src/time/timerfd.rs
new file mode 100644
index 0000000..d1d2a17
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/time/timerfd.rs
@@ -0,0 +1,59 @@
+use crate::fd::{AsFd, OwnedFd};
+use crate::timespec::Timespec;
+use crate::{backend, io};
+
+pub use backend::time::types::{TimerfdClockId, TimerfdFlags, TimerfdTimerFlags};
+
+/// `struct itimerspec` for use with [`timerfd_gettime`] and
+/// [`timerfd_settime`].
+///
+/// [`timerfd_gettime`]: crate::time::timerfd_gettime
+/// [`timerfd_settime`]: crate::time::timerfd_settime
+#[derive(Debug, Clone)]
+pub struct Itimerspec {
+ /// Interval between times.
+ pub it_interval: Timespec,
+ /// Value of the time.
+ pub it_value: Timespec,
+}
+
+/// `timerfd_create(clockid, flags)`—Create a timer.
+///
+/// For a higher-level API to timerfd functionality, see the [timerfd] crate.
+///
+/// [timerfd]: https://crates.io/crates/timerfd
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/timerfd_create.2.html
+#[inline]
+pub fn timerfd_create(clockid: TimerfdClockId, flags: TimerfdFlags) -> io::Result<OwnedFd> {
+ backend::time::syscalls::timerfd_create(clockid, flags)
+}
+
+/// `timerfd_settime(clockid, flags, new_value)`—Set the time on a timer.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/timerfd_settime.2.html
+#[inline]
+pub fn timerfd_settime<Fd: AsFd>(
+ fd: Fd,
+ flags: TimerfdTimerFlags,
+ new_value: &Itimerspec,
+) -> io::Result<Itimerspec> {
+ backend::time::syscalls::timerfd_settime(fd.as_fd(), flags, new_value)
+}
+
+/// `timerfd_gettime(clockid, flags)`—Query a timer.
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/timerfd_gettime.2.html
+#[inline]
+pub fn timerfd_gettime<Fd: AsFd>(fd: Fd) -> io::Result<Itimerspec> {
+ backend::time::syscalls::timerfd_gettime(fd.as_fd())
+}
diff --git a/vendor/rustix-1.0.8/src/timespec.rs b/vendor/rustix-1.0.8/src/timespec.rs
new file mode 100644
index 0000000..f5404ba
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/timespec.rs
@@ -0,0 +1,428 @@
+//! `Timespec` and related types, which are used by multiple public API
+//! modules.
+
+#![allow(dead_code)]
+
+use core::num::TryFromIntError;
+use core::ops::{Add, AddAssign, Neg, Sub, SubAssign};
+use core::time::Duration;
+
+use crate::backend::c;
+#[allow(unused)]
+use crate::ffi;
+#[cfg(not(fix_y2038))]
+use core::ptr::null;
+
+/// `struct timespec`—A quantity of time in seconds plus nanoseconds.
+#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord)]
+#[repr(C)]
+pub struct Timespec {
+ /// Seconds.
+ pub tv_sec: Secs,
+
+ /// Nanoseconds. Must be less than 1_000_000_000.
+ ///
+ /// When passed to [`rustix::fs::utimensat`], this field may instead be
+ /// assigned the values [`UTIME_NOW`] or [`UTIME_OMIT`].
+ ///
+ /// [`UTIME_NOW`]: crate::fs::UTIME_NOW
+ /// [`UTIME_OMIT`]: crate::fs::UTIME_OMIT
+ /// [`rustix::fs::utimensat`]: crate::fs::utimensat
+ pub tv_nsec: Nsecs,
+}
+
+/// A type for the `tv_sec` field of [`Timespec`].
+pub type Secs = i64;
+
+/// A type for the `tv_nsec` field of [`Timespec`].
+#[cfg(any(
+ fix_y2038,
+ linux_raw,
+ all(libc, target_arch = "x86_64", target_pointer_width = "32")
+))]
+pub type Nsecs = i64;
+
+/// A type for the `tv_nsec` field of [`Timespec`].
+#[cfg(all(
+ not(fix_y2038),
+ libc,
+ not(all(target_arch = "x86_64", target_pointer_width = "32"))
+))]
+pub type Nsecs = ffi::c_long;
+
+impl Timespec {
+ /// Checked `Timespec` addition. Returns `None` if overflow occurred.
+ ///
+ /// # Panics
+ ///
+ /// If `0 <= .tv_nsec < 1_000_000_000` doesn't hold, this function may
+ /// panic or return unexpected results.
+ ///
+ /// # Example
+ ///
+ /// ```
+ /// use rustix::event::Timespec;
+ ///
+ /// assert_eq!(
+ /// Timespec {
+ /// tv_sec: 1,
+ /// tv_nsec: 2
+ /// }
+ /// .checked_add(Timespec {
+ /// tv_sec: 30,
+ /// tv_nsec: 40
+ /// }),
+ /// Some(Timespec {
+ /// tv_sec: 31,
+ /// tv_nsec: 42
+ /// })
+ /// );
+ /// assert_eq!(
+ /// Timespec {
+ /// tv_sec: 0,
+ /// tv_nsec: 999_999_999
+ /// }
+ /// .checked_add(Timespec {
+ /// tv_sec: 0,
+ /// tv_nsec: 2
+ /// }),
+ /// Some(Timespec {
+ /// tv_sec: 1,
+ /// tv_nsec: 1
+ /// })
+ /// );
+ /// assert_eq!(
+ /// Timespec {
+ /// tv_sec: i64::MAX,
+ /// tv_nsec: 999_999_999
+ /// }
+ /// .checked_add(Timespec {
+ /// tv_sec: 0,
+ /// tv_nsec: 1
+ /// }),
+ /// None
+ /// );
+ /// ```
+ pub const fn checked_add(self, rhs: Self) -> Option<Self> {
+ if let Some(mut tv_sec) = self.tv_sec.checked_add(rhs.tv_sec) {
+ let mut tv_nsec = self.tv_nsec + rhs.tv_nsec;
+ if tv_nsec >= 1_000_000_000 {
+ tv_nsec -= 1_000_000_000;
+ if let Some(carried_sec) = tv_sec.checked_add(1) {
+ tv_sec = carried_sec;
+ } else {
+ return None;
+ }
+ }
+ Some(Self { tv_sec, tv_nsec })
+ } else {
+ None
+ }
+ }
+
+ /// Checked `Timespec` subtraction. Returns `None` if overflow occurred.
+ ///
+ /// # Panics
+ ///
+ /// If `0 <= .tv_nsec < 1_000_000_000` doesn't hold, this function may
+ /// panic or return unexpected results.
+ ///
+ /// # Example
+ ///
+ /// ```
+ /// use rustix::event::Timespec;
+ ///
+ /// assert_eq!(
+ /// Timespec {
+ /// tv_sec: 31,
+ /// tv_nsec: 42
+ /// }
+ /// .checked_sub(Timespec {
+ /// tv_sec: 30,
+ /// tv_nsec: 40
+ /// }),
+ /// Some(Timespec {
+ /// tv_sec: 1,
+ /// tv_nsec: 2
+ /// })
+ /// );
+ /// assert_eq!(
+ /// Timespec {
+ /// tv_sec: 1,
+ /// tv_nsec: 1
+ /// }
+ /// .checked_sub(Timespec {
+ /// tv_sec: 0,
+ /// tv_nsec: 2
+ /// }),
+ /// Some(Timespec {
+ /// tv_sec: 0,
+ /// tv_nsec: 999_999_999
+ /// })
+ /// );
+ /// assert_eq!(
+ /// Timespec {
+ /// tv_sec: i64::MIN,
+ /// tv_nsec: 0
+ /// }
+ /// .checked_sub(Timespec {
+ /// tv_sec: 0,
+ /// tv_nsec: 1
+ /// }),
+ /// None
+ /// );
+ /// ```
+ pub const fn checked_sub(self, rhs: Self) -> Option<Self> {
+ if let Some(mut tv_sec) = self.tv_sec.checked_sub(rhs.tv_sec) {
+ let mut tv_nsec = self.tv_nsec - rhs.tv_nsec;
+ if tv_nsec < 0 {
+ tv_nsec += 1_000_000_000;
+ if let Some(borrowed_sec) = tv_sec.checked_sub(1) {
+ tv_sec = borrowed_sec;
+ } else {
+ return None;
+ }
+ }
+ Some(Self { tv_sec, tv_nsec })
+ } else {
+ None
+ }
+ }
+
+ /// Convert from `Timespec` to `c::c_int` milliseconds, rounded up.
+ pub(crate) fn as_c_int_millis(&self) -> Option<c::c_int> {
+ let secs = self.tv_sec;
+ if secs < 0 {
+ return None;
+ }
+ secs.checked_mul(1000)
+ .and_then(|millis| {
+ // Add the nanoseconds, converted to milliseconds, rounding up.
+ // With Rust 1.73.0 this can use `div_ceil`.
+ millis.checked_add((i64::from(self.tv_nsec) + 999_999) / 1_000_000)
+ })
+ .and_then(|millis| c::c_int::try_from(millis).ok())
+ }
+}
+
+impl TryFrom<Timespec> for Duration {
+ type Error = TryFromIntError;
+
+ fn try_from(ts: Timespec) -> Result<Self, Self::Error> {
+ Ok(Self::new(ts.tv_sec.try_into()?, ts.tv_nsec as _))
+ }
+}
+
+impl TryFrom<Duration> for Timespec {
+ type Error = TryFromIntError;
+
+ fn try_from(dur: Duration) -> Result<Self, Self::Error> {
+ Ok(Self {
+ tv_sec: dur.as_secs().try_into()?,
+ tv_nsec: dur.subsec_nanos() as _,
+ })
+ }
+}
+
+impl Add for Timespec {
+ type Output = Self;
+
+ fn add(self, rhs: Self) -> Self {
+ self.checked_add(rhs)
+ .expect("overflow when adding timespecs")
+ }
+}
+
+impl AddAssign for Timespec {
+ fn add_assign(&mut self, rhs: Self) {
+ *self = *self + rhs;
+ }
+}
+
+impl Sub for Timespec {
+ type Output = Self;
+
+ fn sub(self, rhs: Self) -> Self {
+ self.checked_sub(rhs)
+ .expect("overflow when subtracting timespecs")
+ }
+}
+
+impl SubAssign for Timespec {
+ fn sub_assign(&mut self, rhs: Self) {
+ *self = *self - rhs;
+ }
+}
+
+impl Neg for Timespec {
+ type Output = Self;
+
+ fn neg(self) -> Self {
+ Self::default() - self
+ }
+}
+
+/// On 32-bit glibc platforms, `timespec` has anonymous padding fields, which
+/// Rust doesn't support yet (see `unnamed_fields`), so we define our own
+/// struct with explicit padding, with bidirectional `From` impls.
+#[cfg(fix_y2038)]
+#[repr(C)]
+#[derive(Debug, Clone)]
+pub(crate) struct LibcTimespec {
+ pub(crate) tv_sec: Secs,
+
+ #[cfg(target_endian = "big")]
+ padding: core::mem::MaybeUninit<u32>,
+
+ pub(crate) tv_nsec: i32,
+
+ #[cfg(target_endian = "little")]
+ padding: core::mem::MaybeUninit<u32>,
+}
+
+#[cfg(fix_y2038)]
+impl From<LibcTimespec> for Timespec {
+ #[inline]
+ fn from(t: LibcTimespec) -> Self {
+ Self {
+ tv_sec: t.tv_sec,
+ tv_nsec: t.tv_nsec as _,
+ }
+ }
+}
+
+#[cfg(fix_y2038)]
+impl From<Timespec> for LibcTimespec {
+ #[inline]
+ fn from(t: Timespec) -> Self {
+ Self {
+ tv_sec: t.tv_sec,
+ tv_nsec: t.tv_nsec as _,
+ padding: core::mem::MaybeUninit::uninit(),
+ }
+ }
+}
+
+#[cfg(not(fix_y2038))]
+pub(crate) fn as_libc_timespec_ptr(timespec: &Timespec) -> *const c::timespec {
+ #[cfg(test)]
+ {
+ assert_eq_size!(Timespec, c::timespec);
+ }
+ crate::utils::as_ptr(timespec).cast::<c::timespec>()
+}
+
+#[cfg(not(fix_y2038))]
+pub(crate) fn as_libc_timespec_mut_ptr(
+ timespec: &mut core::mem::MaybeUninit<Timespec>,
+) -> *mut c::timespec {
+ #[cfg(test)]
+ {
+ assert_eq_size!(Timespec, c::timespec);
+ }
+ timespec.as_mut_ptr().cast::<c::timespec>()
+}
+
+#[cfg(not(fix_y2038))]
+pub(crate) fn option_as_libc_timespec_ptr(timespec: Option<&Timespec>) -> *const c::timespec {
+ match timespec {
+ None => null(),
+ Some(timespec) => as_libc_timespec_ptr(timespec),
+ }
+}
+
+/// As described [here], Apple platforms may return a negative nanoseconds
+/// value in some cases; adjust it so that nanoseconds is always in
+/// `0..1_000_000_000`.
+///
+/// [here]: https://github.com/rust-lang/rust/issues/108277#issuecomment-1787057158
+#[cfg(apple)]
+#[inline]
+pub(crate) fn fix_negative_nsecs(
+ mut secs: c::time_t,
+ mut nsecs: c::c_long,
+) -> (c::time_t, c::c_long) {
+ #[cold]
+ fn adjust(secs: &mut c::time_t, nsecs: c::c_long) -> c::c_long {
+ assert!(nsecs >= -1_000_000_000);
+ assert!(*secs < 0);
+ assert!(*secs > c::time_t::MIN);
+ *secs -= 1;
+ nsecs + 1_000_000_000
+ }
+
+ if nsecs < 0 {
+ nsecs = adjust(&mut secs, nsecs);
+ }
+ (secs, nsecs)
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[cfg(apple)]
+ #[test]
+ fn test_negative_timestamps() {
+ let mut secs = -59;
+ let mut nsecs = -900_000_000;
+ (secs, nsecs) = fix_negative_nsecs(secs, nsecs);
+ assert_eq!(secs, -60);
+ assert_eq!(nsecs, 100_000_000);
+ (secs, nsecs) = fix_negative_nsecs(secs, nsecs);
+ assert_eq!(secs, -60);
+ assert_eq!(nsecs, 100_000_000);
+ }
+
+ #[test]
+ fn test_sizes() {
+ assert_eq_size!(Secs, u64);
+ const_assert!(core::mem::size_of::<Timespec>() >= core::mem::size_of::<(u64, u32)>());
+ const_assert!(core::mem::size_of::<Nsecs>() >= 4);
+
+ let mut t = Timespec {
+ tv_sec: 0,
+ tv_nsec: 0,
+ };
+
+ // `tv_nsec` needs to be able to hold nanoseconds up to a second.
+ t.tv_nsec = 999_999_999_u32 as _;
+ assert_eq!(t.tv_nsec as u64, 999_999_999_u64);
+
+ // `tv_sec` needs to be able to hold more than 32-bits of seconds.
+ t.tv_sec = 0x1_0000_0000_u64 as _;
+ assert_eq!(t.tv_sec as u64, 0x1_0000_0000_u64);
+ }
+
+ // Test that our workarounds are needed.
+ #[cfg(fix_y2038)]
+ #[test]
+ #[allow(deprecated)]
+ fn test_fix_y2038() {
+ assert_eq_size!(libc::time_t, u32);
+ }
+
+ // Test that our workarounds are not needed.
+ #[cfg(not(fix_y2038))]
+ #[test]
+ fn timespec_layouts() {
+ use crate::backend::c;
+ check_renamed_struct!(Timespec, timespec, tv_sec, tv_nsec);
+ }
+
+ // Test that `Timespec` matches Linux's `__kernel_timespec`.
+ #[cfg(linux_kernel)]
+ #[test]
+ fn test_against_kernel_timespec() {
+ assert_eq_size!(Timespec, linux_raw_sys::general::__kernel_timespec);
+ assert_eq_align!(Timespec, linux_raw_sys::general::__kernel_timespec);
+ assert_eq!(
+ memoffset::span_of!(Timespec, tv_sec),
+ memoffset::span_of!(linux_raw_sys::general::__kernel_timespec, tv_sec)
+ );
+ assert_eq!(
+ memoffset::span_of!(Timespec, tv_nsec),
+ memoffset::span_of!(linux_raw_sys::general::__kernel_timespec, tv_nsec)
+ );
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/ugid.rs b/vendor/rustix-1.0.8/src/ugid.rs
new file mode 100644
index 0000000..386ceb7
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/ugid.rs
@@ -0,0 +1,119 @@
+//! User and Group ID types.
+
+use crate::backend::c;
+use crate::ffi;
+
+/// A group identifier as a raw integer.
+pub type RawGid = ffi::c_uint;
+/// A user identifier as a raw integer.
+pub type RawUid = ffi::c_uint;
+
+/// `uid_t`—A Unix user ID.
+#[repr(transparent)]
+#[derive(Copy, Clone, Eq, PartialEq, Debug, Hash)]
+pub struct Uid(RawUid);
+
+/// `gid_t`—A Unix group ID.
+#[repr(transparent)]
+#[derive(Copy, Clone, Eq, PartialEq, Debug, Hash)]
+pub struct Gid(RawGid);
+
+impl Uid {
+ /// A `Uid` corresponding to the root user (uid 0).
+ pub const ROOT: Self = Self(0);
+
+ /// Converts a `RawUid` into a `Uid`.
+ ///
+ /// `raw` must be the value of a valid Unix user ID, and not `-1`.
+ #[inline]
+ pub fn from_raw(raw: RawUid) -> Self {
+ debug_assert_ne!(raw, !0);
+ Self(raw)
+ }
+
+ /// Converts a `RawUid` into a `Uid`.
+ ///
+ /// `raw` must be the value of a valid Unix user ID, and not `-1`.
+ #[inline]
+ pub const fn from_raw_unchecked(raw: RawUid) -> Self {
+ Self(raw)
+ }
+
+ /// Converts a `Uid` into a `RawUid`.
+ #[inline]
+ pub const fn as_raw(self) -> RawUid {
+ self.0
+ }
+
+ /// Test whether this uid represents the root user ([`Uid::ROOT`]).
+ #[inline]
+ pub const fn is_root(self) -> bool {
+ self.0 == Self::ROOT.0
+ }
+}
+
+impl Gid {
+ /// A `Gid` corresponding to the root group (gid 0).
+ pub const ROOT: Self = Self(0);
+
+ /// Converts a `RawGid` into a `Gid`.
+ ///
+ /// `raw` must be the value of a valid Unix group ID, and not `-1`.
+ #[inline]
+ pub fn from_raw(raw: RawGid) -> Self {
+ debug_assert_ne!(raw, !0);
+ Self(raw)
+ }
+
+ /// Converts a `RawGid` into a `Gid`.
+ ///
+ /// `raw` must be the value of a valid Unix group ID, and not `-1`.
+ #[inline]
+ pub const fn from_raw_unchecked(raw: RawGid) -> Self {
+ Self(raw)
+ }
+
+ /// Converts a `Gid` into a `RawGid`.
+ #[inline]
+ pub const fn as_raw(self) -> RawGid {
+ self.0
+ }
+
+ /// Test whether this gid represents the root group ([`Gid::ROOT`]).
+ #[inline]
+ pub const fn is_root(self) -> bool {
+ self.0 == Self::ROOT.0
+ }
+}
+
+// Return the raw value of the IDs. In case of `None` it returns `!0` since it
+// has the same bit pattern as `-1` indicating no change to the owner/group ID.
+pub(crate) fn translate_fchown_args(
+ owner: Option<Uid>,
+ group: Option<Gid>,
+) -> (c::uid_t, c::gid_t) {
+ let ow = match owner {
+ Some(o) => o.as_raw(),
+ None => !0,
+ };
+
+ let gr = match group {
+ Some(g) => g.as_raw(),
+ None => !0,
+ };
+
+ (ow as c::uid_t, gr as c::gid_t)
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_sizes() {
+ assert_eq_size!(RawUid, u32);
+ assert_eq_size!(RawGid, u32);
+ assert_eq_size!(RawUid, libc::uid_t);
+ assert_eq_size!(RawGid, libc::gid_t);
+ }
+}
diff --git a/vendor/rustix-1.0.8/src/utils.rs b/vendor/rustix-1.0.8/src/utils.rs
new file mode 100644
index 0000000..77eb26c
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/utils.rs
@@ -0,0 +1,76 @@
+//! Miscellaneous minor utilities.
+
+#![allow(dead_code)]
+#![allow(unused_macros)]
+
+use core::ffi::c_void;
+use core::mem::{align_of, size_of};
+use core::ptr::{null, null_mut, NonNull};
+
+/// Convert a `&T` into a `*const T` without using an `as`.
+#[inline]
+pub(crate) const fn as_ptr<T>(t: &T) -> *const T {
+ t
+}
+
+/// Convert a `&mut T` into a `*mut T` without using an `as`.
+#[inline]
+pub(crate) fn as_mut_ptr<T>(t: &mut T) -> *mut T {
+ t
+}
+
+/// Convert an `Option<&T>` into a possibly-null `*const T`.
+#[inline]
+pub(crate) const fn option_as_ptr<T>(t: Option<&T>) -> *const T {
+ match t {
+ Some(t) => t,
+ None => null(),
+ }
+}
+
+/// Convert an `Option<&mut T>` into a possibly-null `*mut T`.
+#[inline]
+pub(crate) fn option_as_mut_ptr<T>(t: Option<&mut T>) -> *mut T {
+ match t {
+ Some(t) => t,
+ None => null_mut(),
+ }
+}
+
+/// Convert a `*mut c_void` to a `*mut T`, checking that it is not null,
+/// misaligned, or pointing to a region of memory that wraps around the address
+/// space.
+pub(crate) fn check_raw_pointer<T>(value: *mut c_void) -> Option<NonNull<T>> {
+ if (value as usize).checked_add(size_of::<T>()).is_none()
+ || (value as usize) % align_of::<T>() != 0
+ {
+ return None;
+ }
+
+ NonNull::new(value.cast())
+}
+
+/// Create a union value containing a default value in one of its arms.
+///
+/// The field names a union field which must have the same size as the union
+/// itself.
+macro_rules! default_union {
+ ($union:ident, $field:ident) => {{
+ let u = $union {
+ $field: Default::default(),
+ };
+
+ // Assert that the given field initializes the whole union.
+ #[cfg(test)]
+ unsafe {
+ let field_value = u.$field;
+ assert_eq!(
+ core::mem::size_of_val(&u),
+ core::mem::size_of_val(&field_value)
+ );
+ const_assert_eq!(memoffset::offset_of_union!($union, $field), 0);
+ }
+
+ u
+ }};
+}
diff --git a/vendor/rustix-1.0.8/src/weak.rs b/vendor/rustix-1.0.8/src/weak.rs
new file mode 100644
index 0000000..036ddee
--- /dev/null
+++ b/vendor/rustix-1.0.8/src/weak.rs
@@ -0,0 +1,288 @@
+// Implementation derived from `weak` in Rust's
+// library/std/src/sys/unix/weak.rs at revision
+// fd0cb0cdc21dd9c06025277d772108f8d42cb25f.
+//
+// Ideally we should update to a newer version which doesn't need `dlsym`,
+// however that depends on the `extern_weak` feature which is currently
+// unstable.
+
+#![cfg_attr(linux_raw, allow(unsafe_code))]
+
+//! Support for "weak linkage" to symbols on Unix
+//!
+//! Some I/O operations we do in libstd require newer versions of OSes but we
+//! need to maintain binary compatibility with older releases for now. In order
+//! to use the new functionality when available we use this module for
+//! detection.
+//!
+//! One option to use here is weak linkage, but that is unfortunately only
+//! really workable on Linux. Hence, use dlsym to get the symbol value at
+//! runtime. This is also done for compatibility with older versions of glibc,
+//! and to avoid creating dependencies on `GLIBC_PRIVATE` symbols. It assumes
+//! that we've been dynamically linked to the library the symbol comes from,
+//! but that is currently always the case for things like libpthread/libc.
+//!
+//! A long time ago this used weak linkage for the `__pthread_get_minstack`
+//! symbol, but that caused Debian to detect an unnecessarily strict versioned
+//! dependency on libc6 (#23628).
+
+// There are a variety of `#[cfg]`s controlling which targets are involved in
+// each instance of `weak!` and `syscall!`. Rather than trying to unify all of
+// that, we'll just allow that some unix targets don't use this module at all.
+#![allow(dead_code, unused_macros)]
+#![allow(clippy::doc_markdown)]
+
+use crate::ffi::CStr;
+use core::ffi::c_void;
+use core::ptr::null_mut;
+use core::sync::atomic::{self, AtomicPtr, Ordering};
+use core::{marker, mem};
+
+const NULL: *mut c_void = null_mut();
+const INVALID: *mut c_void = 1 as *mut c_void;
+
+macro_rules! weak {
+ ($vis:vis fn $name:ident($($t:ty),*) -> $ret:ty) => (
+ #[allow(non_upper_case_globals)]
+ $vis static $name: $crate::weak::Weak<unsafe extern "C" fn($($t),*) -> $ret> =
+ $crate::weak::Weak::new(concat!(stringify!($name), '\0'));
+ )
+}
+
+pub(crate) struct Weak<F> {
+ name: &'static str,
+ addr: AtomicPtr<c_void>,
+ _marker: marker::PhantomData<F>,
+}
+
+impl<F> Weak<F> {
+ pub(crate) const fn new(name: &'static str) -> Self {
+ Self {
+ name,
+ addr: AtomicPtr::new(INVALID),
+ _marker: marker::PhantomData,
+ }
+ }
+
+ pub(crate) fn get(&self) -> Option<F> {
+ assert_eq!(mem::size_of::<F>(), mem::size_of::<usize>());
+ unsafe {
+ // Relaxed is fine here because we fence before reading through the
+ // pointer (see the comment below).
+ match self.addr.load(Ordering::Relaxed) {
+ INVALID => self.initialize(),
+ NULL => None,
+ addr => {
+ let func = mem::transmute_copy::<*mut c_void, F>(&addr);
+ // The caller is presumably going to read through this
+ // value (by calling the function we've dlsymed). This
+ // means we'd need to have loaded it with at least C11's
+ // consume ordering in order to be guaranteed that the data
+ // we read from the pointer isn't from before the pointer
+ // was stored. Rust has no equivalent to
+ // memory_order_consume, so we use an acquire fence (sorry,
+ // ARM).
+ //
+ // Now, in practice this likely isn't needed even on CPUs
+ // where relaxed and consume mean different things. The
+ // symbols we're loading are probably present (or not) at
+ // init, and even if they aren't the runtime dynamic loader
+ // is extremely likely have sufficient barriers internally
+ // (possibly implicitly, for example the ones provided by
+ // invoking `mprotect`).
+ //
+ // That said, none of that's *guaranteed*, and so we fence.
+ atomic::fence(Ordering::Acquire);
+ Some(func)
+ }
+ }
+ }
+ }
+
+ // Cold because it should only happen during first-time initialization.
+ #[cold]
+ unsafe fn initialize(&self) -> Option<F> {
+ let val = fetch(self.name);
+ // This synchronizes with the acquire fence in `get`.
+ self.addr.store(val, Ordering::Release);
+
+ match val {
+ NULL => None,
+ addr => Some(mem::transmute_copy::<*mut c_void, F>(&addr)),
+ }
+ }
+}
+
+// To avoid having the `linux_raw` backend depend on the libc crate, just
+// declare the few things we need in a module called `libc` so that `fetch`
+// uses it.
+#[cfg(linux_raw)]
+mod libc {
+ use core::ptr;
+ use linux_raw_sys::ctypes::{c_char, c_void};
+
+ #[cfg(all(target_os = "android", target_pointer_width = "32"))]
+ pub(super) const RTLD_DEFAULT: *mut c_void = -1isize as *mut c_void;
+ #[cfg(not(all(target_os = "android", target_pointer_width = "32")))]
+ pub(super) const RTLD_DEFAULT: *mut c_void = ptr::null_mut();
+
+ extern "C" {
+ pub(super) fn dlsym(handle: *mut c_void, symbol: *const c_char) -> *mut c_void;
+ }
+
+ #[test]
+ fn test_abi() {
+ assert_eq!(self::RTLD_DEFAULT, ::libc::RTLD_DEFAULT);
+ }
+}
+
+unsafe fn fetch(name: &str) -> *mut c_void {
+ let name = match CStr::from_bytes_with_nul(name.as_bytes()) {
+ Ok(c_str) => c_str,
+ Err(..) => return null_mut(),
+ };
+ libc::dlsym(libc::RTLD_DEFAULT, name.as_ptr().cast())
+}
+
+#[cfg(not(linux_kernel))]
+macro_rules! syscall {
+ (fn $name:ident($($arg_name:ident: $t:ty),*) via $_sys_name:ident -> $ret:ty) => (
+ unsafe fn $name($($arg_name: $t),*) -> $ret {
+ weak! { fn $name($($t),*) -> $ret }
+
+ if let Some(fun) = $name.get() {
+ fun($($arg_name),*)
+ } else {
+ libc_errno::set_errno(libc_errno::Errno(libc::ENOSYS));
+ -1
+ }
+ }
+ )
+}
+
+#[cfg(linux_kernel)]
+macro_rules! syscall {
+ (fn $name:ident($($arg_name:ident: $t:ty),*) via $sys_name:ident -> $ret:ty) => (
+ unsafe fn $name($($arg_name:$t),*) -> $ret {
+ // This looks like a hack, but `concat_idents` only accepts idents
+ // (not paths).
+ use libc::*;
+
+ #[allow(dead_code)]
+ trait AsSyscallArg {
+ type SyscallArgType;
+ fn into_syscall_arg(self) -> Self::SyscallArgType;
+ }
+
+ // Pass pointer types as pointers, to preserve provenance.
+ impl<T> AsSyscallArg for *mut T {
+ type SyscallArgType = *mut T;
+ fn into_syscall_arg(self) -> Self::SyscallArgType { self }
+ }
+ impl<T> AsSyscallArg for *const T {
+ type SyscallArgType = *const T;
+ fn into_syscall_arg(self) -> Self::SyscallArgType { self }
+ }
+
+ // Pass `BorrowedFd` values as the integer value.
+ impl AsSyscallArg for $crate::fd::BorrowedFd<'_> {
+ type SyscallArgType = ::libc::c_int;
+ fn into_syscall_arg(self) -> Self::SyscallArgType {
+ $crate::fd::AsRawFd::as_raw_fd(&self) as _
+ }
+ }
+
+ // Coerce integer values into `c_long`.
+ impl AsSyscallArg for i8 {
+ type SyscallArgType = ::libc::c_int;
+ fn into_syscall_arg(self) -> Self::SyscallArgType { self.into() }
+ }
+ impl AsSyscallArg for u8 {
+ type SyscallArgType = ::libc::c_int;
+ fn into_syscall_arg(self) -> Self::SyscallArgType { self.into() }
+ }
+ impl AsSyscallArg for i16 {
+ type SyscallArgType = ::libc::c_int;
+ fn into_syscall_arg(self) -> Self::SyscallArgType { self.into() }
+ }
+ impl AsSyscallArg for u16 {
+ type SyscallArgType = ::libc::c_int;
+ fn into_syscall_arg(self) -> Self::SyscallArgType { self.into() }
+ }
+ impl AsSyscallArg for i32 {
+ type SyscallArgType = ::libc::c_int;
+ fn into_syscall_arg(self) -> Self::SyscallArgType { self }
+ }
+ impl AsSyscallArg for u32 {
+ type SyscallArgType = ::libc::c_uint;
+ fn into_syscall_arg(self) -> Self::SyscallArgType { self }
+ }
+ impl AsSyscallArg for usize {
+ type SyscallArgType = ::libc::c_ulong;
+ fn into_syscall_arg(self) -> Self::SyscallArgType { self as _ }
+ }
+
+ // On 64-bit platforms, also coerce `i64` and `u64` since `c_long`
+ // is 64-bit and can hold those values.
+ #[cfg(target_pointer_width = "64")]
+ impl AsSyscallArg for i64 {
+ type SyscallArgType = ::libc::c_long;
+ fn into_syscall_arg(self) -> Self::SyscallArgType { self }
+ }
+ #[cfg(target_pointer_width = "64")]
+ impl AsSyscallArg for u64 {
+ type SyscallArgType = ::libc::c_ulong;
+ fn into_syscall_arg(self) -> Self::SyscallArgType { self }
+ }
+
+ // `concat_idents` is [unstable], so we take an extra `sys_name`
+ // parameter and have our users do the concat for us for now.
+ //
+ // [unstable]: https://github.com/rust-lang/rust/issues/29599
+ /*
+ syscall(
+ concat_idents!(SYS_, $name),
+ $($arg_name.into_syscall_arg()),*
+ ) as $ret
+ */
+
+ syscall($sys_name, $($arg_name.into_syscall_arg()),*) as $ret
+ }
+ )
+}
+
+macro_rules! weakcall {
+ ($vis:vis fn $name:ident($($arg_name:ident: $t:ty),*) -> $ret:ty) => (
+ $vis unsafe fn $name($($arg_name: $t),*) -> $ret {
+ weak! { fn $name($($t),*) -> $ret }
+
+ // Use a weak symbol from libc when possible, allowing `LD_PRELOAD`
+ // interposition, but if it's not found just fail.
+ if let Some(fun) = $name.get() {
+ fun($($arg_name),*)
+ } else {
+ libc_errno::set_errno(libc_errno::Errno(libc::ENOSYS));
+ -1
+ }
+ }
+ )
+}
+
+/// A combination of `weakcall` and `syscall`. Use the libc function if it's
+/// available, and fall back to `libc::syscall` otherwise.
+macro_rules! weak_or_syscall {
+ ($vis:vis fn $name:ident($($arg_name:ident: $t:ty),*) via $sys_name:ident -> $ret:ty) => (
+ $vis unsafe fn $name($($arg_name: $t),*) -> $ret {
+ weak! { fn $name($($t),*) -> $ret }
+
+ // Use a weak symbol from libc when possible, allowing `LD_PRELOAD`
+ // interposition, but if it's not found just fail.
+ if let Some(fun) = $name.get() {
+ fun($($arg_name),*)
+ } else {
+ syscall! { fn $name($($arg_name: $t),*) via $sys_name -> $ret }
+ $name($($arg_name),*)
+ }
+ }
+ )
+}
diff --git a/vendor_artifacts/no_std/Cargo.lock b/vendor_artifacts/no_std/Cargo.lock
index 622d73a..0c01f9d 100644
--- a/vendor_artifacts/no_std/Cargo.lock
+++ b/vendor_artifacts/no_std/Cargo.lock
@@ -765,6 +765,16 @@
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
+name = "errno"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
name = "euclid"
version = "0.22.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1365,6 +1375,12 @@
checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
[[package]]
+name = "linux-raw-sys"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"
+
+[[package]]
name = "litemap"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1513,7 +1529,7 @@
"itertools 0.11.0",
"lazy_static",
"libc",
- "linux-raw-sys",
+ "linux-raw-sys 0.1.4",
"log",
"lz4_flex",
"memoffset 0.6.5",
@@ -1540,6 +1556,7 @@
"riscv 0.7.0",
"riscv-rt",
"rtt-target",
+ "rustix",
"safemem",
"sbat",
"serde",
@@ -2224,6 +2241,19 @@
]
[[package]]
+name = "rustix"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
+dependencies = [
+ "bitflags 2.9.1",
+ "errno",
+ "libc",
+ "linux-raw-sys 0.9.4",
+ "windows-sys",
+]
+
+[[package]]
name = "ryu"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/vendor_artifacts/no_std/Cargo.toml b/vendor_artifacts/no_std/Cargo.toml
index 84f382f..0e19acf 100644
--- a/vendor_artifacts/no_std/Cargo.toml
+++ b/vendor_artifacts/no_std/Cargo.toml
@@ -159,6 +159,7 @@
riscv = "0.7.0"
riscv-rt = "0.8.0"
rtt-target = { "version" = "0.3.1", features = ['cortex-m'] }
+rustix = { "version" = "1.0.8", "default-features" = false, features = ['alloc', 'event', 'fs', 'mm', 'net', 'param', 'pipe'] }
safemem = { "version" = "0.3.3", "default-features" = false, features = [] }
sbat = { "version" = "0.5.0", features = ['alloc'] }
serde = { "version" = "1.0.152", "default-features" = false, features = ['alloc', 'derive', 'rc', 'serde_derive'] }
diff --git a/vendor_artifacts/no_std/annotations.json b/vendor_artifacts/no_std/annotations.json
index 64b8b67..e55a9d6 100644
--- a/vendor_artifacts/no_std/annotations.json
+++ b/vendor_artifacts/no_std/annotations.json
@@ -78,6 +78,34 @@
"version": "*"
}
],
+ "rustix": [
+ {
+ "additive_build_file_content": "load(\"@@//bazel/module_extensions/private:symlink.bzl\", \"symlink_without_target\")\n\nconfig_setting(\n name = \"is_release\",\n values = {\"compilation_mode\": \"opt\"}\n)\n\nsymlink_without_target(\n name = \"static_libs\",\n actual = select({\n \":is_release\": \"src/backend/linux_raw/arch/outline/release\",\n \"//conditions:default\": \"src/backend/linux_raw/arch/outline/debug\",\n }),\n out = \"static_libs\",\n)\n",
+ "data": [
+ ":static_libs"
+ ],
+ "patch_args": [
+ "-p1"
+ ],
+ "patch_tool": "patch",
+ "patches": [
+ "@@//third_party/rust_crates/patches:rustix/disable-features.patch"
+ ],
+ "rustc_flags": [
+ "-L$(location :static_libs)"
+ ]
+ },
+ {
+ "patch_args": [
+ "-p1"
+ ],
+ "patch_tool": "patch",
+ "patches": [
+ "@@//third_party/rust_crates/patches:rustix-1.0.8/0001-build-Use-temporary-file-for-can_compile.patch"
+ ],
+ "version": "1.0.8"
+ }
+ ],
"serde_json": [
{
"crate_features": [
diff --git a/vendor_artifacts/std/Cargo.lock b/vendor_artifacts/std/Cargo.lock
index a58f7f2..fbfd02e 100644
--- a/vendor_artifacts/std/Cargo.lock
+++ b/vendor_artifacts/std/Cargo.lock
@@ -1809,9 +1809,9 @@
[[package]]
name = "errno"
-version = "0.3.8"
+version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad"
dependencies = [
"libc",
"windows-sys 0.52.0",
@@ -3275,6 +3275,12 @@
checksum = "2a385b1be4e5c3e362ad2ffa73c392e53f031eaa5b7d648e64cd87f27f6063d7"
[[package]]
+name = "linux-raw-sys"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"
+
+[[package]]
name = "litemap"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3647,6 +3653,7 @@
"rusb",
"rustc-demangle-capi",
"rustfft",
+ "rustix 1.0.8",
"rusty-fork",
"rustyline 10.0.0",
"rustyline 9.1.2",
@@ -5518,13 +5525,26 @@
checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
dependencies = [
"bitflags 2.9.1",
- "errno 0.3.8",
+ "errno 0.3.13",
"libc",
"linux-raw-sys 0.4.13",
"windows-sys 0.52.0",
]
[[package]]
+name = "rustix"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
+dependencies = [
+ "bitflags 2.9.1",
+ "errno 0.3.13",
+ "libc",
+ "linux-raw-sys 0.9.4",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
name = "rustversion"
version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/vendor_artifacts/std/Cargo.toml b/vendor_artifacts/std/Cargo.toml
index 184baf7..644533e 100644
--- a/vendor_artifacts/std/Cargo.toml
+++ b/vendor_artifacts/std/Cargo.toml
@@ -378,6 +378,7 @@
rusb = "0.9.4"
rustc-demangle-capi = "0.1.0"
rustfft = "6.1.0"
+rustix = { "version" = "1.0.8", features = ['alloc', 'event', 'fs', 'mm', 'net', 'param', 'pipe'] }
rusty-fork = { "version" = "0.3.0", features = ['wait-timeout'] }
# Used by crosh-0.24.52
# Used by lego-controller-0.1.0
diff --git a/vendor_artifacts/std/annotations.json b/vendor_artifacts/std/annotations.json
index d86ea78..42881e0 100644
--- a/vendor_artifacts/std/annotations.json
+++ b/vendor_artifacts/std/annotations.json
@@ -346,6 +346,16 @@
"rustc_flags": [
"-L$(location :static_libs)"
]
+ },
+ {
+ "patch_args": [
+ "-p1"
+ ],
+ "patch_tool": "patch",
+ "patches": [
+ "@@//third_party/rust_crates/patches:rustix-1.0.8/0001-build-Use-temporary-file-for-can_compile.patch"
+ ],
+ "version": "1.0.8"
}
],
"simple_logger": [